f5b32e52db 
								
							 
						 
						
							
							
								
								SplitBlockPredecessors uses ArrayRef instead of Data and Size.  
							
							... 
							
							
							
							llvm-svn: 146277 
							
						 
						
							2011-12-09 21:19:53 +00:00  
				
					
						
							
							
								 
						
							
								c24b86ffbe 
								
							 
						 
						
							
							
								
								Propagate TargetLibraryInfo throughout ConstantFolding.cpp and  
							
							... 
							
							
							
							InstructionSimplify.cpp.  Other fixups as needed.
Part of rdar://10500969
llvm-svn: 145559 
							
						 
						
							2011-12-01 03:08:23 +00:00  
				
					
						
							
							
								 
						
							
								31798ef3c0 
								
							 
						 
						
							
							
								
								Potential bug in RewriteLoopBodyWithConditionConstant: use iterator should not be changed inside the uses enumeration loop.  
							
							... 
							
							
							
							llvm-svn: 145432 
							
						 
						
							2011-11-29 20:34:39 +00:00  
				
					
						
							
							
								 
						
							
								547b6c5ecd 
								
							 
						 
						
							
							
								
								Stop emitting instructions with the name "tmp" they eat up memory and have to be uniqued, without any benefit.  
							
							... 
							
							
							
							If someone prefers %tmp42 to %42, run instnamer.
llvm-svn: 140634 
							
						 
						
							2011-09-27 20:39:19 +00:00  
				
					
						
							
							
								 
						
							
								90f90da156 
								
							 
						 
						
							
							
								
								Split the landing pad basic block with the correct function. Also merge the  
							
							... 
							
							
							
							split landingpad instructions into a PHI node.
PR11016
llvm-svn: 140592 
							
						 
						
							2011-09-27 00:59:31 +00:00  
				
					
						
							
							
								 
						
							
								61ea0e4692 
								
							 
						 
						
							
							
								
								Reinstate r133513 (reverted in r133700) with an additional fix for a  
							
							... 
							
							
							
							-Wshorten-64-to-32 warning in Instructions.h.
llvm-svn: 133708 
							
						 
						
							2011-06-23 09:09:15 +00:00  
				
					
						
							
							
								 
						
							
								96513120b7 
								
							 
						 
						
							
							
								
								Revert r133513:  
							
							... 
							
							
							
							"Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512)."
Due to some additional warnings.
llvm-svn: 133700 
							
						 
						
							2011-06-23 06:24:52 +00:00  
				
					
						
							
							
								 
						
							
								a97a2c998e 
								
							 
						 
						
							
							
								
								Reinstate r133435 and r133449 (reverted in r133499) now that the clang  
							
							... 
							
							
							
							self-hosted build failure has been fixed (r133512).
llvm-svn: 133513 
							
						 
						
							2011-06-21 10:33:19 +00:00  
				
					
						
							
							
								 
						
							
								184f3b37e2 
								
							 
						 
						
							
							
								
								Revert r133435 and r133449 to appease buildbots.  
							
							... 
							
							
							
							llvm-svn: 133499 
							
						 
						
							2011-06-21 02:09:03 +00:00  
				
					
						
							
							
								 
						
							
								e03c05c35a 
								
							 
						 
						
							
							
								
								Change how PHINodes store their operands.  
							
							... 
							
							
							
							Change PHINodes to store simple pointers to their incoming basic blocks,
instead of full-blown Uses.
Note that this loses an optimization in SplitCriticalEdge(), because we
can no longer walk the use list of a BasicBlock to find phi nodes. See
the comment I removed starting "However, the foreach loop is slow for
blocks with lots of predecessors".
Extend replaceAllUsesWith() on a BasicBlock to also update any phi
nodes in the block's successors. This mimics what would have happened
when PHINodes were proper Users of their incoming blocks. (Note that
this only works if OldBB->replaceAllUsesWith(NewBB) is called when
OldBB still has a terminator instruction, so it still has some
successors.)
llvm-svn: 133435 
							
						 
						
							2011-06-20 14:38:01 +00:00  
				
					
						
							
							
								 
						
							
								611582401f 
								
							 
						 
						
							
							
								
								Bail on unswitching a switch statement for a case with a critical edge. We name  
							
							... 
							
							
							
							which edge to split by pred/succ pair, which means that we can end up splitting
the wrong edge (by case value) in the switch statement entirely. Fixes PR10031!
llvm-svn: 132535 
							
						 
						
							2011-06-03 06:27:15 +00:00  
				
					
						
							
							
								 
						
							
								9605a698b0 
								
							 
						 
						
							
							
								
								Simplify r132022 based on Cameron's feedback.  
							
							... 
							
							
							
							llvm-svn: 132071 
							
						 
						
							2011-05-25 18:17:13 +00:00  
				
					
						
							
							
								 
						
							
								73e6c09d5e 
								
							 
						 
						
							
							
								
								Forgot dyn_cast check.  
							
							... 
							
							
							
							llvm-svn: 132025 
							
						 
						
							2011-05-24 23:47:50 +00:00  
				
					
						
							
							
								 
						
							
								1b55f56b01 
								
							 
						 
						
							
							
								
								Fix LoopUnswitch bug. RewriteLoopBodyWithConditionConstant can delete a dead  
							
							... 
							
							
							
							case of a switch instruction. Back off this optimization when this would
eliminate all of the predecessors to the latch.
Sorry, I am unable to reduce a reasonably sized test case.
rdar://9486843
llvm-svn: 132022 
							
						 
						
							2011-05-24 23:12:57 +00:00  
				
					
						
							
							
								 
						
							
								99de19b3cb 
								
							 
						 
						
							
							
								
								Make LoopUnswitch preserve ScalarEvolution by just forgetting everything about  
							
							... 
							
							
							
							a loop when unswitching it. It only does this in the complex case, because
everything should be fine already in the simple case.
llvm-svn: 125369 
							
						 
						
							2011-02-11 06:08:28 +00:00  
				
					
						
							
							
								 
						
							
								43f8d16482 
								
							 
						 
						
							
							
								
								Revamp the ValueMapper interfaces in a couple ways:  
							
							... 
							
							
							
							1. Take a flags argument instead of a bool.  This makes
   it more clear to the reader what it is used for.
2. Add a flag that says that "remapping a value not in the
   map is ok".
