cbd18fc93d 
								
							 
						 
						
							
							
								
								refactor TryToSimplifyUncondBranchFromEmptyBlock out of SimplifyCFG.  
							
							... 
							
							
							
							llvm-svn: 86666 
							
						 
						
							2009-11-10 05:59:26 +00:00  
				
					
						
							
							
								 
						
							
								5a3832496a 
								
							 
						 
						
							
							
								
								remove a isFreeCall check: it is a callinst that can write to memory already.  
							
							... 
							
							
							
							llvm-svn: 85863 
							
						 
						
							2009-11-03 05:33:46 +00:00  
				
					
						
							
							
								 
						
							
								54a4b84012 
								
							 
						 
						
							
							
								
								constant fold indirectbr(blockaddress(%bb)) -> br label %bb.  
							
							... 
							
							
							
							llvm-svn: 85704 
							
						 
						
							2009-11-01 03:40:38 +00:00  
				
					
						
							
							
								 
						
							
								f390e04a47 
								
							 
						 
						
							
							
								
								Rename MallocFreeHelper as MemoryBuiltins  
							
							... 
							
							
							
							llvm-svn: 85286 
							
						 
						
							2009-10-27 20:05:49 +00:00  
				
					
						
							
							
								 
						
							
								762195bd01 
								
							 
						 
						
							
							
								
								Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free()  
							
							... 
							
							
							
							llvm-svn: 85181 
							
						 
						
							2009-10-26 23:58:56 +00:00  
				
					
						
							
							
								 
						
							
								de5ad42aa1 
								
							 
						 
						
							
							
								
								Remove FreeInst.  
							
							... 
							
							
							
							Remove LowerAllocations pass.
Update some more passes to treate free calls just like they were treating FreeInst.
llvm-svn: 85176 
							
						 
						
							2009-10-26 23:43:48 +00:00  
				
					
						
							
							
								 
						
							
								e297149e26 
								
							 
						 
						
							
							
								
								Auto-upgrade free instructions to calls to the builtin free function.  
							
							... 
							
							
							
							Update all analysis passes and transforms to treat free calls just like FreeInst.
Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised.
llvm-svn: 84987 
							
						 
						
							2009-10-24 04:23:03 +00:00  
				
					
						
							
							
								 
						
							
								f8cb758ba8 
								
							 
						 
						
							
							
								
								Preserve ProfileInfo during CodeGenPrepare.  
							
							... 
							
							
							
							llvm-svn: 82034 
							
						 
						
							2009-09-16 09:26:52 +00:00  
				
					
						
							
							
								 
						
							
								b292b8ce70 
								
							 
						 
						
							
							
								
								Move more code back to 2.5 APIs.  
							
							... 
							
							
							
							llvm-svn: 77635 
							
						 
						
							2009-07-30 23:03:37 +00:00  
				
					
						
							
							
								 
						
							
								47db941fd3 
								
							 
						 
						
							
							
								
								Get rid of the Pass+Context magic.  
							
							... 
							
							
							
							llvm-svn: 76702 
							
						 
						
							2009-07-22 00:24:57 +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  
				
					
						
							
							
								 
						
							
								38264b1554 
								
							 
						 
						
							
							
								
								"LLVMContext* " --> "LLVMContext *"  
							
							... 
							
							
							
							llvm-svn: 74878 
							
						 
						
							2009-07-06 23:00:19 +00:00  
				
					
						
							
							
								 
						
							
								e70b637033 
								
							 
						 
						
							
							
								
								More LLVMContext-ification.  
							
							... 
							
							
							
							llvm-svn: 74807 
							
						 
						
							2009-07-05 22:41:43 +00:00  
				
					
						
							
							
								 
						
							
								0f2eb5b9f7 
								
							 
						 
						
							
							
								
								Remove unused routines.  
							
							... 
							
							
							
							llvm-svn: 74351 
							
						 
						
							2009-06-26 22:53:22 +00:00  
				
					
						
							
							
								 
						
							
								945d08d76f 
								
							 
						 
						
							
							
								
								Generalize instcombine's isSafeToLoadUnconditionally() function  
							
							... 
							
							
							
							to ignore readonly calls, and factor it out of instcombine so
