6df5cec72f 
								
							 
						 
						
							
							
								
								remove some extraneous llvmcontext stuff.  
							
							... 
							
							
							
							llvm-svn: 85774 
							
						 
						
							2009-11-02 02:30:06 +00:00  
				
					
						
							
							
								 
						
							
								efdd2bbce6 
								
							 
						 
						
							
							
								
								change LatticeVal to use PointerIntPair to save some space.  
							
							... 
							
							
							
							llvm-svn: 85773 
							
						 
						
							2009-11-02 02:20:32 +00:00  
				
					
						
							
							
								 
						
							
								1a8b80ed5a 
								
							 
						 
						
							
							
								
								teach ipsccp and ipconstprop that a blockaddress doesn't 'take the address' of a function  
							
							... 
							
							
							
							in a way that should prevent ip constprop.  This allows clang/test/CodeGen/indirect-goto.c
to pass with the new indirect goto lowering.
llvm-svn: 85709 
							
						 
						
							2009-11-01 06:11:53 +00:00  
				
					
						
							
							
								 
						
							
								ee8b951e73 
								
							 
						 
						
							
							
								
								teach various passes about blockaddress.  We no longer  
							
							... 
							
							
							
							crash on any clang tests.
llvm-svn: 85465 
							
						 
						
							2009-10-29 01:21:20 +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  
				
					
						
							
							
								 
						
							
								8acf2956b8 
								
							 
						 
						
							
							
								
								Remove AllocationInst.  Since MallocInst went away, AllocaInst is the only subclass of AllocationInst, so it no longer is necessary.  
							
							... 
							
							
							
							llvm-svn: 84969 
							
						 
						
							2009-10-23 21:09:37 +00:00  
				
					
						
							
							
								 
						
							
								729d92bd74 
								
							 
						 
						
							
							
								
								Fix PR4313: IPSCCP was not setting the lattice value for the invoke instruction  
							
							... 
							
							
							
							when the invoke had multiple return values: it set the lattice value only on the
extractvalue.
This caused the invoke's lattice value to remain the default (undefined), and
later propagated to extractvalue's operand, which incorrectly introduces
undefined behavior.
llvm-svn: 84637 
							
						 
						
							2009-10-20 15:15:09 +00:00  
				
					
						
							
							
								 
						
							
								e525d9ddc0 
								
							 
						 
						
							
							
								
								Remove an unnnecessary LLVMContext argument in  
							
							... 
							
							
							
							ConstantFoldLoadThroughGEPConstantExpr.
llvm-svn: 83311 
							
						 
						
							2009-10-05 16:36:26 +00:00  
				
					
						
							
							
								 
						
							
								fdd8790718 
								
							 
						 
						
							
							
								
								strength reduce a ton of type equality tests to check the typeid (Through  
							
							... 
							
							
							
							the new predicates I added) instead of going through a context and doing a
pointer comparison.  Besides being cheaper, this allows a smart compiler
to turn the if sequence into a switch.
llvm-svn: 83297 
							
						 
						
							2009-10-05 05:54:46 +00:00  
				
					
						
							
							
								 
						
							
								f9e0c7f84b 
								
							 
						 
						
							
							
								
								calls to external functions are already marked overdefined, special casing  
							
							... 
							
							
							
							malloc isn't needed.
llvm-svn: 82932 
							
						 
						
							2009-09-27 21:35:11 +00:00  
				
					
						
							
							
								 
						
							
								21bd8c9fc5 
								
							 
						 
						
							
							
								
								Constant propagating byval pointer is safe if function is readonly.  
							
							... 
							
							
							
							llvm-svn: 82700 
							
						 
						
							2009-09-24 18:33:42 +00:00  
				
					
						
							
							
								 
						
							
								f95a450ef9 
								
							 
						 
						
							
							
								
								Don't constant propagate byval pointers, since they are not really pointers, but  
							
							... 
							
							
							
							rather structs passed by value.
This fixes PR5038.
llvm-svn: 82689 
							
						 
						
							2009-09-24 09:47:18 +00:00  
				
					
						
							
							
								 
						
							
								5d034499ad 
								
							 
						 
						
							
							
								
								Enhance transform passes so that they apply the same tranforms to malloc calls as to MallocInst.  
							
							... 
							
							
							
							Reviewed by Dan Gohman.
llvm-svn: 82300 
							
						 
						
							2009-09-18 22:35:49 +00:00  
				
					
						
							
							
								 
						
							
								2dd09dbdf7 
								
							 
						 
						
							
							
								
								eliminate VISIBILITY_HIDDEN from Transforms/Scalar.  PR4861  
							
							... 
							
							
							
							llvm-svn: 80766 
							
						 
						
							2009-09-02 06:11:42 +00:00  
				
					
						
							
							
								 
						
							
								a3e620caba 
								
							 
						 
						
							
							
								
								add getPointerAddressSpace() to GEP instruction, use the method  
							
							... 
							
							
							
							in a few scalar xforms to simplify things.
llvm-svn: 80506 
							
						 
						
							2009-08-30 20:06:40 +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  
				
					
						
							
							
								 
						
							
								8dd69f88ea 
								
							 
						 
						
							
							
								
								Fix debug output to include a newline after printing a Value, now  
							
							... 
							
							
							
							that Value's operator<< doesn't include one.
