Commit Graph

31724 Commits

Author SHA1 Message Date
Reid Spencer
960cf7c929 Remove a spurious ;
llvm-svn: 33976
2007-02-07 03:29:29 +00:00
Evan Cheng
12cf8ddaea eliminateFrameIndex() is even more complicated if frame ptr is used instead of SP when there are dynamic alloca's.
llvm-svn: 33975
2007-02-07 02:44:23 +00:00
Chris Lattner
430c9217f0 redesign the primary datastructure used by mem2reg to eliminate an
std::map of std::vector's (ouch!).  This speeds up mem2reg by 10% on 176.gcc.

llvm-svn: 33974
2007-02-07 01:15:04 +00:00
Chris Lattner
e346767f06 do not let the table fill up with tombstones.
llvm-svn: 33973
2007-02-07 01:11:25 +00:00
Chris Lattner
df0d5a1836 Fix a really subtle bug where the entire hash table could fill with
tombstones, causing subsequent insertions to infinitely loop.

llvm-svn: 33972
2007-02-07 00:55:59 +00:00
Evan Cheng
ec13f826a2 Spill / restore should avoid modifying the condition register.
llvm-svn: 33971
2007-02-07 00:06:56 +00:00
Chris Lattner
dc0a9a7b4a Two fixes:
1. Memset takes an i32 for the value to set, not i8.  This was causing GCC to
   ICE all over the place (PR1183).
2. memcpy/memmove were not properly zext/trunc'ing the size in some cases.

llvm-svn: 33970
2007-02-06 19:06:38 +00:00
Reid Spencer
1f69fe5b73 Document the LINK_COMPONENTS and NO_INSTALL variables.
llvm-svn: 33969
2007-02-06 19:00:40 +00:00
Reid Spencer
a79819d8c6 Implement the NO_INSTALL feature. Setting this variable to any value in
a directory's Makefile will prevent the build products from that directory
from being installed. This is useful for tools and libraries that are
only useful as part of the build process.

llvm-svn: 33968
2007-02-06 18:53:14 +00:00
Reid Spencer
008e65ff96 Set the new NO_INSTALL flag for build-only tools.
llvm-svn: 33967
2007-02-06 18:51:28 +00:00
Jim Laskey
132fb185ee Error check and eliminate unnecessary value.
llvm-svn: 33966
2007-02-06 18:30:58 +00:00
Jim Laskey
207230b984 Regenerate.
llvm-svn: 33965
2007-02-06 18:20:07 +00:00
Jim Laskey
a9e7064774 Deemed too cute to live.
llvm-svn: 33964
2007-02-06 18:19:44 +00:00
Jim Laskey
f4163f9bbc Regenerate.
llvm-svn: 33963
2007-02-06 18:03:31 +00:00
Jim Laskey
5aed30d5cf Support var arg intrinsics.
llvm-svn: 33962
2007-02-06 18:02:54 +00:00
Lauro Ramos Venancio
0e47295cf0 Fix build error.
UniqueVector.h:66: error: ‘assert’ was not declared in this scope

llvm-svn: 33961
2007-02-06 14:59:28 +00:00
Evan Cheng
a974031ebd Select add FI, c correctly.
llvm-svn: 33960
2007-02-06 09:11:20 +00:00
Evan Cheng
5a165de53c Add a DYNAMIC_STACKALLOC test case.
llvm-svn: 33959
2007-02-06 07:18:27 +00:00
Evan Cheng
ea3308aef0 foldMemoryOperand() cannot fold tMOVrr sp into load / store in thumb mode. tLDRspi / tSTRspi cannot target / store high registers.
llvm-svn: 33958
2007-02-06 06:13:29 +00:00
Chris Lattner
1b4b054cba Fix PR1181 and CodeGen/CBackend/2007-02-05-memset.ll
llvm-svn: 33957
2007-02-06 06:07:51 +00:00
Chris Lattner
07e13789e5 testcase for pr1181
llvm-svn: 33956
2007-02-06 06:07:34 +00:00
Zhou Sheng
94b623aad4 As Reid suggested, fixed some problems.
llvm-svn: 33955
2007-02-06 06:04:53 +00:00
Zhou Sheng
c43c1402ef As Reid suggested, fixed some problems.
llvm-svn: 33954
2007-02-06 05:59:47 +00:00
Chris Lattner
28cbd1d624 Disable this for now.
llvm-svn: 33953
2007-02-06 05:38:37 +00:00
Zhou Sheng
dac63788ab Add a class APInt to represent arbitrary precision constant integral values.
It is a functional replacement for common case integer type like "unsigned",
"uint64_t", but also allows non-byte-width integer type and large integer
value types such as 3-bits, 15-bits, or more than 64-bits of precision. For
more details, see pr1043.