that it can be used by other passes.  Patch by Frits van Bommel!
llvm-svn: 73506 
							
						 
						
							2009-06-16 17:23:12 +00:00  
				
					
						
							
							
								 
						
							
								9a6fef0a52 
								
							 
						 
						
							
							
								
								Simplify code by using SmallVector's pop_back_val() instead of  
							
							... 
							
							
							
							separate back() and pop_back() calls.
llvm-svn: 71089 
							
						 
						
							2009-05-06 17:22:41 +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  
				
					
						
							
							
								 
						
							
								48f8222293 
								
							 
						 
						
							
							
								
								Re-apply 70645, converting ScalarEvolution to use  
							
							... 
							
							
							
							CallbackVH, with fixes. allUsesReplacedWith need to
walk the def-use chains and invalidate all users of a
value that is replaced. SCEVs of users need to be
recalcualted even if the new value is equivalent. Also,
make forgetLoopPHIs walk def-use chains, since any
SCEV that depends on a PHI should be recalculated when
more information about that PHI becomes available.
llvm-svn: 70927 
							
						 
						
							2009-05-04 22:30:44 +00:00  
				
					
						
							
							
								 
						
							
								5036695c32 
								
							 
						 
						
							
							
								
								Revert r70645 for now; it's causing a variety of regressions.  
							
							... 
							
							
							
							llvm-svn: 70661 
							
						 
						
							2009-05-03 05:46:20 +00:00  
				
					
						
							
							
								 
						
							
								e9a38d16fe 
								
							 
						 
						
							
							
								
								Convert ScalarEvolution to use CallbackVH for its internal map. This  
							
							... 
							
							
							
							makes ScalarEvolution::deleteValueFromRecords, and it's code that
subtly needed to be called before ReplaceAllUsesWith, unnecessary.
It also makes ValueDeletionListener unnecessary.
llvm-svn: 70645 
							
						 
						
							2009-05-02 21:19:20 +00:00  
				
					
						
							
							
								 
						
							
								ff08995589 
								
							 
						 
						
							
							
								
								Previously, RecursivelyDeleteDeadInstructions provided an option  
							
							... 
							
							
							
							of returning a list of pointers to Values that are deleted. This was
unsafe, because the pointers in the list are, by nature of what
RecursivelyDeleteDeadInstructions does, always dangling. Replace this
with a simple callback mechanism. This may eventually be removed if
all clients can reasonably be expected to use CallbackVH.
Use this to factor out the dead-phi-cycle-elimination code from LSR
utility function, and generalize it to use the
RecursivelyDeleteTriviallyDeadInstructions utility function.
This makes LSR more aggressive about eliminating dead PHI cycles;
adjust tests to either be less trivial or to simply expect fewer
instructions.
llvm-svn: 70636 
							
						 
						
							2009-05-02 18:29:22 +00:00  
				
					
						
							
							
								 
						
							
								05bea906c1 
								
							 
						 
						
							
							
								
								Revert my previous change on Local.cpp, instead, fix the bug on scalarrepl.  
							
							... 
							
							
							
							If the instruction has no users, it is also not only used by debug info 
and should not be deleted.
llvm-svn: 67194 
							
						 
						
							2009-03-18 10:13:08 +00:00  
				
					
						
							
							
								 
						
							
								64a6a092b1 
								
							 
						 
						
							
							
								
								Fix a bug.  
							
							... 
							
							
							
							If I->use_empty(), this method should return false.
llvm-svn: 67180 
							
						 
						
							2009-03-18 07:56:13 +00:00  
				
					
						
							
							
								 
						
							
								0c970f94e9 
								
							 
						 
						
							
							
								
								Add "check/remove dbg var" helper routines.  
							
							... 
							
							
							
							llvm-svn: 66223 
							
						 
						
							2009-03-06 00:19:37 +00:00  
				
					
						
							
							
								 
						
							
								738c60f259 
								
							 
						 
						
							
							
								
								Marking debug info intrinsics as not touching memory  
							
							... 
							
							
							
							caused them to be considered trivially dead.  Fix this.