llvm-svn: 79240 
							
						 
						
							2009-08-17 15:25:05 +00:00  
				
					
						
							
							
								 
						
							
								55f1c09e31 
								
							 
						 
						
							
							
								
								Push LLVMContexts through the IntegerType APIs.  
							
							... 
							
							
							
							llvm-svn: 78948 
							
						 
						
							2009-08-13 21:58:54 +00:00  
				
					
						
							
							
								 
						
							
								5a1acd9912 
								
							 
						 
						
							
							
								
								Move a few more APIs back to 2.5 forms.  The only remaining ones left to change back are  
							
							... 
							
							
							
							metadata related, which I'm waiting on to avoid conflicting with Devang.
llvm-svn: 77721 
							
						 
						
							2009-07-31 20:28:14 +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  
				
					
						
							
							
								 
						
							
								487375e9a2 
								
							 
						 
						
							
							
								
								Move ConstantExpr to 2.5 API.  
							
							... 
							
							
							
							llvm-svn: 77494 
							
						 
						
							2009-07-29 18:55:55 +00:00  
				
					
						
							
							
								 
						
							
								9813b0b025 
								
							 
						 
						
							
							
								
								Eliminate some uses of DOUT, cerr, and getNameStart().  
							
							... 
							
							
							
							llvm-svn: 77145 
							
						 
						
							2009-07-26 07:49:05 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								20b34ac794 
								
							 
						 
						
							
							
								
								Move the ConstantInt uniquing table into LLVMContextImpl.  This exposed a number of issues in  
							
							... 
							
							
							
							our current context-passing stuff, which is also fixed here
llvm-svn: 76089 
							
						 
						
							2009-07-16 18:04:31 +00:00  
				
					
						
							
							
								 
						
							
								fbcc663cbf 
								
							 
						 
						
							
							
								
								llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.  
							
							... 
							
							
							
							This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640 
							
						 
						
							2009-07-14 16:55:14 +00:00  
				
					
						
							
							
								 
						
							
								542619e6d5 
								
							 
						 
						
							
							
								
								Move more functionality over to LLVMContext.  
							
							... 
							
							
							
							llvm-svn: 75497 
							
						 
						
							2009-07-13 20:58:05 +00:00  
				
					
						
							
							
								 
						
							
								56d0659726 
								
							 
						 
						
							
							
								
								assert(0) -> LLVM_UNREACHABLE.  
							
							... 
							
							
							
							Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379 
							
						 
						
							2009-07-11 20:10:48 +00:00  
				
					
						
							
							
								 
						
							
								ccb29cd290 
								
							 
						 
						
							
							
								
								Convert more assert(0)+abort() -> LLVM_UNREACHABLE,  
							
							... 
							
							
							
							and abort()/exit() -> llvm_report_error().
llvm-svn: 75363 
							
						 
						
							2009-07-11 13:10:19 +00:00  
				
					
						
							
							
								 
						
							
								38264b1554 
								
							 
						 
						
							
							
								
								"LLVMContext* " --> "LLVMContext *"  
							
							... 
							
							
							
							llvm-svn: 74878 
							
						 
						
							2009-07-06 23:00:19 +00:00  
				
					
						
							
							
								 
						
							
								f1f1743b2e 
								
							 
						 
						
							
							
								
								Finish LLVMContext-ing lib/Analysis.  This required pushing LLVMContext's through the ValueTracking API.  
							
							... 
							
							
							
							llvm-svn: 74873 
							
						 
						
							2009-07-06 22:37:39 +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  
				
					
						
							
							
								 
						
							
								340288c621 
								
							 
						 
						
							
							
								
								Even more passes being LLVMContext'd.  
							
							... 
							
							
							
							llvm-svn: 74781 
							
						 
						
							2009-07-03 19:42:02 +00:00  
				
					
						
							
							
								 
						
							
								7ea68536b5 
								
							 
						 
						
							
							
								
								Don't crash on multiple return value with no obvious inserted value.  
							
							... 
							
							
							
							Fixes PR4314.
llvm-svn: 73007 
							
						 
						
							2009-06-06 23:13:08 +00:00  
				
					
						
							
							
								 
						
							
								206876e2da 
								
							 
						 
						
							
							
								
								Use Operands.data() instead of &Operands[0] where Operands is a potentially  
							
							... 
							
							
							
							empty SmallVector.
llvm-svn: 72512 
							
						 
						
							2009-05-28 04:08:10 +00:00  
				
					
						
							
							
								 
						
							
								1f15ca7c7a 
								
							 
						 
						
							
							
								
								Factorize out a concept - no functionality change.  
							
							... 
							
							
							
							llvm-svn: 67454 
							
						 
						
							2009-03-21 21:27:31 +00:00  
				
					
						
							
							
								 
						
							
								a09e0afe74 
								
							 
						 
						
							
							
								
								Don't load values out of global constants with weak  
							
							... 
							
							
							
							linkage: the value may be replaced with something
