summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/SCCP.cpp
Commit message (Collapse)AuthorAgeFilesLines
* DEBUG got moved to Support/Debug.hChris Lattner2003-08-011-1/+2
| | | | llvm-svn: 7492
* Fix bug: SCCP/2003-06-24-OverdefinedPHIValue.llChris Lattner2003-06-241-4/+5
| | | | llvm-svn: 6883
* Hopefully, the final fix for `[Pp]ropogate'.Misha Brukman2003-05-201-5/+5
| | | | llvm-svn: 6251
* Handle va_arg instruction correctlyChris Lattner2003-05-081-0/+1
| | | | llvm-svn: 6030
* Fix major problem with PHI node traversal: rechecking PHIs should go intoChris Lattner2003-04-251-1/+1
| | | | | | the visit function. The worklist is for when their lattice value changes. llvm-svn: 5927
* Minor non-functional changes:Chris Lattner2003-04-251-61/+47
| | | | | | | | | * Spell propagate right * Improve performance of phi node handling * Delete using directive * Other minor changes llvm-svn: 5920
* Remove unnecesary &*'sChris Lattner2003-04-231-1/+1
| | | | llvm-svn: 5872
* Make sure to _delete_ memory allocated by worklistsChris Lattner2002-11-041-0/+2
| | | | llvm-svn: 4523
* Fix spelling of `propagate'.Misha Brukman2002-10-291-1/+1
| | | | llvm-svn: 4423
* - Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG toChris Lattner2002-10-211-1/+1
| | | | | | setPreservesCFG to be less confusing. llvm-svn: 4255
* Updates to work with recent Statistic's changes:Chris Lattner2002-10-011-3/+3
| | | | | | | | | | | | * Renamed StatisticReporter.h/cpp to Statistic.h/cpp * Broke constructor to take two const char * arguments instead of one, so that indendation can be taken care of automatically. * Sort the list by pass name when printing * Make sure to print all statistics as a group, instead of randomly when the statistics dtors are called. * Updated ProgrammersManual with new semantics. llvm-svn: 4002
* - Implement SCCP of getelementptr instructionsChris Lattner2002-08-301-5/+31
| | | | | | | - Implement SCCP of globals into ConstantExprs hopefully opening new opportunities for more SCCP. llvm-svn: 3555
* Eliminated the MemAccessInst class, folding contents into GEP class.Chris Lattner2002-08-221-1/+2
| | | | llvm-svn: 3487
* Remove extra #includesChris Lattner2002-08-141-2/+0
| | | | llvm-svn: 3322
* Remove support for unary operatorsChris Lattner2002-08-141-6/+4
| | | | llvm-svn: 3318
* * Add support for different "PassType's"Chris Lattner2002-07-261-1/+1
| | | | | | | | | | | | | | | * 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: 3113
* *** empty log message ***Chris Lattner2002-07-231-5/+2
| | | | llvm-svn: 3016
* MEGAPATCH checkin.Chris Lattner2002-06-251-67/+65
| | | | | | For details, See: docs/2002-06-25-MegaPatchInfo.txt llvm-svn: 2779
* Use the new DEBUG(x) macro to allow debugging code to be enabled on the ↵Chris Lattner2002-05-221-19/+11
| | | | | | commandline llvm-svn: 2713
* Fix bug: test/Regression/Transforms/SCCP/2002-05-21-InvalidSimplify.llChris Lattner2002-05-221-12/+12
| | | | | | Improperly handling edges... by not marking them alive properly llvm-svn: 2707
* Fix bug: test/Regression/Transforms/SCCP/2002-05-20-MissedIncomingValue.llChris Lattner2002-05-201-1/+11
| | | | | | That was causing a miscompilation of strtol/atoi plus others llvm-svn: 2669
* Add support for printing out statistics information when -stats is added toChris Lattner2002-05-101-0/+4
| | | | | | the command line llvm-svn: 2601
* Merge all individual .h files into a single Scalar.h fileChris Lattner2002-05-071-1/+1
| | | | llvm-svn: 2537
* Add #include no longer included by llvm/Transforms/Scalar/ConstantProp.hChris Lattner2002-05-071-0/+1
| | | | llvm-svn: 2517
* * Convert InstWorkList to vector instead of set, because on big programs itChris Lattner2002-05-071-5/+5
| | | | | | | is empirically faster by a noticable margin, even though duplicates can happen. llvm-svn: 2511
* Implement constant propogation of shift instructionsChris Lattner2002-05-061-3/+9
| | | | llvm-svn: 2471
* Ok, really it only takes me 3 times to get this right!Chris Lattner2002-05-021-1/+1
| | | | | | Now use #if 0 instead of #ifdef 0 llvm-svn: 2448
* Oops, disable debugging code all the way. :)Chris Lattner2002-05-021-1/+1
| | | | llvm-svn: 2447
* * Finish the implementation of isEdgeFeasible this fixes bug:Chris Lattner2002-05-021-57/+77
| | | | | | | | | test/Regression/Transforms/SCCP/2002-05-02-EdgeFailure.ll * SCCP now preserves the CFG: It leaves conditional branches the way they are in the program, not simplifying them. A seperate pass should eliminate the potentially dead basic blocks and edges in the CFG. llvm-svn: 2446
* * Enable SCCP debugging to be turned on with a simple change of #defineChris Lattner2002-05-021-32/+52
| | | | | | | | | | | | | * Change worklist to a set so that duplicates cannot happen * Add support for the invoke instruction * Avoid marking store and free instructions as overdefined, since they cannot produce a value anyway. * Inline the OperandChangedState implementation * Add isEdgeFeasible in preparation to fix a bug. Right now it behaves exactly as before. * Remove obsolete comment about constant pools llvm-svn: 2445
* * Simplify the code by not bothering to name the folded constantChris Lattner2002-05-021-10/+7
| | | | | | | | * Do not skip the instruction immediately after a folded instruction. This was causing the testcase failure: test/Regression/Transforms/SCCP/2002-05-02-MissSecondInst.ll llvm-svn: 2443
* Significantly clean up SCCP pass. Now the two classes are merged and inChris Lattner2002-04-291-44/+37
| | | | | | an anonymous namespace where they belong. llvm-svn: 2415
* Eliminate duplicate or unneccesary #include'sChris Lattner2002-04-291-3/+0
| | | | llvm-svn: 2397
* Add new optional getPassName() virtual function that a Pass can overrideChris Lattner2002-04-291-0/+4
| | | | | | to make debugging output a lot nicer. llvm-svn: 2395
* Tighten up the AnalysisUsage of lots of passes, primarily to correctly ↵Chris Lattner2002-04-281-0/+4
| | | | | | indicate whether or not they invalidate the CFGA llvm-svn: 2386
* Split ConstantVals.h into Constant.h and Constants.hChris Lattner2002-04-281-1/+1
| | | | llvm-svn: 2378
* * Rename MethodPass class to FunctionPassChris Lattner2002-04-271-11/+9
| | | | | | | | | | | | | | | - Rename runOnMethod to runOnFunction * Transform getAnalysisUsageInfo into getAnalysisUsage - Method is now const - It now takes one AnalysisUsage object to fill in instead of 3 vectors to fill in - Pass's now specify which other passes they _preserve_ not which ones they modify (be conservative!) - A pass can specify that it preserves all analyses (because it never modifies the underlying program) * s/Method/Function/g in other random places as well llvm-svn: 2333
* Changes because the Terminator::getSuccessor function now FAILS if successorChris Lattner2002-04-271-2/+2
| | | | | | IDX is out of range instead of returning null. llvm-svn: 2332
* Convert SCCP over to use InstVisitor instead of hand crafted switchChris Lattner2002-04-181-181/+136
| | | | llvm-svn: 2286
* GEP instructions can never be constant propogated.Chris Lattner2002-04-181-7/+12
| | | | llvm-svn: 2284
* Move FunctionArgument out of iOther.h into Argument.h and rename class toChris Lattner2002-04-091-2/+2
| | | | | | be 'Argument' instead of FunctionArgument. llvm-svn: 2216
* s/Method/FunctionChris Lattner2002-04-081-1/+0
| | | | | | Remove extraneous #includes of llvm/Assembly/Writer llvm-svn: 2178
* ConstantHandling moved into VMCore libraryChris Lattner2002-04-081-1/+1
| | | | llvm-svn: 2165
* Change references from Method to FunctionChris Lattner2002-03-261-13/+13
| | | | | | change references from MethodARgument to FunctionArgument llvm-svn: 1991
* Fix bug: test/Regression/Other/2002-03-11-ConstPropCrash.llChris Lattner2002-03-111-1/+1
| | | | llvm-svn: 1858
* Change over to use new style pass mechanism, now passes only expose smallChris Lattner2002-02-261-6/+14
| | | | | | creation functions in their public header file, unless they can help it. llvm-svn: 1816
* Method.h no longer includes BasicBlock.hChris Lattner2002-02-121-32/+29
| | | | | | | Method::inst_* is now in llvm/Support/InstIterator.h GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h llvm-svn: 1746
* MethodPass's are now guaranteed to not be run on external methods!Chris Lattner2002-01-311-1/+0
| | | | llvm-svn: 1611
* Move stuff out of the Optimizations directories into the appropriate TransformsChris Lattner2002-01-211-10/+9
| | | | | | directories. Eliminate the opt namespace. llvm-svn: 1520
* Changes to build successfully with GCC 3.02Chris Lattner2002-01-201-6/+8
| | | | llvm-svn: 1503
OpenPOWER on IntegriCloud