llvm-svn: 65979 
							
						 
						
							2009-03-03 23:30:00 +00:00  
				
					
						
							
							
								 
						
							
								caf4485781 
								
							 
						 
						
							
							
								
								Enable scalar replacement of AllocaInst whose one of the user is dbg info.  
							
							... 
							
							
							
							llvm-svn: 64207 
							
						 
						
							2009-02-10 07:00:59 +00:00  
				
					
						
							
							
								 
						
							
								02f58e1e8d 
								
							 
						 
						
							
							
								
								Revert rev. 63876. It is causing llvm-gcc bootstrap failure.  
							
							... 
							
							
							
							llvm-svn: 63888 
							
						 
						
							2009-02-05 21:46:41 +00:00  
				
					
						
							
							
								 
						
							
								5922e26d1a 
								
							 
						 
						
							
							
								
								Ignore dbg intrinsics while propagating conditional expression info.  
							
							... 
							
							
							
							llvm-svn: 63876 
							
						 
						
							2009-02-05 19:15:39 +00:00  
				
					
						
							
							
								 
						
							
								97f1720621 
								
							 
						 
						
							
							
								
								use precise getters  
							
							... 
							
							
							
							llvm-svn: 63402 
							
						 
						
							2009-01-30 18:21:13 +00:00  
				
					
						
							
							
								 
						
							
								e9f6c355bf 
								
							 
						 
						
							
							
								
								rewrite RecursivelyDeleteTriviallyDeadInstructions to use a more efficient  
							
							... 
							
							
							
							formulation that doesn't require set lookups or scanning a set.
llvm-svn: 60203 
							
						 
						
							2008-11-28 01:20:46 +00:00  
				
					
						
							
							
								 
						
							
								d4b5ba615e 
								
							 
						 
						
							
							
								
								remove some weirdness that came from the LSR code that has  
							
							... 
							
							
							
							nothing to do with dead instruction elimination.  No tests in
dejagnu depend on this, so I don't know what it was needed for.
llvm-svn: 60202 
							
						 
						
							2008-11-28 00:58:15 +00:00  
				
					
						
							
							
								 
						
							
								a1bbdff933 
								
							 
						 
						
							
							
								
								enhance RecursivelyDeleteTriviallyDeadInstructions to make  
							
							... 
							
							
							
							PHIs dead if they are single-value.
llvm-svn: 60194 
							
						 
						
							2008-11-27 23:18:11 +00:00  
				
					
						
							
							
								 
						
							
								1cb4f72706 
								
							 
						 
						
							
							
								
								Enhance RecursivelyDeleteTriviallyDeadInstructions to optionally  
							
							... 
							
							
							
							return a list of deleted instructions.
llvm-svn: 60193 
							
						 
						
							2008-11-27 23:14:34 +00:00  
				
					
						
							
							
								 
						
							
								c6c481cdfc 
								
							 
						 
						
							
							
								
								remove doConstantPropagation and dceInstruction, they are just  
							
							... 
							
							
							
							wrappers around the interesting code and use an obscure iterator
abstraction that dates back many many years.
Move EraseDeadInstructions to Transforms/Utils and name it
RecursivelyDeleteTriviallyDeadInstructions.
llvm-svn: 60191 
							
						 
						
							2008-11-27 22:57:53 +00:00  
				
					
						
							
							
								 
						
							
								99d6809ac1 
								
							 
						 
						
							
							
								
								move MergeBasicBlockIntoOnlyPred to Transforms/Utils.  
							
							... 
							
							
							
							llvm-svn: 60162 
							
						 
						
							2008-11-27 07:43:12 +00:00  
				
					
						
							
							
								 
						
							
								158ff2c4a9 
								
							 
						 
						
							
							
								
								Use Instruction::eraseFromParent().  
							
							... 
							
							
							
							llvm-svn: 52606 
							
						 
						
							2008-06-21 22:08:46 +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  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								e96658392d 
								
							 
						 
						
							
							
								
								dead calls to llvm.stacksave can be deleted, even though they  
							
							... 
							
							
							
							have potential side-effects.
llvm-svn: 45392 
							
						 
						
							2007-12-29 00:59:12 +00:00  
				
					
						
							
							
								 
						
							
								6e853bc73f 
								
							 
						 
						
							
							
								
								Move the GET_SIDE_EFFECT_INFO logic from isInstructionTriviallyDead  
							
							... 
							
							
							
							to Instruction::mayWriteToMemory, fixing a FIXME, and helping
various places that call mayWriteToMemory directly.
llvm-svn: 40533 
							
						 
						
							2007-07-26 16:06:08 +00:00  
				
					
						
							
							
								 
						
							
								2ae054adb0 
								
							 
						 
						
							
							
								
								move a bunch of constant folding code f rom Transforms/Utils/Local.cpp into  
							
							... 
							
							
							
							libanalysis/ConstantFolding.cpp.