different at link time.  (Frontends that want to
allow values to be loaded out of weak constants can
give their constants weak_odr linkage).
llvm-svn: 67407 
							
						 
						
							2009-03-20 21:53:29 +00:00  
				
					
						
							
							
								 
						
							
								6de96a1b5d 
								
							 
						 
						
							
							
								
								Add the private linkage.  
							
							... 
							
							
							
							llvm-svn: 62279 
							
						 
						
							2009-01-15 20:18:42 +00:00  
				
					
						
							
							
								 
						
							
								8fb9480ed2 
								
							 
						 
						
							
							
								
								Fix PR3325, a miscompilation of invokes by IPSCCP.  Patch by Jay Foad!  
							
							... 
							
							
							
							llvm-svn: 62244 
							
						 
						
							2009-01-14 21:01:16 +00:00  
				
					
						
							
							
								 
						
							
								45f1ae028e 
								
							 
						 
						
							
							
								
								Fix unused variable warnings.  
							
							... 
							
							
							
							llvm-svn: 59778 
							
						 
						
							2008-11-21 01:52:59 +00:00  
				
					
						
							
							
								 
						
							
								d73806a9cc 
								
							 
						 
						
							
							
								
								Replace explicit loop with utility function.  
							
							... 
							
							
							
							llvm-svn: 58593 
							
						 
						
							2008-11-03 03:49:14 +00:00  
				
					
						
							
							
								 
						
							
								a79db30d28 
								
							 
						 
						
							
							
								
								Tidy up several unbeseeming casts from pointer to intptr_t.  
							
							... 
							
							
							
							llvm-svn: 55779 
							
						 
						
							2008-09-04 17:05:41 +00:00  
				
					
						
							
							
								 
						
							
								add44f3fb7 
								
							 
						 
						
							
							
								
								improve encapsulation of the BBExecutable set.  
							
							... 
							
							
							
							llvm-svn: 55271 
							
						 
						
							2008-08-23 23:39:31 +00:00  
				
					
						
							
							
								 
						
							
								65938fc69a 
								
							 
						 
						
							
							
								
								Switch an assortment of maps, sets and vectors to more efficient versions,  
							
							... 
							
							
							
							patch contributed by m-s!
llvm-svn: 55270 
							
						 
						
							2008-08-23 23:36:38 +00:00  
				
					
						
							
							
								 
						
							
								861bec78f8 
								
							 
						 
						
							
							
								
								Temporarily revert r54792. It's causing an ICE during bootstrapping.  
							
							... 
							
							
							
							llvm-svn: 54804 
							
						 
						
							2008-08-14 23:05:24 +00:00  
				
					
						
							
							
								 
						
							
								52dc07b01a 
								
							 
						 
						
							
							
								
								Use DenseMap. Patch by Pratik Solanki.  
							
							... 
							
							
							
							llvm-svn: 54792 
							
						 
						
							2008-08-14 21:31:10 +00:00  
				
					
						
							
							
								 
						
							
								8ded5d5884 
								
							 
						 
						
							
							
								
								Fix SCCP's handling of struct value loads and stores. SCCP doesn't  
							
							... 
							
							
							
							track individual leaf values in such cases, so it needs to treat
struct values as normal values in this case.
llvm-svn: 54760 
							
						 
						
							2008-08-13 21:22:48 +00:00  
				
					
						
							
							
								 
						
							
								fa1211f69b 
								
							 
						 
						
							
							
								
								Enable first-class aggregates support.  
							
							... 
							
							
							
							Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.
The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.
llvm-svn: 53941 
							
						 
						
							2008-07-23 00:34:11 +00:00  
				
					
						
							
							
								 
						
							
								a5dd67f002 
								
							 
						 
						
							
							
								
								Tidy up some commments and use the getAggregateOperand and  
							
							... 
							
							
							
							getInsertedValueOperand accessors. Thanks Matthijs!
llvm-svn: 52543 
							
						 
						
							2008-06-20 16:41:17 +00:00  
				
					
						
							
							
								 
						
							
								b5210efb31 
								
							 
						 
						
							
							
								
								Fix the conditions under which SCCP should examine insertvalue  
							
							... 
							
							
							
							instructions. Thanks to Matthijs Kooijman for pointing this out!
llvm-svn: 52542 
							
						 
						
							2008-06-20 16:39:44 +00:00  
				
					
						
							
							
								 
						
							
								041f9d03ff 
								
							 
						 
						
							
							
								
								Teach SCCP about insertvalue and extractvalue, and about  
							
							... 
							
							
							
							propagating constants across aggregate return values when
insertvalue and extractvalue are used.
llvm-svn: 52520 
							
						 
						
							2008-06-20 01:15:44 +00:00  
				
					
						
							
							
								 
						
							
								5c207c83c6 
								
							 
						 
						
							
							
								
								Fix PR2358 by resolving calls with undef arguments to overdefined.  
							
							... 
							
							
							
							llvm-svn: 51535 
							
						 
						
							2008-05-24 03:59:33 +00:00  
				
					
						
							
							
								 
						
							
								fecb88249f 
								
							 
						 
						
							
							
								
								Allow for switch with no cases.  Was causing fault  
							
							... 
							
							
							
							in gcc.dg/pr27531-1.c.
llvm-svn: 51464 
							
						 
						
							2008-05-23 01:01:31 +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  
				
					
						
							
							
								 
						
							
								47fed61526 
								
							 
						 
						
							
							
								
								Fix various DOUTs to not call the extremely expensive Value::getName()  
							
							... 
							
							
							
							method.  DOUT statements are disabled when assertions are off, but the
side effects of getName() are still evaluated.  Just call getNameSTart,
which is close enough and doesn't cause heap traffic.
llvm-svn: 50958 
							
						 
						
							2008-05-11 01:55:59 +00:00  
				
					
						
							
							
								 
						
							
								82146fa267 
								
							 
						 
						
							
							
								
								Simplify code by using SwitchInst::findCaseValue instead of reimplementing it.  
							
							... 
							
							
							
							llvm-svn: 50957 
							
						 
						
							2008-05-10 23:56:54 +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  
				
					
						
							
							
								 
						
							
								97951ac580 
								
							 
						 
						
							
							
								
								code restructuring, not functionality change.  
							
							... 
							
							
							
							llvm-svn: 50203 
							
						 
						
							2008-04-24 00:21:50 +00:00  
				
					
						
							
							
								 
						
							
								12f1e007f7 
								
							 
						 
						
							
							
								
								Don't replace multiple result of calls with undef,  
							
							... 
							
							
							
							sccp tracks getresult values, not call values in this
