dfb3a2cd07 
								
							 
						 
						
							
							
								
								Eliminated the MemAccessInst class, folding contents into GEP class.  
							
							... 
							
							
							
							llvm-svn: 3487 
							
						 
						
							2002-08-22 23:37:20 +00:00  
				
					
						
							
							
								 
						
							
								cd709cbf53 
								
							 
						 
						
							
							
								
								Load & StoreInst no longer derive from MemAccessInst, so we don't have  
							
							... 
							
							
							
							to handle indexing anymore
llvm-svn: 3485 
							
						 
						
							2002-08-22 22:49:05 +00:00  
				
					
						
							
							
								 
						
							
								a51fa88702 
								
							 
						 
						
							
							
								
								Add capability of using pointer analysis to LICM  
							
							... 
							
							
							
							llvm-svn: 3478 
							
						 
						
							2002-08-22 21:39:55 +00:00  
				
					
						
							
							
								 
						
							
								faea121df7 
								
							 
						 
						
							
							
								
								Remove long obsolete comments  
							
							... 
							
							
							
							llvm-svn: 3476 
							
						 
						
							2002-08-22 21:25:54 +00:00  
				
					
						
							
							
								 
						
							
								f6c0efa754 
								
							 
						 
						
							
							
								
								Instcombine PHI's of the form  %PN = phi PN, X into X  and  
							
							... 
							
							
							
							%PN = phi PN, PN, PN into 0 (because the phi must not be reachable)
