Chris Lattner
12663c4a66
Fix Transforms/DeadArgElim/2007-02-07-FuncRename.ll, fallout from PR411.
...
This happened because deadargelim now causes VMCore to auto-rename every
function that it hacks arguments out of. Because it hacks arguments out of
functions in a non-deterministic order, this caused the resultant numbering
to be nondet. The fix is to just be careful to not rename functions!
llvm-svn: 34005
2007-02-07 19:31:33 +00:00
Chris Lattner
22fc4be632
shrink vmcore by moving symbol table stripping support out of VMCore into
...
the one IPO pass that uses it.
llvm-svn: 33990
2007-02-07 06:22:45 +00:00
Chris Lattner
474d7b219d
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
5fee493a8c
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
8749d297f5
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
7703e811eb
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
b509040034
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
c7487c93da
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
0ae77ee391
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
9a99e6ee24
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
19e7a5695d
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
5d5bf2ed87
eliminate some malloc traffic, this speeds up mem2reg by 3.4%.
...
llvm-svn: 33927
2007-02-05 21:58:48 +00:00
Reid Spencer
eaf3451a3b
Add missing and needed #include.
...
llvm-svn: 33926
2007-02-05 21:47:39 +00:00
Reid Spencer
d6dc4cc8e9
Make the class VISIBILITY_HIDDEN.
...
Reduce lexical size of the anonymous namespace.
llvm-svn: 33925
2007-02-05 21:45:12 +00:00
Reid Spencer
83803ddedb
For PR411:
...
Adjust to changes in Module interface:
getMainFunction() -> getFunction("main")
getNamedFunction(X) -> getFunction(X)
llvm-svn: 33922
2007-02-05 21:19:13 +00:00
Reid Spencer
6af21b3029
For PR411:
...
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.
llvm-svn: 33918
2007-02-05 20:47:22 +00:00
Reid Spencer
d8c5428a48
For PR411:
...
This pass is no longer needed.
llvm-svn: 33917
2007-02-05 20:41:05 +00:00
Reid Spencer
4885d68272
Create a pass to strip dead function declarations (prototypes). This is
...
for use by llvm-extract and bugpoint.
llvm-svn: 33916
2007-02-05 20:24:25 +00:00
Chris Lattner
1441407576
Fix miscompilations of consumer-typeset, telecomm-gsm, and 176.gcc.
...
llvm-svn: 33902
2007-02-05 05:57:49 +00:00
Reid Spencer
21f40213a8
For PR1177:
...
Revert last patch which caused iteration invalidation.
llvm-svn: 33901
2007-02-05 05:23:32 +00:00
Chris Lattner
4402e15b4b
fix a miscompilation of 176.gcc
...
llvm-svn: 33900
2007-02-05 04:09:35 +00:00
Owen Anderson
0fbb2d629f
Use DenseMap for pointer->pointer maps.
...
llvm-svn: 33897
2007-02-05 02:39:47 +00:00
Chris Lattner
49be595b1f
rewrite shift/shift folding, now that types are not signed.
...
llvm-svn: 33892
2007-02-05 00:57:54 +00:00
Nick Lewycky
7439ef2aba
Fix indenting, remove tabs.
...
Learn from sext and zext. The destination value falls within the range of the
source type.
Generalize properties regarding constant ints.
Get smarter about marking blocks as unreachable. If 1 >= 2 in order for this
block to execute, then it isn't reachable.
llvm-svn: 33889
2007-02-04 23:43:05 +00:00
Reid Spencer
310b497b59
For PR1163:
...
Make the Module's dependent library use a std::vector instead of SetVector
adjust #includes in .cpp files because SetVector.h is no longer included.
llvm-svn: 33855
2007-02-04 00:40:42 +00:00
Chris Lattner
471e586dd4
remove some dead code
...
llvm-svn: 33845
2007-02-03 23:28:07 +00:00
Reid Spencer
45d9d72ac0
For PR1072:
...
Removing -raise has neglible positive or negative side effects so we are
opting to remove it. See the PR for comparison details.
llvm-svn: 33844
2007-02-03 23:15:56 +00:00
Chris Lattner
71fe09f397
Switch inliner over to use DenseMap instead of std::map for ValueMap. This
...
speeds up the inliner 16%.
llvm-svn: 33801
2007-02-03 00:08:31 +00:00
Chris Lattner
d3fb549bdc
Switch this back to using an std::map. DenseMap entries are getting invalidated
...
llvm-svn: 33799
2007-02-02 22:36:16 +00:00
Chris Lattner
3ae99a1181
Remove more malloc thrashing, this speeds up IPSCCP on kimwitu another 6.7%.
...
llvm-svn: 33796
2007-02-02 21:15:06 +00:00
Chris Lattner
dec49cea56
Convert an std::set to SmallSet, this speeds up IPSCCP 17% on kimwitu.
...
llvm-svn: 33794
2007-02-02 20:57:39 +00:00
Chris Lattner
e9c0bac4c5
eliminate a malloc/free for (almost) every GEP processed. This speeds up
...
IPSCCP 3.3% on kimwitu.
llvm-svn: 33793
2007-02-02 20:51:48 +00:00
Chris Lattner
449f7d0d63
switch hash_map's over to DenseMap in SCCP. This speeds up SCCP by 30% in
...
a release-assert build on kimwitu++.
llvm-svn: 33792
2007-02-02 20:38:30 +00:00
Reid Spencer
bbb8dc1b9f
Remove dead code and fix indentation per Chris' review comments.
...
llvm-svn: 33785
2007-02-02 14:41:37 +00:00
Reid Spencer
f5f46b0082
Use short form of binary operator create functions.
...
llvm-svn: 33783
2007-02-02 14:08:20 +00:00
Chris Lattner
1f032e74ae
bugfix for reid's shift patch.
...
llvm-svn: 33779
2007-02-02 05:29:55 +00:00
Reid Spencer
591bfa1e0b
Changes to support making the shift instructions be true BinaryOperators.
...
This feature is needed in order to support shifts of more than 255 bits
on large integer types. This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
shl i32 %X, 1
instead of
shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.
llvm-svn: 33776
2007-02-02 02:16:23 +00:00
Chris Lattner
2d85458c52
Fix Transforms/InstCombine/2007-02-01-LoadSinkAlloca.ll, a serious code
...
pessimization where instcombine can sink a load (good for code size) that
prevents an alloca from being promoted by mem2reg (bad for everything).
llvm-svn: 33771
2007-02-01 22:30:07 +00:00
Reid Spencer
eb51781c22
Ensure that ConvertOperandToType generates a result conversion by
...
initializing the Res variable to 0 and asserting it is not zero after the
result should have been created.
llvm-svn: 33761
2007-02-01 19:14:51 +00:00
Chris Lattner
618f24b0ed
Fix bugs in the inliner having to do with single-entry phi nodes and valuemap
...
updating. These were exposed by Devang's recent passmgr changes (with
non-default passorderings) because now the inliner can be interleved with
the LCSSA pass.
llvm-svn: 33760
2007-02-01 18:48:38 +00:00
Chris Lattner
bebab8c026
remove temporary vectors.
...
llvm-svn: 33715
2007-01-31 20:08:52 +00:00
Chris Lattner
237fa61eb7
eliminate temporary vectors
...
llvm-svn: 33713
2007-01-31 20:07:32 +00:00
Chris Lattner
8b052ca7d0
eliminate temporary vectors
...
llvm-svn: 33712
2007-01-31 19:59:55 +00:00
Chris Lattner
b32b59cd84
Revert another incorrectly applied chunk, which fixes InstCombine/vec_insert_to_shuffle.ll
...
llvm-svn: 33705
2007-01-31 18:09:17 +00:00
Chris Lattner
f456997cb6
eliminate temporary vectors
...
llvm-svn: 33693
2007-01-31 04:40:53 +00:00
Chris Lattner
eb3d93c6a8
Move symbolic constant folding code to libanalysis.
...
llvm-svn: 33688
2007-01-31 00:53:10 +00:00
Chris Lattner
7db51ec161
Adjust #includes to match movement of constant folding code from transformutils to libanalysis.
...
llvm-svn: 33680
2007-01-30 23:46:24 +00:00
Chris Lattner
1765c2eed8
move a bunch of constant folding code f rom Transforms/Utils/Local.cpp into
...
libanalysis/ConstantFolding.cpp.
llvm-svn: 33679
2007-01-30 23:45:45 +00:00
Chris Lattner
4c01d0055a
remove now-dead code.
...
llvm-svn: 33678
2007-01-30 23:29:47 +00:00
Chris Lattner
a49a1d15dc
the inliner pass now passes targetdata down through the inliner api's
...
llvm-svn: 33677
2007-01-30 23:28:39 +00:00