case.
llvm-svn: 50202 
							
						 
						
							2008-04-24 00:19:54 +00:00  
				
					
						
							
							
								 
						
							
								769203cb03 
								
							 
						 
						
							
							
								
								code cleanup, no functionality change.  
							
							... 
							
							
							
							llvm-svn: 50201 
							
						 
						
							2008-04-24 00:16:28 +00:00  
				
					
						
							
							
								 
						
							
								5a58a4dc6d 
								
							 
						 
						
							
							
								
								Rewrite multiple return value handling in SCCP.  Before, the -sccp pass  
							
							... 
							
							
							
							would turn every getresult instruction into undef.  This helps with
rdar://5778210
llvm-svn: 50140 
							
						 
						
							2008-04-23 05:38:20 +00:00  
				
					
						
							
							
								 
						
							
								a7dfbc0366 
								
							 
						 
						
							
							
								
								Be conservative if getresult operand is neither call nor invoke.  
							
							... 
							
							
							
							llvm-svn: 49430 
							
						 
						
							2008-04-09 15:58:24 +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  
				
					
						
							
							
								 
						
							
								9988569af8 
								
							 
						 
						
							
							
								
								Don't include <map> in Pass.h, which doesn't need it. This requires  
							
							... 
							
							
							
							adding <map> to many files that actually do need it.
llvm-svn: 48667 
							
						 
						
							2008-03-21 23:51:57 +00:00  
				
					
						
							
							
								 
						
							
								e418de3023 
								
							 
						 
						
							
							
								
								Add TODO reminder.  
							
							... 
							
							
							
							llvm-svn: 48227 
							
						 
						
							2008-03-11 17:32:05 +00:00  
				
					
						
							
							
								 
						
							
								a7a2075ab8 
								
							 
						 
						
							
							
								
								Initial multiple return values support.  
							
							... 
							
							
							
							llvm-svn: 48210 
							
						 
						
							2008-03-11 05:46:42 +00:00  
				
					
						
							
							
								 
						
							
								83750d9caf 
								
							 
						 
						
							
							
								
								SCCP also needs to be taught to follow unwind_to  
							
							... 
							
							
							
							llvm-svn: 48109 
							
						 
						
							2008-03-09 09:44:38 +00:00  
				
					
						
							
							
								 
						
							
								35e92c7bea 
								
							 
						 
						
							
							
								
								Not all users of a BB are Instructions any more.  
							
							... 
							
							
							
							llvm-svn: 48047 
							
						 
						
							2008-03-08 07:48:41 +00:00  
				
					
						
							
							
								 
						
							
								1bfd121321 
								
							 
						 
						
							
							
								
								Make Transforms to be 4.3 warnings-clean  
							
							... 
							
							
							
							llvm-svn: 47371 
							
						 
						
							2008-02-20 11:26:25 +00:00  
				
					
						
							
							
								 
						
							
								1b706dd680 
								
							 
						 
						
							
							
								
								Fix PR1938 by forcing the code that uses an undefined value to branch one  
							
							... 
							
							
							
							way or the other.  Rewriting the code itself prevents subsequent analysis
passes from making contradictory conclusions about the code that could 
cause an infeasible path to be made feasible.
llvm-svn: 46427 
							
						 
						
							2008-01-28 00:32:30 +00:00  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								b053b80b79 
								
							 
						 
						
							
							
								
								Disable null pointer folding transforms for non-generic address spaces. This should probably be a target-specific predicate based on address space. That way for targets where this isn't applicable the predicate can be optimized away.  
							
							... 
							
							
							
							llvm-svn: 45403 
							
						 
						
							2007-12-29 07:56:53 +00:00  
				
					
						
							
							
								 
						
							
								c731c97fac 
								
							 
						 
						
							
							
								
								Use empty() member functions when that's what's being tested for instead  
							
							... 
							
							
							
							of comparing begin() and end().
llvm-svn: 42585 
							
						 
						
							2007-10-03 19:26:29 +00:00  
				
					
						
							
							
								 
						
							
								2be91fcdd8 
								
							 
						 
						
							
							
								
								Place SCCPSolver also in the anonymous namespace.  This  
							
							... 
							
							
							
							pacifies g++-4.2.
llvm-svn: 40089 
							
						 
						
							2007-07-20 08:56:21 +00:00  
				
					
						
							
							
								 
						
							
								2c30a37a5c 
								
							 
						 
						
							
							
								
								Fix PR1431  
							
							... 
							
							
							
							Test case at Transformations/SCCP/2007-05-16-InvokeCrash.ll
llvm-svn: 37185 
							
						 
						
							2007-05-17 22:10:15 +00:00  
				
					
						
							
							
								 
						
							
								e7da2d6ac3 
								
							 
						 
						
							
							
								
								Fix typo in comment.  
							
							... 
							
							
							
							llvm-svn: 36873 
							
						 
						
							2007-05-06 13:37:16 +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  
				
					
						
							
							
								 
						
							
								28d921d04f 
								
							 
						 
						
							
							
								
								fix long lines  
							
							... 
							
							
							
							llvm-svn: 36031 
							
						 
						
							2007-04-14 23:32:02 +00:00  
				
					
						
							
							
								 
						
							
								c33fd469ef 
								
							 
						 
						
							
							
								
								minor cleanups  
							
							... 
							
							
							
							llvm-svn: 34904 
							
						 
						
							2007-03-04 04:50:21 +00:00  
				
					
						
							
							
								 
						
							
								d84d35ba70 
								
							 
						 
						
							
							
								
								For PR1195:  
							
							... 
							
							
							
							Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.
