Commit Graph

3225 Commits

Author SHA1 Message Date
Chris Lattner e6794490ec * Factor a bunch of code by using ReplaceInstUsesWith
* Move isMaxValue, isMinValue, isAllOnesValue to Constants.h

llvm-svn: 3290
2002-08-12 21:17:25 +00:00
Chris Lattner 68fe621771 Remove some extraneous #includes
llvm-svn: 3289
2002-08-12 20:24:46 +00:00
Chris Lattner 7d9a14d5d9 Changes to make GlobalValueRefMap not derive from std::map.
llvm-svn: 3288
2002-08-12 20:23:29 +00:00
Chris Lattner 593a74adc5 Add comment
llvm-svn: 3287
2002-08-12 19:18:49 +00:00
Chris Lattner 6d14f2a7ae New functionality for instcombine:
* New ReplaceInstUsesWith function to factor out tons of common code
     This needs to be used more in the future still, but it's a good start
   * New InsertNewInstBefore to allow multi-instruction replacements
   * Change getMaxValue functions to isAllOnesValue function, which doesn't
     have to CREATE/lookup a new constant.  Also the name is accurate
   * Add new isMaxValue, isMinValue, isMaxValueMinusOne, isMinValuePlusOne
     functions:  This should be moved to Constant* classes eventually
   * Implement xor X, ALLONES -> not X
   * Fold ALL setcc's of booleans away
   * Handle various SetCC's for integers against values at the end of their
     ranges, possibly off by one.  This implements the setcc-strength-reduce.ll
     testcase.

llvm-svn: 3286
2002-08-09 23:47:40 +00:00
Chris Lattner 169f7b299c xor x, ALLONES should -> not x
llvm-svn: 3285
2002-08-09 23:34:39 +00:00
Chris Lattner b86ab650f6 setcc of booleans should always be eliminated
llvm-svn: 3284
2002-08-09 23:34:18 +00:00
Chris Lattner 840d4699e4 Add more strength reduction testcases
llvm-svn: 3283
2002-08-09 23:33:58 +00:00
Chris Lattner 0d92ff0488 *** empty log message ***
llvm-svn: 3282
2002-08-09 22:52:08 +00:00
Chris Lattner e836b583e0 * IntervalPartition no longer derives from vector
llvm-svn: 3281
2002-08-09 22:52:06 +00:00
Chris Lattner 2253a154d7 Do not add an extra vtable to EVERY machineinstr created.
llvm-svn: 3280
2002-08-09 21:49:21 +00:00
Chris Lattner a09b01b2c1 UnaryOperator::create should take a name just like BinaryOperator::create
llvm-svn: 3279
2002-08-09 21:39:38 +00:00
Chris Lattner 959a5fbf8e * Removed extraneous #includes
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes

llvm-svn: 3278
2002-08-09 20:08:06 +00:00
Chris Lattner 02e7a86fec * Removed extraneous #includes
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes

llvm-svn: 3277
2002-08-09 20:08:03 +00:00
Chris Lattner 3c3457ccea We are using std::vector, so remove extraneous namespace prefixes
llvm-svn: 3275
2002-08-09 20:05:34 +00:00
Chris Lattner 107914c2ac Change machinecode for instruction to not inherit from vector.
llvm-svn: 3274
2002-08-09 20:04:28 +00:00
Chris Lattner 06524e2f07 The second parameter of hash_set is the default, remove it.
llvm-svn: 3273
2002-08-09 19:40:42 +00:00
Chris Lattner e5b0f6574b Oops, I accidentally broke the .d files. Fixed thusly
llvm-svn: 3272
2002-08-09 19:18:12 +00:00
Chris Lattner e08000ac9f Very minor cleanups
llvm-svn: 3271
2002-08-09 18:55:18 +00:00
Chris Lattner a6540a7b9f * Document the BUILD_ROOT changes and option
* Convert directories to <tt> like they should be

llvm-svn: 3270
2002-08-09 16:14:56 +00:00
Chris Lattner 77330fa15c * Remove some bogus dependencies on Depend/.dir
* Build into the machine local /shared directory instead of using local
  Debug/Depend/Release directories

