Commit Graph

5736 Commits

Author SHA1 Message Date
Chris Lattner
c938ba0c0d New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5939 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 17:59:02 +00:00
Chris Lattner
6b73fec0ce MAke sure that LLI properly configures align_of(double)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5938 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 06:15:05 +00:00
Chris Lattner
dd7253cc9f Whoops, 32 bit targets have _4_ byte pointers, not _32_ byte pointers!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5937 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 06:06:43 +00:00
Chris Lattner
bc19466912 Make sure to copy double alignment as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5936 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 06:06:13 +00:00
Chris Lattner
98938f83d5 Fix compatibility bug: X86 aligns doubles to 4 bytes, not 8!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5935 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 06:05:57 +00:00
Chris Lattner
b5881f126d Kill using declarations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5934 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 05:26:11 +00:00
Chris Lattner
322bc2b5aa Fix method name type-o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5933 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 05:23:27 +00:00
Chris Lattner
4deaf3b5c0 Fix obvious type-o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5932 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 05:23:10 +00:00
Chris Lattner
2b5f2c1a64 Make sure to add a targetdata instance to the passmanager, and make it match the
one in use by the TargetMachine


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5931 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 05:22:29 +00:00
Chris Lattner
d5bc41a249 Fix problem where we would read 64 bits worth of pointer information, even on 32 bit targets!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5930 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 04:21:19 +00:00
Chris Lattner
bceb2b0061 Fix major problem with PHI node traversal: rechecking PHIs should go into
the visit function.  The worklist is for when their lattice value changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5927 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 03:35:10 +00:00
Chris Lattner
0c13998775 Rename Kept -> Suffix
FIX problem where we were incorrectly putting the prefix of the list into the "suffix" list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5926 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 03:16:33 +00:00
Chris Lattner
06943add8b Rename Kept -> Suffix
Fix problem where we accidentally returned KeepPrefix instead of KeepSuffix!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5925 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 03:16:05 +00:00
Chris Lattner
6cf4cb90a0 ** CORRECTLY, conservatively handle constant expressions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5924 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 02:52:06 +00:00
Chris Lattner
eca8e8f111 *** Huge: Make constantexprs be handled correctly, conservatively
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5923 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 02:51:46 +00:00
Chris Lattner
46326d9cdf Allow for easy detection of when a "default" TargetData is created by the
passmanager, which is never the right thing to do.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5922 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 02:50:45 +00:00
Chris Lattner
d6cbe339af Default ctor doesn't provide name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5921 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 02:50:19 +00:00
Chris Lattner
9de28289f8 Minor non-functional changes:
* Spell propagate right
  * Improve performance of phi node handling
  * Delete using directive
  * Other minor changes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5920 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 02:50:03 +00:00
Chris Lattner
c8789cb40b Fix bug: mem2reg/2003-04-24-MultipleIdenticalSuccessors.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5919 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 00:54:58 +00:00
Chris Lattner
5f73e38548 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5918 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 00:53:05 +00:00
Chris Lattner
16608b4c85 When cleaning up the final bytecode file, make sure to run DTE as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5917 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 00:52:30 +00:00
Chris Lattner
68be6e7f6a New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5916 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25 00:46:14 +00:00
Chris Lattner
286921e8d2 Speed up convergence significantly and also reduce the size of testcases by making large portions of a function's CFG dead at a time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5915 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 23:51:38 +00:00
Chris Lattner
f607b79bc7 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5914 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:54:06 +00:00
Chris Lattner
44be257166 Remove dead functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5913 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:53:24 +00:00
Chris Lattner
473a843f31 Make sure that deleted functions have external linkage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5912 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:53:01 +00:00
Chris Lattner
aae33f9137 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5911 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:24:58 +00:00
Chris Lattner
39aebca3a2 Adjust to match new ListReducer interface
Move function to generic code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5910 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:24:22 +00:00
Chris Lattner
b4ebe13643 Allow reducer interfaces to mutate the lists passed in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5909 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:23:56 +00:00
Chris Lattner
ff4aaf0010 Move function from Miscompilation.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5908 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 22:23:34 +00:00
Chris Lattner
126840f49e Move the ListReducer Class into it's own header file instead of living in Miscompilation.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5907 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 20:16:29 +00:00
Chris Lattner
a172846d3a 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5906 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 20:07:38 +00:00
Chris Lattner
a148ccb158 Allow bugpoint to try new an different methods for pruning down lists
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5905 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 19:32:42 +00:00
Chris Lattner
9c3b55ea9f Make sure to create a target data that matches the Module's target properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5904 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 19:13:02 +00:00
Chris Lattner
53a0c38b5f add a new targetdata ctor to create a target data appropriate to the module
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 19:09:05 +00:00
Chris Lattner
4bc8e640b8 Add new targetdata ctor to create a targetdata appropriate to the module
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5902 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 19:08:45 +00:00
Chris Lattner
baf64b1e1c Remove support for "targetdata pass ctors"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5901 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:41:30 +00:00
Chris Lattner
c986392c30 Remove support for "target data" pass ctors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5900 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:36:41 +00:00
Chris Lattner
ec8aae3e11 Trivial cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5899 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:35:51 +00:00
Chris Lattner
961f7b4e4f LevelRaise now gets target data from passmanager
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5898 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:26:03 +00:00
Chris Lattner
5705f0c2ea LevelRaise now gets TD from passmanager
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5897 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:25:42 +00:00
Chris Lattner
16125fb749 Make the levelraise pass be well behaved w.r.t the TargetData that the current
PassMAnager provides.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5896 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:25:27 +00:00
Chris Lattner
ad80a46caa Fix iterator invalidation problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5895 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 17:52:20 +00:00
Chris Lattner
892310eaff Make sure that the cloned module retains the type symbol table entries!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5894 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 17:15:33 +00:00
Chris Lattner
640f22e66d Implement support for bugpoint to identify which FUNCTION an optimization
is miscompiling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5893 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 17:02:17 +00:00
Chris Lattner
7899b74fdb Make sure to preserve endiannes and pointer size when cloning modules!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5892 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 15:54:40 +00:00
Chris Lattner
eea21dd91c Print where reference output goes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5891 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:41:18 +00:00
Chris Lattner
2be50797a1 Fix bug where pointers were assumed to always be 64 bits in size!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5890 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:41:01 +00:00
Chris Lattner
a4dd4e2de8 The new CFrontend generates LOTs of basic blocks that just fall through and do
other funky stuff.  Clean it up early.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5889 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:40:42 +00:00
Chris Lattner
3c053a0a98 Allow specifying an input file for the program being executed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5888 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:31:37 +00:00