Commit Graph

849 Commits

Author SHA1 Message Date
Chris Lattner 323fe8f4a6 - ConstantPointerRefs are now automatically removed from the module table
when they are destroyed, which makes Constant::destroyConstant an actually
    useful external interface.  Expose these methods publicly.
  - Implement destroyConstant on ConstPointerNull so that destroyConstant can
    be used on any derived type constant safely.

llvm-svn: 3378
2002-08-18 00:39:59 +00:00
Chris Lattner 909b272663 Module's do not subclass from Value, so this code caused a segfault.
llvm-svn: 3376
2002-08-18 00:37:14 +00:00
Chris Lattner b6a0873bd8 Add Module::dump() method
llvm-svn: 3374
2002-08-17 23:32:42 +00:00
Chris Lattner 8d1118fd8f Remove the last traces of the NOT instruction
llvm-svn: 3346
2002-08-15 16:14:49 +00:00
Vikram S. Adve 2ba6b60374 Change opLabel numbers for Not and BNot.
Also, these tree nodes are now binary, not unary.

llvm-svn: 3344
2002-08-15 14:20:45 +00:00
Vikram S. Adve 243f187791 Added more helper functions for binary instructions emulating
unary Neg and Not: isNeg, isNot, getNegArgument, and getNotArgument.

llvm-svn: 3341
2002-08-15 14:15:48 +00:00
Chris Lattner 330b7ac76c Remove support for Not ConstantExpr. This simplifies the unary case to only
have to support the cast instruction, so the function is renamed to getCast.

llvm-svn: 3328
2002-08-14 18:24:09 +00:00
Chris Lattner 8fd96fcdaf Remove support for unary operators.
llvm-svn: 3326
2002-08-14 18:19:46 +00:00
Chris Lattner 9c968aaa5a Remove reference to GenericUnaryInst class
llvm-svn: 3325
2002-08-14 18:18:50 +00:00
Chris Lattner 875d512b49 Remove support for unary instructions
llvm-svn: 3324
2002-08-14 18:18:28 +00:00
Chris Lattner 725b9e5033 Remove constant propogation support for NOT instruction
llvm-svn: 3321
2002-08-14 18:17:07 +00:00
Chris Lattner b7a74232bc Expose two new static methods from BinaryOperator: createNeg, createNot
llvm-svn: 3314
2002-08-14 17:51:29 +00:00
Vikram S. Adve 2d01206a37 Add method MachineInstr::substituteValue() which substitutes
one Value with another one in all operands and implicit references
of the machine instruction.

Also add method MachineOperand::getVRegValueOrNull().

llvm-svn: 3307
2002-08-14 16:54:11 +00:00
Chris Lattner 1f25c93ac0 - Rename ConstantGenericIntegral -> ConstantIntegral
- Add new methods to ConstantIntegral: getMaxValue, getMinValue,
   getAllOnesValue

llvm-svn: 3298
2002-08-13 17:50:18 +00:00
Chris Lattner f43b003aba Return const char * const instead of std::string from get register name method
llvm-svn: 3294
2002-08-12 21:24:55 +00:00
Chris Lattner 41e99a07f1 - Added a new superclass of ConstantBool/ConstantInt: ConstantGenericIntegral
- Moved InstCombine: isMaxValue, isMinValue, isAllOnesValue to Constants.h

llvm-svn: 3293
2002-08-12 21:21:21 +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 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 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 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 5b13472129 Simplify interface to parsers.
llvm-svn: 3255
2002-08-07 18:36:27 +00:00
Vikram S. Adve e93d33cc24 Add function GetConstantValueAsUnsignedInt.
llvm-svn: 3249
2002-08-04 20:55:59 +00:00
Vikram S. Adve a173017d7b Add MemAccessInst::getNumIndices().
llvm-svn: 3234
2002-08-03 13:22:36 +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 188d8afeee Remove obsolete, confusing, method
llvm-svn: 3175
2002-07-31 01:45:02 +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 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 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 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 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 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 153ccdcac0 Implement a new RemoveSuccessor function
llvm-svn: 3130
2002-07-29 22:32:06 +00:00
Chris Lattner 73503173ed * Eliminate the Provided set. All Passes now finally just automatically
provide themselves.

llvm-svn: 3125
2002-07-29 21:03:38 +00:00
Chris Lattner f356bcc824 * Eliminate the Provided set. All Passes now finally just automatically
provide themselves.

llvm-svn: 3124
2002-07-29 21:03:33 +00:00
Chris Lattner 83e9f43895 * Fix comment descriptions
* Remove defaulted argument to ctor that is never used anyway
* Prevent copying and assignment

llvm-svn: 3122
2002-07-29 21:01:19 +00:00
Chris Lattner 2675007573 * Standardize how analysis results/passes as printed with the print() virtual
methods
* Eliminate AnalysisID:  Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
  the analyses themselves.

llvm-svn: 3116
2002-07-27 01:12:17 +00:00
Chris Lattner 96a0dfa33e * Standardize how analysis results/passes as printed with the print() virtual
methods
* Eliminate AnalysisID:  Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
  the analyses themselves.

llvm-svn: 3115
2002-07-27 01:12:15 +00:00
Chris Lattner a2c0985980 * Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses

llvm-svn: 3112
2002-07-26 21:12:44 +00:00
Chris Lattner d858d8087f *** empty log message ***
llvm-svn: 3111
2002-07-26 21:11:42 +00:00
Chris Lattner e656a47313 * Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
  are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses

llvm-svn: 3110
2002-07-26 21:11:38 +00:00
Chris Lattner 137bc9826f Factor PassNameParser out of opt.cpp so that analyze and eventually llc can use it.
llvm-svn: 3108
2002-07-26 21:09:10 +00:00
Chris Lattner 5dd95b2e55 *** empty log message ***
llvm-svn: 3107
2002-07-26 19:19:31 +00:00
Chris Lattner b8c55331c7 Analysis contructors now no longer take AnalysisID's as their argument,
because there is a one-one mapping between classes and analyses.

llvm-svn: 3106
2002-07-26 19:19:16 +00:00
Chris Lattner d4879400ca Simplify analyses so that there is only one analysis per class
llvm-svn: 3104
2002-07-26 18:40:06 +00:00