llvm-svn: 3470 
							
						 
						
							2002-08-22 20:22:01 +00:00  
				
					
						
							
							
								 
						
							
								879cb97f63 
								
							 
						 
						
							
							
								
								Convert GCSE pass to use new alias analysis infrastructure  
							
							... 
							
							
							
							llvm-svn: 3463 
							
						 
						
							2002-08-22 18:24:48 +00:00  
				
					
						
							
							
								 
						
							
								c86203ace3 
								
							 
						 
						
							
							
								
								- Split Dominators.h into Dominators.h & PostDominators.h  
							
							... 
							
							
							
							llvm-svn: 3432 
							
						 
						
							2002-08-21 23:43:50 +00:00  
				
					
						
							
							
								 
						
							
								6f66bc8016 
								
							 
						 
						
							
							
								
								Remove an optimization that isn't.  
							
							... 
							
							
							
							llvm-svn: 3419 
							
						 
						
							2002-08-21 22:10:06 +00:00  
				
					
						
							
							
								 
						
							
								b8d6e40ed7 
								
							 
						 
						
							
							
								
								- instcombine (~(a < b)) into (a >= b)  
							
							... 
							
							
							
							llvm-svn: 3406 
							
						 
						
							2002-08-20 18:24:26 +00:00  
				
					
						
							
							
								 
						
							
								9cd1e66155 
								
							 
						 
						
							
							
								
								- implemented instcombine of phi (X, X, X) -> X  
							
							... 
							
							
							
							llvm-svn: 3397 
							
						 
						
							2002-08-20 15:35:35 +00:00  
				
					
						
							
							
								 
						
							
								c59af1d257 
								
							 
						 
						
							
							
								
								Promote getelementptr instructions to constexprs if we can.  
							
							... 
							
							
							
							llvm-svn: 3368 
							
						 
						
							2002-08-17 22:21:59 +00:00  
				
					
						
							
							
								 
						
							
								3732acab85 
								
							 
						 
						
							
							
								
								Handle more cases of cast-of-cast in more general forms.  
							
							... 
							
							
							
							llvm-svn: 3347 
							
						 
						
							2002-08-15 16:15:25 +00:00  
				
					
						
							
							
								 
						
							
								0bb75910e2 
								
							 
						 
						
							
							
								
								Implement capability to fold this:  
							
							... 
							
							
							
							uint %test4(int %A, int %B) {
        %COND = setlt int %A, %B                ; <bool> [#uses=1]
        %result = cast bool %COND to uint               ; <uint> [#uses=1]
        ret uint %result
}
into a single cast instruction.
llvm-svn: 3339 
							
						 
						
							2002-08-14 23:21:10 +00:00  
				
					
						
							
							
								 
						
							
								313fd77767 
								
							 
						 
						
							
							
								
								Avoid inserting an entry block unless we need it  
							
							... 
							
							
							
							llvm-svn: 3336 
							
						 
						
							2002-08-14 21:35:02 +00:00  
				
					
						
							
							
								 
						
							
								b80b69cc3e 
								
							 
						 
						
							
							
								
								Fix bug introduced in last checkin due to CastInst not being visible  
							
							... 
							
							
							
							llvm-svn: 3327 
							
						 
						
							2002-08-14 18:22:19 +00:00  
				
					
						
							
							
								 
						
							
								b193ff8f70 
								
							 
						 
						
							
							
								
								Remove support for NOT instruction  
							
							... 
							
							
							
							llvm-svn: 3323 
							
						 
						
							2002-08-14 18:18:02 +00:00  
				
					
						
							
							
								 
						
							
								0f4093938a 
								
							 
						 
						
							
							
								
								Remove extra #includes  
							
							... 
							
							
							
							llvm-svn: 3322 
							
						 
						
							2002-08-14 18:17:32 +00:00  
				
					
						
							
							
								 
						
							
								6e1a1b1289 
								
							 
						 
						
							
							
								
								Remove support for unary operators  
							
							... 
							
							
							
							llvm-svn: 3318 
							
						 
						
							2002-08-14 17:53:45 +00:00  
				
					
						
							
							
								 
						
							
								31ae863284 
								
							 
						 
						
							
							
								
								- Fix InstCombine pass to not generate or process NOT instructions  
							
							... 
							
							
							
							- Fixed testcases to not use them either.
llvm-svn: 3315 
							
						 
						
							2002-08-14 17:51:49 +00:00  
				
					
						
							
							
								 
						
							
								8328263606 
								
							 
						 
						
							
							
								
								- Rename ConstantGenericIntegral -> ConstantIntegral  
							
							... 
							
							
							
							llvm-svn: 3300 
							
						 
						
							2002-08-13 17:50:24 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								650449a1df 
								
							 
						 
						
							
							
								
								Remove extraneous #includes  
							
							... 
							
							
							
							llvm-svn: 3262 
							
						 
						
							2002-08-08 19:00:34 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								f56bd89918 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/GCSE/2002-05-21-NoSharedDominator.ll  
							
							... 
							
							
							
							llvm-svn: 3215 
							
						 
						
							2002-08-02 18:06:01 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								ee420b7f9d 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/ADCE/2002-07-29-Segfault.ll  
							
							... 
							
							
							
							llvm-svn: 3129 
							
						 
						
							2002-07-29 22:31:39 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								c8b7092e54 
								
							 
						 
						
							
							
								
								* 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: 3113 
							
						 
						
							2002-07-26 21:12:46 +00:00  
				
					
						
							
							
								 
						
							
								64eea749de 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3105 
							
						 
						
							2002-07-26 18:40:14 +00:00  
				
					
						
							
							
								 
						
							
								10073a9080 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3075 
							
						 
						
							2002-07-25 06:17:51 +00:00  
				
					
						
							
							
								 
						
							
								42706e4dec 
								
							 
						 
						
							
							
								
								Merge ChangeAllocations into scalar.h  
							
							... 
							
							
							
							llvm-svn: 3038 
							
						 
						
							2002-07-23 22:04:17 +00:00  
				
					
						
							
							
								 
						
							
								b28b680155 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3016 
							
						 
						
							2002-07-23 18:06:35 +00:00  
				
					
						
							
							
								 
						
							
								6788f25f99 
								
							 
						 
						
							
							
								
								* Remove getPassName implementation  
							
							... 
							
							
							
							* Register all Passes
llvm-svn: 3015 
							
						 
						
							2002-07-23 18:06:30 +00:00  
				
					
						
							
							
								 
						
							
								a896b08b5c 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3002 
							
						 
						
							2002-07-23 17:52:38 +00:00  
				
					
						
							
							
								 
						
							
								b2c5cb2525 
								
							 
						 
						
							
							
								
								Disable folding g-e-p instructions into loads and stores.  
							
							... 
							
							
							
							llvm-svn: 2870 
							
						 
						
							2002-07-10 22:37:17 +00:00  
				
					
						
							
							
								 
						
							
								33422fedc2 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 2813 
							
						 
						
							2002-06-30 16:25:25 +00:00  
				
					
						
							
							
								 
						
							
								2bc6419a82 
								
							 
						 
						
							
							
								
								changes to make it compatible with 64bit gcc  
							
							... 
							
							
							
							llvm-svn: 2792 
							
						 
						
							2002-06-25 21:07:58 +00:00  
				
					
						
							
							
								 
						
							
								113f4f4609 
								
							 
						 
						
							
							
								
								MEGAPATCH checkin.  
							
							... 
							
							
							
							For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779 
							
						 
						
							2002-06-25 16:13:24 +00:00  
				
					
						
							
							
								 
						
							
								194138cd08 
								
							 
						 
						
							
							
								
								Avoid deleting individual instructions until AFTER dead blocks have dropped  
							
							... 
							
							
							
							their references.  This fixes bug:
    test/Regression/Transforms/ADCE/2002-05-28-Crash*.ll
llvm-svn: 2753 
							
						 
						
							2002-05-28 21:38:16 +00:00  
				
					
						
							
							
								 
						
							
								ab038d44b0 
								
							 
						 
						
							
							
								
								Simplify the interface to local DCE and Constant prop  
							
							... 
							
							
							
							llvm-svn: 2749 
							
						 
						
							2002-05-26 20:18:18 +00:00  
				
					
						
							
							
								 
						
							
								9c2765d4aa 
								
							 
						 
						
							
							
								
								Fold add X, 0 for floating point types as well  
							
							... 
							
							
							
							llvm-svn: 2734 
							
						 
						
							2002-05-23 17:11:38 +00:00  
				
					
						
							
							
								 
						
							
								559f0ee9c9 
								
							 
						 
						
							
							
								
								Fix and implement ADCE to finally work!  
							
							... 
							
							
							
							llvm-svn: 2720 
							
						 
						
							2002-05-22 21:32:16 +00:00  
				
					
						
							
							
								 
						
							
								71cbd42b98 
								
							 
						 
						
							
							
								
								Use the new DEBUG(x) macro to allow debugging code to be enabled on the commandline  
							
							... 
							
							
							
							llvm-svn: 2713 
							
						 
						
							2002-05-22 17:17:27 +00:00  
				
					
						
							
							
								 
						
							
								a482d52ff4 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/SCCP/2002-05-21-InvalidSimplify.ll  
							
							... 
							
							
							
							Improperly handling edges... by not marking them alive properly
llvm-svn: 2707 
							
						 
						
							2002-05-22 16:07:20 +00:00  
				
					
						
							
							
								 
						
							
								fa7dad8cd5 
								
							 
						 
						
							
							
								
								New CFG Simplification pass: removed from the old DCE pass  
							
							... 
							
							
							
							llvm-svn: 2700 
							
						 
						
							2002-05-21 20:49:37 +00:00  
				
					
						
							
							
								 
						
							
								b710b1fb22 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/SCCP/2002-05-20-MissedIncomingValue.ll  
							
							... 
							
							
							
							That was causing a miscompilation of strtol/atoi plus others
llvm-svn: 2669 
							
						 
						
							2002-05-20 20:48:03 +00:00  
				
					
						
							
							
								 
						
							
								7bc532dded 
								
							 
						 
						
							
							
								
								* Make debug output conditional on #define  
							
							... 
							
							
							
							* Add optimization to rank computation to not recursively search when
  unneccesary.
* More agressively negate expressions to open reassociation opportunities.
* Linearize (A+B)+(C+D) into ((A+B)+C)+D
llvm-svn: 2637 
							
						 
						
							2002-05-16 04:37:07 +00:00  
				
					
						
							
							
								 
						
							
								cd9837d32e 
								
							 
						 
						
							
							
								
								* Fix bug: test/Regression/Transforms/GCSE/2002-05-14-OperandSwap.ll  
							
							... 
							
							
							
							By making sure to consider binary expressions identical if their operands
are backwards, but swappable.
llvm-svn: 2629 
							
						 
						
							2002-05-14 19:57:25 +00:00  
				
					
						
							
							
								 
						
							
								170ed7b6a3 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/InstCombine/2002-05-14-SubFailure.ll  
							
							... 
							
							
							
							llvm-svn: 2627 
							
						 
						
							2002-05-14 16:44:07 +00:00  
				
					
						
							
							
								 
						
							
								053c0939e3 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/InstCombine/2002-05-14-TouchDeletedInst.ll  
							
							... 
							
							
							
							"This testcase caused instcombine to fail because it got the same instruction on
it's worklist more than once (which is ok), but then deleted the instruction.
Since the inst stayed on the worklist, as soon as it came back up to be
processed, bad things happened, and opt asserted."
llvm-svn: 2623 
							
						 
						
							2002-05-14 15:24:07 +00:00  
				
					
						
							
							
								 
						
							
								d38ddb1164 
								
							 
						 
						
							
							
								
								Implement elimination of loads  
							
							... 
							
							
							
							llvm-svn: 2620 
							
						 
						
							2002-05-14 05:02:40 +00:00  
				
					
						
							
							
								 
						
							
								7ab51787ca 
								
							 
						 
						
							
							
								
								Trivial cleanups  
							
							... 
							
							
							
							llvm-svn: 2617 
							
						 
						
							2002-05-13 22:04:46 +00:00  
				
					
						
							
							
								 
						
							
								6ec05f551c 
								
							 
						 
						
							
							
								
								Initial checkin of LICM pass  
							
							... 
							
							
							
							llvm-svn: 2615 
							
						 
						
							2002-05-10 22:44:58 +00:00  
				
					
						
							
							
								 
						
							
								0b18c1d64e 
								
							 
						 
						
							
							
								
								Add support for printing out statistics information when -stats is added to  
							
							... 
							
							
							
							the command line
llvm-svn: 2601 
							
						 
						
							2002-05-10 15:38:35 +00:00  
				
					
						
							
							
								 
						
							
								bad1b4dfce 
								
							 
						 
						
							
							
								
								Fix some bugs, straighten stuff out, more work needs to be done.  
							
							... 
							
							
							
							llvm-svn: 2600 
							
						 
						
							2002-05-10 15:37:35 +00:00  
				
					
						
							
							
								 
						
							
								014ee634ce 
								
							 
						 
						
							
							
								
								Initial checkin of the PiNodeInsertion pass  
							
							... 
							
							
							
							llvm-svn: 2593 
							
						 
						
							2002-05-10 05:41:34 +00:00  
				
					
						
							
							
								 
						
							
								1fc23f382e 
								
							 
						 
						
							
							
								
								Handle setcc <global*>, 0 instructions, Global pointers are never null!  
							
							... 
							
							
							
							llvm-svn: 2582 
							
						 
						
							2002-05-09 20:11:54 +00:00  
				
					
						
							
							
								 
						
							
								6bd7ac6205 
								
							 
						 
						
							
							
								
								Give the longer name to the instruction that will probably be eliminated later  
							
							... 
							
							
							
							llvm-svn: 2581 
							
						 
						
							2002-05-09 20:11:23 +00:00  
				
					
						
							
							
								 
						
							
								ad3c495225 
								
							 
						 
						
							
							
								
								Add ability to transform (x - (y - z)) into (x + (z - y))  
							
							... 
							
							
							
							llvm-svn: 2566 
							
						 
						
							2002-05-09 01:29:19 +00:00  
				
					
						
							
							
								 
						
							
								147e975c43 
								
							 
						 
						
							
							
								
								* Combine: A-(-B) -> A + B  
							
							... 
							
							
							
							* Bugfix:  A + -B and -A + B
llvm-svn: 2561 
							
						 
						
							2002-05-08 22:46:53 +00:00  
				
					
						
							
							
								 
						
							
								c0f5800678 
								
							 
						 
						
							
							
								
								Initial checkin of expression reassociation pass  
							
							... 
							
							
							
							llvm-svn: 2559 
							
						 
						
							2002-05-08 22:19:27 +00:00  
				
					
						
							
							
								 
						
							
								c1496bda61 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/ADCE/2002-01-31-UseStuckAround.ll  
							
							... 
							
							
							
							Cleanup code a lot
llvm-svn: 2547 
							
						 
						
							2002-05-07 22:11:39 +00:00  
				
					
						
							
							
								 
						
							
								b4cfa7ff97 
								
							 
						 
						
							
							
								
								Merge all individual .h files into a single Scalar.h file  
							
							... 
							
							
							
							llvm-svn: 2537 
							
						 
						
							2002-05-07 20:03:00 +00:00  
				
					
						
							
							
								 
						
							
								77f791dd5b 
								
							 
						 
						
							
							
								
								Split ChangeAllocations.cpp into Raise & LowerAllocations.cpp  
							
							... 
							
							
							
							llvm-svn: 2529 
							
						 
						
							2002-05-07 19:02:48 +00:00  
				
					
						
							
							
								 
						
							
								7608a46cbe 
								
							 
						 
						
							
							
								
								Updates to move some header files out of include/llvm/Transforms into  
							
							... 
							
							
							
							the Scalar and Utils subdirectories
llvm-svn: 2523 
							
						 
						
							2002-05-07 18:36:35 +00:00  
				
					
						
							
							
								 
						
							
								9b55e5a2f4 
								
							 
						 
						
							
							
								
								Reduce dependance on TransformInternals.h, instead using the TransformUtils library  
							
							... 
							
							
							
							llvm-svn: 2518 
							
						 
						
							2002-05-07 18:12:18 +00:00  
				
					
						
							
							
								 
						
							
								3d86d49604 
								
							 
						 
						
							
							
								
								Add #include no longer included by llvm/Transforms/Scalar/ConstantProp.h  
							
							... 
							
							
							
							llvm-svn: 2517 
							
						 
						
							2002-05-07 18:11:30 +00:00  
				
					
						
							
							
								 
						
							
								560da70f8c 
								
							 
						 
						
							
							
								
								Factor code out to the TransformUtils library  
							
							... 
							
							
							
							llvm-svn: 2516 
							
						 
						
							2002-05-07 18:10:55 +00:00  
				
					
						
							
							
								 
						
							
								d66a6e33e9 
								
							 
						 
						
							
							
								
								* Convert InstWorkList to vector instead of set, because on big programs it  
							
							... 
							
							
							
							is empirically faster by a noticable margin, even though duplicates can
  happen.
llvm-svn: 2511 
							
						 
						
							2002-05-07 04:29:32 +00:00  
				
					
						
							
							
								 
						
							
								87e8806f05 
								
							 
						 
						
							
							
								
								* Remove all cfg simplification stuff for a new cfg simplify pass (todo)  
							
							... 
							
							
							
							* Convert to worklist instead of iterative algorithm
llvm-svn: 2510 
							
						 
						
							2002-05-07 04:24:11 +00:00  
				
					
						
							
							
								 
						
							
								a6e047a5d9 
								
							 
						 
						
							
							
								
								Only do masking for unsigned values!  
							
							... 
							
							
							
							llvm-svn: 2504 
							
						 
						
							2002-05-06 18:54:59 +00:00  
				
					
						
							
							
								 
						
							
								e548507e8c 
								
							 
						 
						
							
							
								
								* Eliminate dead code that should have been removed in last revision  
							
							... 
							
							
							
							* Convert main constant propogation pass to be worklist driven instead of
  iterative.
* -constprop pass no longer "constant propogates" terminator instructions
   - CFG is now preserved!
llvm-svn: 2502 
							
						 
						
							2002-05-06 18:21:31 +00:00  
				
					
						
							
							
								 
						
							
								bbbdd852b8 
								
							 
						 
						
							
							
								
								Handle X = phi Y  --> X = Y  
							
							... 
							
							
							
							llvm-svn: 2501 
							
						 
						
							2002-05-06 18:06:38 +00:00  
				
					
						
							
							
								 
						
							
								4c3366405a 
								
							 
						 
						
							
							
								
								* Use simplified interface to constant propogation stuff.  
							
							... 
							
							
							
							* Remove dead PHI case (which could not work due to getNumOperands rather than
  getNumIncomingValues.  This really belongs in InstCombine, anyway so we'll
  move it there.
llvm-svn: 2497 
							
						 
						
							2002-05-06 17:54:10 +00:00  
				
					
						
							
							
								 
						
							
								019f3649bd 
								
							 
						 
						
							
							
								
								Clean up ADCE by removing extraneous wrapper class  
							
							... 
							
							
							
							llvm-svn: 2494 
							
						 
						
							2002-05-06 17:27:57 +00:00  
				
					
						
							
							
								 
						
							
								5d6bec5e26 
								
							 
						 
						
							
							
								
								Combine not (not X) -> X  
							
							... 
							
							
							
							llvm-svn: 2493 
							
						 
						
							2002-05-06 17:03:21 +00:00  
				
					
						
							
							
								 
						
							
								9fa53de7e9 
								
							 
						 
						
							
							
								
								Support more cases...  
							
							... 
							
							
							
							llvm-svn: 2490 
							
						 
						
							2002-05-06 16:49:18 +00:00  
				
					
						
							
							
								 
						
							
								f4cdbf34e5 
								
							 
						 
						
							
							
								
								Add many more instruction combination simplifications  
							
							... 
							
							
							
							llvm-svn: 2484 
							
						 
						
							2002-05-06 16:14:14 +00:00  
				
					
						
							
							
								 
						
							
								66e25b8b62 
								
							 
						 
						
							
							
								
								Merge blocks like this:  
							
							... 
							
							
							
							void "test3"(bool %T) {
        br bool %T, label %BB1, label %BB1
BB1:
        ret void
}
llvm-svn: 2472 
							
						 
						
							2002-05-06 03:02:02 +00:00  
				
					
						
							
							
								 
						
							
								940daedc22 
								
							 
						 
						
							
							
								
								Implement constant propogation of shift instructions  
							
							... 
							
							
							
							llvm-svn: 2471 
							
						 
						
							2002-05-06 03:01:37 +00:00  
				
					
						
							
							
								 
						
							
								7b80b53ab9 
								
							 
						 
						
							
							
								
								Ok, really it only takes me 3 times to get this right!  
							
							... 
							
							
							
							Now use #if 0 instead of #ifdef 0
llvm-svn: 2448 
							
						 
						
							2002-05-02 21:49:50 +00:00  
				
					
						
							
							
								 
						
							
								dd390e1736 
								
							 
						 
						
							
							
								
								Oops, disable debugging code all the way.  :)  
							
							... 
							
							
							
							llvm-svn: 2447 
							
						 
						
							2002-05-02 21:47:40 +00:00  
				
					
						
							
							
								 
						
							
								fe6c9eeae3 
								
							 
						 
						
							
							
								
								* Finish the implementation of isEdgeFeasible this fixes bug:  
							
							... 
							
							
							
							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 
							
						 
						
							2002-05-02 21:44:00 +00:00  
				
					
						
							
							
								 
						
							
								13b52e71d8 
								
							 
						 
						
							
							
								
								* Enable SCCP debugging to be turned on with a simple change of #define  
							
							... 
							
							
							
							* 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 
							
						 
						
							2002-05-02 21:18:01 +00:00  
				
					
						
							
							
								 
						
							
								5364d1a74a 
								
							 
						 
						
							
							
								
								* Simplify the code by not bothering to name the folded constant  
							
							... 
							
							
							
							* 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 
							
						 
						
							2002-05-02 20:32:51 +00:00  
				
					
						
							
							
								 
						
							
								48a44f7e23 
								
							 
						 
						
							
							
								
								* Add ability to eliminate a bunch of different cascading cast variations  
							
							... 
							
							
							
							* Allow elimination of getelementptr X, uint 0 (which is a noop)
llvm-svn: 2428 
							
						 
						
							2002-05-02 17:06:02 +00:00  
				
					
						
							
							
								 
						
							
								31ba129cbe 
								
							 
						 
						
							
							
								
								Add folding rules for mul X, 0 and mul X, 2  
							
							... 
							
							
							
							llvm-svn: 2417 
							
						 
						
							2002-04-29 22:24:47 +00:00  
				
					
						
							
							
								 
						
							
								7d3253876a 
								
							 
						 
						
							
							
								
								Significantly clean up SCCP pass.  Now the two classes are merged and in  
							
							... 
							
							
							
							an anonymous namespace where they belong.
llvm-svn: 2415 
							
						 
						
							2002-04-29 21:26:08 +00:00  
				
					
						
							
							
								 
						
							
								27eeecbb69 
								
							 
						 
						
							
							
								
								Range insertion now returns an iterator  
							
							... 
							
							
							
							llvm-svn: 2414 
							
						 
						
							2002-04-29 21:25:34 +00:00  
				
					
						
							
							
								 
						
							
								09bbb5c015 
								
							 
						 
						
							
							
								
								Remove unused files:  This is the old induction varaible cannonicalization  
							
							... 
							
							
							
							pass built on top of interval analysis
llvm-svn: 2411 
							
						 
						
							2002-04-29 20:18:00 +00:00  
				
					
						
							
							
								 
						
							
								15e8f4c012 
								
							 
						 
						
							
							
								
								changes because iMemory.h no longer #includes DerivedTypes.h  
							
							... 
							
							
							
							This only requires Type.h anyway
llvm-svn: 2405 
							
						 
						
							2002-04-29 18:48:30 +00:00  
				
					
						
							
							
								 
						
							
								d5a847057b 
								
							 
						 
						
							
							
								
								Eliminate duplicate or unneccesary #include's  
							
							... 
							
							
							
							llvm-svn: 2397 
							
						 
						
							2002-04-29 17:42:12 +00:00  
				
					
						
							
							
								 
						
							
								2dfc667a7d 
								
							 
						 
						
							
							
								
								Remove broken assertion.  
							
							... 
							
							
							
							llvm-svn: 2396 
							
						 
						
							2002-04-29 16:20:25 +00:00  
				
					
						
							
							
								 
						
							
								37104aace8 
								
							 
						 
						
							
							
								
								Add new optional getPassName() virtual function that a Pass can override  
							
							... 
							
							
							
							to make debugging output a lot nicer.
llvm-svn: 2395 
							
						 
						
							2002-04-29 14:57:45 +00:00  
				
					
						
							
							
								 
						
							
								8d843f6b77 
								
							 
						 
						
							
							
								
								More cleanups  
							
							... 
							
							
							
							llvm-svn: 2392 
							
						 
						
							2002-04-29 01:58:47 +00:00  
				
					
						
							
							
								 
						
							
								fc1a433dae 
								
							 
						 
						
							
							
								
								Code cleanups  
							
							... 
							
							
							
							llvm-svn: 2391 
							
						 
						
							2002-04-29 01:22:55 +00:00  
				
					
						
							
							
								 
						
							
								f12cc842b3 
								
							 
						 
						
							
							
								
								Tighten up the AnalysisUsage of lots of passes, primarily to correctly indicate whether or not they invalidate the CFGA  
							
							... 
							
							
							
							llvm-svn: 2386 
							
						 
						
							2002-04-28 21:27:06 +00:00  
				
					
						
							
							
								 
						
							
								ca14237696 
								
							 
						 
						
							
							
								
								Split ConstantVals.h into Constant.h and Constants.h  
							
							... 
							
							
							
							llvm-svn: 2378 
							
						 
						
							2002-04-28 19:55:58 +00:00  
				
					
						
							
							
								 
						
							
								78dd56fe62 
								
							 
						 
						
							
							
								
								Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes  
							
							... 
							
							
							
							to the global namespace
llvm-svn: 2370 
							
						 
						
							2002-04-28 16:21:30 +00:00  
				
					
						
							
							
								 
						
							
								1467f64f01 
								
							 
						 
						
							
							
								
								Initial checkin of simple&fast SSA based GCSE algorithm  
							
							... 
							
							
							
							llvm-svn: 2338 
							
						 
						
							2002-04-28 00:47:11 +00:00  
				
					
						
							
							
								 
						
							
								c8e665431b 
								
							 
						 
						
							
							
								
								* Rename MethodPass class to FunctionPass  
							
							... 
							
							
							
							- 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 
							
						 
						
							2002-04-27 06:56:12 +00:00  
				
					
						
							
							
								 
						
							
								66cfaf1da2 
								
							 
						 
						
							
							
								
								Changes because the Terminator::getSuccessor function now FAILS if successor  
							
							... 
							
							
							
							IDX is out of range instead of returning null.
llvm-svn: 2332 
							
						 
						
							2002-04-27 03:15:45 +00:00  
				
					
						
							
							
								 
						
							
								2716b5e524 
								
							 
						 
						
							
							
								
								Change Constant::getNullConstant to Constant::getNullValue  
							
							... 
							
							
							
							llvm-svn: 2323 
							
						 
						
							2002-04-27 02:25:14 +00:00  
				
					
						
							
							
								 
						
							
								260ab20422 
								
							 
						 
						
							
							
								
								Significantly rework InstructionCombining to work better and to be cleaner.  
							
							... 
							
							
							
							We now use an InstVisitor to delegate to different cases that we are
interested in handling.  We also fix the FIXME's by adding users to the
worklist when appropriate.
llvm-svn: 2292 
							
						 
						
							2002-04-18 17:39:14 +00:00  
				
					
						
							
							
								 
						
							
								6e56079654 
								
							 
						 
						
							
							
								
								Convert SCCP over to use InstVisitor instead of hand crafted switch  
							
							... 
							
							
							
							llvm-svn: 2286 
							
						 
						
							2002-04-18 15:13:15 +00:00  
				
					
						
							
							
								 
						
							
								5873900709 
								
							 
						 
						
							
							
								
								GEP instructions can never be constant propogated.  
							
							... 
							
							
							
							llvm-svn: 2284 
							
						 
						
							2002-04-18 14:44:13 +00:00  
				
					
						
							
							
								 
						
							
								f40379e403 
								
							 
						 
						
							
							
								
								Store instructions always return void, so they never get a name  
							
							... 
							
							
							
							llvm-svn: 2283 
							
						 
						
							2002-04-18 14:43:54 +00:00  
				
					
						
							
							
								 
						
							
								3a60d04722 
								
							 
						 
						
							
							
								
								Eliminate cast of same type instructions.  
							
							... 
							
							
							
							llvm-svn: 2251 
							
						 
						
							2002-04-15 19:45:29 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								06be180225 
								
							 
						 
						
							
							
								
								Add explicit #includes of Function.h to make up for the removed #include  
							
							... 
							
							
							
							in iOther.h
llvm-svn: 2209 
							
						 
						
							2002-04-09 19:08:28 +00:00  
				
					
						
							
							
								 
						
							
								d92b01c385 
								
							 
						 
						
							
							
								
								Add #includes to make up for #includes pruned out of header files.  
							
							... 
							
							
							
							llvm-svn: 2207 
							
						 
						
							2002-04-09 18:37:46 +00:00  
				
					
						
							
							
								 
						
							
								f8e4dc33ab 
								
							 
						 
						
							
							
								
								s/Method/Function  
							
							... 
							
							
							
							Remove extraneous #includes of llvm/Assembly/Writer
llvm-svn: 2178 
							
						 
						
							2002-04-08 22:03:00 +00:00  
				
					
						
							
							
								 
						
							
								65b529fe6d 
								
							 
						 
						
							
							
								
								ConstantHandling moved into VMCore library  
							
							... 
							
							
							
							llvm-svn: 2165 
							
						 
						
							2002-04-08 20:18:09 +00:00  
				
					
						
							
							
								 
						
							
								62b7fd136e 
								
							 
						 
						
							
							
								
								Change references to the Method class to be references to the Function  
							
							... 
							
							
							
							class.  The Method class is obsolete (renamed) and all references to it
are being converted over to Function.
llvm-svn: 2144 
							
						 
						
							2002-04-07 20:49:59 +00:00  
				
					
						
							
							
								 
						
							
								c13563d5c0 
								
							 
						 
						
							
							
								
								Simplify code a lot by using the Module::getFunction & getOrInsertFunction  
							
							... 
							
							
							
							llvm-svn: 2028 
							
						 
						
							2002-03-29 03:38:05 +00:00  
				
					
						
							
							
								 
						
							
								57698e2c0b 
								
							 
						 
						
							
							
								
								Change references from Method to Function  
							
							... 
							
							
							
							change references from MethodARgument to FunctionArgument
llvm-svn: 1991 
							
						 
						
							2002-03-26 18:01:55 +00:00  
				
					
						
							
							
								 
						
							
								1ee0658a07 
								
							 
						 
						
							
							
								
								Major overhaul to support arbitrary mixed array and structure indices.  
							
							... 
							
							
							
							Also moved to the Scalar/ directory and renamed to "MultiDim".
llvm-svn: 1961 
							
						 
						
							2002-03-24 03:21:18 +00:00  
				
					
						
							
							
								 
						
							
								5d218dff24 
								
							 
						 
						
							
							
								
								New pass to decompose multi-dimensional array references into  
							
							... 
							
							
							
							a sequence of 1-D references, using a sequence of getElementPtrs.
llvm-svn: 1948 
							
						 
						
							2002-03-23 20:43:39 +00:00  
				
					
						
							
							
								 
						
							
								bee86626e1 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Other/2002-03-11-InstCombineHang.ll  
							
							... 
							
							
							
							llvm-svn: 1864 
							
						 
						
							2002-03-11 23:28:45 +00:00  
				
					
						
							
							
								 
						
							
								477fe0845a 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Other/2002-03-11-ConstPropCrash.ll  
							
							... 
							
							
							
							llvm-svn: 1858 
							
						 
						
							2002-03-11 22:11:07 +00:00  
				
					
						
							
							
								 
						
							
								04805fa29c 
								
							 
						 
						
							
							
								
								Change over to use new style pass mechanism, now passes only expose small  
							
							... 
							
							
							
							creation functions in their public header file, unless they can help it.
llvm-svn: 1816 
							
						 
						
							2002-02-26 21:46:54 +00:00  
				
					
						
							
							
								 
						
							
								83d485b310 
								
							 
						 
						
							
							
								
								* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into  
							
							... 
							
							
							
							llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions
* Add #includes that are now neccesary because BasicBlock.h doesn't include
  InstrTypes.h anymore
llvm-svn: 1750 
							
						 
						
							2002-02-12 22:39:50 +00:00  
				
					
						
							
							
								 
						
							
								60a6591d83 
								
							 
						 
						
							
							
								
								Method.h no longer includes BasicBlock.h  
							
							... 
							
							
							
							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 
							
						 
						
							2002-02-12 21:07:25 +00:00  
				
					
						
							
							
								 
						
							
								352151e222 
								
							 
						 
						
							
							
								
								MethodPass's are now guaranteed to not be run on external methods!  
							
							... 
							
							
							
							llvm-svn: 1611 
							
						 
						
							2002-01-31 00:51:24 +00:00  
				
					
						
							
							
								 
						
							
								d5d56780e2 
								
							 
						 
						
							
							
								
								Convert xforms over to new pass structure.  
							
							... 
							
							
							
							llvm-svn: 1605 
							
						 
						
							2002-01-31 00:45:11 +00:00  
				
					
						
							
							
								 
						
							
								d5851db315 
								
							 
						 
						
							
							
								
								Remove extraneous #includes  
							
							... 
							
							
							
							llvm-svn: 1588 
							
						 
						
							2002-01-26 22:47:32 +00:00  
				
					
						
							
							
								 
						
							
								7209dc2446 
								
							 
						 
						
							
							
								
								Remove opt namespace  
							
							... 
							
							
							
							llvm-svn: 1587 
							
						 
						
							2002-01-26 22:47:07 +00:00  
				
					
						
							
							
								 
						
							
								ccbd4e4643 
								
							 
						 
						
							
							
								
								Implement new DeadInstElmination pass  
							
							... 
							
							
							
							remove old comment
llvm-svn: 1555 
							
						 
						
							2002-01-23 05:48:24 +00:00  
				
					
						
							
							
								 
						
							
								70090079e7 
								
							 
						 
						
							
							
								
								Don't insert a useless cast  
							
							... 
							
							
							
							llvm-svn: 1527 
							
						 
						
							2002-01-22 03:30:06 +00:00  
				
					
						
							
							
								 
						
							
								3787ee6be6 
								
							 
						 
						
							
							
								
								Rename LowerAllocations.h to ChangeAllocations.h since it now contains the  
							
							... 
							
							
							
							RaiseAllocations pass as well.
llvm-svn: 1525 
							
						 
						
							2002-01-22 01:04:08 +00:00  
				
					
						
							
							
								 
						
							
								4f0f09757d 
								
							 
						 
						
							
							
								
								Pull RaiseAllocations stuff out of the CleanGCC pass into it's own pass in  
							
							... 
							
							
							
							the ChangeAllocations.h header file.
llvm-svn: 1522 
							
						 
						
							2002-01-22 00:13:51 +00:00  
				
					
						
							
							
								 
						
							
								d07471d6c3 
								
							 
						 
						
							
							
								
								LowerAllocations is really a BasicBlock pass.  Make it so.  
							
							... 
							
							
							
							llvm-svn: 1521 
							
						 
						
							2002-01-21 23:34:02 +00:00  
				
					
						
							
							
								 
						
							
								ee965abc36 
								
							 
						 
						
							
							
								
								Move stuff out of the Optimizations directories into the appropriate Transforms  
							
							... 
							
							
							
							directories.  Eliminate the opt namespace.
llvm-svn: 1520 
							
						 
						
							2002-01-21 23:17:48 +00:00  
				
					
						
							
							
								 
						
							
								0686e435d1 
								
							 
						 
						
							
							
								
								Implement a more powerful, simpler, pass system.  This pass system can figure  
							
							... 
							
							
							
							out how to run a collection of passes optimially given their behaviors and
charactaristics.
Convert code to use it.
llvm-svn: 1507 
							
						 
						
							2002-01-21 07:31:50 +00:00  
				
					
						
							
							
								 
						
							
								7f74a56e24 
								
							 
						 
						
							
							
								
								Changes to build successfully with GCC 3.02  
							
							... 
							
							
							
							llvm-svn: 1503 
							
						 
						
							2002-01-20 22:54:45 +00:00  
				
					
						
							
							
								 
						
							
								ca081257e5 
								
							 
						 
						
							
							
								
								initial checkin  
							
							... 
							
							
							
							llvm-svn: 1480 
							
						 
						
							2001-12-14 16:52:21 +00:00  
				
					
						
							
							
								 
						
							
								b3364fc169 
								
							 
						 
						
							
							
								
								Remove unsized array support  
							
							... 
							
							
							
							llvm-svn: 1466 
							
						 
						
							2001-12-14 16:38:04 +00:00  
				
					
						
							
							
								 
						
							
								f5c6f65e7f 
								
							 
						 
						
							
							
								
								Assertion could never fail because another one would in it's place.  :)  
							
							... 
							
							
							
							llvm-svn: 1449 
							
						 
						
							2001-12-13 00:45:40 +00:00  
				
					
						
							
							
								 
						
							
								674394077f 
								
							 
						 
						
							
							
								
								Actually return true when a change has been made  
							
							... 
							
							
							
							llvm-svn: 1425 
							
						 
						
							2001-12-05 19:41:33 +00:00  
				
					
						
							
							
								 
						
							
								25b151dfdf 
								
							 
						 
						
							
							
								
								Fix a bug introduced by "internal linkage" work.  
							
							... 
							
							
							
							llvm-svn: 1415 
							
						 
						
							2001-12-04 18:01:49 +00:00  
				
					
						
							
							
								 
						
							
								d23d752dc5 
								
							 
						 
						
							
							
								
								Fix bugs, don't do external methods which causes segv.  
							
							... 
							
							
							
							llvm-svn: 1414 
							
						 
						
							2001-12-04 08:13:06 +00:00  
				
					
						
							
							
								 
						
							
								91daaabb56 
								
							 
						 
						
							
							
								
								Implement induction variable simplification  
							
							... 
							
							
							
							llvm-svn: 1411 
							
						 
						
							2001-12-04 04:32:29 +00:00  
				
					
						
							
							
								 
						
							
								2413b160ec 
								
							 
						 
						
							
							
								
								Renamed inst_const_iterator -> const_inst_iterator  
							
							... 
							
							
							
							Renamed op_const_iterator   -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
llvm-svn: 1408 
							
						 
						
							2001-12-04 00:03:30 +00:00  
				
					
						
							
							
								 
						
							
								3462ae3ad7 
								
							 
						 
						
							
							
								
								Rename ConstPoolVal -> Constant  
							
							... 
							
							
							
							Rename ConstPool*   -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
llvm-svn: 1407 
							
						 
						
							2001-12-03 22:26:30 +00:00  
				
					
						
							
							
								 
						
							
								fb5ae02e1a 
								
							 
						 
						
							
							
								
								Split the PHINode class out from the iOther.h file into the iPHINode.h file  
							
							... 
							
							
							
							llvm-svn: 1405 
							
						 
						
							2001-12-03 18:02:31 +00:00  
				
					
						
							
							
								 
						
							
								476e6df794 
								
							 
						 
						
							
							
								
								Initial checkin of indvar stuff  
							
							... 
							
							
							
							llvm-svn: 1404 
							
						 
						
							2001-12-03 17:28:42 +00:00  
				
					
						
							
							
								 
						
							
								5de2204fe8 
								
							 
						 
						
							
							
								
								Create a new #include "Support/..." directory structure to move things  
							
							... 
							
							
							
							from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
llvm-svn: 1400 
							
						 
						
							2001-11-27 00:03:19 +00:00  
				
					
						
							
							
								 
						
							
								c4ad64cb9c 
								
							 
						 
						
							
							
								
								Misc cleanups  
							
							... 
							
							
							
							llvm-svn: 1377 
							
						 
						
							2001-11-26 18:57:38 +00:00  
				
					
						
							
							
								 
						
							
								1f86880af4 
								
							 
						 
						
							
							
								
								Expose constant propogation of an instruction in a clean way  
							
							... 
							
							
							
							llvm-svn: 1376 
							
						 
						
							2001-11-26 18:57:12 +00:00  
				
					
						
							
							
								 
						
							
								3b7199e36c 
								
							 
						 
						
							
							
								
								Add #includes to enable buiding in Release mode  
							
							... 
							
							
							
							llvm-svn: 1174 
							
						 
						
							2001-11-07 13:49:45 +00:00  
				
					
						
							
							
								 
						
							
								033324fc0c 
								
							 
						 
						
							
							
								
								Avoid making a broken transformation!  
							
							... 
							
							
							
							llvm-svn: 1115 
							
						 
						
							2001-11-03 21:30:22 +00:00  
				
					
						
							
							
								 
						
							
								7567f6c15f 
								
							 
						 
						
							
							
								
								Expose the low level DCE mechanism to external users  
							
							... 
							
							
							
							Refactor code to support it
llvm-svn: 1083 
							
						 
						
							2001-11-01 07:00:27 +00:00  
				
					
						
							
							
								 
						
							
								04648a4cc6 
								
							 
						 
						
							
							
								
								Simplify DCE code a lot  
							
							... 
							
							
							
							llvm-svn: 1079 
							
						 
						
							2001-11-01 05:55:29 +00:00  
				
					
						
							
							
								 
						
							
								7e6a0d8c17 
								
							 
						 
						
							
							
								
								Use the correct prototype for malloc and free  
							
							... 
							
							
							
							llvm-svn: 1066 
							
						 
						
							2001-10-31 06:36:23 +00:00  
				
					
						
							
							
								 
						
							
								9db8b765cd 
								
							 
						 
						
							
							
								
								Implemented constant propogation of cast instructions  
							
							... 
							
							
							
							llvm-svn: 1064 
							
						 
						
							2001-10-31 05:07:57 +00:00  
				
					
						
							
							
								 
						
							
								6fea0324d7 
								
							 
						 
						
							
							
								
								Convert to new simpler pass itf  
							
							... 
							
							
							
							llvm-svn: 880 
							
						 
						
							2001-10-18 05:27:33 +00:00  
				
					
						
							
							
								 
						
							
								5398a6eb6c 
								
							 
						 
						
							
							
								
								Convert optimizations to the pass infrastructure  
							
							... 
							
							
							
							llvm-svn: 873 
							
						 
						
							2001-10-18 01:32:34 +00:00  
				
					
						
							
							
								 
						
							
								1bb5f8e4ee 
								
							 
						 
						
							
							
								
								Add new Pass infrastructure and some examples  
							
							... 
							
							
							
							llvm-svn: 836 
							
						 
						
							2001-10-15 17:31:51 +00:00  
				
					
						
							
							
								 
						
							
								f0b68888af 
								
							 
						 
						
							
							
								
								Support the invoke instruction  
							
							... 
							
							
							
							llvm-svn: 765 
							
						 
						
							2001-10-13 06:52:41 +00:00  
				
					
						
							
							
								 
						
							
								da55810666 
								
							 
						 
						
							
							
								
								Commit more code over to new cast style  
							
							... 
							
							
							
							llvm-svn: 697 
							
						 
						
							2001-10-02 03:41:24 +00:00  
				
					
						
							
							
								 
						
							
								3856934386 
								
							 
						 
						
							
							
								
								Convert more code to use new style casts  
							
							... 
							
							
							
							Eliminate old style casts from value.h
llvm-svn: 696 
							
						 
						
							2001-10-01 20:11:19 +00:00  
				
					
						
							
							
								 
						
							
								8f19112923 
								
							 
						 
						
							
							
								
								Add more support for new style casts  
							
							... 
							
							
							
							Convert more code to use them
llvm-svn: 695 
							
						 
						
							2001-10-01 18:26:53 +00:00  
				
					
						
							
							
								 
						
							
								4b717c0edc 
								
							 
						 
						
							
							
								
								Add support for new style casts  
							
							... 
							
							
							
							llvm-svn: 694 
							
						 
						
							2001-10-01 16:18:37 +00:00  
				
					
						
							
							
								 
						
							
								ba1c1f2fb6 
								
							 
						 
						
							
							
								
								Pull predecessor and successor iterators out of the CFG*.h files, and plop them into  
							
							... 
							
							
							
							the BasicBlock class where they should be.  pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.
llvm-svn: 691 
							
						 
						
							2001-10-01 13:19:53 +00:00  
				
					
						
							
							
								 
						
							
								bb09a10929 
								
							 
						 
						
							
							
								
								Pull iterators out of CFG.h and CFGdecls and put them in Support directory  
							
							... 
							
							
							
							llvm-svn: 664 
							
						 
						
							2001-09-28 22:56:31 +00:00  
				
					
						
							
							
								 
						
							
								b271be3185 
								
							 
						 
						
							
							
								
								ADCE is broken but at least we know why  
							
							... 
							
							
							
							llvm-svn: 656 
							
						 
						
							2001-09-28 00:06:42 +00:00  
				
					
						
							
							
								 
						
							
								acfd27d502 
								
							 
						 
						
							
							
								
								Make ADCE more robust, it still has problems, but it's getting closer  
							
							... 
							
							
							
							llvm-svn: 521 
							
						 
						
							2001-09-09 22:26:47 +00:00  
				
					
						
							
							
								 
						
							
								d707ec62b6 
								
							 
						 
						
							
							
								
								Types and constants are wierd things in symbol tables now  
							
							... 
							
							
							
							llvm-svn: 457 
							
						 
						
							2001-09-07 16:43:50 +00:00  
				
					
						
							
							
								 
						
							
								dae05dc937 
								
							 
						 
						
							
							
								
								* Eliminate reference to ConstantPool class  
							
							... 
							
							
							
							* Constants are global objects that are not allocated or freed
llvm-svn: 456 
							
						 
						
							2001-09-07 16:43:22 +00:00  
				
					
						
							
							
								 
						
							
								6d7bce9f3c 
								
							 
						 
						
							
							
								
								Constants are now global unique objects  
							
							... 
							
							
							
							llvm-svn: 454 
							
						 
						
							2001-09-07 16:42:26 +00:00  
				
					
						
							
							
								 
						
							
								07e158de3c 
								
							 
						 
						
							
							
								
								* Eliminate constant pool dependancies:  
							
							... 
							
							
							
							* Eliminate DoRemoveUnusedConstants
llvm-svn: 453 
							
						 
						
							2001-09-07 16:42:08 +00:00  
				
					
						
							
							
								 
						
							
								030772df99 
								
							 
						 
						
							
							
								
								* Supoprt global constants  
							
							... 
							
							
							
							* Remove support for local constant pools
* Eliminate constant pool merging method, which is no longer neccesary
* Disable invalid optimization (todo: fix it)
llvm-svn: 452 
							
						 
						
							2001-09-07 16:41:30 +00:00  
				
					
						
							
							
								 
						
							
								b62b602fe2 
								
							 
						 
						
							
							
								
								Enable the elimination of method prototypes that are not referenced  
							
							... 
							
							
							
							llvm-svn: 325 
							
						 
						
							2001-07-28 17:51:49 +00:00  
				
					
						
							
							
								 
						
							
								e2472bbf6c 
								
							 
						 
						
							
							
								
								Moved inline/llvm/Tools/* to include/llvm/Support/*  
							
							... 
							
							
							
							llvm-svn: 279 
							
						 
						
							2001-07-23 17:46:59 +00:00  
				
					
						
							
							
								 
						
							
								3e37ec7c0a 
								
							 
						 
						
							
							
								
								Support external methods  
							
							... 
							
							
							
							llvm-svn: 200 
							
						 
						
							2001-07-15 21:43:45 +00:00  
				
					
						
							
							
								 
						
							
								5451c9e977 
								
							 
						 
						
							
							
								
								Add knowledge about the struct form of the GetElementPtr instruction  
							
							... 
							
							
							
							llvm-svn: 183 
							
						 
						
							2001-07-14 06:11:51 +00:00  
				
					
						
							
							
								 
						
							
								5b1200bf8e 
								
							 
						 
						
							
							
								
								Remove dependency on the structure of ValueHolder.  
							
							... 
							
							
							
							llvm-svn: 182 
							
						 
						
							2001-07-14 06:11:26 +00:00  
				
					
						
							
							
								 
						
							
								d6c5a769ea 
								
							 
						 
						
							
							
								
								Don't clean out the type plane of the constant pool... this is a hack.  FIXME  
							
							... 
							
							
							
							llvm-svn: 172 
							
						 
						
							2001-07-09 19:38:52 +00:00  
				
					
						
							
							
								 
						
							
								31feae8550 
								
							 
						 
						
							
							
								
								Implement checking for new instructions  
							
							... 
							
							
							
							llvm-svn: 163 
							
						 
						
							2001-07-08 21:18:49 +00:00  
				
					
						
							
							
								 
						
							
								fb8ed0cf3a 
								
							 
						 
						
							
							
								
								Use the CDG to mark branches alive on demand.  
							
							... 
							
							
							
							llvm-svn: 159 
							
						 
						
							2001-07-08 18:38:36 +00:00  
				
					
						
							
							
								 
						
							
								a682182f64 
								
							 
						 
						
							
							
								
								Neg instruction removed.  Cast instruction implemented.  
							
							... 
							
							
							
							llvm-svn: 156 
							
						 
						
							2001-07-08 04:57:15 +00:00  
				
					
						
							
							
								 
						
							
								b1ca9cbceb 
								
							 
						 
						
							
							
								
								Broad superficial changes:  
							
							... 
							
							
							
							* Renamed getOpcode to getOpcodeName
* Changed getOpcodeName to return a const char * instead of string
* Added a getOpcode method to replace getInstType
* Changed code to use getOpcode instead of getInstType
llvm-svn: 152 
							
						 
						
							2001-07-07 19:24:15 +00:00  
				
					
						
							
							
								 
						
							
								a073acb22d 
								
							 
						 
						
							
							
								
								Changed the fundemental architecture of Operands for Instructions.  Now  
							
							... 
							
							
							
							Operands are maintained as a vector<Use> in the User class, and operator
iterators are provided as before.  Getting an operand no longer requires
a virtual function call.
WARNING: getOperand(x) where x >= getNumOperands() will now assert instead
of returning null!
llvm-svn: 149 
							
						 
						
							2001-07-07 08:36:50 +00:00  
				
					
						
							
							
								 
						
							
								8024bde7c7 
								
							 
						 
						
							
							
								
								Update to include right file  
							
							... 
							
							
							
							llvm-svn: 138 
							
						 
						
							2001-07-06 16:32:07 +00:00  
				
					
						
							
							
								 
						
							
								b28986ffc7 
								
							 
						 
						
							
							
								
								Initial checkin.  Should print dead instructions, except it doesn't do  
							
							... 
							
							
							
							control dependencies.  :(
llvm-svn: 119 
							
						 
						
							2001-06-30 06:39:11 +00:00  
				
					
						
							
							
								 
						
							
								1960b3c6d2 
								
							 
						 
						
							
							
								
								Rename DoSparseConditionalConstantProp -> DoSCCP  
							
							... 
							
							
							
							llvm-svn: 117 
							
						 
						
							2001-06-30 06:37:43 +00:00  
				
					
						
							
							
								 
						
							
								d42d492734 
								
							 
						 
						
							
							
								
								Optimizations got their own header files  
							
							... 
							
							
							
							Optimizations now live in the 'opt' namespace
include/llvm/Opt was renamed include/llvm/Optimizations
llvm-svn: 113 
							
						 
						
							2001-06-30 04:36:40 +00:00  
				
					
						
							
							
								 
						
							
								7ce8b17e60 
								
							 
						 
						
							
							
								
								Export ConstantFoldTerminator, allow it to fold conditional branches to  
							
							... 
							
							
							
							the same label.
llvm-svn: 107 
							
						 
						
							2001-06-29 23:56:58 +00:00  
				
					
						
							
							
								 
						
							
								10b250eb4d 
								
							 
						 
						
							
							
								
								Added documentation.  Constant fold terminators.  
							
							... 
							
							
							
							llvm-svn: 106 
							
						 
						
							2001-06-29 23:56:23 +00:00  
				
					
						
							
							
								 
						
							
								84f07396d3 
								
							 
						 
						
							
							
								
								* Factored RemovePredecessorFromBlock into BasicBlock::removePredecessor  
							
							... 
							
							
							
							* Avoid messing around with this case:
  br label %A
%A:  br label %A
* Enable optimizations that are correct now.
llvm-svn: 102 
							
						 
						
							2001-06-29 05:24:28 +00:00  
				
					
						
							
							
								 
						
							
								e4abb60948 
								
							 
						 
						
							
							
								
								We need to make sure to remove PHI nodes in the successor that cannot be  
							
							... 
							
							
							
							executed when removing branch dest.
llvm-svn: 101 
							
						 
						
							2001-06-29 05:23:10 +00:00  
				
					
						
							
							
								 
						
							
								4cee8d8ffb 
								
							 
						 
						
							
							
								
								Miscellaneous cleanups:  
							
							... 
							
							
							
							* Convert post to pre-increment for for loops
  * Use generic programming more
  * Use new Value::cast* instructions
  * Use new Module, Method, & BasicBlock forwarding methods
  * Use new facilities in STLExtras.h
  * Use new Instruction::isPHINode() method
llvm-svn: 96 
							
						 
						
							2001-06-27 23:41:11 +00:00  
				
					
						
							
							
								 
						
							
								347389dae8 
								
							 
						 
						
							
							
								
								Add a new Sparse Conditional Constant Propogation pass  
							
							... 
							
							
							
							llvm-svn: 95 
							
						 
						
							2001-06-27 23:38:11 +00:00  
				
					
						
							
							
								 
						
							
								1a67fb8860 
								
							 
						 
						
							
							
								
								Misc cleanup  
							
							... 
							
							
							
							llvm-svn: 91 
							
						 
						
							2001-06-27 23:36:09 +00:00  
				
					
						
							
							
								 
						
							
								f222bf33c3 
								
							 
						 
						
							
							
								
								* Expose DoConstantPoolMerging  
							
							... 
							
							
							
							* Cleanups (post->pre increment, new cleaner API, etc)
* Moved stuff into ConstantHandling.h
llvm-svn: 90 
							
						 
						
							2001-06-27 23:35:26 +00:00  
				
					
						
							
							
								 
						
							
								dbdaaef7d5 
								
							 
						 
						
							
							
								
								Implement induction variable injection!  
							
							... 
							
							
							
							llvm-svn: 75 
							
						 
						
							2001-06-25 07:32:19 +00:00  
				
					
						
							
							
								 
						
							
								c3a6f546de 
								
							 
						 
						
							
							
								
								A silly stupid test of the loop depth calculator was added.  REMOVE in the  
							
							... 
							
							
							
							future.
llvm-svn: 72 
							
						 
						
							2001-06-25 03:55:37 +00:00  
				
					
						
							
							
								 
						
							
								f64a8936e5 
								
							 
						 
						
							
							
								
								#include a different header due to Intervals.h splitting up  
							
							... 
							
							
							
							llvm-svn: 63 
							
						 
						
							2001-06-24 04:05:45 +00:00  
				
					
						
							
							
								 
						
							
								4c4f178723 
								
							 
						 
						
							
							
								
								Implement a lot more functionality.  Now loop invariant and linear  
							
							... 
							
							
							
							induction variables are correctly identified.
llvm-svn: 57 
							
						 
						
							2001-06-22 02:24:38 +00:00  
				
					
						
							
							
								 
						
							
								b20a15d334 
								
							 
						 
						
							
							
								
								Moved printing code to the Assembly/Writer library.  
							
							... 
							
							
							
							Code now detects looping intervals
llvm-svn: 52 
							
						 
						
							2001-06-21 05:27:22 +00:00  
				
					
						
							
							
								 
						
							
								778de94723 
								
							 
						 
						
							
							
								
								Get rid of a silly printout that isn't needed right now  
							
							... 
							
							
							
							llvm-svn: 45 
							
						 
						
							2001-06-20 23:09:39 +00:00  
				
					
						
							
							
								 
						
							
								f86e38e452 
								
							 
						 
						
							
							
								
								Add capability to print a derived interval graph  
							
							... 
							
							
							
							llvm-svn: 42 
							
						 
						
							2001-06-20 22:44:38 +00:00  
				
					
						
							
							
								 
						
							
								d286a997d3 
								
							 
						 
						
							
							
								
								Add a test case for interval code  
							
							... 
							
							
							
							llvm-svn: 36 
							
						 
						
							2001-06-20 19:27:11 +00:00  
				
					
						
							
							
								 
						
							
								5ba5f88c35 
								
							 
						 
						
							
							
								
								Updates to work with new cfg namespace  
							
							... 
							
							
							
							llvm-svn: 29 
							
						 
						
							2001-06-13 19:55:22 +00:00  
				
					
						
							
							
								 
						
							
								874ddadf72 
								
							 
						 
						
							
							
								
								Updates to support  
							
							... 
							
							
							
							* Changes in PHI node structure
llvm-svn: 25 
							
						 
						
							2001-06-11 15:04:40 +00:00  
				
					
						
							
							
								 
						
							
								7e0d6e05ac 
								
							 
						 
						
							
							
								
								Updated to work with new CFG.h file.  
							
							... 
							
							
							
							llvm-svn: 15 
							
						 
						
							2001-06-07 21:18:45 +00:00  
				
					
						
							
							
								 
						
							
								d821c2af37 
								
							 
						 
						
							
							
								
								Significant rework.  DCE is still not done (see #ifdef'd out parts)  
							
							... 
							
							
							
							but at least the stuff that is checked in, now works.
llvm-svn: 10 
							
						 
						
							2001-06-07 16:59:26 +00:00  
				
					
						
							
							
								 
						
							
								2f7c963559 
								
							 
						 
						
							
							
								
								Initial revision  
							
							... 
							
							
							
							llvm-svn: 2 
							
						 
						
							2001-06-06 20:29:01 +00:00