llvm-svn: 34293 
							
						 
						
							2007-02-15 02:26:10 +00:00  
				
					
						
							
							
								 
						
							
								557ab15e71 
								
							 
						 
						
							
							
								
								Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in  
							
							... 
							
							
							
							the Transforms library. This reduces debug library size by 132 KB, debug
binary size by 376 KB, and reduces link time for llvm tools slightly.
llvm-svn: 33939 
							
						 
						
							2007-02-05 23:32:05 +00:00  
				
					
						
							
							
								 
						
							
								fc8190dbb7 
								
							 
						 
						
							
							
								
								Switch this back to using an std::map.  DenseMap entries are getting invalidated  
							
							... 
							
							
							
							llvm-svn: 33799 
							
						 
						
							2007-02-02 22:36:16 +00:00  
				
					
						
							
							
								 
						
							
								37d400a83d 
								
							 
						 
						
							
							
								
								Remove more malloc thrashing, this speeds up IPSCCP on kimwitu another 6.7%.  
							
							... 
							
							
							
							llvm-svn: 33796 
							
						 
						
							2007-02-02 21:15:06 +00:00  
				
					
						
							
							
								 
						
							
								3e667f3e61 
								
							 
						 
						
							
							
								
								Convert an std::set to SmallSet, this speeds up IPSCCP 17% on kimwitu.  
							
							... 
							
							
							
							llvm-svn: 33794 
							
						 
						
							2007-02-02 20:57:39 +00:00  
				
					
						
							
							
								 
						
							
								0e7ec675da 
								
							 
						 
						
							
							
								
								eliminate a malloc/free for (almost) every GEP processed.  This speeds up  
							
							... 
							
							
							
							IPSCCP 3.3% on kimwitu.
llvm-svn: 33793 
							
						 
						
							2007-02-02 20:51:48 +00:00  
				
					
						
							
							
								 
						
							
								067d607e0e 
								
							 
						 
						
							
							
								
								switch hash_map's over to DenseMap in SCCP.  This speeds up SCCP by 30% in  
							
							... 
							
							
							
							a release-assert build on kimwitu++.
llvm-svn: 33792 
							
						 
						
							2007-02-02 20:38:30 +00:00  
				
					
						
							
							
								 
						
							
								2341c22ec7 
								
							 
						 
						
							
							
								
								Changes to support making the shift instructions be true BinaryOperators.  
							
							... 
							
							
							
							This feature is needed in order to support shifts of more than 255 bits
on large integer types.  This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
   shl i32 %X, 1
instead of
   shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.
llvm-svn: 33776 
							
						 
						
							2007-02-02 02:16:23 +00:00  
				
					
						
							
							
								 
						
							
								024f4ab383 
								
							 
						 
						
							
							
								
								Adjust #includes to match movement of constant folding code from transformutils to libanalysis.  
							
							... 
							
							
							
							llvm-svn: 33680 
							
						 
						
							2007-01-30 23:46:24 +00:00  
				
					
						
							
							
								 
						
							
								0d74d3c09b 
								
							 
						 
						
							
							
								
								use smallvector instead of vector to make constant folding a bit more efficient  
							
							... 
							
							
							
							llvm-svn: 33672 
							
						 
						
							2007-01-30 23:15:19 +00:00  
				
					
						
							
							
								 
						
							
								5301e7c605 
								
							 
						 
						
							
							
								
								For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid  
							
							... 
							
							
							
							confusion with external linkage types.
llvm-svn: 33663 
							
						 
						
							2007-01-30 20:08:39 +00:00  
				
					
						
							
							
								 
						
							
								ff7434a526 
								
							 
						 
						
							
							
								
								Fix a minor bug handling constant exprs, introduced by a recent patch.  
							
							... 
							
							
							
							llvm-svn: 33175 
							
						 
						
							2007-01-13 00:42:58 +00:00  
				
					
						
							
							
								 
						
							
								7a9c62baa6 
								
							 
						 
						
							
							
								
								For PR1064:  
							
							... 
							
							
							
							Implement the arbitrary bit-width integer feature. The feature allows
integers of any bitwidth (up to 64) to be defined instead of just 1, 8,
16, 32, and 64 bit integers.
This change does several things:
1. Introduces a new Derived Type, IntegerType, to represent the number of
   bits in an integer. The Type classes SubclassData field is used to
   store the number of bits. This allows 2^23 bits in an integer type.
2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and
   64-bit integers. These are replaced with just IntegerType which is not
   a primitive any more.
