Chris Lattner
43e38979b5
Fix BasicAA/2003-04-25-GEPCrash.ll
...
llvm-svn: 5940
2003-04-25 18:03:06 +00:00
Chris Lattner
fba2a36bad
New testcase
...
llvm-svn: 5939
2003-04-25 17:59:02 +00:00
Chris Lattner
4196cc4916
MAke sure that LLI properly configures align_of(double)
...
llvm-svn: 5938
2003-04-25 06:15:05 +00:00
Chris Lattner
e26e308afb
Whoops, 32 bit targets have _4_ byte pointers, not _32_ byte pointers!
...
llvm-svn: 5937
2003-04-25 06:06:43 +00:00
Chris Lattner
86ff9b94a9
Make sure to copy double alignment as well
...
llvm-svn: 5936
2003-04-25 06:06:13 +00:00
Chris Lattner
844b1148f4
Fix compatibility bug: X86 aligns doubles to 4 bytes, not 8!
...
llvm-svn: 5935
2003-04-25 06:05:57 +00:00
Chris Lattner
658693c26d
Kill using declarations
...
llvm-svn: 5934
2003-04-25 05:26:11 +00:00
Chris Lattner
a550ee6b5d
Fix method name type-o
...
llvm-svn: 5933
2003-04-25 05:23:27 +00:00
Chris Lattner
38d40c0ea9
Fix obvious type-o
...
llvm-svn: 5932
2003-04-25 05:23:10 +00:00
Chris Lattner
5efddeb447
Make sure to add a targetdata instance to the passmanager, and make it match the
...
one in use by the TargetMachine
llvm-svn: 5931
2003-04-25 05:22:29 +00:00
Chris Lattner
b72c6d38da
Fix problem where we would read 64 bits worth of pointer information, even on 32 bit targets!
...
llvm-svn: 5930
2003-04-25 04:21:19 +00:00
Chris Lattner
c78cd5c758
Fix major problem with PHI node traversal: rechecking PHIs should go into
...
the visit function. The worklist is for when their lattice value changes.
llvm-svn: 5927
2003-04-25 03:35:10 +00:00
Chris Lattner
ff58b89809
Rename Kept -> Suffix
...
FIX problem where we were incorrectly putting the prefix of the list into the "suffix" list.
llvm-svn: 5926
2003-04-25 03:16:33 +00:00
Chris Lattner
7114e0ee34
Rename Kept -> Suffix
...
Fix problem where we accidentally returned KeepPrefix instead of KeepSuffix!
llvm-svn: 5925
2003-04-25 03:16:05 +00:00
Chris Lattner
dac0d4bafb
** CORRECTLY, conservatively handle constant expressions
...
llvm-svn: 5924
2003-04-25 02:52:06 +00:00
Chris Lattner
d9a8a29c6f
*** Huge: Make constantexprs be handled correctly, conservatively
...
llvm-svn: 5923
2003-04-25 02:51:46 +00:00
Chris Lattner
b258ffd600
Allow for easy detection of when a "default" TargetData is created by the
...
passmanager, which is never the right thing to do.
llvm-svn: 5922
2003-04-25 02:50:45 +00:00
Chris Lattner
a106185aa1
Default ctor doesn't provide name
...
llvm-svn: 5921
2003-04-25 02:50:19 +00:00
Chris Lattner
7b67a6e77d
Minor non-functional changes:
...
* Spell propagate right
* Improve performance of phi node handling
* Delete using directive
* Other minor changes
llvm-svn: 5920
2003-04-25 02:50:03 +00:00
Chris Lattner
e1c995e9b6
Fix bug: mem2reg/2003-04-24-MultipleIdenticalSuccessors.ll
...
llvm-svn: 5919
2003-04-25 00:54:58 +00:00
Chris Lattner
8a549d117d
Big programs have tons of global variable initializers, and most passes don't care
...
about them. Try to delete them if it doesn't affect the passes.
llvm-svn: 5918
2003-04-25 00:53:05 +00:00
Chris Lattner
dcae180f95
When cleaning up the final bytecode file, make sure to run DTE as well
...
llvm-svn: 5917
2003-04-25 00:52:30 +00:00
Chris Lattner
f67fe73cc2
New testcase
...
llvm-svn: 5916
2003-04-25 00:46:14 +00:00
Chris Lattner
9c2869eca8
Speed up convergence significantly and also reduce the size of testcases by making large portions of a function's CFG dead at a time.
...
llvm-svn: 5915
2003-04-24 23:51:38 +00:00
Chris Lattner
15574dd30f
The big fix is this change:
...
- if (I->isExternal() && !Functions.count(I))
+ if (!I->isExternal() && !Functions.count(I))
We were not actually deleting any functions from the module!
llvm-svn: 5914
2003-04-24 22:54:06 +00:00
Chris Lattner
0df20905d4
Remove dead functions
...
llvm-svn: 5913
2003-04-24 22:53:24 +00:00
Chris Lattner
7a2b711c95
Make sure that deleted functions have external linkage
...
llvm-svn: 5912
2003-04-24 22:53:01 +00:00
Chris Lattner
ad5fa07a44
Use the list reducer to improve convergence speed and to support crashes that
...
only occur when multiple passes interact or when multiple functions exist in a module
llvm-svn: 5911
2003-04-24 22:24:58 +00:00
Chris Lattner
e09e448832
Adjust to match new ListReducer interface
...
Move function to generic code
llvm-svn: 5910
2003-04-24 22:24:22 +00:00
Chris Lattner
3bfc9a1e4f
Allow reducer interfaces to mutate the lists passed in
...
llvm-svn: 5909
2003-04-24 22:23:56 +00:00
Chris Lattner
5b90b2a7d4
Move function from Miscompilation.cpp
...
llvm-svn: 5908
2003-04-24 22:23:34 +00:00
Chris Lattner
f6d04c9d0c
Move the ListReducer Class into it's own header file instead of living in Miscompilation.cpp
...
llvm-svn: 5907
2003-04-24 20:16:29 +00:00
Chris Lattner
6e2ea5ccff
Fix a nasty bug where the ConstantMerge pass was invalidating the TargetData pass
...
even though it was immutable. Immutable passes should never end up in CurrentAnalyses!
llvm-svn: 5906
2003-04-24 20:07:38 +00:00
Chris Lattner
d7a7ef633f
Allow bugpoint to try new an different methods for pruning down lists
...
llvm-svn: 5905
2003-04-24 19:32:42 +00:00
Chris Lattner
4a984c606f
Make sure to create a target data that matches the Module's target properties.
...
llvm-svn: 5904
2003-04-24 19:13:02 +00:00
Chris Lattner
c06795629d
add a new targetdata ctor to create a target data appropriate to the module
...
llvm-svn: 5903
2003-04-24 19:09:05 +00:00
Chris Lattner
55a4aea29b
Add new targetdata ctor to create a targetdata appropriate to the module
...
llvm-svn: 5902
2003-04-24 19:08:45 +00:00
Chris Lattner
9485cd4e9b
Remove support for "targetdata pass ctors"
...
llvm-svn: 5901
2003-04-24 18:41:30 +00:00
Chris Lattner
1228ad2415
Remove support for "target data" pass ctors
...
llvm-svn: 5900
2003-04-24 18:36:41 +00:00
Chris Lattner
473df86e0b
Trivial cleanup
...
llvm-svn: 5899
2003-04-24 18:35:51 +00:00
Chris Lattner
18f2992e5e
LevelRaise now gets target data from passmanager
...
llvm-svn: 5898
2003-04-24 18:26:03 +00:00
Chris Lattner
9c67ad476b
LevelRaise now gets TD from passmanager
...
llvm-svn: 5897
2003-04-24 18:25:42 +00:00
Chris Lattner
3dbf3f0ac1
Make the levelraise pass be well behaved w.r.t the TargetData that the current
...
PassMAnager provides.
llvm-svn: 5896
2003-04-24 18:25:27 +00:00
Chris Lattner
043b4a7621
Fix iterator invalidation problem
...
llvm-svn: 5895
2003-04-24 17:52:20 +00:00
Chris Lattner
f0c01a508b
Make sure that the cloned module retains the type symbol table entries!
...
llvm-svn: 5894
2003-04-24 17:15:33 +00:00
Chris Lattner
0b66fe7194
Implement support for bugpoint to identify which FUNCTION an optimization
...
is miscompiling.
llvm-svn: 5893
2003-04-24 17:02:17 +00:00
Chris Lattner
868b3316c9
Make sure to preserve endiannes and pointer size when cloning modules!
...
llvm-svn: 5892
2003-04-24 15:54:40 +00:00
Chris Lattner
343d952a53
Print where reference output goes
...
llvm-svn: 5891
2003-04-23 20:41:18 +00:00
Chris Lattner
ec21fdc5ce
Fix bug where pointers were assumed to always be 64 bits in size!
...
llvm-svn: 5890
2003-04-23 20:41:01 +00:00
Chris Lattner
14f89ddf52
The new CFrontend generates LOTs of basic blocks that just fall through and do
...
other funky stuff. Clean it up early.
llvm-svn: 5889
2003-04-23 20:40:42 +00:00