3. Reimplement MapValue to share a bunch of code and be a lot
   more efficient.  For lookup failures, don't drop null values
   into the map.
4. Using the new flag a bunch of code can vaporize in LinkModules
   and LoopUnswitch, kill it.
No functionality change.
llvm-svn: 123058 
							
						 
						
							2011-01-08 08:15:20 +00:00  
				
					
						
							
							
								 
						
							
								bb2cd025a9 
								
							 
						 
						
							
							
								
								Constant folding here is pointless, because InstructionSimplify  
							
							... 
							
							
							
							(which does constant folding and more) is called a few lines
later.
llvm-svn: 120042 
							
						 
						
							2010-11-23 20:24:21 +00:00  
				
					
						
							
							
								 
						
							
								aef146b890 
								
							 
						 
						
							
							
								
								Factor code for testing whether replacing one value with another  
							
							... 
							
							
							
							preserves LCSSA form out of ScalarEvolution and into the LoopInfo
class.  Use it to check that SimplifyInstruction simplifications
are not breaking LCSSA form.  Fixes PR8622.
llvm-svn: 119727 
							
						 
						
							2010-11-18 19:59:41 +00:00  
				
					
						
							
							
								 
						
							
								b99f39b9f6 
								
							 
						 
						
							
							
								
								If dom tree information is available, make it possible to pass  
							
							... 
							
							
							
							it to get better phi node simplification.
llvm-svn: 119055 
							
						 
						
							2010-11-14 18:36:10 +00:00  
				
					
						
							
							
								 
						
							
								a4fefc1949 
								
							 
						 
						
							
							
								
								Passes do not need to recursively initialize passes that they preserve, if  
							
							... 
							
							
							
							they do not also require them.  This allows us to reduce inter-pass linkage
dependencies.
llvm-svn: 116854 
							
						 
						
							2010-10-19 20:08:44 +00:00  
				
					
						
							
							
								 
						
							
								6c18d1aac0 
								
							 
						 
						
							
							
								
								Get rid of static constructors for pass registration.  Instead, every pass exposes an initializeMyPassFunction(), which  
							
							... 
							
							
							
							must be called in the pass's constructor.  This function uses static dependency declarations to recursively initialize
the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes.  Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin.  It is possible that there are problems
with the static dependencies that will only be visible with non-standard options.  If you encounter any crash in pass
registration/creation, please send the testcase to me directly.
llvm-svn: 116820 
							
						 
						
							2010-10-19 17:21:58 +00:00  
				
					
						
							
							
								 
						
							
								229e38f0fe 
								
							 
						 
						
							
							
								
								Be more consistent in using ValueToValueMapTy.  
							
							... 
							
							
							
							llvm-svn: 116387 
							
						 
						
							2010-10-13 01:36:30 +00:00  
				
					
						
							
							
								 
						
							
								8ac477ffb5 
								
							 
						 
						
							
							
								
								Begin adding static dependence information to passes, which will allow us to  
							
							... 
							
							
							
							perform initialization without static constructors AND without explicit initialization
by the client.  For the moment, passes are required to initialize both their
(potential) dependencies and any passes they preserve.  I hope to be able to relax
the latter requirement in the future.
llvm-svn: 116334 
							
						 
						
							2010-10-12 19:48:12 +00:00  
				
					
						
							
							
								 
						
							
								df7a4f2515 
								
							 
						 
						
							
							
								
								Now with fewer extraneous semicolons!  
							
							... 
							
							
							
							llvm-svn: 115996 
							
						 
						
							2010-10-07 22:25:06 +00:00  
				
					
						
							
							
								 
						
							
								0ad7d9c24e 
								
							 
						 
						
							
							
								
								Fix loop unswitching's assumption that a code path which either  
							
							... 
							
							
							
							infinite loops or exits will eventually exit. This fixes PR5373.
llvm-svn: 112745 
							
						 
						
							2010-09-01 21:46:45 +00:00  
				
					
						
							
							
								 
						
							
								bc1a65ac6c 
								
							 
						 
						
							
							
								
								apparently unswitch had the same "Feature".  Stop its  
							
							... 
							
							
							
							claims that it preserves domfrontier if it doesn't really.
llvm-svn: 112445 
							
						 
						
							2010-08-29 17:23:19 +00:00  
				
					
						
							
							
								 
						
							
								a7aed18624 
								
							 
						 
						
							
							
								
								Reapply r110396, with fixes to appease the Linux buildbot gods.  
							
							... 
							
							
							
							llvm-svn: 110460 
							
						 
						
							2010-08-06 18:33:48 +00:00  
				
					
						
							
							
								 
						
							
								bda59bd247 
								
							 
						 
						
							
							
								
								Revert r110396 to fix buildbots.  
							
							... 
							
							
							
							llvm-svn: 110410 
							
						 
						
							2010-08-06 00:23:35 +00:00  
				
					
						
							
							
								 
						
							
								755aceb5d0 
								
							 
						 
						
							
							
								
								Don't use PassInfo* as a type identifier for passes.  Instead, use the address of the static  
							
							... 
							
							
							
							ID member as the sole unique type identifier.  Clean up APIs related to this change.
llvm-svn: 110396 
							
						 
						
							2010-08-05 23:42:04 +00:00  
				
					
						
							
							
								 
						
							
								a57b97e7e7 
								
							 
						 
						
							
							
								
								Fix batch of converting RegisterPass<> to INTIALIZE_PASS().  
							
							... 
							
							
							
							llvm-svn: 109045 
							
						 
						
							2010-07-21 22:09:45 +00:00  
				
					
						
							
							
								 
						
							
								0dc3c2d37e 
								
							 
						 
						
							
							
								
								Use ValueMap instead of DenseMap.  
							
							... 
							
							
							
							The ValueMapper used by various cloning utility maps MDNodes also.
llvm-svn: 106706 
							
						 
						
							2010-06-24 00:33:28 +00:00  
				
					
						
							
							
								 
						
							
								9b21208bfb 
								
							 
						 
						
							
							
								
								Pulled CodeMetrics out of InlineCost.h and made it a bit more general, so it can be reused from PartialSpecializationCost  
							
							... 
							
							
							
							llvm-svn: 105725 
							
						 
						
							2010-06-09 15:11:37 +00:00  
				
					
						
							
							
								 
						
							
								66e809acc0 
								
							 
						 
						
							
							
								
								remove a bunch of ad-hoc code to simplify instructions from  
							
							... 
							
							
							
							loop unswitch, and use inst simplify instead.  It is more
