Commit Graph

2335 Commits

Author SHA1 Message Date
Chris Lattner
212be2e569 * Eliminate ArgDSNode's completely, now rely on scalar map
* Fold call nodes that are indistinguishable for each other.  This is a big
  win for external functions like sqrt, which would multiply dramatically
  before.
* Global nodes with no edges to or from them are now eliminated from the graph.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2257 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 03:44:03 +00:00
Chris Lattner
da022cd143 * Eliminate ArgDSNode's completely, rely now on Scalar map
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2256 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 03:41:22 +00:00
Chris Lattner
09b9212b6e run an extra pass after a function has been transformed to eliminate
obviously duplicate loads of the pool base.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2255 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 22:42:23 +00:00
Chris Lattner
e4a94f2b0f Only print debug message if DEBUG_RA is on
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2254 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 22:41:48 +00:00
Chris Lattner
167b9629e1 Only emit message if DEBUG_RA is on
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2252 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 20:36:15 +00:00
Chris Lattner
8d70cd9607 Eliminate cast of same type instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2251 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 19:45:29 +00:00
Chris Lattner
7296e93f08 * s/Method/Function
* Add/allow callbacks for module,function, & basic block visiting


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2250 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 19:32:36 +00:00
Chris Lattner
b42b7f921a Checkin first unit testcases for the backend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2249 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-14 06:23:00 +00:00
Chris Lattner
649f5dd77a * s/Method/Function
* Fix bug where the character after a % was being discarded


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2248 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-14 06:15:24 +00:00
Chris Lattner
3e0e520728 Turn off debug output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2247 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-14 06:14:41 +00:00
Chris Lattner
dd4144a587 s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2246 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-14 06:14:15 +00:00
Chris Lattner
7faa883665 Update documentation a LOT, make it more accurate and match current model
better.  Still more room for improvement.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2245 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-14 06:13:44 +00:00
Chris Lattner
441d25a9f6 * Allow datasize to be specified on the commandline
* Build new datatypes correctly
* Transform instructions that return null pointers from functions to return
  a null index.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2244 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 23:13:18 +00:00
Chris Lattner
ea24924732 * Fix bug: test/Regression/Verifier/2002-04-13-RetTypes.ll
* Check that arguments match the method types of the method they live in


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2243 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 22:48:46 +00:00
Chris Lattner
cbec8be8f8 New testcase for the verifier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2242 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 22:46:24 +00:00
Chris Lattner
ff5c296498 Minor bugfix for previous checkin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2241 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 21:11:04 +00:00
Chris Lattner
2761e9f076 * Remove obselete code for unsized arrays
* Add new function printTypeAtLeastOneLevel used to...
* Print the symbol table *WITH SYMBOLIC TYPES*.  Now we get:
       %tree = type { int, %tree*, %tree* }
  in the type definition section of the disassembled output instead of
       %tree = type { int, \2*, \2* }
  the different for the health benchmark and power are simply amazing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2240 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 20:53:41 +00:00
Chris Lattner
ddcbd34f56 * Give alloca's for pool descriptors better names than "pool<n>".
* Fill in the pool descriptor links in the pool descriptors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2239 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 19:52:54 +00:00
Chris Lattner
027a6755f8 * Add names to the symbol table for pool types and modified types
* Handle more complex structure so that power works almost
* Fix bug with pooldestroy call where we passed in the size of the object
  instead of the pool to destroy.  bisort is now pool allocated successfully!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2238 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 19:25:57 +00:00
Chris Lattner
f33fa6fb57 Add Module::getTypeName
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2237 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 18:58:33 +00:00
Chris Lattner
3e5fe173bb Add info about the StringList class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2236 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 18:35:59 +00:00
Chris Lattner
94dc1f29cd * Clean up code to use isa & dyncast instead of poking directly into instructions
* Do not print the allocation size for a non array allocation (this used to work,
  but was broken).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2235 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 18:34:38 +00:00