llvm-svn: 3269
2002-08-09 15:41:55 +00:00
Chris Lattner 56d9e2202f Oh yeah, I wrote it.
llvm-svn: 3268
2002-08-08 20:23:41 +00:00
Chris Lattner 34ceebe344 Initial checkin of the "Writting an LLVM Pass" document
llvm-svn: 3267
2002-08-08 20:11:18 +00:00
Chris Lattner ed7ac42c6a Initial checkin of the "Hello World" Pass.
llvm-svn: 3266
2002-08-08 20:10:38 +00:00
Chris Lattner f0ed55d1ee - Cleaned up the interface to AnalysisUsage to take analysis class names
instead of ::ID's.
 - Pass::getAnalysis<> now no longer takes an optional argument

llvm-svn: 3265
2002-08-08 19:01:30 +00:00
Chris Lattner 40eb9dafed - Cleaned up the interface to AnalysisUsage to take analysis class names
instead of ::ID's.
 - Pass::getAnalysis<> now no longer takes an optional argument

llvm-svn: 3264
2002-08-08 19:01:28 +00:00
Chris Lattner 4b2ee2e848 - Cleaned up the interface to AnalysisUsage to take analysis class names
instead of ::ID's.
 - Pass::getAnalysis<> now no longer takes an optional argument

llvm-svn: 3263
2002-08-08 19:01:11 +00:00
Chris Lattner 650449a1df Remove extraneous #includes
llvm-svn: 3262
2002-08-08 19:00:34 +00:00
Chris Lattner b3ce9fc449 Minor changes to DEBUG()'s
llvm-svn: 3261
2002-08-07 21:41:11 +00:00
Chris Lattner 3147fd226a Reorder #includes to be right
llvm-svn: 3260
2002-08-07 21:41:03 +00:00
Chris Lattner c93df6bf22 Merge three loops into one.
llvm-svn: 3259
2002-08-07 21:39:48 +00:00
Chris Lattner e64e62eff9 Fix breakage in the build
llvm-svn: 3258
2002-08-07 21:39:39 +00:00
Chris Lattner 24c550cd2d Only include the sparc.o file once!
llvm-svn: 3257
2002-08-07 19:42:34 +00:00
Chris Lattner b4101b1373 Simplify writing custom parsers.
llvm-svn: 3256
2002-08-07 18:36:37 +00:00
Chris Lattner 5b13472129 Simplify interface to parsers.
llvm-svn: 3255
2002-08-07 18:36:27 +00:00
Chris Lattner 74ea5a67ce * Write the "Custom parser" section
* Boldify stuff that changes in the help output.

llvm-svn: 3254
2002-08-07 18:27:04 +00:00
Chris Lattner 507612981a Write the reference section, make other minor editing changes elsewhere.
llvm-svn: 3253
2002-08-06 19:36:06 +00:00
Mehwish Nagda 428a0ba612 added Mapping and Function Pass
llvm-svn: 3251
2002-08-05 23:23:19 +00:00
Vikram S. Adve e93d33cc24 Add function GetConstantValueAsUnsignedInt.
llvm-svn: 3249
2002-08-04 20:55:59 +00:00
Vikram S. Adve 482ab44175 Bug fix in CreateCodeToLoadConst(): use sign of dest, not operand,
in choosing how to create int-set instructions.

llvm-svn: 3248
2002-08-04 20:55:37 +00:00
Vikram S. Adve 89f992bf2c Add a sequence of GEPs with constant indices, for folding.
llvm-svn: 3247
2002-08-04 20:53:14 +00:00
Vikram S. Adve 71895b28cc Bug fix in TargetData::getIndexedOffset(): handle struct offset
after array offset correctly.  The type was not being updated for
array offsets!

llvm-svn: 3246
2002-08-04 20:52:39 +00:00
Vikram S. Adve b4a9685872 Bug fix in SetOperandsForMemInstr: handle leading zeros correctly
when folding or not folding GEPs.