powerful and less duplication.
llvm-svn: 101874 
							
						 
						
							2010-04-20 05:33:18 +00:00  
				
					
						
							
							
								 
						
							
								5814d9d9da 
								
							 
						 
						
							
							
								
								RewriteLoopBodyWithConditionConstant can end up rewriting the  
							
							... 
							
							
							
							condition we're unswitching on.  In this case, don't try to
simplify the second copy of the loop which may be dead or not,
but is probably a constant now.  This fixes PR6879
llvm-svn: 101870 
							
						 
						
							2010-04-20 05:09:16 +00:00  
				
					
						
							
							
								 
						
							
								c832c1bf69 
								
							 
						 
						
							
							
								
								some code cleanups, use SwitchInst::findCaseValue, reduce indentation  
							
							... 
							
							
							
							llvm-svn: 100468 
							
						 
						
							2010-04-05 21:18:32 +00:00  
				
					
						
							
							
								 
						
							
								ba930449a9 
								
							 
						 
						
							
							
								
								Code clean up.  
							
							... 
							
							
							
							llvm-svn: 100467 
							
						 
						
							2010-04-05 21:16:25 +00:00  
				
					
						
							
							
								 
						
							
								ed66db3f9b 
								
							 
						 
						
							
							
								
								Code refactoring.  
							
							... 
							
							
							
							llvm-svn: 100262 
							
						 
						
							2010-04-03 02:23:43 +00:00  
				
					
						
							
							
								 
						
							
								2734ebd37f 
								
							 
						 
						
							
							
								
								Add a DominatorTree argument to isLCSSA so that it doesn't have to  
							
							... 
							
							
							
							compute a set of reachable blocks for itself each time it is called, which
is fairly frequently.
llvm-svn: 98179 
							
						 
						
							2010-03-10 19:38:49 +00:00  
				
					
						
							
							
								 
						
							
								19d0b47b1f 
								
							 
						 
						
							
							
								
								There are two ways of checking for a given type, for example isa<PointerType>(T)  
							
							... 
							
							
							
							and T->isPointerTy().  Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344 
							
						 
						
							2010-02-16 11:11:14 +00:00  
				
					
						
							
							
								 
						
							
								9dff9bec31 
								
							 
						 
						
							
							
								
								Uniformize the names of type predicates: rather than having isFloatTy and  
							
							... 
							
							
							
							isInteger, we now have isFloatTy and isIntegerTy.  Requested by Chris!
llvm-svn: 96223 
							
						 
						
							2010-02-15 16:12:20 +00:00  
				
					
						
							
							
								 
						
							
								302240d73e 
								
							 
						 
						
							
							
								
								fix a crash in loop unswitch on a loop invariant vector condition.  
							
							... 
							
							
							
							llvm-svn: 95055 
							
						 
						
							2010-02-02 02:26:54 +00:00  
				
					
						
							
							
								 
						
							
								a81a6dff0d 
								
							 
						 
						
							
							
								
								Convert a ton of simple integer type equality tests to the new predicate.  
							
							... 
							
							
							
							llvm-svn: 92760 
							
						 
						
							2010-01-05 20:07:06 +00:00  
				
					
						
							
							
								 
						
							
								d9c355d590 
								
							 
						 
						
							
							
								
								Change errs() to dbgs().  
							
							... 
							
							
							
							llvm-svn: 92608 
							
						 
						
							2010-01-05 01:27:04 +00:00  
				
					
						
							
							
								 
						
							
								18fa5686f6 
								
							 
						 
						
							
							
								
								Add Loop contains utility methods for testing whether a loop  
							
							... 
							
							
							
							contains another loop, or an instruction. The loop form is
substantially more efficient on large loops than the typical
code it replaces.
llvm-svn: 91654 
							
						 
						
							2009-12-18 01:24:09 +00:00  
				
					
						
							
							
								 
						
							
								72c367fb52 
								
							 
						 
						
							
							
								
								Dereference loopHeader after checking for null rather than before.  
							
							... 
							
							
							
							llvm-svn: 90990 
							
						 
						
							2009-12-09 22:55:01 +00:00  
				
					
						
							
							
								 
						
							
								2b8fed15e0 
								
							 
						 
						
							
							
								
								Reverting patch in revision 89758, initial attempt at fixing PR5373 has proven to be bogus.  
							
							... 
							
							
							
							llvm-svn: 89844 
							
						 
						
							2009-11-25 05:38:41 +00:00  
				
					
						
							
							
								 
						
							
								5fd452d596 
								
							 
						 
						
							
							
								
								Fix for PR5373, Credit to Jakub Staszak.  
							
							... 
							
							
							
							llvm-svn: 89758 
							
						 
						
							2009-11-24 11:51:52 +00:00  
				
					
						
							
							
								 
						
							
								46b5c642b9 
								
							 
						 
						
							
							
								
								remove a bunch of extraneous LLVMContext arguments  
							
							... 
							
							
							
							from various APIs, addressing PR5325.
llvm-svn: 86231 
							
						 
						
							2009-11-06 04:27:31 +00:00  
				
					
						
							
							
								 
						
							
								a83ac2d9e7 
								
							 
						 
						
							
							
								
								Update various Loop optimization passes to cope with the possibility that  
							
							... 
							
							
							
							LoopSimplify form may not be available.
llvm-svn: 86175 
							
						 
						
							2009-11-05 21:11:53 +00:00  
				
					
						
							
							
								 
						
							
								7a8db3a41a 
								
							 
						 
						
							
							
								
								if CostMetrics says to never duplicate some code, don't unswitch a loop.  
							
							... 
							
							
							
							This prevents unswitching from duplicating indbr's.
llvm-svn: 85705 
							
						 
						
							2009-11-01 03:42:55 +00:00  
				
					
						
							
							
								 
						
							
								b6b8ec769c 
								
							 
						 
						
							
							
								
								Restore LoopUnswitch's block-oriented threshold. LoopUnswitch now checks both  
							
							... 
							
							
							
							the estimated code size and the number of blocks when deciding whether to