llvm-svn: 33951
2007-02-06 03:00:16 +00:00
Chris Lattner
e62c89a9f5 Fix Transforms/ConstProp/2007-02-05-BitCast.ll
llvm-svn: 33948
2007-02-06 02:22:56 +00:00
Chris Lattner
ecb38495af Testcase for miscompilation
llvm-svn: 33947
2007-02-06 02:22:37 +00:00
Chris Lattner
89e66e0c26 Oops, swap this. This fixes a regression I introduced in the ARM backend.
llvm-svn: 33946
2007-02-06 01:56:31 +00:00
Evan Cheng
2fc792f86b eliminateFrameIndex() bug when frame pointer is used as base register.
llvm-svn: 33945
2007-02-06 00:23:31 +00:00
Evan Cheng
650d0672f7 - Store val, [sp, c] must be selected to tSTRsp.
- If c does not fit in the offset field, materialize sp + c into a register
  using tADDhirr.

llvm-svn: 33944
2007-02-06 00:22:06 +00:00
Reid Spencer
92b50800f6 Although targets are not required to support integers > 64bits, TargetData
must in order for backends that do want to support large integer types to be
able to function. Consequently, don't assert if the bitwidth > 64 bits
when computing the size and alignment. Instead, compute the size by rounding
up to the next even number of bytes for the size. Compute the alignment
as the same as the LongABIAlignment. These provide reasonable defaults
that the target can override.

llvm-svn: 33943
2007-02-05 23:51:43 +00:00
Reid Spencer
d7a00d7414 A value of 64 or fewer bits is valid if the ConstantInt has more then 64 bits.
llvm-svn: 33942
2007-02-05 23:47:56 +00:00
Reid Spencer
f75727ab14 Make classes in anonymous namespaces use VISIBILITY_HIDDEN to help reduce
LLVM's footprint and speed up linking.

llvm-svn: 33941
2007-02-05 23:42:17 +00:00
Chris Lattner
c85e79f3e0 With the last change, we no longer need both directions of mapping from
BBNumbers.  Instead of using a bi-directional mapping, just use a single
densemap.  This speeds up mem2reg on 176.gcc by 8%, from  1.3489 to
1.2485s.

llvm-svn: 33940
2007-02-05 23:37:20 +00:00
Reid Spencer
557ab15e71 Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in
the Transforms library. This reduces debug library size by 132 KB, debug
binary size by 376 KB, and reduces link time for llvm tools slightly.

llvm-svn: 33939
2007-02-05 23:32:05 +00:00
Chris Lattner
52da61fb5c Simplify use of DFBlocks, this makes no noticable performance difference,
but paves the way to eliminate BBNumbers.

llvm-svn: 33938
2007-02-05 23:31:26 +00:00
Reid Spencer
193abd95c9 This file should have been removed when -raise was removed. It isn't
used any more.

llvm-svn: 33937
2007-02-05 23:27:02 +00:00
Chris Lattner
de20c42da5 Simplify this a bit, add an assertion
llvm-svn: 33936
2007-02-05 23:24:48 +00:00
Chris Lattner
3d5c1e3fa7 StableBasicBlockNumbering is conceptually just a wrapper around UniqueVector,
so we should actually use a UniqueVector to implement it.

llvm-svn: 33935
2007-02-05 23:19:24 +00:00
Reid Spencer
99a1e6b6eb Add a show-footprint target to run du a few times to show how much disk
space a build tree's objects are consuming.

llvm-svn: 33934
2007-02-05 23:18:58 +00:00
Chris Lattner
51c0fb9e48 Const method must use const_iterator.
llvm-svn: 33933
2007-02-05 23:18:32 +00:00
Chris Lattner
bf67b1229b Switch InsertedPHINodes back to SmallPtrSet now that the SmallPtrSet::erase
bug is fixed.

llvm-svn: 33932
2007-02-05 23:11:37 +00:00
Chris Lattner
92c5d1185f Fix a bug in smallptrset::erase: in the small case, return true if the
element was in the set.

llvm-svn: 33931
2007-02-05 23:10:31 +00:00
Chris Lattner
606dde0093 switch a SmallPtrSet back to an std::set for now, this caused problems.
llvm-svn: 33930
2007-02-05 22:28:52 +00:00
Chris Lattner
1ed84bbd2d switch an std::set over to a SmallPtrSet, speeding up mem2reg 6% on 176.gcc.
llvm-svn: 33929
2007-02-05 22:15:21 +00:00
Chris Lattner
70fbb9de4c switch an std::set over to SmallPtrSet, speeding up mem2reg 3.4% on 176.gcc.
llvm-svn: 33928
2007-02-05 22:13:11 +00:00
Chris Lattner
8fbc888d91 eliminate some malloc traffic, this speeds up mem2reg by 3.4%.
llvm-svn: 33927
2007-02-05 21:58:48 +00:00
Reid Spencer
ca3bf1ad85 Add missing and needed #include.
llvm-svn: 33926
2007-02-05 21:47:39 +00:00
Reid Spencer
35a0718d82 Make the class VISIBILITY_HIDDEN.
Reduce lexical size of the anonymous namespace.

llvm-svn: 33925
2007-02-05 21:45:12 +00:00
Chris Lattner
a9428c4f9d Fix PR1178
llvm-svn: 33924
2007-02-05 21:23:52 +00:00