llvm-svn: 3245
2002-08-04 20:51:05 +00:00
Vikram S. Adve 1a1c3ed56d Add function GetConstantValueAsUnsignedInt.
Fix 2 bugs in FoldGetElemChain so index vector is not modified
when no GEPs are folded in, and so a hasLeadingZero is computed
only for the last folded GEP, not the one after that if any.

llvm-svn: 3244
2002-08-04 20:49:49 +00:00
Chris Lattner b430c3f395 Fix compilation problem. IsIndexZero doesn't exist, use IsZero instead.
llvm-svn: 3243
2002-08-03 20:57:38 +00:00
Chris Lattner 419bda15f5 Testcase for stuff instcombine should do eventually
llvm-svn: 3240
2002-08-03 20:30:26 +00:00
Chris Lattner ff61e352ae Add some more features that we could instcombine away
llvm-svn: 3239
2002-08-03 20:24:58 +00:00
Chris Lattner 4b03304600 *** empty log message ***
llvm-svn: 3238
2002-08-03 20:24:45 +00:00
Chris Lattner ead864f089 Comment options that may be enabled
llvm-svn: 3237
2002-08-03 20:19:30 +00:00
Vikram S. Adve 1944064801 Simplified handling of array indexes in SetMemOperands_Internal.
llvm-svn: 3236
2002-08-03 13:48:21 +00:00
Vikram S. Adve a173017d7b Add MemAccessInst::getNumIndices().
llvm-svn: 3234
2002-08-03 13:22:36 +00:00
Vikram S. Adve 4737dd7268 Eliminate cast instructions: use only GEPs in decomposed sequence.
Don't decompose if there are 2 indices with 0 as first index.
Compute Changed flag correctly in runOnBasicBlock().

llvm-svn: 3233
2002-08-03 13:21:15 +00:00
Vikram S. Adve eaf18e16fe Run both *.ll and *.c tests.
llvm-svn: 3232
2002-08-03 13:17:03 +00:00
Vikram S. Adve 26a0029255 Added expected decomposed sequence in comments, plus a couple of new cases.
llvm-svn: 3231
2002-08-03 13:16:47 +00:00
Chris Lattner 33b3b9660b Fix problem where lli would not print out a 64 bit value when the client code
uses the modifier "%ld".  Now lli passes off "%lld" to the underlying runtime
library in this case.

llvm-svn: 3230
2002-08-02 23:08:32 +00:00
Chris Lattner 600ba8fa6d Fix one real nasty bug
llvm-svn: 3227
2002-08-02 22:06:04 +00:00
Chris Lattner 551e12055d Fix lli with no arguments
llvm-svn: 3226
2002-08-02 21:51:29 +00:00
Chris Lattner 650b6da0f9 Fix bug: test/Regression/Transforms/InstCombine/2002-08-02-CastTest.ll
Implement feature: Cast's can now be converted to bitwise AND expressions.

llvm-svn: 3225
2002-08-02 20:00:25 +00:00
Chris Lattner a479fecbd5 Fix yet another bug in the testcase
llvm-svn: 3224
2002-08-02 19:59:20 +00:00
Chris Lattner ab3aeb7eae Fix bug in testcase
llvm-svn: 3223
2002-08-02 19:54:05 +00:00
Chris Lattner ae7a0d39fd * Cleanups of instcombine
- Reenable gep (gep x) -> x
   - Make instcombine do dead instruction elimination where it's really
     easy.  Now visitors don't have to ensure they aren't not processing
     dead instructions.

llvm-svn: 3222
2002-08-02 19:29:35 +00:00
Chris Lattner f6f95d08da These tests should not run -dce pass to cleanup instcombine.
If instcombine is making dead instructions, ALL that should be used is -die