do a non-trivial unswitch. This protects it from some very undesirable
worst-case behavior on large numbers of loop-unswitchable conditions, such
as in the testcase in PR5259.
llvm-svn: 84661 
							
						 
						
							2009-10-20 20:06:09 +00:00  
				
					
						
							
							
								 
						
							
								92f8619923 
								
							 
						 
						
							
							
								
								Use isVoidTy()  
							
							... 
							
							
							
							llvm-svn: 84118 
							
						 
						
							2009-10-14 17:29:00 +00:00  
				
					
						
							
							
								 
						
							
								a677136900 
								
							 
						 
						
							
							
								
								Check void type before using RAUWd.  
							
							... 
							
							
							
							llvm-svn: 84049 
							
						 
						
							2009-10-13 22:56:32 +00:00  
				
					
						
							
							
								 
						
							
								115741ba79 
								
							 
						 
						
							
							
								
								Do not check use_empty() before replaceAllUsesWith(). This gives ValueHandles a chance to get properly updated.  
							
							... 
							
							
							
							llvm-svn: 84033 
							
						 
						
							2009-10-13 21:41:20 +00:00  
				
					
						
							
							
								 
						
							
								2dc6f8de03 
								
							 
						 
						
							
							
								
								Use the new CodeMetrics class to compute code size instead of  
							
							... 
							
							
							
							manually counting instructions.
llvm-svn: 84016 
							
						 
						
							2009-10-13 20:12:23 +00:00  
				
					
						
							
							
								 
						
							
								71ca652475 
								
							 
						 
						
							
							
								
								Make LoopUnswitch's cost estimation count Instructions, rather than  
							
							... 
							
							
							
							BasicBlocks, so that it doesn't blindly procede in the presence of
large individual BasicBlocks. This addresses a class of code-size
expansion problems.
llvm-svn: 83992 
							
						 
						
							2009-10-13 17:50:43 +00:00  
				
					
						
							
							
								 
						
							
								deaf572ca8 
								
							 
						 
						
							
							
								
								Reflow comment.  
							
							... 
							
							
							
							llvm-svn: 81361 
							
						 
						
							2009-09-09 17:57:16 +00:00  
				
					
						
							
							
								 
						
							
								c56af25c01 
								
							 
						 
						
							
							
								
								Fix an 80-column violation.  
							
							... 
							
							
							
							llvm-svn: 81354 
							
						 
						
							2009-09-09 17:17:19 +00:00  
				
					
						
							
							
								 
						
							
								3ddbc242fb 
								
							 
						 
						
							
							
								
								Re-apply r80926, with fixes: keep the domtree informed of new blocks  
							
							... 
							
							
							
							that get created during loop unswitching, and fix SplitBlockPredecessors'
LCSSA updating code to create new PHIs instead of trying to just move
existing ones.
Also, optimize Loop::verifyLoop, since it gets called a lot. Use
searches on a sorted list of blocks instead of calling the "contains"
function, as is done in other places in the Loop class, since "contains"
does a linear search. Also, don't call verifyLoop from LoopSimplify or
LCSSA, as the PassManager is already calling verifyLoop as part of
LoopInfo's verifyAnalysis.
llvm-svn: 81221 
							
						 
						
							2009-09-08 15:45:00 +00:00  
				
					
						
							
							
								 
						
							
								904199547b 
								
							 
						 
						
							
							
								
								Revert r80926. It causes loop unswitch assertion and slow down some JIT tests significantly.  
							
							... 
							
							
							
							llvm-svn: 81101 
							
						 
						
							2009-09-06 02:26:10 +00:00  
				
					
						
							
							
								 
						
							
								4c1bdcf5d7 
								
							 
						 
						
							
							
								
								Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verify  
							
							... 
							
							
							
							that these passes are properly preserved.
Fix several transformation passes that claimed to preserve LoopSimplify
form but weren't.
llvm-svn: 80926 
							
						 
						
							2009-09-03 16:31:42 +00:00  
				
					
						
							
							
								 
						
							
								2dd09dbdf7 
								
							 
						 
						
							
							
								
								eliminate VISIBILITY_HIDDEN from Transforms/Scalar.  PR4861  
							
							... 
							
							
							
							llvm-svn: 80766 
							
						 
						
							2009-09-02 06:11:42 +00:00  
				
					
						
							
							
								 
						
							
								b25de3ff60 
								
							 
						 
						
							
							
								
								eliminate the "Value" printing methods that print to a std::ostream.  
							
							... 
							
							
							
							This required converting a bunch of stuff off DOUT and other cleanups.
llvm-svn: 79819 
							
						 
						
							2009-08-23 04:37:46 +00:00  
				
					
						
							
							
								 
						
							
								55f1c09e31 
								
							 
						 
						
							
							
								
								Push LLVMContexts through the IntegerType APIs.  
							
							... 
							
							
							
							llvm-svn: 78948 
							
						 
						
							2009-08-13 21:58:54 +00:00  
				
					
						
							
							
								 
						
							
								23a204d91b 
								
							 
						 
						
							
							
								
								Move getTrue() and getFalse() to 2.5-like APIs.  
							
							... 
							
							
							
							llvm-svn: 77685 
							
						 
						
							2009-07-31 17:39:07 +00:00  
				
					
						
							
							
								 
						
							
								b292b8ce70 
								
							 
						 
						
							
							
								
								Move more code back to 2.5 APIs.  
							
							... 
							
							
							
							llvm-svn: 77635 
							
						 
						
							2009-07-30 23:03:37 +00:00  
				
					
						
							
							
								 
						
							
								0dd5e1ed39 
								
							 
						 
						
							
							
								
								More migration to raw_ostream, the water has dried up around the iostream hole.  
							
							... 
							
							
							
							- Some clients which used DOUT have moved to DEBUG. We are deprecating the
   "magic" DOUT behavior which avoided calling printing functions when the
   statement was disabled. In addition to being unnecessary magic, it had the
   downside of leaving code in -Asserts builds, and of hiding potentially
   unnecessary computations.