Chris Lattner
30af368082 * Add the printm pass to allow dumping the entire module after a transformation.
* s/Method/Function/


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2234 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 18:32:47 +00:00
Chris Lattner
5146a7ddd4 Implement function rewriting to use offsets instead of pointers in programs.
This now works with treeadd at least, and perhaps other programs as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2233 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 20:23:15 +00:00
Chris Lattner
02b9399bae * Add comment
* Do not print a space before the * in a pointer type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2232 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 18:21:53 +00:00
Chris Lattner
9d6e7eb74f Expose funcresolve pass through opt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2231 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 18:21:13 +00:00
Chris Lattner
23f0ce6102 Add new check of return value type matching ret instruction values types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2230 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 18:20:49 +00:00
Chris Lattner
e7eaf17158 Fix pure virtual function called exception!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2229 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 18:19:45 +00:00
Chris Lattner
f678dc6469 Handle the FP format problem, where outputed FP constants were not precise
enough.  This fixes compilation of the health benchmark.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2228 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-11 21:44:02 +00:00
Chris Lattner
f8b90ee366 * The cleangcc pass is broken into two parts, we only want to
FunctionResolvingPass one.
* We run it *after* the symbol stripping pass so that -strip can be
  pipelined with the constant merging pass or something else if desired.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2226 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:37:47 +00:00
Chris Lattner
6a1f6940a1 The cleangcc pass is brokeninto two pieces, execute both of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2225 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:33:32 +00:00
Chris Lattner
265b083e84 * Add documentation
* Split the CleanGCC pass into two passes, a global pass and an IP pass.
  Before it was just a global pass, but it did illegal things to the
  module, which broke other passes that were being scheduled with it by
  gccld.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2224 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:33:11 +00:00
Chris Lattner
5648b58a19 Print out what the root of the call graph is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2223 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:31:44 +00:00
Chris Lattner
b59d8199e0 Split the CleanupGCCOutput pass into two passes, and add real life actual
documentation on when they do.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2222 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:31:22 +00:00
Chris Lattner
0e52e3e221 Allow a pass to obtain an analysis result for updating.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2221 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:30:44 +00:00
Chris Lattner
b49cebb26a New testcase for structure valued parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2220 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 17:43:40 +00:00
Chris Lattner
ca180c7ca3 Implement TODO, fixing bug:
test/Regression/Transforms/LevelRaise/2002-04-09-MissedRaise.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2219 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 20:53:36 +00:00
Chris Lattner
b55a5b47e2 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2218 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 20:43:18 +00:00
Chris Lattner
e06e9146ee Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2217 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:59:31 +00:00
Chris Lattner
73e214244f Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2216 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:48:49 +00:00
Chris Lattner
b62fc4a9b1 Eliminate unneccesary extraneous iterators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2215 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:46:27 +00:00
Chris Lattner
4674804d29 Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.

Rename some yacc type names to be more concise.  Change jump table to use
a vector instead of a list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2214 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:41:42 +00:00
Chris Lattner
b972f95b15 Update comment to reflect class name change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2213 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:40:40 +00:00
Chris Lattner
8a9acc9c72 Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.

Move implementation to Function.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2212 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:39:58 +00:00
Chris Lattner
80dd50b4aa Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.

Move Argument implementation to Function.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2211 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:39:35 +00:00
Chris Lattner
6c7fd1f414 Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2210 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:36:56 +00:00
Chris Lattner
0ac5429ff0 Add explicit #includes of Function.h to make up for the removed #include
in iOther.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2209 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:08:28 +00:00
Chris Lattner
d6a8ca745d Use explicit .get() calls to avoid having to #include Function.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2208 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:07:44 +00:00
Chris Lattner
42a412711c Add #includes to make up for #includes pruned out of header files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2207 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:37:46 +00:00
Chris Lattner
991bc4eb80 Add a couple of extra casts to avoid extra #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2206 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:37:08 +00:00