llvm-svn: 3221
2002-08-02 19:27:58 +00:00
Chris Lattner e19f137097 Add another testcase that isn't failing because of another bug in instcombine
llvm-svn: 3220
2002-08-02 18:48:09 +00:00
Chris Lattner 7feaa068eb Change test to really test the cases we can hit
llvm-svn: 3219
2002-08-02 18:47:11 +00:00
Chris Lattner a1651c750b New testcase
llvm-svn: 3218
2002-08-02 18:46:53 +00:00
Vikram S. Adve 15bd3ad996 Don't build Debug/ versions when ENABLE_OPTIMIZED is on.
llvm-svn: 3216
2002-08-02 18:34:12 +00:00
Chris Lattner f56bd89918 Fix bug: test/Regression/Transforms/GCSE/2002-05-21-NoSharedDominator.ll
llvm-svn: 3215
2002-08-02 18:06:01 +00:00
Chris Lattner 8e72d6f6e9 Implement dominator checking in the verifier, so that we check that all
defintiions dominate their uses

llvm-svn: 3214
2002-08-02 17:37:08 +00:00
Chris Lattner 6d149e0215 Fix bug: test/Regression/Other/2002-08-02-DomSetProblem.ll
llvm-svn: 3213
2002-08-02 16:51:27 +00:00
Chris Lattner 35d69af46f Add a note about where to put miscompilation tests.
llvm-svn: 3212
2002-08-02 16:44:09 +00:00
Chris Lattner d43023a85d Split dominance calculation and post dominance calculation stuff
Dominance calculation goes to VMCore library to be used by Verifier.

llvm-svn: 3210
2002-08-02 16:43:03 +00:00
Chris Lattner 45dca23e2f New testcase for dominator problem
llvm-svn: 3209
2002-08-02 16:41:21 +00:00
Chris Lattner 2410759241 The verify pass is implicit
llvm-svn: 3208
2002-08-02 16:39:18 +00:00
Chris Lattner 932ed7a084 New test
llvm-svn: 3207
2002-08-02 16:26:08 +00:00
Chris Lattner 36e3570dc2 Tweak makefile after moving
llvm-svn: 3205
2002-08-02 16:10:24 +00:00
Chris Lattner b8f6cfa06e Verify is implicit for opt
llvm-svn: 3204
2002-08-01 22:26:32 +00:00
Chris Lattner 96164edcfb Fix makefile to work.
llvm-svn: 3203
2002-08-01 20:50:54 +00:00
Chris Lattner 2fdcb4b7b6 Fix broken testcase
llvm-svn: 3202
2002-08-01 20:50:03 +00:00
Chris Lattner 3a9b031848 Make testcase legal LLVM
llvm-svn: 3201
2002-08-01 20:48:21 +00:00
Chris Lattner 7ff5a21f0f Remove unneccesary #inlcude
llvm-svn: 3200
2002-08-01 20:01:02 +00:00
Chris Lattner 6a33d6f0bb Enhance -time-passes to be more detailed and useful
llvm-svn: 3199
2002-08-01 19:33:09 +00:00
Vikram S. Adve 6d6deba9f9 Bug fix: incorrect SAVE instruction when using register for stack size.
llvm-svn: 3198
2002-08-01 14:26:11 +00:00
Vikram S. Adve 92a546c025 Feature test for stack size bigger than immed. field of SAVE instruction.
Also tests code generation for code with mixed indices.

llvm-svn: 3197
2002-08-01 14:21:05 +00:00
Chris Lattner 301b7e7733 Reorder tool building sequence to more closely match the reality of what
is being worked on the most.

llvm-svn: 3196
2002-08-01 00:01:33 +00:00
Chris Lattner e5fd3867d3 Fix bug: test/Regression/Assembler/2002-07-31-SlashInString.llx
llvm-svn: 3195
2002-07-31 23:56:44 +00:00
Chris Lattner 14fceb8244 NEw testcase
llvm-svn: 3194
2002-07-31 23:54:29 +00:00
Chris Lattner 50ead8c492 Implement the other half of a feature advertised by OperandConvertableToType.
This fixes bug: test/Regression/Transforms/LevelRaise/2002-07-31-AssertionFailure.ll