llvm-svn: 77019 
							
						 
						
							2009-07-25 00:23:56 +00:00  
				
					
						
							
							
								 
						
							
								edb4a70325 
								
							 
						 
						
							
							
								
								Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types.  More to come.  
							
							... 
							
							
							
							llvm-svn: 77011 
							
						 
						
							2009-07-24 23:12:02 +00:00  
				
					
						
							
							
								 
						
							
								47db941fd3 
								
							 
						 
						
							
							
								
								Get rid of the Pass+Context magic.  
							
							... 
							
							
							
							llvm-svn: 76702 
							
						 
						
							2009-07-22 00:24:57 +00:00  
				
					
						
							
							
								 
						
							
								c37bc69e91 
								
							 
						 
						
							
							
								
								Rename getConstantInt{True|False} to get{True|False} at Chris' behest.  
							
							... 
							
							
							
							llvm-svn: 76598 
							
						 
						
							2009-07-21 18:03:38 +00:00  
				
					
						
							
							
								 
						
							
								c43e47938a 
								
							 
						 
						
							
							
								
								Make makeLoopInvariant report whether it made any changes or not,  
							
							... 
							
							
							
							and use this to simplify more code.
llvm-svn: 75722 
							
						 
						
							2009-07-15 01:25:43 +00:00  
				
					
						
							
							
								 
						
							
								4d6149f356 
								
							 
						 
						
							
							
								
								Update LoopSimplify and LoopUnswitch to use the new makeLoopInvariant  
							
							... 
							
							
							
							function.
llvm-svn: 75584 
							
						 
						
							2009-07-14 01:37:59 +00:00  
				
					
						
							
							
								 
						
							
								1e5f00e7a7 
								
							 
						 
						
							
							
								
								This started as a small change, I swear.  Unfortunately, lots of things call the [I|F]CmpInst constructors.  Who knew!?  
							
							... 
							
							
							
							llvm-svn: 75200 
							
						 
						
							2009-07-09 23:48:35 +00:00  
				
					
						
							
							
								 
						
							
								39f00cc1d4 
								
							 
						 
						
							
							
								
								Thread LLVMContext through the constant folding APIs, which touches a lot of files.  
							
							... 
							
							
							
							llvm-svn: 74844 
							
						 
						
							2009-07-06 18:42:36 +00:00  
				
					
						
							
							
								 
						
							
								80baed63b4 
								
							 
						 
						
							
							
								
								Second batch of passes using LLVMContext.  
							
							... 
							
							
							
							llvm-svn: 74753 
							
						 
						
							2009-07-03 00:54:20 +00:00  
				
					
						
							
							
								 
						
							
								1efabaaa2a 
								
							 
						 
						
							
							
								
								Allow readonly functions to unwind exceptions.  Teach  
							
							... 
							
							
							
							the optimizers about this.  For example, a readonly
function with no uses cannot be removed unless it is
also marked nounwind.
llvm-svn: 71071 
							
						 
						
							2009-05-06 06:49:50 +00:00  
				
					
						
							
							
								 
						
							
								bfd4ad67c7 
								
							 
						 
						
							
							
								
								Remove strange extra semicolons.  
							
							... 
							
							
							
							llvm-svn: 67287 
							
						 
						
							2009-03-19 05:51:39 +00:00  
				
					
						
							
							
								 
						
							
								43a1161379 
								
							 
						 
						
							
							
								
								If "optimize for size" attribute is set then block non-trivial loop unswitches but allow trivial loop unswitches.  
							
							... 
							
							
							
							llvm-svn: 63670 
							
						 
						
							2009-02-03 22:04:27 +00:00  
				
					
						
							
							
								 
						
							
								5a913d61e3 
								
							 
						 
						
							
							
								
								Rename getAnalysisToUpdate to getAnalysisIfAvailable.  
							
							... 
							
							
							
							llvm-svn: 63198 
							
						 
						
							2009-01-28 13:14:17 +00:00  
				
					
						
							
							
								 
						
							
								1c469d36b0 
								
							 
						 
						
							
							
								
								Undo previous patch.  
							
							... 
							
							
							
							llvm-svn: 60701 
							
						 
						
							2008-12-08 17:02:37 +00:00  
				
					
						
							
							
								 
						
							
								2b07d3ccde 
								
							 
						 
						
							
							
								
								switch a couple more calls to use array_pod_sort.  
							
							... 
							
							
							
							llvm-svn: 60337 
							
						 
						
							2008-12-01 06:52:57 +00:00  
				
					
						
							
							
								 
						
							
								fe57d109b6 
								
							 
						 
						
							
							
								
								Ignore conditions that are outside the loop.  
							
							... 
							
							
							
							llvm-svn: 58631 
							
						 
						
							2008-11-03 19:38:07 +00:00  
				
					
						
							
							
								 
						
							
								7f39e2d85a 
								
							 
						 
						
							
							
								
								Change create*Pass factory functions to return Pass* instead of  
							
							... 
							
							
							
							LoopPass*.
 - Although less precise, this means they can be used in clients
   without RTTI (who would otherwise need to include LoopPass.h, which
   eventually includes things using dynamic_cast). This was the
   simplest solution that presented itself, but I am happy to use a
   better one if available.
llvm-svn: 58010 
							
						 
						
							2008-10-22 23:32:42 +00:00  
				
					
						
							
							
								 
						
							
								215742a966 
								
							 
						 
						
							
							
								
								Use 0 instead of false to return a null pointer.  
							
							... 
							
							
							
							llvm-svn: 57660 
							
						 
						
							2008-10-17 00:56:52 +00:00  
				
					
						
							
							
								 
						
							
								9eb525d4f9 
								
							 
						 
						
							
							
								
								Implement function notes as function attributes.  
							
							... 
							
							
							
							llvm-svn: 56716 
							
						 
						
							2008-09-26 23:51:19 +00:00  
				
					
						
							
							
								 
						
							
								4c758ea3e0 
								
							 
						 
						
							
							
								
								Large mechanical patch.  
							
							... 
							
							
							
							s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage 
- to implement function notes as function attributes and 
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56622 
							
						 
						
							2008-09-25 21:00:45 +00:00  
				
					
						
							
							
								 
						
							
								e15607b7bb 
								
							 
						 
						
							
							
								
								Put FN_NOTE_AlwaysInline and others in FnAttr namespace.  
							
							... 
							
							
							
							llvm-svn: 56527 
							
						 
						
							2008-09-24 00:06:15 +00:00  
				
					
						
							
							
								 
						
							
								e87abd26ba 
								
							 
						 
						
							
							
								
								Move FN_NOTE_AlwaysInline and other out of ParamAttrs namespace.  
							
							... 
							
							
							
							Do not check isDeclaration() in hasNote(). It is clients' responsibility.
