Commit Graph

2143 Commits

Author SHA1 Message Date
Chris Lattner de9c04cff3 Remove old frivolous uses of getStrValue in a debugging statement
llvm-svn: 2270
2002-04-16 21:36:59 +00:00
Chris Lattner 25bf874ff5 Remove unneccesary cast
llvm-svn: 2269
2002-04-16 21:36:29 +00:00
Chris Lattner d84bb63750 Changes to:
* Fix bug printing method types (oops when converting previous code)
* Move some of the code from Constant::getStrValue implementations here.
  This allows us to do a MUCH MUCH better job printing out complex constant
  values (think an array of structure pointers), because we print symbolic
  type names instead of structural.  The assistance when debugging is immense

Eventually, Constant::getStrValue should be removed (it existed before because
the asmwriter file was not in VMCore), and everyone should go through the
asmwriter that want's equivalent functionality.

llvm-svn: 2268
2002-04-16 21:36:08 +00:00
Chris Lattner e629eda6b9 Fix for buggy test
llvm-svn: 2267
2002-04-16 21:31:08 +00:00
Chris Lattner 071dea7362 * Remove the concept of a critical shadow node
* Make the function pointer argument explicit for a call nodes
* Eliminate unreachable global values
* Merge call nodes that are identical

llvm-svn: 2266
2002-04-16 20:39:59 +00:00
Chris Lattner de86c86f10 Remove the concept of a critical shadow node
llvm-svn: 2265
2002-04-16 20:39:23 +00:00
Chris Lattner 26efe0b95c New testcase
llvm-svn: 2262
2002-04-16 05:58:24 +00:00
Chris Lattner c3f661b17f New testcase
llvm-svn: 2261
2002-04-16 05:44:56 +00:00
Chris Lattner 46b08cdc7c * 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.

llvm-svn: 2257
2002-04-16 03:44:03 +00:00
Chris Lattner 8f008c82b7 * Eliminate ArgDSNode's completely, rely now on Scalar map
llvm-svn: 2256
2002-04-16 03:41:22 +00:00
Chris Lattner 457e1accb2 run an extra pass after a function has been transformed to eliminate
obviously duplicate loads of the pool base.

llvm-svn: 2255
2002-04-15 22:42:23 +00:00
Chris Lattner a8e24c494e Only print debug message if DEBUG_RA is on
llvm-svn: 2254
2002-04-15 22:41:48 +00:00
Chris Lattner 75323bc2d2 Only emit message if DEBUG_RA is on
llvm-svn: 2252
2002-04-15 20:36:15 +00:00
Chris Lattner 3a60d04722 Eliminate cast of same type instructions.
llvm-svn: 2251
2002-04-15 19:45:29 +00:00
Chris Lattner ffe541feb2 * s/Method/Function
* Add/allow callbacks for module,function, & basic block visiting

llvm-svn: 2250
2002-04-15 19:32:36 +00:00
Chris Lattner 91eda67aaf Checkin first unit testcases for the backend
llvm-svn: 2249
2002-04-14 06:23:00 +00:00
Chris Lattner 7e35890072 * s/Method/Function
* Fix bug where the character after a % was being discarded

llvm-svn: 2248
2002-04-14 06:15:24 +00:00
Chris Lattner acf1902ea9 Turn off debug output
llvm-svn: 2247
2002-04-14 06:14:41 +00:00
Chris Lattner 41924aad91 s/Method/Function
llvm-svn: 2246
2002-04-14 06:14:15 +00:00
Chris Lattner 590645fb66 Update documentation a LOT, make it more accurate and match current model
better.  Still more room for improvement.

llvm-svn: 2245
2002-04-14 06:13:44 +00:00
Chris Lattner 50e3d32d7b * 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.

llvm-svn: 2244
2002-04-13 23:13:18 +00:00
Chris Lattner af95e589df * Fix bug: test/Regression/Verifier/2002-04-13-RetTypes.ll
* Check that arguments match the method types of the method they live in

llvm-svn: 2243
2002-04-13 22:48:46 +00:00
Chris Lattner 8d7a6d246e New testcase for the verifier
llvm-svn: 2242
2002-04-13 22:46:24 +00:00
Chris Lattner 8a939c9189 Minor bugfix for previous checkin
llvm-svn: 2241
2002-04-13 21:11:04 +00:00
Chris Lattner d816b5374f * 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.