llvm-svn: 3193
2002-07-31 22:31:34 +00:00
Chris Lattner d711a5e493 Cleanup Makefile a bit
llvm-svn: 3192
2002-07-31 21:32:05 +00:00
Vikram S. Adve c19b1cc168 Just improved comments and assertions.
llvm-svn: 3191
2002-07-31 21:13:31 +00:00
Chris Lattner ee94eda056 Trim down testcase a bit
llvm-svn: 3190
2002-07-31 21:10:11 +00:00
Chris Lattner 0d3f623a70 New testcase for level-raise crash inspired by SPEC
llvm-svn: 3189
2002-07-31 21:06:29 +00:00
Vikram S. Adve defe6ec939 Add a missing case: converting float/double to unsigned integer types.
llvm-svn: 3188
2002-07-31 21:01:34 +00:00
Chris Lattner ad5a79527f Changes to be GCC3.1 friendly
llvm-svn: 3187
2002-07-31 19:32:14 +00:00
Chris Lattner c70601cd67 Changes to be GCC3.1 friendly
llvm-svn: 3186
2002-07-31 19:32:12 +00:00
Chris Lattner be4826e627 *** empty log message ***
llvm-svn: 3185
2002-07-31 19:32:01 +00:00
Chris Lattner edefd157a7 Changes to be GCC 3.1 friendly
llvm-svn: 3184
2002-07-31 19:31:59 +00:00
Chris Lattner 395c27ae39 We need iostream in PassManagerT.h to use cerr
llvm-svn: 3183
2002-07-31 18:04:17 +00:00
Chris Lattner 6678ec4d1d Fix testcase
llvm-svn: 3182
2002-07-31 17:54:24 +00:00
Chris Lattner 93ca4e50d9 New testcase
llvm-svn: 3181
2002-07-31 17:52:36 +00:00
Chris Lattner f4ef97c59f Testcase that was triggering an incorrect assertion failure
llvm-svn: 3180
2002-07-31 17:39:38 +00:00
Chris Lattner 5987171ef5 Verify pass has been run for a long time now
llvm-svn: 3179
2002-07-31 17:39:16 +00:00
Chris Lattner 35f0c49feb Add new -only-print-main-ds option that causes mains ds graph to be
printed, but no others.

llvm-svn: 3178
2002-07-31 17:15:40 +00:00
Chris Lattner b05cd8a88d Change command line option message on -q to make it more accurate
llvm-svn: 3177
2002-07-31 16:52:49 +00:00
Chris Lattner 150e46b679 Fix bug that was causing problems for lli
llvm-svn: 3176
2002-07-31 16:29:43 +00:00
Chris Lattner 188d8afeee Remove obsolete, confusing, method
llvm-svn: 3175
2002-07-31 01:45:02 +00:00
Chris Lattner c04be03495 This testcase is independant of varargsness
Simplify.

llvm-svn: 3174
2002-07-30 22:24:07 +00:00
Vikram S. Adve b82a496132 Add GlobalDSGraph -- a common graph that holds externally visible nodes.
llvm-svn: 3173
2002-07-30 22:08:08 +00:00
Vikram S. Adve 256776e91f Print globals graph after either the BU or the TD pass.
llvm-svn: 3172
2002-07-30 22:07:26 +00:00
Vikram S. Adve 90c8892b4e This file implements the top-down propagation pass for data structure graphs.
Also, we now use a separate globals graph to hold externally visible nodes.
This changes both the bottom-up and top-down propagation so that
globals and other external objects do not have to appear in every
function, but only in functions in which they are referenced or
they can be used to access something else that is referenced.

llvm-svn: 3171
2002-07-30 22:06:40 +00:00
Vikram S. Adve 0d66177bc8 Use a separate globals graph to hold externally visible nodes.
This changes both the bottom-up and top-down propagation so that
globals and other external objects do not have to appear in every
function, but only in functions in which they are referenced or
they can be used to access something else that is referenced.

llvm-svn: 3170
2002-07-30 22:05:22 +00:00
Vikram S. Adve 43af9687a6 Add GlobalDSGraph -- a common graph that holds externally visible nodes.
llvm-svn: 3169
2002-07-30 22:02:04 +00:00
Chris Lattner 6f43f6d136 Print the tool name when an error comes from so that I can tell which
tool of a pipeline is having issues.

llvm-svn: 3168
2002-07-30 21:43:25 +00:00
Chris Lattner da4c6cc151 Print the tool name when an error comes from so that I can tell which
tool of a pipeline is having issues.

