Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0592bb7654 
								
							 
						 
						
							
							
								
								Convert LICM over to use AliasSetTracker.  Besides being nicer, this automatically  
							
							 
							
							... 
							
							
							
							allows LICM to use access sizes to help alias analysis be more precise.
llvm-svn: 5693 
							
						 
						
							2003-03-03 23:32:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e27406eb59 
								
							 
						 
						
							
							
								
								Change the mem2reg interface to accept a TargetData argument  
							
							 
							
							... 
							
							
							
							llvm-svn: 5685 
							
						 
						
							2003-03-03 17:25:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e19a9f8ef7 
								
							 
						 
						
							
							
								
								Fix bug: LICM/2003-02-28-PromoteDifferentType.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 5675 
							
						 
						
							2003-02-28 19:21:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								49eb0e3026 
								
							 
						 
						
							
							
								
								Fix bug I introduced yesterday :(  
							
							 
							
							... 
							
							
							
							llvm-svn: 5669 
							
						 
						
							2003-02-28 16:54:17 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								32a39c26e0 
								
							 
						 
						
							
							
								
								Fix bug: LICM/2003-02-27-PreheaderExitNodeUpdate.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 5667 
							
						 
						
							2003-02-28 03:07:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f2d9f94a33 
								
							 
						 
						
							
							
								
								Fix bug: 2003-02-27-PreheaderExitNodeUpdate.ll by updating exit node info  
							
							 
							
							... 
							
							
							
							llvm-svn: 5664 
							
						 
						
							2003-02-27 22:48:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								10b2b055e8 
								
							 
						 
						
							
							
								
								Add a new assertion to check that stuff is happening right  
							
							 
							
							... 
							
							
							
							Ironically the exit block modification code wasn't updating the exit block
information itself.  Fix this.
llvm-svn: 5659 
							
						 
						
							2003-02-27 22:31:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1ad80e2511 
								
							 
						 
						
							
							
								
								Fix bug: 2003-02-27-StoreSinkPHIs.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 5658 
							
						 
						
							2003-02-27 21:59:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4e2fbfb4c3 
								
							 
						 
						
							
							
								
								* Don't forget to update Loop information!  
							
							 
							
							... 
							
							
							
							* Remove bogus assertion: there may be a single outside predecessor and
    still need a new loop-preheader if the predecessor has multiple
    successors.  See bug: LICM/2003-02-27-PreheaderProblem.ll
llvm-svn: 5655 
							
						 
						
							2003-02-27 21:50:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								650096a061 
								
							 
						 
						
							
							
								
								* Significant changes to the preheader insertion pass:  
							
							 
							
							... 
							
							
							
							- Now we perform loop exit-block splitting to ensure exit blocks are
     always dominated by the loop header.
   - We now preserve dominance frontier information
   - This fixes bug: LICM/2003-02-26-LoopExitNotDominated.ll
llvm-svn: 5652 
							
						 
						
							2003-02-27 20:27:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								71b82bb494 
								
							 
						 
						
							
							
								
								Convert to work with new AliasAnalysis interface by conservatively assuming all pointers are arbitrarily large accesses  
							
							 
							
							... 
							
							
							
							llvm-svn: 5636 
							
						 
						
							2003-02-26 19:28:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4869f3700e 
								
							 
						 
						
							
							
								
								Rename Instruction::hasSideEffects() -> mayWriteToMemory()  
							
							 
							
							... 
							
							
							
							llvm-svn: 5620 
							
						 
						
							2003-02-24 20:48:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								45d67d6ea7 
								
							 
						 
						
							
							
								
								Initial implementation of Loop invariant memory->scalar promotion  
							
							 
							
							... 
							
							
							
							llvm-svn: 5613 
							
						 
						
							2003-02-24 03:52:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								26f159046c 
								
							 
						 
						
							
							
								
								Split mem2reg promotion into two parts: a function which does the work, and  
							
							 
							
							... 
							
							
							
							a pass which wraps the function.  This allows other passes to use the functionality
llvm-svn: 5610 
							
						 
						
							2003-02-22 23:57:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								57c8d99bbd 
								
							 
						 
						
							
							
								
								4 new transformations:  
							
							 
							
							... 
							
							
							
							* X*C + X --> X * (C+1)
  * X + X*C --> X * (C+1)
  * X - X*C --> X * (1-C)
  * X*C - X --> X * (C-1)
llvm-svn: 5592 
							
						 
						
							2003-02-18 19:57:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3082c5a070 
								
							 
						 
						
							
							
								
								Add a variety of new transformations:  
							
							 
							
							... 
							
							
							
							* A & ~A == 0
  * A / (2^c) == A >> c  if unsigned
  * 0 / A == 0
  * 1.0 * A == A
  * A * (2^c) == A << c
  * A ^ ~A == -1
  * A | ~A == -1
  * 0 % X = 0
  * A % (2^c) == A & (c-1) if unsigned
  * A - (A & B) == A & ~B
  * -1 - A == ~A
llvm-svn: 5587 
							
						 
						
							2003-02-18 19:28:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f683599915 
								
							 
						 
						
							
							
								
								Fix typo  
							
							 
							
							... 
							
							
							
							llvm-svn: 5458 
							
						 
						
							2003-02-01 04:50:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6fa1629c47 
								
							 
						 
						
							
							
								
								Fix bug: ADCE/2003-01-22-PredecessorProblem.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 5405 
							
						 
						
							2003-01-23 02:12:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3aa7767352 
								
							 
						 
						
							
							
								
								Fix a huge performance problem in reassociate by introducing a  
							
							 
							
							... 
							
							
							
							rank map cache for instruction ranks
llvm-svn: 5030 
							
						 
						
							2002-12-15 03:56:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f96c8befe0 
								
							 
						 
						
							
							
								
								Minor changes:  
							
							 
							
							... 
							
							
							
							* Reword comment to make more clear
  * Don't print out BB's after modification made
  * Don't delete and new an instruction when we need to move something, just move it.
llvm-svn: 5029 
							
						 
						
							2002-12-15 03:49:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								688ac5b723 
								
							 
						 
						
							
							
								
								Remove dead code  
							
							 
							
							... 
							
							
							
							llvm-svn: 4952 
							
						 
						
							2002-12-07 18:42:13 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c6509f487b 
								
							 
						 
						
							
							
								
								Fix bug: 2002-12-05-MissedConstProp.ll pointed out by Casey Carter  
							
							 
							
							... 
							
							
							
							llvm-svn: 4935 
							
						 
						
							2002-12-05 22:41:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								98cf1f5d64 
								
							 
						 
						
							
							
								
								- Eliminated the deferred symbol table stuff in Module & Function, it really  
							
							 
							
							... 
							
							
							
							wasn't an optimization and it was causing lots of bugs.
llvm-svn: 4779 
							
						 
						
							2002-11-20 18:36:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a2620ac156 
								
							 
						 
						
							
							
								
								Fix warning  
							
							 
							
							... 
							
							
							
							llvm-svn: 4649 
							
						 
						
							2002-11-09 00:49:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0da31d6648 
								
							 
						 
						
							
							
								
								Fix spelling error  
							
							 
							
							... 
							
							
							
							llvm-svn: 4645 
							
						 
						
							2002-11-08 23:18:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5d606a09ff 
								
							 
						 
						
							
							
								
								Instcombine this away:  
							
							 
							
							... 
							
							
							
							%A = getelementptr [4 x int]* %M, long 0, long 0
        %B = getelementptr int* %A, long 2
llvm-svn: 4536 
							
						 
						
							2002-11-04 16:43:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1085bdf49f 
								
							 
						 
						
							
							
								
								Add a transformation to turn:  
							
							 
							
							... 
							
							
							
							malloc Ty, C
int
  malloc [C x Ty], 1
llvm-svn: 4534 
							
						 
						
							2002-11-04 16:18:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								669c6cf459 
								
							 
						 
						
							
							
								
								Make sure to _delete_ memory allocated by worklists  
							
							 
							
							... 
							
							
							
							llvm-svn: 4523 
							
						 
						
							2002-11-04 02:54:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8fdf75cde5 
								
							 
						 
						
							
							
								
								Fixes to the reassociate pass to make it respect dominance properties  
							
							 
							
							... 
							
							
							
							Huge thanks go to Casey Carter for writing this fix, reassociate is now
reoperational!
llvm-svn: 4471 
							
						 
						
							2002-10-31 17:12:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								12764c85e8 
								
							 
						 
						
							
							
								
								BreakCriticalEdges should update dominance frontier information as well as  
							
							 
							
							... 
							
							
							
							other dominance stuff.  Patch contributed by Casey Carter
llvm-svn: 4457 
							
						 
						
							2002-10-31 02:44:36 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								632df28deb 
								
							 
						 
						
							
							
								
								Fix spelling of `propagate'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 4423 
							
						 
						
							2002-10-29 23:06:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								820d971233 
								
							 
						 
						
							
							
								
								- Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG to  
							
							 
							
							... 
							
							
							
							setPreservesCFG to be less confusing.
llvm-svn: 4255 
							
						 
						
							2002-10-21 20:00:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b7368500dc 
								
							 
						 
						
							
							
								
								- Fix bug: cee/2002-10-07-NoImmediateDominator.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 4081 
							
						 
						
							2002-10-08 21:53:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								736709feda 
								
							 
						 
						
							
							
								
								- Checkin LARGE number of Changes to CEE pass that will make it much more  
							
							 
							
							... 
							
							
							
							powerful, but that are largely disabled.  The basic idea here is that it
    is trying to forward branches across basic blocks that have PHI nodes in
    it, which are crucial to be able to handle cases like whet.ll.
    Unfortunately we are not updating SSA correctly, causing sim.c to die, and I
    don't have time to fix the regression now, so I must disable the
    functionality.
llvm-svn: 4077 
							
						 
						
							2002-10-08 21:34:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5ac72defc9 
								
							 
						 
						
							
							
								
								Expose isCriticalEdge & SplitCriticalEdge methods from crit-edges pass  
							
							 
							
							... 
							
							
							
							llvm-svn: 4075 
							
						 
						
							2002-10-08 21:06:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								394617f38b 
								
							 
						 
						
							
							
								
								It is illegal for PHI nodes to have zero values, delete the code to handle them  
							
							 
							
							... 
							
							
							
							llvm-svn: 4071 
							
						 
						
							2002-10-08 17:07:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2e0fb39d87 
								
							 
						 
						
							
							
								
								Fold ashr -1, X into -1  
							
							 
							
							... 
							
							
							
							llvm-svn: 4070 
							
						 
						
							2002-10-08 16:16:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bf3a099a62 
								
							 
						 
						
							
							
								
								Updates to work with recent Statistic's changes:  
							
							 
							
							... 
							
							
							
							* 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 
							
						 
						
							2002-10-01 22:38:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								05e86302f4 
								
							 
						 
						
							
							
								
								Fix bug in LICM that caused the previous big win. :(  
							
							 
							
							... 
							
							
							
							llvm-svn: 3980 
							
						 
						
							2002-09-29 22:26:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6443769b34 
								
							 
						 
						
							
							
								
								Hoist the contents of Loops in depth first order in the dominator tree,  
							
							 
							
							... 
							
							
							
							rather than in random order.  This causes LICM to be DRAMATICALLY more
effective. For example, on bzip2.c, it is able to hoist 302 loads and
2380 total instructions, as opposed to 44/338 before.  This  obviously
makes other transformations much more powerful as well!
llvm-svn: 3978 
							
						 
						
							2002-09-29 21:46:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								03a9e15a9f 
								
							 
						 
						
							
							
								
								Fix major bugs in dominator set & tree information updating  
							
							 
							
							... 
							
							
							
							llvm-svn: 3975 
							
						 
						
							2002-09-29 21:41:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d57f3f5073 
								
							 
						 
						
							
							
								
								- Further cleanups of LICM pass, remove extra work from previous implementation  
							
							 
							
							... 
							
							
							
							- Do not clone instructions then insert clone outside of loop.  Just move them.
llvm-svn: 3951 
							
						 
						
							2002-09-26 19:40:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f64f2d3fb3 
								
							 
						 
						
							
							
								
								Improve comments, doxygenize more  
							
							 
							
							... 
							
							
							
							llvm-svn: 3950 
							
						 
						
							2002-09-26 16:52:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								718b221ff8 
								
							 
						 
						
							
							
								
								Clean up LICM significantly now that it is guaranteed to have loop preheaders  
							
							 
							
							... 
							
							
							
							llvm-svn: 3947 
							
						 
						
							2002-09-26 16:38:03 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ca056914c6 
								
							 
						 
						
							
							
								
								Change pass name to something sane  
							
							 
							
							... 
							
							
							
							llvm-svn: 3946 
							
						 
						
							2002-09-26 16:37:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d771fdfd75 
								
							 
						 
						
							
							
								
								Loop invariant code motion now depends on the LoopPreheader pass.  Dead code  
							
							 
							
							... 
							
							
							
							has not yet been removed.
llvm-svn: 3945 
							
						 
						
							2002-09-26 16:19:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bedbd6bc16 
								
							 
						 
						
							
							
								
								- Cleanup break-crit-edges pass by making SplitCriticalEdge a member method.  
							
							 
							
							... 
							
							
							
							- break-crit-edges pass does not invalidate loop-preheader pass.
llvm-svn: 3944 
							
						 
						
							2002-09-26 16:18:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								61992f66d8 
								
							 
						 
						
							
							
								
								Checkin new loop-preheader insertion pass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 3942 
							
						 
						
							2002-09-26 16:17:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3cab9f0396 
								
							 
						 
						
							
							
								
								Change LowerAllocations pass to 'require' TargetData instead of it being  
							
							 
							
							... 
							
							
							
							passed in.
llvm-svn: 3929 
							
						 
						
							2002-09-25 23:47:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4357e54760 
								
							 
						 
						
							
							
								
								Eliminate extraneous #include  
							
							 
							
							... 
							
							
							
							llvm-svn: 3916 
							
						 
						
							2002-09-24 21:18:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								75f80bd0b6 
								
							 
						 
						
							
							
								
								- Do not expose Critical Edge breaking mechanics outside the BCE pass, thus  
							
							 
							
							... 
							
							
							
							removing it from Transforms/Local.h and from Transforms/Utils/*
llvm-svn: 3910 
							
						 
						
							2002-09-24 15:51:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b4e7e22be3 
								
							 
						 
						
							
							
								
								Correlated Exprs pass now requires BCE pass instead of doing it manually  
							
							 
							
							... 
							
							
							
							llvm-svn: 3908 
							
						 
						
							2002-09-24 15:43:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4bec665b09 
								
							 
						 
						
							
							
								
								- Expose passinfo from BreakCriticalEdges pass so that it may be "Required"  
							
							 
							
							... 
							
							
							
							by other passes.  Make BCE pass be in anonymous namespace now.
llvm-svn: 3907 
							
						 
						
							2002-09-24 15:43:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b03832d5d0 
								
							 
						 
						
							
							
								
								Add new BreakCriticalEdges pass  
							
							 
							
							... 
							
							
							
							llvm-svn: 3903 
							
						 
						
							2002-09-24 00:08:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								555518c70f 
								
							 
						 
						
							
							
								
								Optimize away cases like:  
							
							 
							
							... 
							
							
							
							%cast109 = cast uint %cast212 to short          ; <short> [#uses=1]
        %cast214 = cast short %cast109 to uint          ; <uint> [#uses=1]
        %cast215 = cast uint %cast214 to short          ; <short> [#uses=1]
llvm-svn: 3897 
							
						 
						
							2002-09-23 23:39:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7ccb217f21 
								
							 
						 
						
							
							
								
								* Fix bug: CorrelatedExprs/2002-09-23-PHIUpdateBug.ll  
							
							 
							
							... 
							
							
							
							* Make sure "Changed" is updated correctly
llvm-svn: 3891 
							
						 
						
							2002-09-23 20:06:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a8339e3613 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/InstCombine/2002-09-17-GetElementPtrCrash.ll  
							
							 
							
							... 
							
							
							
							Thanks to Casey for finding it!
llvm-svn: 3783 
							
						 
						
							2002-09-17 21:05:42 +00:00  
						
					 
				
					
						
							
							
								 
								Vikram S. Adve
							
						 
						
							 
							
							
							
							
								
							
							
								dba59921d7 
								
							 
						 
						
							
							
								
								Extract most of the transformation into an externally accessible  
							
							 
							
							... 
							
							
							
							function -- DecomposeArrayRef(GetElementPtrInst* GEP) -- that can
be invoked on a single instruction at a time.
llvm-svn: 3755 
							
						 
						
							2002-09-16 16:40:07 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								2e8086f046 
								
							 
						 
						
							
							
								
								Function.h is unnecessary when Module.h is included.  
							
							 
							
							... 
							
							
							
							llvm-svn: 3716 
							
						 
						
							2002-09-14 03:04:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								136dab7d86 
								
							 
						 
						
							
							
								
								- Change getelementptr instruction to use long indexes instead of uint  
							
							 
							
							... 
							
							
							
							indexes for sequential types.
llvm-svn: 3682 
							
						 
						
							2002-09-11 01:21:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cbc532603a 
								
							 
						 
						
							
							
								
								Fix the last of the silly bugs I just introduced.  :(  
							
							 
							
							... 
							
							
							
							llvm-svn: 3674 
							
						 
						
							2002-09-10 23:46:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								55f3d94b40 
								
							 
						 
						
							
							
								
								Add cannonicalization of shl X, 1 -> add X, X  
							
							 
							
							... 
							
							
							
							llvm-svn: 3671 
							
						 
						
							2002-09-10 23:04:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a239e6879d 
								
							 
						 
						
							
							
								
								Clean up code due to auto-insert constructors  
							
							 
							
							... 
							
							
							
							llvm-svn: 3665 
							
						 
						
							2002-09-10 22:38:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								28a8d2468a 
								
							 
						 
						
							
							
								
								Simplify code (somtimes dramatically), by using the new "auto-insert" feature  
							
							 
							
							... 
							
							
							
							of instruction constructors.
llvm-svn: 3656 
							
						 
						
							2002-09-10 17:04:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4184bcc701 
								
							 
						 
						
							
							
								
								* Clean up code a little bit  
							
							 
							
							... 
							
							
							
							* Fix bug: test/Regression/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll
llvm-svn: 3644 
							
						 
						
							2002-09-10 05:24:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e103d178c5 
								
							 
						 
						
							
							
								
								Hack unneccesary now that shifts of pointers are no longer legal!  
							
							 
							
							... 
							
							
							
							llvm-svn: 3640 
							
						 
						
							2002-09-10 03:50:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b8bba6f765 
								
							 
						 
						
							
							
								
								Fix Bug: test/Regression/Transforms/InstCombine/2002-09-08-PointerShiftBug.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 3626 
							
						 
						
							2002-09-08 21:39:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bdb147c373 
								
							 
						 
						
							
							
								
								Minor simplification  
							
							 
							
							... 
							
							
							
							llvm-svn: 3619 
							
						 
						
							2002-09-08 18:55:04 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1871472e14 
								
							 
						 
						
							
							
								
								Initial checkin of Correlated Expression Elimination Pass  
							
							 
							
							... 
							
							
							
							llvm-svn: 3599 
							
						 
						
							2002-09-06 18:41:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b0b412e66e 
								
							 
						 
						
							
							
								
								- Renamed Type::isIntegral() to Type::isInteger()  
							
							 
							
							... 
							
							
							
							- Added new method Type::isIntegral() that is the same as isInteger, but
    also accepts bool.
llvm-svn: 3574 
							
						 
						
							2002-09-03 01:08:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								99f48c614d 
								
							 
						 
						
							
							
								
								Add constant prop & DIE to InstCombine, so it cleans up after itself  
							
							 
							
							... 
							
							
							
							llvm-svn: 3568 
							
						 
						
							2002-09-02 04:59:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dd6522e7a0 
								
							 
						 
						
							
							
								
								- Implement SCCP of getelementptr instructions  
							
							 
							
							... 
							
							
							
							- Implement SCCP of globals into ConstantExprs hopefully opening new
   opportunities for more SCCP.
llvm-svn: 3555 
							
						 
						
							2002-08-30 23:39:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1b09a9ab68 
								
							 
						 
						
							
							
								
								Really minor cleanups  
							
							 
							
							... 
							
							
							
							llvm-svn: 3549 
							
						 
						
							2002-08-30 22:53:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b2a31090b1 
								
							 
						 
						
							
							
								
								- GCSE now no longer counts instructions not removed (due to no common  
							
							 
							
							... 
							
							
							
							dominator as being removed)
  - GCSE now uses new Value #'ing interface, instead of dealing with AA itself
  - GCSE worklist implementation much simpler, class cleaned up.
llvm-svn: 3533 
							
						 
						
							2002-08-30 20:22:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								65217ff294 
								
							 
						 
						
							
							
								
								- instcombine demorgan's law: and (not A), (not B) == not (or A, B)  
							
							 
							
							... 
							
							
							
							llvm-svn: 3495 
							
						 
						
							2002-08-23 18:32:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dfb3a2cd07 
								
							 
						 
						
							
							
								
								Eliminated the MemAccessInst class, folding contents into GEP class.  
							
							 
							
							... 
							
							
							
							llvm-svn: 3487 
							
						 
						
							2002-08-22 23:37:20 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a51fa88702 
								
							 
						 
						
							
							
								
								Add capability of using pointer analysis to LICM  
							
							 
							
							... 
							
							
							
							llvm-svn: 3478 
							
						 
						
							2002-08-22 21:39:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								faea121df7 
								
							 
						 
						
							
							
								
								Remove long obsolete comments  
							
							 
							
							... 
							
							
							
							llvm-svn: 3476 
							
						 
						
							2002-08-22 21:25:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								879cb97f63 
								
							 
						 
						
							
							
								
								Convert GCSE pass to use new alias analysis infrastructure  
							
							 
							
							... 
							
							
							
							llvm-svn: 3463 
							
						 
						
							2002-08-22 18:24:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c86203ace3 
								
							 
						 
						
							
							
								
								- Split Dominators.h into Dominators.h & PostDominators.h  
							
							 
							
							... 
							
							
							
							llvm-svn: 3432 
							
						 
						
							2002-08-21 23:43:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6f66bc8016 
								
							 
						 
						
							
							
								
								Remove an optimization that isn't.  
							
							 
							
							... 
							
							
							
							llvm-svn: 3419 
							
						 
						
							2002-08-21 22:10:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b8d6e40ed7 
								
							 
						 
						
							
							
								
								- instcombine (~(a < b)) into (a >= b)  
							
							 
							
							... 
							
							
							
							llvm-svn: 3406 
							
						 
						
							2002-08-20 18:24:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9cd1e66155 
								
							 
						 
						
							
							
								
								- implemented instcombine of phi (X, X, X) -> X  
							
							 
							
							... 
							
							
							
							llvm-svn: 3397 
							
						 
						
							2002-08-20 15:35:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c59af1d257 
								
							 
						 
						
							
							
								
								Promote getelementptr instructions to constexprs if we can.  
							
							 
							
							... 
							
							
							
							llvm-svn: 3368 
							
						 
						
							2002-08-17 22:21:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3732acab85 
								
							 
						 
						
							
							
								
								Handle more cases of cast-of-cast in more general forms.  
							
							 
							
							... 
							
							
							
							llvm-svn: 3347 
							
						 
						
							2002-08-15 16:15:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								313fd77767 
								
							 
						 
						
							
							
								
								Avoid inserting an entry block unless we need it  
							
							 
							
							... 
							
							
							
							llvm-svn: 3336 
							
						 
						
							2002-08-14 21:35:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b80b69cc3e 
								
							 
						 
						
							
							
								
								Fix bug introduced in last checkin due to CastInst not being visible  
							
							 
							
							... 
							
							
							
							llvm-svn: 3327 
							
						 
						
							2002-08-14 18:22:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b193ff8f70 
								
							 
						 
						
							
							
								
								Remove support for NOT instruction  
							
							 
							
							... 
							
							
							
							llvm-svn: 3323 
							
						 
						
							2002-08-14 18:18:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0f4093938a 
								
							 
						 
						
							
							
								
								Remove extra #includes  
							
							 
							
							... 
							
							
							
							llvm-svn: 3322 
							
						 
						
							2002-08-14 18:17:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6e1a1b1289 
								
							 
						 
						
							
							
								
								Remove support for unary operators  
							
							 
							
							... 
							
							
							
							llvm-svn: 3318 
							
						 
						
							2002-08-14 17:53:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8328263606 
								
							 
						 
						
							
							
								
								- Rename ConstantGenericIntegral -> ConstantIntegral  
							
							 
							
							... 
							
							
							
							llvm-svn: 3300 
							
						 
						
							2002-08-13 17:50:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e6794490ec 
								
							 
						 
						
							
							
								
								* Factor a bunch of code by using ReplaceInstUsesWith  
							
							 
							
							... 
							
							
							
							* Move isMaxValue, isMinValue, isAllOnesValue to Constants.h
llvm-svn: 3290 
							
						 
						
							2002-08-12 21:17:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6d14f2a7ae 
								
							 
						 
						
							
							
								
								New functionality for instcombine:  
							
							 
							
							... 
							
							
							
							* New ReplaceInstUsesWith function to factor out tons of common code
     This needs to be used more in the future still, but it's a good start
   * New InsertNewInstBefore to allow multi-instruction replacements
   * Change getMaxValue functions to isAllOnesValue function, which doesn't
     have to CREATE/lookup a new constant.  Also the name is accurate
   * Add new isMaxValue, isMinValue, isMaxValueMinusOne, isMinValuePlusOne
     functions:  This should be moved to Constant* classes eventually
   * Implement xor X, ALLONES -> not X
   * Fold ALL setcc's of booleans away
   * Handle various SetCC's for integers against values at the end of their
     ranges, possibly off by one.  This implements the setcc-strength-reduce.ll
     testcase.
llvm-svn: 3286 
							
						 
						
							2002-08-09 23:47:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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
							
						 
						
							 
							
							
							
							
								
							
							
								650449a1df 
								
							 
						 
						
							
							
								
								Remove extraneous #includes  
							
							 
							
							... 
							
							
							
							llvm-svn: 3262 
							
						 
						
							2002-08-08 19:00:34 +00:00  
						
					 
				
					
						
							
							
								 
								Vikram S. Adve
							
						 
						
							 
							
							
							
							
								
							
							
								4737dd7268 
								
							 
						 
						
							
							
								
								Eliminate cast instructions: use only GEPs in decomposed sequence.  
							
							 
							
							... 
							
							
							
							Don't decompose if there are 2 indices with 0 as first index.
Compute Changed flag correctly in runOnBasicBlock().
llvm-svn: 3233 
							
						 
						
							2002-08-03 13:21:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								650b6da0f9 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/InstCombine/2002-08-02-CastTest.ll  
							
							 
							
							... 
							
							
							
							Implement feature: Cast's can now be converted to bitwise AND expressions.
llvm-svn: 3225 
							
						 
						
							2002-08-02 20:00:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ae7a0d39fd 
								
							 
						 
						
							
							
								
								* Cleanups of instcombine  
							
							 
							
							... 
							
							
							
							- Reenable gep (gep x) -> x
   - Make instcombine do dead instruction elimination where it's really
     easy.  Now visitors don't have to ensure they aren't not processing
     dead instructions.
llvm-svn: 3222 
							
						 
						
							2002-08-02 19:29:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f56bd89918 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/GCSE/2002-05-21-NoSharedDominator.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 3215 
							
						 
						
							2002-08-02 18:06:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								33fca976ee 
								
							 
						 
						
							
							
								
								* Fix bug: test/Regression/Transforms/ADCE/2002-07-17-AssertionFailure.ll  
							
							 
							
							... 
							
							
							
							which was caused by us not running the "drop references of dead
  instructions" code when there were no basic blocks that were dead.
  We still don't want to do some of the stuff we do if there are dead
  basic blocks, but we DO want to drop references of dead instructions,
  so we factor the common code out to a new method.
llvm-svn: 3137 
							
						 
						
							2002-07-30 00:22:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3be5d0b892 
								
							 
						 
						
							
							
								
								Add code to ensure that no PHI nodes are left laying around with their  
							
							 
							
							... 
							
							
							
							arguments dropped.  This fixes bug:
   test/Regression/Transforms/ADCE/2002-07-17-PHIAssertion.ll
llvm-svn: 3134 
							
						 
						
							2002-07-29 23:40:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ee420b7f9d 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/ADCE/2002-07-29-Segfault.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 3129 
							
						 
						
							2002-07-29 22:31:39 +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
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								64eea749de 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							 
							
							... 
							
							
							
							llvm-svn: 3105 
							
						 
						
							2002-07-26 18:40:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								10073a9080 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							 
							
							... 
							
							
							
							llvm-svn: 3075 
							
						 
						
							2002-07-25 06:17:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								42706e4dec 
								
							 
						 
						
							
							
								
								Merge ChangeAllocations into scalar.h  
							
							 
							
							... 
							
							
							
							llvm-svn: 3038 
							
						 
						
							2002-07-23 22:04:17 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b28b680155 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							 
							
							... 
							
							
							
							llvm-svn: 3016 
							
						 
						
							2002-07-23 18:06:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6788f25f99 
								
							 
						 
						
							
							
								
								* Remove getPassName implementation  
							
							 
							
							... 
							
							
							
							* Register all Passes
llvm-svn: 3015 
							
						 
						
							2002-07-23 18:06:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a896b08b5c 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							 
							
							... 
							
							
							
							llvm-svn: 3002 
							
						 
						
							2002-07-23 17:52:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b2c5cb2525 
								
							 
						 
						
							
							
								
								Disable folding g-e-p instructions into loads and stores.  
							
							 
							
							... 
							
							
							
							llvm-svn: 2870 
							
						 
						
							2002-07-10 22:37:17 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								33422fedc2 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							 
							
							... 
							
							
							
							llvm-svn: 2813 
							
						 
						
							2002-06-30 16:25:25 +00:00  
						
					 
				
					
						
							
							
								 
								Anand Shukla
							
						 
						
							 
							
							
							
							
								
							
							
								2bc6419a82 
								
							 
						 
						
							
							
								
								changes to make it compatible with 64bit gcc  
							
							 
							
							... 
							
							
							
							llvm-svn: 2792 
							
						 
						
							2002-06-25 21:07:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								113f4f4609 
								
							 
						 
						
							
							
								
								MEGAPATCH checkin.  
							
							 
							
							... 
							
							
							
							For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779 
							
						 
						
							2002-06-25 16:13:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ab038d44b0 
								
							 
						 
						
							
							
								
								Simplify the interface to local DCE and Constant prop  
							
							 
							
							... 
							
							
							
							llvm-svn: 2749 
							
						 
						
							2002-05-26 20:18:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9c2765d4aa 
								
							 
						 
						
							
							
								
								Fold add X, 0 for floating point types as well  
							
							 
							
							... 
							
							
							
							llvm-svn: 2734 
							
						 
						
							2002-05-23 17:11:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								559f0ee9c9 
								
							 
						 
						
							
							
								
								Fix and implement ADCE to finally work!  
							
							 
							
							... 
							
							
							
							llvm-svn: 2720 
							
						 
						
							2002-05-22 21:32:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fa7dad8cd5 
								
							 
						 
						
							
							
								
								New CFG Simplification pass: removed from the old DCE pass  
							
							 
							
							... 
							
							
							
							llvm-svn: 2700 
							
						 
						
							2002-05-21 20:49:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								170ed7b6a3 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Transforms/InstCombine/2002-05-14-SubFailure.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 2627 
							
						 
						
							2002-05-14 16:44:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d38ddb1164 
								
							 
						 
						
							
							
								
								Implement elimination of loads  
							
							 
							
							... 
							
							
							
							llvm-svn: 2620 
							
						 
						
							2002-05-14 05:02:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7ab51787ca 
								
							 
						 
						
							
							
								
								Trivial cleanups  
							
							 
							
							... 
							
							
							
							llvm-svn: 2617 
							
						 
						
							2002-05-13 22:04:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6ec05f551c 
								
							 
						 
						
							
							
								
								Initial checkin of LICM pass  
							
							 
							
							... 
							
							
							
							llvm-svn: 2615 
							
						 
						
							2002-05-10 22:44:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bad1b4dfce 
								
							 
						 
						
							
							
								
								Fix some bugs, straighten stuff out, more work needs to be done.  
							
							 
							
							... 
							
							
							
							llvm-svn: 2600 
							
						 
						
							2002-05-10 15:37:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								014ee634ce 
								
							 
						 
						
							
							
								
								Initial checkin of the PiNodeInsertion pass  
							
							 
							
							... 
							
							
							
							llvm-svn: 2593 
							
						 
						
							2002-05-10 05:41:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1fc23f382e 
								
							 
						 
						
							
							
								
								Handle setcc <global*>, 0 instructions, Global pointers are never null!  
							
							 
							
							... 
							
							
							
							llvm-svn: 2582 
							
						 
						
							2002-05-09 20:11:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ad3c495225 
								
							 
						 
						
							
							
								
								Add ability to transform (x - (y - z)) into (x + (z - y))  
							
							 
							
							... 
							
							
							
							llvm-svn: 2566 
							
						 
						
							2002-05-09 01:29:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								147e975c43 
								
							 
						 
						
							
							
								
								* Combine: A-(-B) -> A + B  
							
							 
							
							... 
							
							
							
							* Bugfix:  A + -B and -A + B
llvm-svn: 2561 
							
						 
						
							2002-05-08 22:46:53 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c0f5800678 
								
							 
						 
						
							
							
								
								Initial checkin of expression reassociation pass  
							
							 
							
							... 
							
							
							
							llvm-svn: 2559 
							
						 
						
							2002-05-08 22:19:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b4cfa7ff97 
								
							 
						 
						
							
							
								
								Merge all individual .h files into a single Scalar.h file  
							
							 
							
							... 
							
							
							
							llvm-svn: 2537 
							
						 
						
							2002-05-07 20:03:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								77f791dd5b 
								
							 
						 
						
							
							
								
								Split ChangeAllocations.cpp into Raise & LowerAllocations.cpp  
							
							 
							
							... 
							
							
							
							llvm-svn: 2529 
							
						 
						
							2002-05-07 19:02:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9b55e5a2f4 
								
							 
						 
						
							
							
								
								Reduce dependance on TransformInternals.h, instead using the TransformUtils library  
							
							 
							
							... 
							
							
							
							llvm-svn: 2518 
							
						 
						
							2002-05-07 18:12:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3d86d49604 
								
							 
						 
						
							
							
								
								Add #include no longer included by llvm/Transforms/Scalar/ConstantProp.h  
							
							 
							
							... 
							
							
							
							llvm-svn: 2517 
							
						 
						
							2002-05-07 18:11:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								560da70f8c 
								
							 
						 
						
							
							
								
								Factor code out to the TransformUtils library  
							
							 
							
							... 
							
							
							
							llvm-svn: 2516 
							
						 
						
							2002-05-07 18:10:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a6e047a5d9 
								
							 
						 
						
							
							
								
								Only do masking for unsigned values!  
							
							 
							
							... 
							
							
							
							llvm-svn: 2504 
							
						 
						
							2002-05-06 18:54:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bbbdd852b8 
								
							 
						 
						
							
							
								
								Handle X = phi Y  --> X = Y  
							
							 
							
							... 
							
							
							
							llvm-svn: 2501 
							
						 
						
							2002-05-06 18:06:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								019f3649bd 
								
							 
						 
						
							
							
								
								Clean up ADCE by removing extraneous wrapper class  
							
							 
							
							... 
							
							
							
							llvm-svn: 2494 
							
						 
						
							2002-05-06 17:27:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5d6bec5e26 
								
							 
						 
						
							
							
								
								Combine not (not X) -> X  
							
							 
							
							... 
							
							
							
							llvm-svn: 2493 
							
						 
						
							2002-05-06 17:03:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9fa53de7e9 
								
							 
						 
						
							
							
								
								Support more cases...  
							
							 
							
							... 
							
							
							
							llvm-svn: 2490 
							
						 
						
							2002-05-06 16:49:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f4cdbf34e5 
								
							 
						 
						
							
							
								
								Add many more instruction combination simplifications  
							
							 
							
							... 
							
							
							
							llvm-svn: 2484 
							
						 
						
							2002-05-06 16:14:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								940daedc22 
								
							 
						 
						
							
							
								
								Implement constant propogation of shift instructions  
							
							 
							
							... 
							
							
							
							llvm-svn: 2471 
							
						 
						
							2002-05-06 03:01:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dd390e1736 
								
							 
						 
						
							
							
								
								Oops, disable debugging code all the way.  :)  
							
							 
							
							... 
							
							
							
							llvm-svn: 2447 
							
						 
						
							2002-05-02 21:47:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								31ba129cbe 
								
							 
						 
						
							
							
								
								Add folding rules for mul X, 0 and mul X, 2  
							
							 
							
							... 
							
							
							
							llvm-svn: 2417 
							
						 
						
							2002-04-29 22:24:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								27eeecbb69 
								
							 
						 
						
							
							
								
								Range insertion now returns an iterator  
							
							 
							
							... 
							
							
							
							llvm-svn: 2414 
							
						 
						
							2002-04-29 21:25:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d5a847057b 
								
							 
						 
						
							
							
								
								Eliminate duplicate or unneccesary #include's  
							
							 
							
							... 
							
							
							
							llvm-svn: 2397 
							
						 
						
							2002-04-29 17:42:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2dfc667a7d 
								
							 
						 
						
							
							
								
								Remove broken assertion.  
							
							 
							
							... 
							
							
							
							llvm-svn: 2396 
							
						 
						
							2002-04-29 16:20:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8d843f6b77 
								
							 
						 
						
							
							
								
								More cleanups  
							
							 
							
							... 
							
							
							
							llvm-svn: 2392 
							
						 
						
							2002-04-29 01:58:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fc1a433dae 
								
							 
						 
						
							
							
								
								Code cleanups  
							
							 
							
							... 
							
							
							
							llvm-svn: 2391 
							
						 
						
							2002-04-29 01:22:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ca14237696 
								
							 
						 
						
							
							
								
								Split ConstantVals.h into Constant.h and Constants.h  
							
							 
							
							... 
							
							
							
							llvm-svn: 2378 
							
						 
						
							2002-04-28 19:55:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1467f64f01 
								
							 
						 
						
							
							
								
								Initial checkin of simple&fast SSA based GCSE algorithm  
							
							 
							
							... 
							
							
							
							llvm-svn: 2338 
							
						 
						
							2002-04-28 00:47:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2716b5e524 
								
							 
						 
						
							
							
								
								Change Constant::getNullConstant to Constant::getNullValue  
							
							 
							
							... 
							
							
							
							llvm-svn: 2323 
							
						 
						
							2002-04-27 02:25:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6e56079654 
								
							 
						 
						
							
							
								
								Convert SCCP over to use InstVisitor instead of hand crafted switch  
							
							 
							
							... 
							
							
							
							llvm-svn: 2286 
							
						 
						
							2002-04-18 15:13:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5873900709 
								
							 
						 
						
							
							
								
								GEP instructions can never be constant propogated.  
							
							 
							
							... 
							
							
							
							llvm-svn: 2284 
							
						 
						
							2002-04-18 14:44:13 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f40379e403 
								
							 
						 
						
							
							
								
								Store instructions always return void, so they never get a name  
							
							 
							
							... 
							
							
							
							llvm-svn: 2283 
							
						 
						
							2002-04-18 14:43:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3a60d04722 
								
							 
						 
						
							
							
								
								Eliminate cast of same type instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 2251 
							
						 
						
							2002-04-15 19:45:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2e9fa6d101 
								
							 
						 
						
							
							
								
								Move FunctionArgument out of iOther.h into Argument.h and rename class to  
							
							 
							
							... 
							
							
							
							be 'Argument' instead of FunctionArgument.
llvm-svn: 2216 
							
						 
						
							2002-04-09 19:48:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d92b01c385 
								
							 
						 
						
							
							
								
								Add #includes to make up for #includes pruned out of header files.  
							
							 
							
							... 
							
							
							
							llvm-svn: 2207 
							
						 
						
							2002-04-09 18:37:46 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f8e4dc33ab 
								
							 
						 
						
							
							
								
								s/Method/Function  
							
							 
							
							... 
							
							
							
							Remove extraneous #includes of llvm/Assembly/Writer
llvm-svn: 2178 
							
						 
						
							2002-04-08 22:03:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								65b529fe6d 
								
							 
						 
						
							
							
								
								ConstantHandling moved into VMCore library  
							
							 
							
							... 
							
							
							
							llvm-svn: 2165 
							
						 
						
							2002-04-08 20:18:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c13563d5c0 
								
							 
						 
						
							
							
								
								Simplify code a lot by using the Module::getFunction & getOrInsertFunction  
							
							 
							
							... 
							
							
							
							llvm-svn: 2028 
							
						 
						
							2002-03-29 03:38:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								57698e2c0b 
								
							 
						 
						
							
							
								
								Change references from Method to Function  
							
							 
							
							... 
							
							
							
							change references from MethodARgument to FunctionArgument
llvm-svn: 1991 
							
						 
						
							2002-03-26 18:01:55 +00:00  
						
					 
				
					
						
							
							
								 
								Vikram S. Adve
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Vikram S. Adve
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bee86626e1 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Other/2002-03-11-InstCombineHang.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 1864 
							
						 
						
							2002-03-11 23:28:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								477fe0845a 
								
							 
						 
						
							
							
								
								Fix bug: test/Regression/Other/2002-03-11-ConstPropCrash.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 1858 
							
						 
						
							2002-03-11 22:11:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								352151e222 
								
							 
						 
						
							
							
								
								MethodPass's are now guaranteed to not be run on external methods!  
							
							 
							
							... 
							
							
							
							llvm-svn: 1611 
							
						 
						
							2002-01-31 00:51:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d5d56780e2 
								
							 
						 
						
							
							
								
								Convert xforms over to new pass structure.  
							
							 
							
							... 
							
							
							
							llvm-svn: 1605 
							
						 
						
							2002-01-31 00:45:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d5851db315 
								
							 
						 
						
							
							
								
								Remove extraneous #includes  
							
							 
							
							... 
							
							
							
							llvm-svn: 1588 
							
						 
						
							2002-01-26 22:47:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7209dc2446 
								
							 
						 
						
							
							
								
								Remove opt namespace  
							
							 
							
							... 
							
							
							
							llvm-svn: 1587 
							
						 
						
							2002-01-26 22:47:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ccbd4e4643 
								
							 
						 
						
							
							
								
								Implement new DeadInstElmination pass  
							
							 
							
							... 
							
							
							
							remove old comment
llvm-svn: 1555 
							
						 
						
							2002-01-23 05:48:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								70090079e7 
								
							 
						 
						
							
							
								
								Don't insert a useless cast  
							
							 
							
							... 
							
							
							
							llvm-svn: 1527 
							
						 
						
							2002-01-22 03:30:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d07471d6c3 
								
							 
						 
						
							
							
								
								LowerAllocations is really a BasicBlock pass.  Make it so.  
							
							 
							
							... 
							
							
							
							llvm-svn: 1521 
							
						 
						
							2002-01-21 23:34:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7f74a56e24 
								
							 
						 
						
							
							
								
								Changes to build successfully with GCC 3.02  
							
							 
							
							... 
							
							
							
							llvm-svn: 1503 
							
						 
						
							2002-01-20 22:54:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ca081257e5 
								
							 
						 
						
							
							
								
								initial checkin  
							
							 
							
							... 
							
							
							
							llvm-svn: 1480 
							
						 
						
							2001-12-14 16:52:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b3364fc169 
								
							 
						 
						
							
							
								
								Remove unsized array support  
							
							 
							
							... 
							
							
							
							llvm-svn: 1466 
							
						 
						
							2001-12-14 16:38:04 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f5c6f65e7f 
								
							 
						 
						
							
							
								
								Assertion could never fail because another one would in it's place.  :)  
							
							 
							
							... 
							
							
							
							llvm-svn: 1449 
							
						 
						
							2001-12-13 00:45:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								674394077f 
								
							 
						 
						
							
							
								
								Actually return true when a change has been made  
							
							 
							
							... 
							
							
							
							llvm-svn: 1425 
							
						 
						
							2001-12-05 19:41:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								25b151dfdf 
								
							 
						 
						
							
							
								
								Fix a bug introduced by "internal linkage" work.  
							
							 
							
							... 
							
							
							
							llvm-svn: 1415 
							
						 
						
							2001-12-04 18:01:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d23d752dc5 
								
							 
						 
						
							
							
								
								Fix bugs, don't do external methods which causes segv.  
							
							 
							
							... 
							
							
							
							llvm-svn: 1414 
							
						 
						
							2001-12-04 08:13:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								91daaabb56 
								
							 
						 
						
							
							
								
								Implement induction variable simplification  
							
							 
							
							... 
							
							
							
							llvm-svn: 1411 
							
						 
						
							2001-12-04 04:32:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3462ae3ad7 
								
							 
						 
						
							
							
								
								Rename ConstPoolVal -> Constant  
							
							 
							
							... 
							
							
							
							Rename ConstPool*   -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
llvm-svn: 1407 
							
						 
						
							2001-12-03 22:26:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								476e6df794 
								
							 
						 
						
							
							
								
								Initial checkin of indvar stuff  
							
							 
							
							... 
							
							
							
							llvm-svn: 1404 
							
						 
						
							2001-12-03 17:28:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c4ad64cb9c 
								
							 
						 
						
							
							
								
								Misc cleanups  
							
							 
							
							... 
							
							
							
							llvm-svn: 1377 
							
						 
						
							2001-11-26 18:57:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1f86880af4 
								
							 
						 
						
							
							
								
								Expose constant propogation of an instruction in a clean way  
							
							 
							
							... 
							
							
							
							llvm-svn: 1376 
							
						 
						
							2001-11-26 18:57:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3b7199e36c 
								
							 
						 
						
							
							
								
								Add #includes to enable buiding in Release mode  
							
							 
							
							... 
							
							
							
							llvm-svn: 1174 
							
						 
						
							2001-11-07 13:49:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								033324fc0c 
								
							 
						 
						
							
							
								
								Avoid making a broken transformation!  
							
							 
							
							... 
							
							
							
							llvm-svn: 1115 
							
						 
						
							2001-11-03 21:30:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								04648a4cc6 
								
							 
						 
						
							
							
								
								Simplify DCE code a lot  
							
							 
							
							... 
							
							
							
							llvm-svn: 1079 
							
						 
						
							2001-11-01 05:55:29 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7e6a0d8c17 
								
							 
						 
						
							
							
								
								Use the correct prototype for malloc and free  
							
							 
							
							... 
							
							
							
							llvm-svn: 1066 
							
						 
						
							2001-10-31 06:36:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9db8b765cd 
								
							 
						 
						
							
							
								
								Implemented constant propogation of cast instructions  
							
							 
							
							... 
							
							
							
							llvm-svn: 1064 
							
						 
						
							2001-10-31 05:07:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6fea0324d7 
								
							 
						 
						
							
							
								
								Convert to new simpler pass itf  
							
							 
							
							... 
							
							
							
							llvm-svn: 880 
							
						 
						
							2001-10-18 05:27:33 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5398a6eb6c 
								
							 
						 
						
							
							
								
								Convert optimizations to the pass infrastructure  
							
							 
							
							... 
							
							
							
							llvm-svn: 873 
							
						 
						
							2001-10-18 01:32:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1bb5f8e4ee 
								
							 
						 
						
							
							
								
								Add new Pass infrastructure and some examples  
							
							 
							
							... 
							
							
							
							llvm-svn: 836 
							
						 
						
							2001-10-15 17:31:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f0b68888af 
								
							 
						 
						
							
							
								
								Support the invoke instruction  
							
							 
							
							... 
							
							
							
							llvm-svn: 765 
							
						 
						
							2001-10-13 06:52:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								da55810666 
								
							 
						 
						
							
							
								
								Commit more code over to new cast style  
							
							 
							
							... 
							
							
							
							llvm-svn: 697 
							
						 
						
							2001-10-02 03:41:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4b717c0edc 
								
							 
						 
						
							
							
								
								Add support for new style casts  
							
							 
							
							... 
							
							
							
							llvm-svn: 694 
							
						 
						
							2001-10-01 16:18:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b271be3185 
								
							 
						 
						
							
							
								
								ADCE is broken but at least we know why  
							
							 
							
							... 
							
							
							
							llvm-svn: 656 
							
						 
						
							2001-09-28 00:06:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d707ec62b6 
								
							 
						 
						
							
							
								
								Types and constants are wierd things in symbol tables now  
							
							 
							
							... 
							
							
							
							llvm-svn: 457 
							
						 
						
							2001-09-07 16:43:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6d7bce9f3c 
								
							 
						 
						
							
							
								
								Constants are now global unique objects  
							
							 
							
							... 
							
							
							
							llvm-svn: 454 
							
						 
						
							2001-09-07 16:42:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								07e158de3c 
								
							 
						 
						
							
							
								
								* Eliminate constant pool dependancies:  
							
							 
							
							... 
							
							
							
							* Eliminate DoRemoveUnusedConstants
llvm-svn: 453 
							
						 
						
							2001-09-07 16:42:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b62b602fe2 
								
							 
						 
						
							
							
								
								Enable the elimination of method prototypes that are not referenced  
							
							 
							
							... 
							
							
							
							llvm-svn: 325 
							
						 
						
							2001-07-28 17:51:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e2472bbf6c 
								
							 
						 
						
							
							
								
								Moved inline/llvm/Tools/* to include/llvm/Support/*  
							
							 
							
							... 
							
							
							
							llvm-svn: 279 
							
						 
						
							2001-07-23 17:46:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3e37ec7c0a 
								
							 
						 
						
							
							
								
								Support external methods  
							
							 
							
							... 
							
							
							
							llvm-svn: 200 
							
						 
						
							2001-07-15 21:43:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5451c9e977 
								
							 
						 
						
							
							
								
								Add knowledge about the struct form of the GetElementPtr instruction  
							
							 
							
							... 
							
							
							
							llvm-svn: 183 
							
						 
						
							2001-07-14 06:11:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5b1200bf8e 
								
							 
						 
						
							
							
								
								Remove dependency on the structure of ValueHolder.  
							
							 
							
							... 
							
							
							
							llvm-svn: 182 
							
						 
						
							2001-07-14 06:11:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								31feae8550 
								
							 
						 
						
							
							
								
								Implement checking for new instructions  
							
							 
							
							... 
							
							
							
							llvm-svn: 163 
							
						 
						
							2001-07-08 21:18:49 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fb8ed0cf3a 
								
							 
						 
						
							
							
								
								Use the CDG to mark branches alive on demand.  
							
							 
							
							... 
							
							
							
							llvm-svn: 159 
							
						 
						
							2001-07-08 18:38:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a682182f64 
								
							 
						 
						
							
							
								
								Neg instruction removed.  Cast instruction implemented.  
							
							 
							
							... 
							
							
							
							llvm-svn: 156 
							
						 
						
							2001-07-08 04:57:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8024bde7c7 
								
							 
						 
						
							
							
								
								Update to include right file  
							
							 
							
							... 
							
							
							
							llvm-svn: 138 
							
						 
						
							2001-07-06 16:32:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1960b3c6d2 
								
							 
						 
						
							
							
								
								Rename DoSparseConditionalConstantProp -> DoSCCP  
							
							 
							
							... 
							
							
							
							llvm-svn: 117 
							
						 
						
							2001-06-30 06:37:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7ce8b17e60 
								
							 
						 
						
							
							
								
								Export ConstantFoldTerminator, allow it to fold conditional branches to  
							
							 
							
							... 
							
							
							
							the same label.
llvm-svn: 107 
							
						 
						
							2001-06-29 23:56:58 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								10b250eb4d 
								
							 
						 
						
							
							
								
								Added documentation.  Constant fold terminators.  
							
							 
							
							... 
							
							
							
							llvm-svn: 106 
							
						 
						
							2001-06-29 23:56:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								347389dae8 
								
							 
						 
						
							
							
								
								Add a new Sparse Conditional Constant Propogation pass  
							
							 
							
							... 
							
							
							
							llvm-svn: 95 
							
						 
						
							2001-06-27 23:38:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1a67fb8860 
								
							 
						 
						
							
							
								
								Misc cleanup  
							
							 
							
							... 
							
							
							
							llvm-svn: 91 
							
						 
						
							2001-06-27 23:36:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dbdaaef7d5 
								
							 
						 
						
							
							
								
								Implement induction variable injection!  
							
							 
							
							... 
							
							
							
							llvm-svn: 75 
							
						 
						
							2001-06-25 07:32:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f64a8936e5 
								
							 
						 
						
							
							
								
								#include a different header due to Intervals.h splitting up  
							
							 
							
							... 
							
							
							
							llvm-svn: 63 
							
						 
						
							2001-06-24 04:05:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								778de94723 
								
							 
						 
						
							
							
								
								Get rid of a silly printout that isn't needed right now  
							
							 
							
							... 
							
							
							
							llvm-svn: 45 
							
						 
						
							2001-06-20 23:09:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f86e38e452 
								
							 
						 
						
							
							
								
								Add capability to print a derived interval graph  
							
							 
							
							... 
							
							
							
							llvm-svn: 42 
							
						 
						
							2001-06-20 22:44:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d286a997d3 
								
							 
						 
						
							
							
								
								Add a test case for interval code  
							
							 
							
							... 
							
							
							
							llvm-svn: 36 
							
						 
						
							2001-06-20 19:27:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5ba5f88c35 
								
							 
						 
						
							
							
								
								Updates to work with new cfg namespace  
							
							 
							
							... 
							
							
							
							llvm-svn: 29 
							
						 
						
							2001-06-13 19:55:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								874ddadf72 
								
							 
						 
						
							
							
								
								Updates to support  
							
							 
							
							... 
							
							
							
							* Changes in PHI node structure
llvm-svn: 25 
							
						 
						
							2001-06-11 15:04:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7e0d6e05ac 
								
							 
						 
						
							
							
								
								Updated to work with new CFG.h file.  
							
							 
							
							... 
							
							
							
							llvm-svn: 15 
							
						 
						
							2001-06-07 21:18:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2f7c963559 
								
							 
						 
						
							
							
								
								Initial revision  
							
							 
							
							... 
							
							
							
							llvm-svn: 2 
							
						 
						
							2001-06-06 20:29:01 +00:00