3. Adjust the rest of LLVM to account for this change.
Note that while this incremental change lays the foundation for arbitrary
bit-width integers, LLVM has not yet been converted to actually deal with
them in any significant way. Most optimization passes, for example, will
still only deal with the byte-width integer types.  Future increments
will rectify this situation.
llvm-svn: 33113 
							
						 
						
							2007-01-12 07:05:14 +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  
				
					
						
							
							
								 
						
							
								542964f55b 
								
							 
						 
						
							
							
								
								Rename BoolTy as Int1Ty. Patch by Sheng Zhou.  
							
							... 
							
							
							
							llvm-svn: 33076 
							
						 
						
							2007-01-11 18:21:29 +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  
				
					
						
							
							
								 
						
							
								806adafd95 
								
							 
						 
						
							
							
								
								Enable a couple xforms for packed vectors (undef | v) -> -1 for packed.  
							
							... 
							
							
							
							llvm-svn: 32858 
							
						 
						
							2007-01-04 02:12:40 +00:00  
				
					
						
							
							
								 
						
							
								c4ba9c161b 
								
							 
						 
						
							
							
								
								Vectors are not supported by ConstantInt::getAllOnesValue.  
							
							... 
							
							
							
							llvm-svn: 32827 
							
						 
						
							2007-01-03 00:11:03 +00:00  
				
					
						
							
							
								 
						
							
								e8a74ee5ea 
								
							 
						 
						
							
							
								
								Fix a typo.  
							
							... 
							
							
							
							llvm-svn: 32803 
							
						 
						
							2006-12-31 22:26:06 +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  
				
					
						
							
							
								 
						
							
								1847f6ddbd 
								
							 
						 
						
							
							
								
								handle undef values much more carefully: generalize the resolveundefbranches  
							
							... 
							
							
							
							code to handle instructions as well, so that we properly fold things like
X & undef -> 0.
This fixes Transforms/SCCP/2006-12-19-UndefBug.ll
llvm-svn: 32715 
							
						 
						
							2006-12-20 06:21:33 +00:00  
				
					
						
							
							
								 
						
							
								79a42ac941 
								
							 
						 
						
							
							
								
								Switch over Transforms/Scalar to use the STATISTIC macro.  For each statistic  
							
							... 
							
							
							
							converted, we lose a static initializer.  This also allows GCC to emit warnings
about unused statistics.
llvm-svn: 32690 
							
						 
						
							2006-12-19 21:40:18 +00:00  
				
					
						
							
							
								 
						
							
								b341b0861d 
								
							 
						 
						
							
							
								
								Change inferred getCast into specific getCast. Passes all tests.  
							
							... 
							
							
							
							llvm-svn: 32469 
							
						 
						
							2006-12-12 05:05:00 +00:00  
				
					
						
							
							
								 
						
							
								f3baad3ee1 
								
							 
						 
						
							
							
								
								Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are  
							
							... 
							
							
							
							now cerr, cout, and NullStream resp.
llvm-svn: 32298 
							
						 
						
							2006-12-07 01:30:32 +00:00  
				
					
						
							
							
								 
						
							
								700b873130 
								
							 
						 
						
							
							
								
								Detemplatize the Statistic class.  The only type it is instantiated with  
							
							... 
							
							
							
							is 'unsigned'.
llvm-svn: 32279 
							
						 
						
							2006-12-06 17:46:33 +00:00  
				
					
						
							
							
								 
						
							
								21efc73161 
								
							 
						 
						
							
							
								
								SCCP does not handle Packed Type properly. Disable Packed Type handling  
							
							... 
							
							
							
							for now.
llvm-svn: 32208 
							
						 
						
							2006-12-04 23:54:59 +00:00  
				
					
						
							
							
								 
						
							
								5dbf43c983 
								
							 
						 
						
							
							
								
								Removed #include <iostream> and replaced with llvm_* streams.  
							
							... 
							
							
							
							llvm-svn: 31923 
							
						 
						
							2006-11-26 09:46:52 +00:00  
				
					
						
							
							
								 
						
							
								de46e48420 
								
							 
						 
						
							
							
								
								For PR786:  
							
							... 
							
							
							
							Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380 
							
						 
						
							2006-11-02 20:25:50 +00:00  
				
					
						
							
							
								 
						
							
								fe7b6ef346 
								
							 
						 
						
							
							
								
								Handle fallout from the recent branch-on-undef changes.  This fixes  
							
							... 
							
							
							
							Prolangs-C/agrep and SCCP/2006-10-23-IPSCCP-Crash.ll
llvm-svn: 31132 
							
						 
						
							2006-10-23 18:57:02 +00:00  
				
					
						
							
							
								 
						
							
								af17096dcf 
								
							 
						 
						
							
							
								
								3 Changes:  
							
							... 
							
							
							
							1. Better document what is going on here.
2. Only hack on one branch per iteration, making the results less conservative.
3. Handle the problematic case by marking edges executable instead of by
   playing with value lattice states.  This is far less pessimistic, and fixes
   SCCP/ipsccp-gvar.ll.
llvm-svn: 31106 
							
						 
						
							2006-10-22 05:59:17 +00:00  
				
					
						
							
							
								 
						
							
								319c86fd38 
								
							 
						 
						
							
							
								
								Fix an ugly problem in SCCP.  This fixes Benchmarks/Misc-C++/mandel-text.cpp  
							
							... 
							
							
							
							llvm-svn: 31073 
							
						 
						
							2006-10-20 20:19:08 +00:00  
				
					
						
							
							
								 
						
							
								6ab03f6a08 
								
							 
						 
						
							
							
								
								Eliminate ConstantBool::True and ConstantBool::False.  Instead, provide  
							
							... 
							
							
							
							ConstantBool::getTrue() and ConstantBool::getFalse().