llvm-svn: 3167
2002-07-30 21:43:22 +00:00
Chris Lattner dcd3ec6010 Print the tool name when an error comes from so that I can tell which
tool of a pipeline is having issues.

llvm-svn: 3166
2002-07-30 19:52:14 +00:00
Chris Lattner 1e4867fed2 Implement new -debug-pass=Arguments option that causes PassManager to
print out the command line options for the optimizations it is running.

llvm-svn: 3165
2002-07-30 19:51:02 +00:00
Chris Lattner 353faddb1c Add hooks to get information out of concrete pass manager implementations
llvm-svn: 3164
2002-07-30 19:49:39 +00:00
Chris Lattner 47cc3669ff * Indent class into anonymous namespace, filling up the diff with garbage
* Internalize global variables with initializers
* Add new stat to track global variable internalization
* Only count functions that were not internal before in internalized function
  count

llvm-svn: 3163
2002-07-30 19:48:44 +00:00
Chris Lattner 386ebdd66a Remove extraneous #includes
llvm-svn: 3162
2002-07-30 19:33:19 +00:00
Chris Lattner 3cd8c56cbb Cleanup ConstantExpr handling:
* Correctly delete TypeHandles in AsmParser.  In addition to not leaking
   memory, this prevents a bug that could have occurred when a type got
   resolved that the constexpr was using
 * Check for errors in the AsmParser instead of hitting assertion failures
   deep in the code
 * Simplify the interface to the ConstantExpr class, removing unneccesary
   parameters to the ::get* methods.
 * Rename the 'getelementptr' version of ConstantExpr::get to
   ConstantExpr::getGetElementPtr

llvm-svn: 3161
2002-07-30 18:54:25 +00:00
Chris Lattner a13a2dac7e Cleanup ConstantExpr handling:
* Correctly delete TypeHandles in AsmParser.  In addition to not leaking
   memory, this prevents a bug that could have occurred when a type got
   resolved that the constexpr was using
 * Check for errors in the AsmParser instead of hitting assertion failures
   deep in the code
 * Simplify the interface to the ConstantExpr class, removing unneccesary
   parameters to the ::get* methods.
 * Rename the 'getelementptr' version of ConstantExpr::get to
   ConstantExpr::getGetElementPtr

llvm-svn: 3160
2002-07-30 18:54:22 +00:00
Chris Lattner 6bb917f083 Remove invokation of cleangcc pass which has been renamed, and is unneccesary anyway
llvm-svn: 3159
2002-07-30 18:01:06 +00:00
Chris Lattner beb40f9f6c Remove FIXME's that aren't really needed after all.
llvm-svn: 3158
2002-07-30 16:38:54 +00:00
Chris Lattner 31aa7e72f2 Declare that these passes only depend on the CFG of the function
llvm-svn: 3157
2002-07-30 16:27:52 +00:00
Chris Lattner 0d273698df * Implement stuff so that code can declare that they only depend on the CFG of
a function, not on anything else.  This speeds up GCCAS a lot.

llvm-svn: 3156
2002-07-30 16:27:32 +00:00
Chris Lattner 198cf42178 * Move some code from Pass.cpp to PassManagerT.h
* Implement stuff so that code can declare that they only depend on the CFG of
  a function, not on anything else.  This speeds up GCCAS a lot.

llvm-svn: 3155
2002-07-30 16:27:02 +00:00
Chris Lattner e87f65ec1b Implement constant propogation of logical (and, or, xor) expressions.
Fixes testcase: test/Regression/Transforms/ConstProp/logicaltest.ll

llvm-svn: 3154
2002-07-30 16:24:28 +00:00
Chris Lattner 163f8b5b8f Implement constant propogation of logical (and, or, xor) expressions.
Fixes testcase: test/Regression/Transforms/ConstProp/logicaltest.ll