llvm-svn: 2240
2002-04-13 20:53:41 +00:00
Chris Lattner 5da145b962 * Give alloca's for pool descriptors better names than "pool<n>".
* Fill in the pool descriptor links in the pool descriptors.

llvm-svn: 2239
2002-04-13 19:52:54 +00:00
Chris Lattner 8f796d6310 * 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!

llvm-svn: 2238
2002-04-13 19:25:57 +00:00
Chris Lattner 10b7cb5de9 Add Module::getTypeName
llvm-svn: 2237
2002-04-13 18:58:33 +00:00
Chris Lattner 0313325632 Add info about the StringList class
llvm-svn: 2236
2002-04-13 18:35:59 +00:00
Chris Lattner 8d48df2ebc * 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).

llvm-svn: 2235
2002-04-13 18:34:38 +00:00
Chris Lattner fda0035ec9 * Add the printm pass to allow dumping the entire module after a transformation.
* s/Method/Function/

llvm-svn: 2234
2002-04-13 18:32:47 +00:00
Chris Lattner 441e16f735 Implement function rewriting to use offsets instead of pointers in programs.
This now works with treeadd at least, and perhaps other programs as well.

llvm-svn: 2233
2002-04-12 20:23:15 +00:00
Chris Lattner 189088e5d6 * Add comment
* Do not print a space before the * in a pointer type.

llvm-svn: 2232
2002-04-12 18:21:53 +00:00
Chris Lattner b86b11a02e Expose funcresolve pass through opt
llvm-svn: 2231
2002-04-12 18:21:13 +00:00
Chris Lattner 486302a0e6 Add new check of return value type matching ret instruction values types
llvm-svn: 2230
2002-04-12 18:20:49 +00:00
Chris Lattner 6fc8c2374a Fix pure virtual function called exception!
llvm-svn: 2229
2002-04-12 18:19:45 +00:00
Chris Lattner 0b32d0d511 Handle the FP format problem, where outputed FP constants were not precise
enough.  This fixes compilation of the health benchmark.

llvm-svn: 2228
2002-04-11 21:44:02 +00:00
Chris Lattner c34061fc54 * 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.

llvm-svn: 2226
2002-04-10 20:37:47 +00:00
Chris Lattner c4414d4a10 The cleangcc pass is brokeninto two pieces, execute both of them.
llvm-svn: 2225
2002-04-10 20:33:32 +00:00
Chris Lattner 011ab80ed6 * 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.

llvm-svn: 2224
2002-04-10 20:33:11 +00:00
Chris Lattner ac7c298ba8 Print out what the root of the call graph is.
llvm-svn: 2223
2002-04-10 20:31:44 +00:00
Chris Lattner 8e79dbf9bd Split the CleanupGCCOutput pass into two passes, and add real life actual
documentation on when they do.

llvm-svn: 2222
2002-04-10 20:31:22 +00:00
Chris Lattner 4eb6ad3a35 Allow a pass to obtain an analysis result for updating.
llvm-svn: 2221
2002-04-10 20:30:44 +00:00
Chris Lattner 0fda698670 New testcase for structure valued parameters.
llvm-svn: 2220
2002-04-10 17:43:40 +00:00
Chris Lattner fc6737835b Implement TODO, fixing bug:
test/Regression/Transforms/LevelRaise/2002-04-09-MissedRaise.ll

llvm-svn: 2219
2002-04-09 20:53:36 +00:00
Chris Lattner 9387364f8d New testcase
llvm-svn: 2218
2002-04-09 20:43:18 +00:00
Chris Lattner 87b84e474f Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.

llvm-svn: 2217
2002-04-09 19:59:31 +00:00
Chris Lattner 2e9fa6d101 Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.

llvm-svn: 2216
2002-04-09 19:48:49 +00:00
Chris Lattner 98d0ac0f8e Eliminate unneccesary extraneous iterators
llvm-svn: 2215
2002-04-09 19:46:27 +00:00
Chris Lattner ae234e1868 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.

llvm-svn: 2214
2002-04-09 19:41:42 +00:00