llvm-svn: 56524 
							
						 
						
							2008-09-23 23:52:03 +00:00  
				
					
						
							
							
								 
						
							
								82fed6702b 
								
							 
						 
						
							
							
								
								Use parameter attribute store (soon to be renamed) for  
							
							... 
							
							
							
							Function Notes also. Function notes are stored at index ~0.
llvm-svn: 56511 
							
						 
						
							2008-09-23 22:35:17 +00:00  
				
					
						
							
							
								 
						
							
								329fe728b5 
								
							 
						 
						
							
							
								
								Add hasNote() to check note associated with a function.  
							
							... 
							
							
							
							llvm-svn: 56477 
							
						 
						
							2008-09-22 22:32:29 +00:00  
				
					
						
							
							
								 
						
							
								40519f0370 
								
							 
						 
						
							
							
								
								A loop may be unswitched multiple times. Reconstruct dom info. at the end.  
							
							... 
							
							
							
							llvm-svn: 55806 
							
						 
						
							2008-09-04 22:43:59 +00:00  
				
					
						
							
							
								 
						
							
								00ec74616b 
								
							 
						 
						
							
							
								
								Initialize loop data first.  
							
							... 
							
							
							
							llvm-svn: 55792 
							
						 
						
							2008-09-04 20:36:36 +00:00  
				
					
						
							
							
								 
						
							
								d52071540c 
								
							 
						 
						
							
							
								
								Do not unswitch if the function notes say we're optimizing this function for size.  
							
							... 
							
							
							
							llvm-svn: 55786 
							
						 
						
							2008-09-04 18:55:13 +00:00  
				
					
						
							
							
								 
						
							
								a79db30d28 
								
							 
						 
						
							
							
								
								Tidy up several unbeseeming casts from pointer to intptr_t.  
							
							... 
							
							
							
							llvm-svn: 55779 
							
						 
						
							2008-09-04 17:05:41 +00:00  
				
					
						
							
							
								 
						
							
								eb611ddeb2 
								
							 
						 
						
							
							
								
								Do not try to update dominator info while manipulating CFG.  This code does not handle all cases and keeps invalid dom info around some cases, which misleads other passes down stream.  
							
							... 
							
							
							
							Right now, dom info is recaluclated in the end if the loop is switched.
llvm-svn: 53106 
							
						 
						
							2008-07-03 17:37:52 +00:00  
				
					
						
							
							
								 
						
							
								a96eabaab7 
								
							 
						 
						
							
							
								
								Remove unused function.  
							
							... 
							
							
							
							llvm-svn: 53090 
							
						 
						
							2008-07-03 07:10:03 +00:00  
				
					
						
							
							
								 
						
							
								226edd1826 
								
							 
						 
						
							
							
								
								Remove extra FIXME  
							
							... 
							
							
							
							llvm-svn: 53087 
							
						 
						
							2008-07-03 06:50:04 +00:00  
				
					
						
							
							
								 
						
							
								c4dcf82a16 
								
							 
						 
						
							
							
								
								Reconstruct dom info, if loop is unswitched.  
							
							... 
							
							
							
							llvm-svn: 53086 
							
						 
						
							2008-07-03 06:48:21 +00:00  
				
					
						
							
							
								 
						
							
								e491bb8845 
								
							 
						 
						
							
							
								
								LoopUnswitch does not preserve dominator info in all cases.  
							
							... 
							
							
							
							llvm-svn: 53085 
							
						 
						
							2008-07-03 05:55:03 +00:00  
				
					
						
							
							
								 
						
							
								7dcfff392a 
								
							 
						 
						
							
							
								
								Undo previous patch. It is not that simple to fix dom info here.  
							
							... 
							
							
							
							llvm-svn: 53062 
							
						 
						
							2008-07-03 00:08:13 +00:00  
				
					
						
							
							
								 
						
							
								5adfcb5783 
								
							 
						 
						
							
							
								
								Preserve dom info while simplifing loop after the unswitch.  
							
							... 
							
							
							
							llvm-svn: 53052 
							
						 
						
							2008-07-02 22:58:54 +00:00  
				
					
						
							
							
								 
						
							
								ed50fb5b61 
								
							 
						 
						
							
							
								
								reuse vectors.  
							
							... 
							
							
							
							llvm-svn: 53007 
							
						 
						
							2008-07-02 01:44:29 +00:00  
				
					
						
							
							
								 
						
							
								57d94d6304 
								
							 
						 
						
							
							
								
								Fix comment.  
							
							... 
							
							
							
							llvm-svn: 53006 
							
						 
						
							2008-07-02 01:31:19 +00:00  
				
					
						
							
							
								 
						
							
								e149d4ed4d 
								
							 
						 
						
							
							
								
								Preserve loop data so that it is not fetched everytime it is needed.  
							
							... 
							
							
							
							Keep track of currentLoop.
llvm-svn: 53005 
							
						 
						
							2008-07-02 01:18:13 +00:00  
				
					
						
							
							
								 
						
							
								cd6b697945 
								
							 
						 
						
							
							
								
								Preserve dominance frontier while trivially unswitching loop.  
							
							... 
							
							
							
							llvm-svn: 52438 
							
						 
						
							2008-06-18 02:16:38 +00:00  
				
					
						
							
							
								 
						
							
								7314d0ee3c 
								
							 
						 
						
							
							
								
								Update dom tree. Fix PR 2372.  
							
							... 
							
							
							
							llvm-svn: 51887 
							
						 
						
							2008-06-02 22:52:56 +00:00  
				
					
						
							
							
								 
						
							
								f96e1371e8 
								
							 
						 
						
							
							
								
								Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places to  
							
							... 
							
							
							
							use it instead of duplicating its functionality.
llvm-svn: 51499 
							
						 
						
							2008-05-23 21:05:58 +00:00  
				
					
						
							
							
								 
						
							
								d78c400b5b 
								
							 
						 
						
							
							
								
								Clean up the use of static and anonymous namespaces. This turned up  
							
							... 
							
							
							
							several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017 
							
						 
						
							2008-05-13 00:00:25 +00:00  
				
					
						
							
							
								 
						
							
								6a2da37c0e 
								
							 
						 
						
							
							
								
								Make several variable declarations static.  
							
							... 
							
							
							
							llvm-svn: 50696 
							
						 
						
							2008-05-06 01:53:16 +00:00  
				
					
						
							
							
								 
						
							
								4d43d3c72c 
								
							 
						 
						
							
							
								
								Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989  
							
							... 
							
							
							
							r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.