llvm-svn: 33679 
							
						 
						
							2007-01-30 23:45:45 +00:00  
				
					
						
							
							
								 
						
							
								14789a92e1 
								
							 
						 
						
							
							
								
								remove now-dead code.  
							
							... 
							
							
							
							llvm-svn: 33678 
							
						 
						
							2007-01-30 23:29:47 +00:00  
				
					
						
							
							
								 
						
							
								2c4610e4ca 
								
							 
						 
						
							
							
								
								Change constant folding APIs to take an optional TargetData, and change  
							
							... 
							
							
							
							ConstantFoldInstOperands/ConstantFoldCall to take a pointer to an array
of operands + size, instead of an std::vector.
In some cases, switch to using a SmallVector instead of a vector.
This allows us to get rid of some special case gross code that was there
to avoid the cost of constructing a vector.
llvm-svn: 33670 
							
						 
						
							2007-01-30 23:13:49 +00:00  
				
					
						
							
							
								 
						
							
								cddc9dfe97 
								
							 
						 
						
							
							
								
								Implement review feedback for the ConstantBool->ConstantInt merge. Chris  
							
							... 
							
							
							
							recommended that getBoolValue be replaced with getZExtValue and that
get(bool) be replaced by get(const Type*, uint64_t). This implements
those changes.
llvm-svn: 33110 
							
						 
						
							2007-01-12 04:24:46 +00:00  
				
					
						
							
							
								 
						
							
								75b871fb1e 
								
							 
						 
						
							
							
								
								For PR1043:  
							
							... 
							
							
							
							Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.
llvm-svn: 33073 
							
						 
						
							2007-01-11 12:24:14 +00:00  
				
					
						
							
							
								 
						
							
								266e42b312 
								
							 
						 
						
							
							
								
								For PR950:  
							
							... 
							
							
							
							This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.
llvm-svn: 32751 
							
						 
						
							2006-12-23 06:05:41 +00:00  
				
					
						
							
							
								 
						
							
								6c38f0bb07 
								
							 
						 
						
							
							
								
								For PR950:  
							
							... 
							
							
							
							The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
llvm-svn: 31931 
							
						 
						
							2006-11-27 01:05:10 +00:00  
				
					
						
							
							
								 
						
							
								61feeb90f9 
								
							 
						 
						
							
							
								
								Remove redundant <cmath>.  
							
							... 
							
							
							
							llvm-svn: 31561 
							
						 
						
							2006-11-08 19:16:44 +00:00  
				
					
						
							
							
								 
						
							
								fdff938a7e 
								
							 
						 
						
							
							
								
								For PR950:  
							
							... 
							
							
							
							This patch converts the old SHR instruction into two instructions,
AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not
dependent on the sign of their operands.
llvm-svn: 31542 
							
						 
						
							2006-11-08 06:47:33 +00:00  
				
					
						
							
							
								 
						
							
								e0fc4dfc22 
								
							 
						 
						
							
							
								
								For PR950:  
							
							... 
							
							
							
							This patch implements the first increment for the Signless Types feature.
All changes pertain to removing the ConstantSInt and ConstantUInt classes
in favor of just using ConstantInt.
llvm-svn: 31063 
							
						 
						
							2006-10-20 07:07:24 +00:00  
				
					
						
							
							
								 
						
							
								bc3c879fcf 
								
							 
						 
						
							
							
								
								Refactor some code to expose an interface to constant fold and instruction given it's opcode, typeand operands.  
							
							... 
							
							
							
							llvm-svn: 28517 
							
						 
						
							2006-05-27 01:18:04 +00:00  
				
					
						
							
							
								 
						
							
								0853700582 
								
							 
						 
						
							
							
								
								Revert a patch that is unsafe, due to out of range array accesses in inner  
							
							... 
							
							
							
							array scopes possibly accessing valid memory in outer subscripts.
llvm-svn: 28478 
							
						 
						
							2006-05-25 21:25:12 +00:00  
				
					
						
							
							
								 
						
							
								a643d528bd 
								
							 
						 
						
							
							
								
								Patch for a new instcombine xform, patch contributed by Nick Lewycky!  
							
							... 
							
							
							
							This implements Transforms/InstCombine/2006-05-10-InvalidIndexUndef.ll