llvm-svn: 3153
2002-07-30 16:24:25 +00:00
Chris Lattner 7e1dbb8aa2 Test that logical operators are correctly constant propogated!
llvm-svn: 3152
2002-07-30 16:18:38 +00:00
Chris Lattner 7a62aaafab Add test of newly checked in Union support!
llvm-svn: 3151
2002-07-30 06:47:29 +00:00
Chris Lattner 56ea9cd7c2 Simplify testcase a bit
llvm-svn: 3150
2002-07-30 06:07:16 +00:00
Chris Lattner 71562885f6 New testcase found when working on union support *sigh*
llvm-svn: 3149
2002-07-30 06:05:40 +00:00
Chris Lattner aeb1557b11 New testcase distilled from trying to compile burg with LLVM
llvm-svn: 3148
2002-07-30 05:57:03 +00:00
Chris Lattner 4bc962d1d5 * Move InstructionSelection Pass here instead of living in Sparc.cpp. It
is platform independant afterall.
* Object orientize the functions, cleanup code a bit.  Instead of static
  global functions, the helpers for instruction selection are now part of
  the InstructionSelection Pass class.

llvm-svn: 3147
2002-07-30 03:57:36 +00:00
Chris Lattner 31d05fdd0a * Move InstructionSelection pass to lib/CodeGen/InstrSelection so it is
shared by backends.

llvm-svn: 3146
2002-07-30 03:56:16 +00:00
Chris Lattner c3b3a825eb Expose instruction selection as a pass instead of a global function
llvm-svn: 3145
2002-07-30 03:55:29 +00:00
Chris Lattner bd3e2a09ec Add rough support for LLC passes
llvm-svn: 3144
2002-07-30 03:55:01 +00:00
Chris Lattner 05e148710e Remove unused vector
llvm-svn: 3143
2002-07-30 02:52:40 +00:00
Chris Lattner ed37856e69 Fix bug with last patch which would occur when a call returned void and we
attempted to assign it a name.

llvm-svn: 3142
2002-07-30 02:42:49 +00:00
Chris Lattner dc403c86ec Pass renamed
llvm-svn: 3141
2002-07-30 00:53:26 +00:00
Chris Lattner aacadd1a95 * Make sure the resolved function call instructions get the name from the
old call instruction
* Implement conversion of return values for calls.  This fixes bug:
   test/Regression/Transforms/FunctionResolve/retmismatch3.ll

llvm-svn: 3140
2002-07-30 00:50:49 +00:00
Chris Lattner 38d4ae67eb Oops, fix testcase
llvm-svn: 3139
2002-07-30 00:49:42 +00:00
Chris Lattner 07f46fe29b NEw testcase to handle "yet another" return type mismatch possibility
llvm-svn: 3138
2002-07-30 00:34:52 +00:00
Chris Lattner 33fca976ee * Fix bug: test/Regression/Transforms/ADCE/2002-07-17-AssertionFailure.ll
which was caused by us not running the "drop references of dead
  instructions" code when there were no basic blocks that were dead.

  We still don't want to do some of the stuff we do if there are dead
  basic blocks, but we DO want to drop references of dead instructions,
  so we factor the common code out to a new method.

llvm-svn: 3137
2002-07-30 00:22:34 +00:00
Chris Lattner 13e40b402f Trim down testcase, a lot.
llvm-svn: 3136
2002-07-30 00:10:05 +00:00
Chris Lattner 8ec14765f8 Reduce testcase more
llvm-svn: 3135
2002-07-29 23:41:21 +00:00
Chris Lattner 3be5d0b892 Add code to ensure that no PHI nodes are left laying around with their
arguments dropped.  This fixes bug:
   test/Regression/Transforms/ADCE/2002-07-17-PHIAssertion.ll

llvm-svn: 3134
2002-07-29 23:40:46 +00:00
Chris Lattner 2511b6e296 Use a module analysis
llvm-svn: 3133
2002-07-29 23:02:25 +00:00
Chris Lattner fdf6bc216f Reduce the size of the testcase
llvm-svn: 3132
2002-07-29 22:46:55 +00:00
Chris Lattner b17274ebf6 Implement a new RemoveSuccessor function
llvm-svn: 3131
2002-07-29 22:32:08 +00:00
Chris Lattner 153ccdcac0 Implement a new RemoveSuccessor function
llvm-svn: 3130
2002-07-29 22:32:06 +00:00