llvm-svn: 50265 
							
						 
						
							2008-04-25 16:53:59 +00:00  
				
					
						
							
							
								 
						
							
								559c867ece 
								
							 
						 
						
							
							
								
								fit some more code in 80 cols.  
							
							... 
							
							
							
							llvm-svn: 50016 
							
						 
						
							2008-04-21 00:25:49 +00:00  
				
					
						
							
							
								 
						
							
								e9ecc68d8f 
								
							 
						 
						
							
							
								
								API changes for class Use size reduction, wave 1.  
							
							... 
							
							
							
							Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277 
							
						 
						
							2008-04-06 20:25:17 +00:00  
				
					
						
							
							
								 
						
							
								11fc6f8765 
								
							 
						 
						
							
							
								
								Update the block cloner which fixes bugpoint on code using unwind_to (phew!)  
							
							... 
							
							
							
							and also update the cloning interface's major user, the loop optimizations.
llvm-svn: 48088 
							
						 
						
							2008-03-09 05:24:34 +00:00  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								c4a80fb574 
								
							 
						 
						
							
							
								
								Get rid of annoying spaces.  
							
							... 
							
							
							
							llvm-svn: 45100 
							
						 
						
							2007-12-17 17:40:29 +00:00  
				
					
						
							
							
								 
						
							
								b0dd27ee91 
								
							 
						 
						
							
							
								
								Make LoopInfoBase more generic, in preparation for having MachineLoopInfo.  This involves a small interface change.  
							
							... 
							
							
							
							llvm-svn: 44348 
							
						 
						
							2007-11-27 03:43:35 +00:00  
				
					
						
							
							
								 
						
							
								2af23f976b 
								
							 
						 
						
							
							
								
								Do not walk invalid iterator.  
							
							... 
							
							
							
							llvm-svn: 42812 
							
						 
						
							2007-10-09 21:31:36 +00:00  
				
					
						
							
							
								 
						
							
								a69f987b66 
								
							 
						 
						
							
							
								
								Fix bug in updating dominance frontier after loop  
							
							... 
							
							
							
							unswitch when frontier includes basic blocks that 
are not inside loop.
llvm-svn: 42654 
							
						 
						
							2007-10-05 22:29:34 +00:00  
				
					
						
							
							
								 
						
							
								3574759d85 
								
							 
						 
						
							
							
								
								Fix 80 col violation.  
							
							... 
							
							
							
							llvm-svn: 42591 
							
						 
						
							2007-10-03 21:17:43 +00:00  
				
					
						
							
							
								 
						
							
								e192e32577 
								
							 
						 
						
							
							
								
								Refactor code in a separate method.  
							
							... 
							
							
							
							llvm-svn: 42590 
							
						 
						
							2007-10-03 21:16:08 +00:00  
				
					
						
							
							
								 
						
							
								83cc3f8f51 
								
							 
						 
						
							
							
								
								Update aux. info associated with an instruction before erasing instruction.  
							
							... 
							
							
							
							llvm-svn: 42180 
							
						 
						
							2007-09-20 23:45:50 +00:00  
				
					
						
							
							
								 
						
							
								b5933bbbd5 
								
							 
						 
						
							
							
								
								Use SmallVector instead of std::vector.  
							
							... 
							
							
							
							llvm-svn: 41207 
							
						 
						
							2007-08-21 00:31:24 +00:00  
				
					
						
							
							
								 
						
							
								816a190cdf 
								
							 
						 
						
							
							
								
								Fix GLIBCXX_DEBUG error triggered by incrementing erased iterator.  
							
							... 
							
							
							
							llvm-svn: 40897 
							
						 
						
							2007-08-07 16:44:38 +00:00  
				
					
						
							
							
								 
						
							
								2740694450 
								
							 
						 
						
							
							
								
								wrap some long lines.  Major offenders that are left include  
							
							... 
							
							
							
							gvn, gvnpre, dse, and predsimplify.  To see these, use:
  make check-line-length
llvm-svn: 40738 
							
						 
						
							2007-08-02 16:53:43 +00:00  
				
					
						
							
							
								 
						
							
								a882328e61 
								
							 
						 
						
							
							
								
								Update dominator info for the middle blocks created while spliting  
							
							... 
							
							
							
							exit edge to preserve LCSSA.
Fix dominance frontier update during loop unswitch. This fixes PR 1589, again
llvm-svn: 40737 
							
						 
						
							2007-08-02 15:25:57 +00:00  
				
					
						
							
							
								 
						
							
								34890b2f27 
								
							 
						 
						
							
							
								
								Undo previous check-in.  
							
							... 
							
							
							
							llvm-svn: 40698 
							
						 
						
							2007-08-01 23:24:50 +00:00  
				
					
						
							
							
								 
						
							
								561b0c29a3 
								
							 
						 
						
							
							
								
								Update dominator info for the middle blocks created while spliting  
							
							... 
							
							
							
							exit edge to preserve LCSSA.
Fix dominance frontier update during loop unswitch. This fixes PR 1589.
llvm-svn: 40695 
							
						 
						
							2007-08-01 22:23:50 +00:00  
				
					
						
							
							
								 
						
							
								34d442f274 
								
							 
						 
						
							
							
								
								More explicit keywords.  
							
							... 
							
							
							
							llvm-svn: 40673 
							
						 
						
							2007-08-01 15:32:29 +00:00  
				
					
						
							
							
								 
						
							
								d491198000 
								
							 
						 
						
							
							
								
								Loop unswitch preserves dom info.  
							
							... 
							
							
							
							Use simple analysis interface to preserve analysis info maintained by other loop passes.