llvm-svn: 28450 
							
						 
						
							2006-05-24 17:34:30 +00:00  
				
					
						
							
							
								 
						
							
								17bd60588c 
								
							 
						 
						
							
							
								
								Add supprot for shufflevector  
							
							... 
							
							
							
							llvm-svn: 27513 
							
						 
						
							2006-04-08 01:19:12 +00:00  
				
					
						
							
							
								 
						
							
								70ec96fa32 
								
							 
						 
						
							
							
								
								Adjust to change in Intrinsics.gen interface.  
							
							... 
							
							
							
							llvm-svn: 27344 
							
						 
						
							2006-04-02 03:35:01 +00:00  
				
					
						
							
							
								 
						
							
								60f6833376 
								
							 
						 
						
							
							
								
								use autogenerated side-effect information  
							
							... 
							
							
							
							llvm-svn: 26673 
							
						 
						
							2006-03-09 22:38:10 +00:00  
				
					
						
							
							
								 
						
							
								027c18da98 
								
							 
						 
						
							
							
								
								ConstantFoldLoadThroughGEPConstantExpr wasn't handling pointers to  
							
							... 
							
							
							
							packed types correctly.
llvm-svn: 25470 
							
						 
						
							2006-01-19 23:53:23 +00:00  
				
					
						
							
							
								 
						
							
								e6336a9b69 
								
							 
						 
						
							
							
								
								Constant folding support for the insertelement operation.  
							
							... 
							
							
							
							llvm-svn: 25407 
							
						 
						
							2006-01-17 20:07:07 +00:00  
				
					
						
							
							
								 
						
							
								b4f9a6f110 
								
							 
						 
						
							
							
								
								For PR411:  
							
							... 
							
							
							
							This patch is an incremental step towards supporting a flat symbol table.
It de-overloads the intrinsic functions by providing type-specific intrinsics
and arranging for automatically upgrading from the old overloaded name to
the new non-overloaded name. Specifically:
  llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64
  llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64
  llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64
  llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64
  llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64
New code should not use the overloaded intrinsic names. Warnings will be
emitted if they are used.
llvm-svn: 25366 
							
						 
						
							2006-01-16 21:12:35 +00:00  
				
					
						
							
							
								 
						
							
								82049eba2c 
								
							 
						 
						
							
							
								
								Add bswap intrinsics as documented in the Language Reference  
							
							... 
							
							
							
							llvm-svn: 25309 
							
						 
						
							2006-01-14 01:25:24 +00:00  
				
					
						
							
							
								 
						
							
								5fba6e6696 
								
							 
						 
						
							
							
								
								it is ok to dce stacksave.  
							
							... 
							
							
							
							llvm-svn: 25295 
							
						 
						
							2006-01-13 21:31:54 +00:00  
				
					
						
							
							
								 
						
							
								230044839d 
								
							 
						 
						
							
							
								
								Added support for the extractelement operation.  
							
							... 
							
							
							
							llvm-svn: 25181 
							
						 
						
							2006-01-10 19:05:34 +00:00  
				
					
						
							
							
								 
						
							
								479911f971 
								
							 
						 
						
							
							
								
								Fix #include order  
							
							... 
							
							
							
							llvm-svn: 24044 
							
						 
						
							2005-10-27 16:34:00 +00:00  
				
					
						
							
							
								 
						
							
								fe5f33b120 
								
							 
						 
						
							
							
								
								Move some constant folding code shared by Analysis and Transform passes  
							
							... 
							
							
							
							into the LLVMAnalysis library.
This allows LLVMTranform and LLVMTransformUtils to be archives and linked
with LLVMAnalysis.a, which provides any missing definitions.
llvm-svn: 24036 
							
						 
						
							2005-10-27 15:54:34 +00:00  
				
					
						
							
							
								 
						
							
								ea7214b23d 
								
							 
						 
						
							
							
								
								Constant fold llvm.sqrt  
							
							... 
							
							
							
							llvm-svn: 23487 
							
						 
						
							2005-09-28 01:34:32 +00:00  
				
					
						
							
							
								 
						
							
								c13c7b9376 
								
							 
						 
						
							
							
								
								Move the ConstantFoldLoadThroughGEPConstantExpr function out of the InstCombine  
							
							... 
							
							
							
							pass.
llvm-svn: 23444 
							
						 
						
							2005-09-26 05:27:10 +00:00  
				
					
						
							
							
								 
						
							
								b392321cae 
								
							 
						 
						
							
							
								
								Fix a fixme in CondPropagate.cpp by moving a PhiNode optimization into  
							
							... 
							
							
							
							BasicBlock's removePredecessor routine.  This requires shuffling around