llvm-svn: 30665 
							
						 
						
							2006-09-28 23:35:22 +00:00  
				
					
						
							
							
								 
						
							
								c2d3d3112e 
								
							 
						 
						
							
							
								
								eliminate RegisterOpt.  It does the same thing as RegisterPass.  
							
							... 
							
							
							
							llvm-svn: 29925 
							
						 
						
							2006-08-27 22:42:52 +00:00  
				
					
						
							
							
								 
						
							
								17bd60588c 
								
							 
						 
						
							
							
								
								Add supprot for shufflevector  
							
							... 
							
							
							
							llvm-svn: 27513 
							
						 
						
							2006-04-08 01:19:12 +00:00  
				
					
						
							
							
								 
						
							
								06a0ed1ee0 
								
							 
						 
						
							
							
								
								Implement some more interesting select sccp cases.  This implements:  
							
							... 
							
							
							
							test/Regression/Transforms/SCCP/select.ll
llvm-svn: 26049 
							
						 
						
							2006-02-08 02:38:11 +00:00  
				
					
						
							
							
								 
						
							
								c597b8a55e 
								
							 
						 
						
							
							
								
								Make iostream #inclusion explicit  
							
							... 
							
							
							
							llvm-svn: 25514 
							
						 
						
							2006-01-22 23:32:06 +00:00  
				
					
						
							
							
								 
						
							
								6dce25019d 
								
							 
						 
						
							
							
								
								Lowerpacked and SCCP support for the insertelement operation.  
							
							... 
							
							
							
							llvm-svn: 25406 
							
						 
						
							2006-01-17 20:06:55 +00:00  
				
					
						
							
							
								 
						
							
								bd518d153b 
								
							 
						 
						
							
							
								
								Added lower packed support for the extractelement operation.  
							
							... 
							
							
							
							llvm-svn: 25180 
							
						 
						
							2006-01-10 19:05:05 +00:00  
				
					
						
							
							
								 
						
							
								02ae21e1e0 
								
							 
						 
						
							
							
								
								Eliminate GetGEPGlobalInitializer in favor of the more powerful  
							
							... 
							
							
							
							ConstantFoldLoadThroughGEPConstantExpr function in the utils lib.
llvm-svn: 23446 
							
						 
						
							2005-09-26 05:28:52 +00:00  
				
					
						
							
							
								 
						
							
								82639853c0 
								
							 
						 
						
							
							
								
								Eliminate tabs and trailing spaces  
							
							... 
							
							
							
							llvm-svn: 21480 
							
						 
						
							2005-04-23 21:38:35 +00:00  
				
					
						
							
							
								 
						
							
								b1c9317bb4 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							... 
							
							
							
							llvm-svn: 21427 
							
						 
						
							2005-04-21 23:48:37 +00:00  
				
					
						
							
							
								 
						
							
								8cb10a1775 
								
							 
						 
						
							
							
								
								Wrap some long lines.  
							
							... 
							
							
							
							Make IPSCCP strip off dead constant exprs that are using functions, making
them appear as though their address is taken.  This allows us to propagate
some more pool descriptors, lowering the overhead of pool alloc.
llvm-svn: 21363 
							
						 
						
							2005-04-19 19:16:19 +00:00  
				
					
						
							
							
								 
						
							
								531f9e92d4 
								
							 
						 
						
							
							
								
								This mega patch converts us from using Function::a{iterator|begin|end} to  
							
							... 
							
							
							
							using Function::arg_{iterator|begin|end}.  Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
llvm-svn: 20597 
							
						 
						
							2005-03-15 04:54:21 +00:00  
				
					
						
							
							
								 
						
							
								ce274ce93d 
								
							 
						 
						
							
							
								
								Silence warnings  
							
							... 
							
							
							
							llvm-svn: 19379 
							
						 
						
							2005-01-08 19:34:41 +00:00  
				
					
						
							
							
								 
						
							
								cbc0161d1f 
								
							 
						 
						
							
							
								
								If one side of and/or is known to be 0/-1, it doesn't matter  
							
							... 
							
							
							
							if the other side is overdefined.
This allows us to fold conditions like:  if (X < Y || Y > Z) in some cases.
llvm-svn: 18807 
							
						 
						
							2004-12-11 23:15:19 +00:00  
				
					
						
							
							
								 
						
							
								2f687fd9d6 
								
							 
						 
						
							
							
								
								Two bug fixes:  
							
							... 
							
							
							
							1. Actually increment the Statistic for the GV elim optzn
 2. When resolving undef branches, only resolve branches in executable blocks,
    avoiding marking a bunch of completely dead blocks live.  This has a big
    impact on the quality of the generated code.
With this patch, we positively rip up vortex, compiling Ut_MoveBytes to a
single memcpy call. In vortex we get this:
     12 ipsccp           - Number of globals found to be constant
    986 ipsccp           - Number of arguments constant propagated
   1378 ipsccp           - Number of basic blocks unreachable
   8919 ipsccp           - Number of instructions removed
llvm-svn: 18796 
							
						 
						
							2004-12-11 06:05:53 +00:00  
				
					
						
							
							
								 
						
							
								8525ebe465 
								
							 
						 
						
							
							
								
								Do not delete the entry block to a function.  
							
							... 
							
							
							
							llvm-svn: 18795 
							
						 
						
							2004-12-11 05:32:19 +00:00  
				
					
						
							
							
								 
						
							
								91dbae6fee 
								
							 
						 
						
							
							
								
								Implement Transforms/SCCP/ipsccp-gvar.ll, by tracking values stored to  
							
							... 
							
							
							
							non-address-taken global variables.