llvm-svn: 40627 
							
						 
						
							2007-07-31 08:03:26 +00:00  
				
					
						
							
							
								 
						
							
								7d165e1d84 
								
							 
						 
						
							
							
								
								If loop can be unswitched again, then do it yourself.  
							
							... 
							
							
							
							llvm-svn: 40609 
							
						 
						
							2007-07-30 23:07:10 +00:00  
				
					
						
							
							
								 
						
							
								14fae50666 
								
							 
						 
						
							
							
								
								Remove dead code.  
							
							... 
							
							
							
							llvm-svn: 40606 
							
						 
						
							2007-07-30 21:10:44 +00:00  
				
					
						
							
							
								 
						
							
								1a39a2d13d 
								
							 
						 
						
							
							
								
								VStudio compiler errors and placing Function*->ExFunc map under ManagedStatic control.  
							
							... 
							
							
							
							This commit fixes two things.  One is a pair of VStudio compiler errors stemming from variables
which defined within the for loop statement and also within the body of the for loop.  I fixed these 
by renaming one of the two variables.  Additionally, I've made the Function*->ExFunc map in 
ExternalFunctions.cpp a ManagedStatic object, so that cleanup will be done on llvm_shutdown.  In repeated
uses of the interpreter, where the same Function* address may get used for completely differnet functions,
this was causing a crash.
llvm-svn: 40558 
							
						 
						
							2007-07-27 18:26:35 +00:00  
				
					
						
							
							
								 
						
							
								8a1d1ac925 
								
							 
						 
						
							
							
								
								Fix typo.  
							
							... 
							
							
							
							llvm-svn: 40025 
							
						 
						
							2007-07-18 23:50:19 +00:00  
				
					
						
							
							
								 
						
							
								bb8ea8cefc 
								
							 
						 
						
							
							
								
								Fix dominator info update to accommodate CFG changes.  
							
							... 
							
							
							
							This fixes PR1559.
llvm-svn: 40024 
							
						 
						
							2007-07-18 23:48:20 +00:00  
				
					
						
							
							
								 
						
							
								29ccf8ba52 
								
							 
						 
						
							
							
								
								Disable claims to preserve analysis until open issues are resolved.  
							
							... 
							
							
							
							llvm-svn: 39834 
							
						 
						
							2007-07-13 21:53:42 +00:00  
				
					
						
							
							
								 
						
							
								12358b4827 
								
							 
						 
						
							
							
								
								These rountines are now available as part of basic block utilities.  
							
							... 
							
							
							
							llvm-svn: 37955 
							
						 
						
							2007-07-06 22:03:47 +00:00  
				
					
						
							
							
								 
						
							
								0975c6d7f9 
								
							 
						 
						
							
							
								
								Preserve DominanceFrontier.  
							
							... 
							
							
							
							llvm-svn: 37820 
							
						 
						
							2007-06-29 23:11:49 +00:00  
				
					
						
							
							
								 
						
							
								9feb7f5846 
								
							 
						 
						
							
							
								
								Do not filter loop if candidate branch is in loop header.  
							
							... 
							
							
							
							llvm-svn: 37792 
							
						 
						
							2007-06-29 01:39:53 +00:00  
				
					
						
							
							
								 
						
							
								6ba5ad482f 
								
							 
						 
						
							
							
								
								- Undo previous check and allow loop switch for condtion that is not inside  
							
							... 
							
							
							
							loop.
- Avoid loop unswich for loop header branch.
- While cloning dominators fix typo and handle self dominating blocks.
llvm-svn: 37772 
							
						 
						
							2007-06-28 02:05:46 +00:00  
				
					
						
							
							
								 
						
							
								3304e469f7 
								
							 
						 
						
							
							
								
								Update LoopUnswitch pass to preserve DomiantorTree.  
							
							... 
							
							
							
							llvm-svn: 37771 
							
						 
						
							2007-06-28 00:49:00 +00:00  
				
					
						
							
							
								 
						
							
								3c723c8db7 
								
							 
						 
						
							
							
								
								If a condition is not inside a loop then the condition is suitable  
							
							... 
							
							
							
							to loop unswitch candidate for the loop.
llvm-svn: 37770 
							
						 
						
							2007-06-28 00:44:10 +00:00  
				
					
						
							
							
								 
						
							
								506310d3dd 
								
							 
						 
						
							
							
								
								Avoid non-trivial loop unswitching while optimizing for size.  
							
							... 
							
							
							
							llvm-svn: 37446 
							
						 
						
							2007-06-06 00:21:03 +00:00  
				
					
						
							
							
								 
						
							
								9557247412 
								
							 
						 
						
							
							
								
								Fix PR1333  
							
							... 
							
							
							
							Testcases :
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049451.html 
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049452.html 
llvm-svn: 36955 
							
						 
						
							2007-05-09 08:24:12 +00:00  
				
					
						
							
							
								 
						
							
								8c78a0bff0 
								
							 
						 
						
							
							
								
								Drop 'const'  
							
							... 
							
							
							
							llvm-svn: 36662 
							
						 
						
							2007-05-03 01:11:54 +00:00  
				
					
						
							
							
								 
						
							
								e95c6ad802 
								
							 
						 
						
							
							
								
								Use 'static const char' instead of 'static const int'.  
							
							... 
							
							
							
							Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652 
							
						 
						
							2007-05-02 21:39:20 +00:00  
				
					
						
							
							
								 
						
							
								09f162ca6a 
								
							 
						 
						
							
							
								
								Do not use typeinfo to identify pass in pass manager.  
							
							... 
							
							
							
							llvm-svn: 36632 
							
						 
						
							2007-05-01 21:15:47 +00:00  
				
					
						
							
							
								 
						
							
								901a27d892 
								
							 
						 
						
							
							
								
								Now LoopUnswitch is a LoopPass.  
							
							... 
							
							
							
							llvm-svn: 34992 
							
						 
						
							2007-03-07 00:26:10 +00:00  
				
					
						
							
							
								 
						
							
								558990e189 
								
							 
						 
						
							
							
								
								Use more efficient test for one value in a ConstantInt.  
							
							... 
							
							
							
							llvm-svn: 34859 
							
						 
						
							2007-03-02 23:35:28 +00:00  
				
					
						
							
							
								 
						
							
								97517ff930 
								
							 
						 
						
							
							
								
								Use efficient container SmallPtrSet  
							
							... 
							
							
							
							llvm-svn: 34640 
							
						 
						
							2007-02-26 20:22:50 +00:00  
				
					
						
							
							
								 
						
							
								967b84c681 
								
							 
						 
						
							
							
								
								Do not unswitch loop on same value again and again.  
							
							... 
							
							
							
							llvm-svn: 34638 
							
						 
						
							2007-02-26 19:31:58 +00:00