the definition and implementation of hasContantValue from Utils.h,cpp into
Instructions.h,cpp
llvm-svn: 22664 
							
						 
						
							2005-08-04 23:24:19 +00:00  
				
					
						
							
							
								 
						
							
								5f4ef3c5a8 
								
							 
						 
						
							
							
								
								Eliminate all remaining tabs and trailing spaces.  
							
							... 
							
							
							
							llvm-svn: 22523 
							
						 
						
							2005-07-27 06:12:32 +00:00  
				
					
						
							
							
								 
						
							
								d4b103107e 
								
							 
						 
						
							
							
								
								prevent DCE of vaarg intrinsics.  This should take care of most regressions  
							
							... 
							
							
							
							llvm-svn: 22263 
							
						 
						
							2005-06-19 14:41:20 +00:00  
				
					
						
							
							
								 
						
							
								a36d525741 
								
							 
						 
						
							
							
								
								DCE intrinsic instructions without side effects.  
							
							... 
							
							
							
							llvm-svn: 21719 
							
						 
						
							2005-05-06 05:27:34 +00:00  
				
					
						
							
							
								 
						
							
								c968ea0495 
								
							 
						 
						
							
							
								
								Remove optimizations that don't require both operands to be constant. These  
							
							... 
							
							
							
							are moved to simplify-libcalls pass.
llvm-svn: 21614 
							
						 
						
							2005-04-29 05:55:35 +00:00  
				
					
						
							
							
								 
						
							
								ed55a6b5e0 
								
							 
						 
						
							
							
								
								* Add constant folding for additional floating point library calls such as  
							
							... 
							
							
							
							sinh, cosh, etc.
* Make the name comparisons for the fp libcalls a little more efficient by
  switching on the first character of the name before doing comparisons.
llvm-svn: 21611 
							
						 
						
							2005-04-28 23:01:59 +00:00  
				
					
						
							
							
								 
						
							
								b1c9317bb4 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							... 
							
							
							
							llvm-svn: 21427 
							
						 
						
							2005-04-21 23:48:37 +00:00  
				
					
						
							
							
								 
						
							
								96db59e48a 
								
							 
						 
						
							
							
								
								Enhance hasConstantValue to ignore undef values in phi nodes.  This allows it  
							
							... 
							
							
							
							to think that PHI[4, undef] == 4.
llvm-svn: 17096 
							
						 
						
							2004-10-17 21:23:26 +00:00  
				
					
						
							
							
								 
						
							
								7c16caa336 
								
							 
						 
						
							
							
								
								Changes For Bug 352  
							
							... 
							
							
							
							Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137 
							
						 
						
							2004-09-01 22:55:40 +00:00  
				
					
						
							
							
								 
						
							
								1ea8447089 
								
							 
						 
						
							
							
								
								Use new IsNAN() wrapper.  
							
							... 
							
							
							
							llvm-svn: 14340 
							
						 
						
							2004-06-23 00:25:35 +00:00  
				
					
						
							
							
								 
						
							
								46f60890a3 
								
							 
						 
						
							
							
								
								Comment out the isnan stuff until we get a proper autoconf test for it  
							
							... 
							
							
							
							breaking the build on sparc is not acceptable.
llvm-svn: 14277 
							
						 
						
							2004-06-21 06:17:21 +00:00  
				
					
						
							
							
								 
						
							
								27b13253d9 
								
							 
						 
						
							
							
								
								I love the smell of a freshly broken PowerPC build in the morning.  
							
							... 
							
							
							
							llvm-svn: 14206 
							
						 
						
							2004-06-17 22:27:04 +00:00  
				
					
						
							
							
								 
						
							
								f03f320b79 
								
							 
						 
						
							
							
								
								Fix compilation problem on freebsd.  Problem noted by Vladimir Merzliakov in  
							
							... 
							
							
							
							PR371