llvm-svn: 18790 
							
						 
						
							2004-12-11 05:15:59 +00:00  
				
					
						
							
							
								 
						
							
								99e1295645 
								
							 
						 
						
							
							
								
								Fix a bug where we could delete dead invoke instructions with uses.  
							
							... 
							
							
							
							In functions where we fully constant prop the return value, replace all
ret instructions with 'ret undef'.
llvm-svn: 18786 
							
						 
						
							2004-12-11 02:53:57 +00:00  
				
					
						
							
							
								 
						
							
								bae4b64553 
								
							 
						 
						
							
							
								
								Implement SCCP/ipsccp-conditional.ll, by totally deleting dead blocks.  
							
							... 
							
							
							
							llvm-svn: 18781 
							
						 
						
							2004-12-10 22:29:08 +00:00  
				
					
						
							
							
								 
						
							
								7285f43836 
								
							 
						 
						
							
							
								
								Fix SCCP/2004-12-10-UndefBranchBug.ll  
							
							... 
							
							
							
							llvm-svn: 18776 
							
						 
						
							2004-12-10 20:41:50 +00:00  
				
					
						
							
							
								 
						
							
								b439464c61 
								
							 
						 
						
							
							
								
								This is the initial implementation of IPSCCP, as requested by Brian.  
							
							... 
							
							
							
							This implements SCCP/ipsccp-basic.ll, rips apart Olden/mst (as described in
PR415), and does other nice things.
There is still more to come with this, but it's a start.
llvm-svn: 18752 
							
						 
						
							2004-12-10 08:02:06 +00:00  
				
					
						
							
							
								 
						
							
								27af257ea0 
								
							 
						 
						
							
							
								
								Do not delete dead invoke instructions!  
							
							... 
							
							
							
							llvm-svn: 17897 
							
						 
						
							2004-11-16 16:32:28 +00:00  
				
					
						
							
							
								 
						
							
								1890f94413 
								
							 
						 
						
							
							
								
								Minor cleanups.  There is no reason for SCCP to derive from instvisitor anymore.  
							
							... 
							
							
							
							llvm-svn: 17825 
							
						 
						
							2004-11-15 07:15:04 +00:00  
				
					
						
							
							
								 
						
							
								9a038a3a5e 
								
							 
						 
						
							
							
								
								Count more accurately  
							
							... 
							
							
							
							llvm-svn: 17824 
							
						 
						
							2004-11-15 07:02:42 +00:00  
				
					
						
							
							
								 
						
							
								d18c16b842 
								
							 
						 
						
							
							
								
								Two minor improvements:  
							
							... 
							
							
							
							1. Speedup getValueState by having it not consider Arguments.  It's better
    to just add them before we start SCCP'ing.
 2. SCCP can delete the contents of dead blocks.  No really, it's ok!  This
    reduces the size of the IR for subsequent passes, even though
    simplifycfg would do the same job.  In practice, simplifycfg does not
    run until much later than sccp in gccas
llvm-svn: 17820 
							
						 
						
							2004-11-15 05:45:33 +00:00  
				
					
						
							
							
								 
						
							
								4f0316229c 
								
							 
						 
						
							
							
								
								rename InstValue to LatticeValue, as it holds for more than instructions.  
							
							... 
							
							
							
							llvm-svn: 17818 
							
						 
						
							2004-11-15 05:03:30 +00:00  
				
					
						
							
							
								 
						
							
								074be1f6e4 
								
							 
						 
						
							
							
								
								Substantially refactor the SCCP class into an SCCP pass and an SCCPSolver  
							
							... 
							
							
							
							class.  The only changes are minor:
 * Do not try to SCCP instructions that return void in the rewrite loop.
   This is silly and fool hardy, wasting a map lookup and adding an entry
   to the map which is never used.
 * If we decide something has an undefined value, rewrite it to undef,
   potentially leading to further simplications.
llvm-svn: 17816 
							
						 
						
							2004-11-15 04:44:20 +00:00  
				
					
						
							
							
								 
						
							
								7dfc2d29ac 
								
							 
						 
						
							
							
								
								Convert 'struct' to 'class' in various places to adhere to the coding standards  
							
							... 
							
							
							
							and work better with VC++.  Patch contributed by Morten Ofstad!
llvm-svn: 17281 
							
						 
						
							2004-10-27 16:14:51 +00:00  
				
					
						
							
							
								 
						
							
								646354bae1 
								
							 
						 
						
							
							
								
								Handle undef values as undefined on the constant lattice  
							
							... 
							
							
							
							ignore unreachable instructions
llvm-svn: 17044 
							
						 
						
							2004-10-16 18:09:41 +00:00  
				
					
						
							
							
								 
						
							
								5c91c8f18b 
								
							 
						 
						
							
							
								
								Use DEBUG instead of DebugFlag directly, as DebugFlag does not respect  
							
							... 
							
							
							
							-debug-only!
llvm-svn: 16868 
							
						 
						
							2004-10-09 19:30:36 +00:00  
				
					
						
							
							
								 
						
							
								3e86084641 
								
							 
						 
						
							
							
								
								Prototype these functions more accurately  
							
							... 
							
							
							
							llvm-svn: 16432 
							
						 
						
							2004-09-20 04:43:15 +00:00  
				
					
						
							
							
								 
						
							
								6614946443 
								
							 
						 
						
							
							
								
								Convert code to compile with vc7.1.  
							
							... 
							
							
							
							Patch contributed by Paolo Invernizzi. Thanks Paolo!
llvm-svn: 16368 
							
						 
						
							2004-09-15 17:06:42 +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