llvm-svn: 14203 
							
						 
						
							2004-06-17 21:20:52 +00:00  
				
					
						
							
							
								 
						
							
								20e09e5c7b 
								
							 
						 
						
							
							
								
								Um, did someone make a typo or something?  
							
							... 
							
							
							
							llvm-svn: 14192 
							
						 
						
							2004-06-15 23:09:50 +00:00  
				
					
						
							
							
								 
						
							
								5a542aadc8 
								
							 
						 
						
							
							
								
								Remove support for the isnan intrinsic  
							
							... 
							
							
							
							llvm-svn: 14186 
							
						 
						
							2004-06-15 21:37:54 +00:00  
				
					
						
							
							
								 
						
							
								21370771ba 
								
							 
						 
						
							
							
								
								Quick hack to get this file compiling again on Mac OS X.  The right thing to do  
							
							... 
							
							
							
							is write an autoconf macro that checks whether __isnan or isnan actually works
**using the C++ compiler after #include <cmath>**, instead of doing it the easy
way with AC_CHECK_FUNCS().
llvm-svn: 14171 
							
						 
						
							2004-06-14 06:33:19 +00:00  
				
					
						
							
							
								 
						
							
								e395468ae5 
								
							 
						 
						
							
							
								
								Add constant folding capabilities to the isunordered intrinsic.  
							
							... 
							
							
							
							llvm-svn: 14168 
							
						 
						
							2004-06-13 01:23:56 +00:00  
				
					
						
							
							
								 
						
							
								ec941f7abb 
								
							 
						 
						
							
							
								
								Constant fold the isnan intrinsic  
							
							... 
							
							
							
							llvm-svn: 14150 
							
						 
						
							2004-06-11 06:16:23 +00:00  
				
					
						
							
							
								 
						
							
								c6e21fbd5c 
								
							 
						 
						
							
							
								
								Implement constant folding of fmod, which is used a lot in povray  
							
							... 
							
							
							
							llvm-svn: 13823 
							
						 
						
							2004-05-27 07:25:00 +00:00  
				
					
						
							
							
								 
						
							
								06158d140c 
								
							 
						 
						
							
							
								
								Restructure call constant folding code a bit to make it simpler  
							
							... 
							
							
							
							Add support for acos/asin/atan.  188.ammp contains three calls to acos with
constant arguments.  Constant folding it allows elimination of those 3 calls
and three FP divisions of the results.
llvm-svn: 13821 
							
						 
						
							2004-05-27 06:26:28 +00:00  
				
					
						
							
							
								 
						
							
								f68f40ea42 
								
							 
						 
						
							
							
								
								Include cerrno (gcc-3.4 fix)  
							
							... 
							
							
							
							llvm-svn: 13091 
							
						 
						
							2004-04-21 16:11:40 +00:00  
				
					
						
							
							
								 
						
							
								a43312d30b 
								
							 
						 
						
							
							
								
								Add support for evaluation of exp/log/log10/pow  
							
							... 
							
							
							
							llvm-svn: 13011 
							
						 
						
							2004-04-16 22:35:33 +00:00  
				
					
						
							
							
								 
						
							
								174633b078 
								
							 
						 
						
							
							
								
								Include <cmath> for compatibility with gcc 3.0.x (the system compiler on  
							
							... 
							
							
							
							Debian.)
llvm-svn: 12986 
							
						 
						
							2004-04-16 15:57:32 +00:00  
				
					
						
							
							
								 
						
							
								ca52d0468e 
								
							 
						 
						
							
							
								
								Add a simple call constant propagation interface.  
							
							... 
							
							
							
							llvm-svn: 12919 
							
						 
						
							2004-04-13 19:28:52 +00:00  
				
					
						
							
							
								 
						
							
								cb015ee6c0 
								
							 
						 
						
							
							
								
								Add constant folding wrapper support for select instructions.  
							
							... 
							
							
							
							llvm-svn: 12319 
							
						 
						
							2004-03-12 05:53:03 +00:00  
				
					
						
							
							
								 
						
							
								6b052f2154 
								
							 
						 
						
							
							
								
								Clean up #includes  
							
							... 
							
							
							
							llvm-svn: 10799 
							
						 
						
							2004-01-12 19:56:36 +00:00  
				
					
						
							
							
								 
						
							
								429963742e 
								
							 
						 
						
							
							
								
								Remove use of ConstantExpr::getShift  
							
							... 
							
							
							
							llvm-svn: 10792 
							
						 
						
							2004-01-12 19:10:58 +00:00  
				
					
						
							
							
								 
						
							
								2853a7ed22 
								
							 
						 
						
							
							
								
								Remove use of ConstantHandling  
							
							... 
							
							
							
							llvm-svn: 10789 
							
						 
						
							2004-01-12 18:35:03 +00:00  
				
					
						
							
							
								 
						
							
								fc6c859a0c 
								
							 
						 
						
							
							
								
								Move llvm::ConstantFoldInstruction from VMCore to here, next to ConstantFoldTerminator  
							
							... 
							
							
							
							llvm-svn: 10785 
							
						 
						
							2004-01-12 18:25:22 +00:00  
				
					
						
							
							
								 
						
							
								04efa4b155 
								
							 
						 
						
							
							
								
								Add new function  
							
							... 
							
							
							
							llvm-svn: 10529 
							
						 
						
							2003-12-19 05:56:28 +00:00  
				
					
						
							
							
								 
						
							
								960707c335 
								
							 
						 
						
							
							
								
								Put all LLVM code into the llvm namespace, as per bug 109.  
							
							... 
							
							
							
							llvm-svn: 9903 
							
						 
						
							2003-11-11 22:41:34 +00:00  
				
					
						
							
							
								 
						
							
								482202a601 
								
							 
						 
						
							
							
								
								Added LLVM project notice to the top of every C++ source file.  
							
							... 
							
							
							
							Header files will be on the way.
llvm-svn: 9298 
							
						 
						
							2003-10-20 19:43:21 +00:00  
				
					
						
							
							
								 
						
							
								c54d608377 
								
							 
						 
						
							
							
								
								Implement SimplifyCFG/2003-08-17-FoldSwitch.ll:test5  
							
							... 
							
							
							
							llvm-svn: 8093 
							
						 
						
							2003-08-23 23:18:19 +00:00  
				
					
						
							
							
								 
						
							
								821deeeffa 
								
							 
						 
						
							
							
								
								Implement folding of switch instructions.  
							
							... 
							
							
							
							Implements SimplifyCFG/2003-08-17-FoldSwitch.ll
llvm-svn: 7923 
							
						 
						
							2003-08-17 20:21:14 +00:00  
				
					
						
							
							
								 
						
							
								031340a551 
								
							 
						 
						
							
							
								
								Fix bug: SimplifyCFG/2003-08-17-BranchFoldOrdering.ll  
							
							... 
							
							
							
							llvm-svn: 7921 
							
						 
						
							2003-08-17 19:41:53 +00:00  
				
					
						
							
							
								 
						
							
								4b7e3364c7 
								
							 
						 
						
							
							
								
								The fixme is irrelevant: if that happens, the LLVM bytecode is malformed.  
							
							... 
							
							
							
							This fixes testcase: SimplifyCFG/2003-08-17-BranchFold.ll
llvm-svn: 7919 
							
						 
						
							2003-08-17 19:34:55 +00:00  
				
					
						
							
							
								 
						
							
								373086db75 
								
							 
						 
						
							
							
								
								Hopefully, the final fix for `[Pp]ropogate'.  
							
							... 
							
							
							
							llvm-svn: 6251 
							
						 
						
							2003-05-20 21:01:22 +00:00  
				
					
						
							
							
								 
						
							
								4869f3700e 
								
							 
						 
						
							
							
								
								Rename Instruction::hasSideEffects() -> mayWriteToMemory()  
							
							... 
							
							
							
							llvm-svn: 5620 
							
						 
						
							2003-02-24 20:48:32 +00:00  
				
					
						
							
							
								 
						
							
								fda72b1aad 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 2777 
							
						 
						
							2002-06-25 16:12:52 +00:00  
				
					
						
							
							
								 
						
							
								ab038d44b0 
								
							 
						 
						
							
							
								
								Simplify the interface to local DCE and Constant prop  
							
							... 
							
							
							
							llvm-svn: 2749 
							
						 
						
							2002-05-26 20:18:18 +00:00  
				
					
						
							
							
								 
						
							
								4b009adc77 
								
							 
						 
						
							
							
								
								Simplify interface to ConstantFoldTerminator  
							
							... 
							
							
							
							llvm-svn: 2697 
							
						 
						
							2002-05-21 20:04:50 +00:00  
				
					
						
							
							
								 
						
							
								28537dff72 
								
							 
						 
						
							
							
								
								Add code pulled out of TransformInternals.cpp, ConstProp.cpp, and DCE.cpp  
							
							... 
							
							
							
							llvm-svn: 2513 
							
						 
						
							2002-05-07 18:07:59 +00:00