Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								1815b688cc 
								
							 
						 
						
							
							
								
								Make sure IPSCCP never marks a tracked call as overdefined in SCCPSolver::ResolvedUndefsIn.  If we do, we can end up in a situation where a function is resolved to return a constant, but the caller is marked overdefined, which confuses the code later.  
							
							 
							
							... 
							
							
							
							<rdar://problem/9956541> (again).
llvm-svn: 140210 
							
						 
						
							2011-09-20 23:28:51 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								321fb37773 
								
							 
						 
						
							
							
								
								Use Duncan's patch to delete the instructions in reverse order (minus the landingpad and terminator).  
							
							 
							
							... 
							
							
							
							llvm-svn: 139090 
							
						 
						
							2011-09-04 09:43:36 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								a336e70573 
								
							 
						 
						
							
							
								
								Update comments to reflect reality.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139023 
							
						 
						
							2011-09-02 18:43:33 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								bf8280ff27 
								
							 
						 
						
							
							
								
								Change worklist driven deletion to be an iterative process.  
							
							 
							
							... 
							
							
							
							Duncan noticed this!
llvm-svn: 138967 
							
						 
						
							2011-09-01 21:28:33 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								770d0f0700 
								
							 
						 
						
							
							
								
								Make sure we aren't deleting the landingpad instruction.  
							
							 
							
							... 
							
							
							
							The landingpad instruction is required in the landing pad block. Because we're
not deleting terminating instructions, the invoke may still jump to here (see
Transforms/SCCP/2004-11-16-DeadInvoke.ll). Remove all uses of the landingpad
instruction, but keep it around until code-gen can remove the basic block.
llvm-svn: 138890 
							
						 
						
							2011-08-31 20:55:20 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								d7749be2d7 
								
							 
						 
						
							
							
								
								Silly mistake from r137777; restore significant isStructTy() checks.  While here, be a bit more defensive  
							
							 
							
							... 
							
							
							
							with unknown instructions.
Fixes PR10687.
llvm-svn: 137836 
							
						 
						
							2011-08-17 18:10:43 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								0793eb4c46 
								
							 
						 
						
							
							
								
								A bunch of misc fixes to SCCPSolver::ResolvedUndefsIn, including a fix to stop  
							
							 
							
							... 
							
							
							
							making random bad assumptions about instructions which are not explicitly listed.  
Includes fix for rdar://9956541, a version of "undef ^ undef should return
0 because it's easier than arguing with users".
llvm-svn: 137777 
							
						 
						
							2011-08-16 22:06:31 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								56f2f21254 
								
							 
						 
						
							
							
								
								Minor bug in SCCP found by inspection.  (I don't think it's possible to hit this with a normal pass pipeline, but fixing for completeness.)  
							
							 
							
							... 
							
							
							
							llvm-svn: 137755 
							
						 
						
							2011-08-16 21:12:35 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								fae1475823 
								
							 
						 
						
							
							
								
								Initial commit of the 'landingpad' instruction.  
							
							 
							
							... 
							
							
							
							This implements the 'landingpad' instruction. It's used to indicate that a basic
block is a landing pad. There are several restrictions on its use (see
LangRef.html for more detail). These restrictions allow the exception handling
code to gather the information it needs in a much more sane way.
This patch has the definition, implementation, C interface, parsing, and bitcode
support in it.
llvm-svn: 137501 
							
						 
						
							2011-08-12 20:24:12 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								366bccefad 
								
							 
						 
						
							
							
								
								Add new atomic instructions to SCCP.  No functional change, but stops debug spam.  
							
							 
							
							... 
							
							
							
							llvm-svn: 136723 
							
						 
						
							2011-08-02 21:35:16 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								f891bf8b30 
								
							 
						 
						
							
							
								
								Add the 'resume' instruction for the new EH rewrite.  
							
							 
							
							... 
							
							
							
							This adds the 'resume' instruction class, IR parsing, and bitcode reading and
writing. The 'resume' instruction resumes propagation of an existing (in-flight)
exception whose unwinding was interrupted with a 'landingpad' instruction (to be
added later).
llvm-svn: 136589 
							
						 
						
							2011-07-31 06:30:59 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								ad088e6724 
								
							 
						 
						
							
							
								
								Revert r136253, r136263, r136269, r136313, r136325, r136326, r136329, r136338,  
							
							 
							
							... 
							
							
							
							r136339, r136341, r136369, r136387, r136392, r136396, r136429, r136430, r136444,
r136445, r136446, r136253 pending review.
llvm-svn: 136556 
							
						 
						
							2011-07-30 05:42:50 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								6c923bb8d9 
								
							 
						 
						
							
							
								
								Merge the contents from exception-handling-rewrite to the mainline.  
							
							 
							
							... 
							
							
							
							This adds the new instructions 'landingpad' and 'resume'.
llvm-svn: 136253 
							
						 
						
							2011-07-27 20:18:04 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								89b694b096 
								
							 
						 
						
							
							
								
								Misc mid-level changes for new 'fence' instruction.  
							
							 
							
							... 
							
							
							
							llvm-svn: 136205 
							
						 
						
							2011-07-27 01:08:30 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								77cb8e681f 
								
							 
						 
						
							
							
								
								Add missing space (this line is no longer pushing the 80-column limit).  
							
							 
							
							... 
							
							
							
							llvm-svn: 135973 
							
						 
						
							2011-07-25 21:16:04 +00:00  
						
					 
				
					
						
							
							
								 
								Jay Foad
							
						 
						
							 
							
							
							
							
								
							
							
								ed8db7d9df 
								
							 
						 
						
							
							
								
								Convert ConstantExpr::getGetElementPtr and  
							
							 
							
							... 
							
							
							
							ConstantExpr::getInBoundsGetElementPtr to use ArrayRef.
llvm-svn: 135673 
							
						 
						
							2011-07-21 14:31:17 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5cf753c95e 
								
							 
						 
						
							
							
								
								move tier out of an anonymous namespace, it doesn't make sense  
							
							 
							
							... 
							
							
							
							to for it to be an an anon namespace and be in a header.
Eliminate some extraenous uses of tie.
llvm-svn: 135669 
							
						 
						
							2011-07-21 06:21:31 +00:00  
						
					 
				
					
						
							
							
								 
								Jay Foad
							
						 
						
							 
							
							
							
							
								
							
							
								f4b14a2b0d 
								
							 
						 
						
							
							
								
								Use ArrayRef in ConstantFoldInstOperands and ConstantFoldCall.  
							
							 
							
							... 
							
							
							
							llvm-svn: 135477 
							
						 
						
							2011-07-19 13:32:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								229907cd11 
								
							 
						 
						
							
							
								
								land David Blaikie's patch to de-constify Type, with a few tweaks.  
							
							 
							
							... 
							
							
							
							llvm-svn: 135375 
							
						 
						
							2011-07-18 04:54:35 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								3de2ddc578 
								
							 
						 
						
							
							
								
								PR7952: Make isa<> use the same logic as cast<>, so that they both work  
							
							 
							
							... 
							
							
							
							consistently.
llvm-svn: 131803 
							
						 
						
							2011-05-21 19:13:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0ab5e2cded 
								
							 
						 
						
							
							
								
								Fix a ton of comment typos found by codespell.  Patch by  
							
							 
							
							... 
							
							
							
							Luis Felipe Strano Moraes!
llvm-svn: 129558 
							
						 
						
							2011-04-15 05:18:47 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								ae0275e018 
								
							 
						 
						
							
							
								
								SCCP doesn't actually preserve the CFG. It will delete and insert terminator  
							
							 
							
							... 
							
							
							
							instructions.
llvm-svn: 123973 
							
						 
						
							2011-01-21 08:38:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ed1fb92cfe 
								
							 
						 
						
							
							
								
								simplify a little  
							
							 
							
							... 
							
							
							
							llvm-svn: 123573 
							
						 
						
							2011-01-16 07:11:21 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								d3a58c8fa1 
								
							 
						 
						
							
							
								
								Avoid exponential growth of a table.  It feels like  
							
							 
							
							... 
							
							
							
							there should be a better way to do this.  PR 8679.
llvm-svn: 120457 
							
						 
						
							2010-11-30 20:23:21 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								6c18d1aac0 
								
							 
						 
						
							
							
								
								Get rid of static constructors for pass registration.  Instead, every pass exposes an initializeMyPassFunction(), which  
							
							 
							
							... 
							
							
							
							must be called in the pass's constructor.  This function uses static dependency declarations to recursively initialize
the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes.  Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin.  It is possible that there are problems
with the static dependencies that will only be visible with non-standard options.  If you encounter any crash in pass
registration/creation, please send the testcase to me directly.
llvm-svn: 116820 
							
						 
						
							2010-10-19 17:21:58 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								df7a4f2515 
								
							 
						 
						
							
							
								
								Now with fewer extraneous semicolons!  
							
							 
							
							... 
							
							
							
							llvm-svn: 115996 
							
						 
						
							2010-10-07 22:25:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b45de95345 
								
							 
						 
						
							
							
								
								remove some dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 111344 
							
						 
						
							2010-08-18 02:41:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								363226dfe8 
								
							 
						 
						
							
							
								
								fix PR7876: If ipsccp decides that a function's address is taken  
							
							 
							
							... 
							
							
							
							before it rewrites the code, we need to use that in the post-rewrite pass.
llvm-svn: 110962 
							
						 
						
							2010-08-12 22:25:23 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a7aed18624 
								
							 
						 
						
							
							
								
								Reapply r110396, with fixes to appease the Linux buildbot gods.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110460 
							
						 
						
							2010-08-06 18:33:48 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								bda59bd247 
								
							 
						 
						
							
							
								
								Revert r110396 to fix buildbots.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110410 
							
						 
						
							2010-08-06 00:23:35 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								755aceb5d0 
								
							 
						 
						
							
							
								
								Don't use PassInfo* as a type identifier for passes.  Instead, use the address of the static  
							
							 
							
							... 
							
							
							
							ID member as the sole unique type identifier.  Clean up APIs related to this change.
llvm-svn: 110396 
							
						 
						
							2010-08-05 23:42:04 +00:00  
						
					 
				
					
						
							
							
								 
								Gabor Greif
							
						 
						
							 
							
							
							
							
								
							
							
								62f0aac99d 
								
							 
						 
						
							
							
								
								simplify by using CallSite constructors; virtually eliminates CallSite::get from the tree  
							
							 
							
							... 
							
							
							
							llvm-svn: 109687 
							
						 
						
							2010-07-28 22:50:26 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a57b97e7e7 
								
							 
						 
						
							
							
								
								Fix batch of converting RegisterPass<> to INTIALIZE_PASS().  
							
							 
							
							... 
							
							
							
							llvm-svn: 109045 
							
						 
						
							2010-07-21 22:09:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								87aa2243e2 
								
							 
						 
						
							
							
								
								fix PR6940: sitofp(undef) folds to 0.0, not undef.  
							
							 
							
							... 
							
							
							
							llvm-svn: 102358 
							
						 
						
							2010-04-26 18:21:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c6c153be45 
								
							 
						 
						
							
							
								
								fix a SCCP miscompilation that could happen when a  
							
							 
							
							... 
							
							
							
							forced constant is changed to a constant, we would end
up adding the instruction to the wrong worklist, 
preventing it from being properly revisited.  This fixes
rdar://7832370
llvm-svn: 100837 
							
						 
						
							2010-04-09 01:14:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								adca608281 
								
							 
						 
						
							
							
								
								fix a really nasty bug that Evan was tracking in SCCP.  When resolving  
							
							 
							
							... 
							
							
							
							undefs in branches/switches, we have two cases: a branch on a literal
undef or a branch on a symbolic value which is undef.  If we have a
literal undef, the code was correct: forcing it to a constant is the
right thing to do.
If we have a branch on a symbolic value that is undef, we should force
the symbolic value to a constant, which then makes the successor block
live.  Forcing the condition of the branch to being a constant isn't 
safe if later paths become live and the value becomes overdefined.  This
is the case that 'forcedconstant' is designed to handle, so just use it.
This fixes rdar://7765019 but there is no good testcase for this, the
one I have is too insane to be useful in the future.
llvm-svn: 100478 
							
						 
						
							2010-04-05 22:14:48 +00:00  
						
					 
				
					
						
							
							
								 
								Gabor Greif
							
						 
						
							 
							
							
							
							
								
							
							
								5d5db5342b 
								
							 
						 
						
							
							
								
								Introduce ImmutableCallSite, useful for contexts where no mutation  
							
							 
							
							... 
							
							
							
							is necessary. Inherits from new templated baseclass CallSiteBase<>
which is highly customizable. Base CallSite on it too, in a configuration
that allows full mutation.
Adapt some call sites in analyses to employ ImmutableCallSite.
llvm-svn: 100100 
							
						 
						
							2010-04-01 08:21:08 +00:00  
						
					 
				
					
						
							
							
								 
								Gabor Greif
							
						 
						
							 
							
							
							
							
								
							
							
								c78d720f02 
								
							 
						 
						
							
							
								
								rename use_const_iterator to const_use_iterator for consistency's sake  
							
							 
							
							... 
							
							
							
							llvm-svn: 99564 
							
						 
						
							2010-03-25 23:06:16 +00:00  
						
					 
				
					
						
							
							
								 
								Gabor Greif
							
						 
						
							 
							
							
							
							
								
							
							
								a2fbc0ae1b 
								
							 
						 
						
							
							
								
								Finally land the InvokeInst operand reordering.  
							
							 
							
							... 
							
							
							
							I have audited all getOperandNo calls now, fixing
hidden assumptions. CallSite related uglyness will
be eliminated successively.
Note this patch has a long and griveous history,
for all the back-and-forths have a look at
CallSite.h's log.
llvm-svn: 99399 
							
						 
						
							2010-03-24 13:21:49 +00:00  
						
					 
				
					
						
							
							
								 
								Gabor Greif
							
						 
						
							 
							
							
							
							
								
							
							
								9027ffb918 
								
							 
						 
						
							
							
								
								increase const goodness and remove pointless getUser() calls  
							
							 
							
							... 
							
							
							
							llvm-svn: 99395 
							
						 
						
							2010-03-24 10:29:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2af7e3dceb 
								
							 
						 
						
							
							
								
								fix grammaro's pointed out by daniel  
							
							 
							
							... 
							
							
							
							llvm-svn: 97313 
							
						 
						
							2010-02-27 07:50:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d887f1da73 
								
							 
						 
						
							
							
								
								fix PR6414, a nondeterminism issue in IPSCCP which was because  
							
							 
							
							... 
							
							
							
							of a subtle interation in a loop operating in densemap order.
llvm-svn: 97288 
							
						 
						
							2010-02-27 00:07:42 +00:00  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								19d0b47b1f 
								
							 
						 
						
							
							
								
								There are two ways of checking for a given type, for example isa<PointerType>(T)  
							
							 
							
							... 
							
							
							
							and T->isPointerTy().  Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344 
							
						 
						
							2010-02-16 11:11:14 +00:00  
						
					 
				
					
						
							
							
								 
								David Greene
							
						 
						
							 
							
							
							
							
								
							
							
								389fc3b9f6 
								
							 
						 
						
							
							
								
								Change errs() to dbgs().  
							
							 
							
							... 
							
							
							
							llvm-svn: 92612 
							
						 
						
							2010-01-05 01:27:15 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								1f522d98f8 
								
							 
						 
						
							
							
								
								Fix a use of an invalidated iterator in the case where there are multiple  
							
							 
							
							... 
							
							
							
							adjacent uses of a dead basic block from the same user. This fixes PR5596.
llvm-svn: 89658 
							
						 
						
							2009-11-23 16:13:39 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								d15302afa0 
								
							 
						 
						
							
							
								
								Fix IPSCCP's code for deleting dead blocks to tolerate outstanding  
							
							 
							
							... 
							
							
							
							blockaddress users. This fixes PR5569.
llvm-svn: 89483 
							
						 
						
							2009-11-20 20:19:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								02e2cee7dc 
								
							 
						 
						
							
							
								
								fix a crash in SCCP handling extractvalue of an array, pointed out and  
							
							 
							
							... 
							
							
							
							tracked down by Stephan Reiter!
llvm-svn: 86726 
							
						 
						
							2009-11-10 22:02:09 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								3fcbb82151 
								
							 
						 
						
							
							
								
								Do map insert+find in one step. TODO -= 2.  
							
							 
							
							... 
							
							
							
							llvm-svn: 86133 
							
						 
						
							2009-11-05 14:33:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								762b56fa8c 
								
							 
						 
						
							
							
								
								Fix an iterator invalidation bug that happens when a hashtable  
							
							 
							
							... 
							
							
							
							resizes in IPSCCP.  This fixes PR5394.
llvm-svn: 86036 
							
						 
						
							2009-11-04 18:57:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								156b8c7109 
								
							 
						 
						
							
							
								
								reimplement multiple return value handling in IPSCCP, making it  
							
							 
							
							... 
							
							
							
							more aggressive an correct.  This survives building llvm in 64-bit
mode with optimizations and the built llvm passes make check.
llvm-svn: 85973 
							
						 
						
							2009-11-03 23:40:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2c427233d4 
								
							 
						 
						
							
							
								
								finish half thunk thought  
							
							 
							
							... 
							
							
							
							llvm-svn: 85937 
							
						 
						
							2009-11-03 20:52:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cde8de519d 
								
							 
						 
						
							
							
								
								fix an IPSCCP bug I introduced when I changed IPSCCP to start working on  
							
							 
							
							... 
							
							
							
							functions that don't have local linkage.  Basically, we need to be more
careful about propagating argument information to functions whose results
we aren't tracking.  This fixes a miscompilation of 
LLVMCConfigurationEmitter.cpp when built with an llvm-gcc that has ipsccp
enabled.
llvm-svn: 85923 
							
						 
						
							2009-11-03 19:24:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e1d5cd9f48 
								
							 
						 
						
							
							
								
								fix a subtle bug I introduced when refactoring SCCP.  Testcase  
							
							 
							
							... 
							
							
							
							to follow.
llvm-svn: 85903 
							
						 
						
							2009-11-03 16:50:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fb14181b18 
								
							 
						 
						
							
							
								
								turn IPSCCP back on now that the iterator invalidation bug is fixed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85858 
							
						 
						
							2009-11-03 03:42:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b70ef3c8c7 
								
							 
						 
						
							
							
								
								fix a nasty iterator invalidation bug from my conversion from  
							
							 
							
							... 
							
							
							
							std::map to DenseMap, exposed on release llvm-gcc bootstrap.
llvm-svn: 85840 
							
						 
						
							2009-11-02 23:25:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a15cc59dcb 
								
							 
						 
						
							
							
								
								revert r8579[56], which are causing unhappiness in buildbot land.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85818 
							
						 
						
							2009-11-02 19:31:10 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a3d794ebbb 
								
							 
						 
						
							
							
								
								disable IPSCCP support for multiple return values, it is buggy, so just  
							
							 
							
							... 
							
							
							
							disable it until I can fix it.
llvm-svn: 85810 
							
						 
						
							2009-11-02 18:22:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9d49f0c858 
								
							 
						 
						
							
							
								
								improve IPSCCP to be able to propagate the result of "!mayBeOverridden"  
							
							 
							
							... 
							
							
							
							function to calls of that function, regardless of whether it has local
linkage or has its address taken.  Not escaping should only affect 
whether we make an aggressive assumption about the arguments to a 
function, not whether we can track the result of it.
llvm-svn: 85795 
							
						 
						
							2009-11-02 07:33:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								47837c5182 
								
							 
						 
						
							
							
								
								don't mark the arguments of prototype overdefined, they will never be queried.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85793 
							
						 
						
							2009-11-02 06:34:04 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5503328332 
								
							 
						 
						
							
							
								
								restore some code I removed in r85788, refactor it into  
							
							 
							
							... 
							
							
							
							a shared place instead of duplicating it 4 times.
llvm-svn: 85792 
							
						 
						
							2009-11-02 06:28:16 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4910b656b2 
								
							 
						 
						
							
							
								
								remove some confused code that dates from when we had  
							
							 
							
							... 
							
							
							
							"multiple return values" but not "first class aggregates"
llvm-svn: 85791 
							
						 
						
							2009-11-02 06:17:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								809aee2f40 
								
							 
						 
						
							
							
								
								avoid redundant lookups in BBExecutable, and make it a SmallPtrSet.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85790 
							
						 
						
							2009-11-02 06:11:23 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e77c9aa04a 
								
							 
						 
						
							
							
								
								Use the libanalysis 'ConstantFoldLoadFromConstPtr' function  
							
							 
							
							... 
							
							
							
							instead of reinventing SCCP-specific logic.  This gives us
new powers.
llvm-svn: 85789 
							
						 
						
							2009-11-02 06:06:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f548403989 
								
							 
						 
						
							
							
								
								switch the main 'ValueState' map from being an std::map to being  
							
							 
							
							... 
							
							
							
							a DenseMap.  Doing this required being aware of subtle iterator
invalidation issues, but it provides a big speedup.  In a 
release-asserts build, this sped up optimizing 403.gcc from
1.34s -> 0.79s (IPSCCP) and 1.11s -> 0.44s (SCCP).
This commit also conflates in a bunch of general cleanups, sorry.
llvm-svn: 85788 
							
						 
						
							2009-11-02 05:55:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e82b087ae6 
								
							 
						 
						
							
							
								
								only IPSCCP incoming arguments if the function is executable, this fixes  
							
							 
							
							... 
							
							
							
							an assertion on the buildbot.
llvm-svn: 85784 
							
						 
						
							2009-11-02 03:25:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9e97fbe114 
								
							 
						 
						
							
							
								
								add a new ValueState::getConstantInt() helper, use it to  
							
							 
							
							... 
							
							
							
							simplify some code.
llvm-svn: 85783 
							
						 
						
							2009-11-02 03:21:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7ccf1a6df6 
								
							 
						 
						
							
							
								
								tidy up some more: remove some extraneous inline specifiers, return harder.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85780 
							
						 
						
							2009-11-02 03:03:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b5a13d4c90 
								
							 
						 
						
							
							
								
								eliminate the SCCPSolver::getValueMapping method.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85778 
							
						 
						
							2009-11-02 02:54:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c49ae9912a 
								
							 
						 
						
							
							
								
								fix failures introduced in r85774  
							
							 
							
							... 
							
							
							
							llvm-svn: 85777 
							
						 
						
							2009-11-02 02:48:17 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e405ed9651 
								
							 
						 
						
							
							
								
								factor duplicated code into a new DeleteInstructionInBlock  
							
							 
							
							... 
							
							
							
							function, eliminate temporary (and pointless) smallvector.
llvm-svn: 85776 
							
						 
						
							2009-11-02 02:47:51 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								a3c39d394d 
								
							 
						 
						
							
							
								
								Chris used to use '...' instead of proper grammar.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85775 
							
						 
						
							2009-11-02 02:33:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6df5cec72f 
								
							 
						 
						
							
							
								
								remove some extraneous llvmcontext stuff.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85774 
							
						 
						
							2009-11-02 02:30:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								efdd2bbce6 
								
							 
						 
						
							
							
								
								change LatticeVal to use PointerIntPair to save some space.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85773 
							
						 
						
							2009-11-02 02:20:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Victor Hernandez
							
						 
						
							 
							
							
							
							
								
							
							
								f390e04a47 
								
							 
						 
						
							
							
								
								Rename MallocFreeHelper as MemoryBuiltins  
							
							 
							
							... 
							
							
							
							llvm-svn: 85286 
							
						 
						
							2009-10-27 20:05:49 +00:00  
						
					 
				
					
						
							
							
								 
								Victor Hernandez
							
						 
						
							 
							
							
							
							
								
							
							
								762195bd01 
								
							 
						 
						
							
							
								
								Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free()  
							
							 
							
							... 
							
							
							
							llvm-svn: 85181 
							
						 
						
							2009-10-26 23:58:56 +00:00  
						
					 
				
					
						
							
							
								 
								Victor Hernandez
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Victor Hernandez
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Victor Hernandez
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Torok Edwin
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								e525d9ddc0 
								
							 
						 
						
							
							
								
								Remove an unnnecessary LLVMContext argument in  
							
							 
							
							... 
							
							
							
							ConstantFoldLoadThroughGEPConstantExpr.
llvm-svn: 83311 
							
						 
						
							2009-10-05 16:36:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Torok Edwin
							
						 
						
							 
							
							
							
							
								
							
							
								21bd8c9fc5 
								
							 
						 
						
							
							
								
								Constant propagating byval pointer is safe if function is readonly.  
							
							 
							
							... 
							
							
							
							llvm-svn: 82700 
							
						 
						
							2009-09-24 18:33:42 +00:00  
						
					 
				
					
						
							
							
								 
								Torok Edwin
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Victor Hernandez
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2dd09dbdf7 
								
							 
						 
						
							
							
								
								eliminate VISIBILITY_HIDDEN from Transforms/Scalar.  PR4861  
							
							 
							
							... 
							
							
							
							llvm-svn: 80766 
							
						 
						
							2009-09-02 06:11:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								55f1c09e31 
								
							 
						 
						
							
							
								
								Push LLVMContexts through the IntegerType APIs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78948 
							
						 
						
							2009-08-13 21:58:54 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								23a204d91b 
								
							 
						 
						
							
							
								
								Move getTrue() and getFalse() to 2.5-like APIs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77685 
							
						 
						
							2009-07-31 17:39:07 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b292b8ce70 
								
							 
						 
						
							
							
								
								Move more code back to 2.5 APIs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77635 
							
						 
						
							2009-07-30 23:03:37 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								487375e9a2 
								
							 
						 
						
							
							
								
								Move ConstantExpr to 2.5 API.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77494 
							
						 
						
							2009-07-29 18:55:55 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								9813b0b025 
								
							 
						 
						
							
							
								
								Eliminate some uses of DOUT, cerr, and getNameStart().  
							
							 
							
							... 
							
							
							
							llvm-svn: 77145 
							
						 
						
							2009-07-26 07:49:05 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								47db941fd3 
								
							 
						 
						
							
							
								
								Get rid of the Pass+Context magic.  
							
							 
							
							... 
							
							
							
							llvm-svn: 76702 
							
						 
						
							2009-07-22 00:24:57 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c37bc69e91 
								
							 
						 
						
							
							
								
								Rename getConstantInt{True|False} to get{True|False} at Chris' behest.  
							
							 
							
							... 
							
							
							
							llvm-svn: 76598 
							
						 
						
							2009-07-21 18:03:38 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Torok Edwin
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								542619e6d5 
								
							 
						 
						
							
							
								
								Move more functionality over to LLVMContext.  
							
							 
							
							... 
							
							
							
							llvm-svn: 75497 
							
						 
						
							2009-07-13 20:58:05 +00:00  
						
					 
				
					
						
							
							
								 
								Torok Edwin
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Torok Edwin
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								38264b1554 
								
							 
						 
						
							
							
								
								"LLVMContext* " --> "LLVMContext *"  
							
							 
							
							... 
							
							
							
							llvm-svn: 74878 
							
						 
						
							2009-07-06 23:00:19 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								340288c621 
								
							 
						 
						
							
							
								
								Even more passes being LLVMContext'd.  
							
							 
							
							... 
							
							
							
							llvm-svn: 74781 
							
						 
						
							2009-07-03 19:42:02 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								1f15ca7c7a 
								
							 
						 
						
							
							
								
								Factorize out a concept - no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 67454 
							
						 
						
							2009-03-21 21:27:31 +00:00  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								6de96a1b5d 
								
							 
						 
						
							
							
								
								Add the private linkage.  
							
							 
							
							... 
							
							
							
							llvm-svn: 62279 
							
						 
						
							2009-01-15 20:18:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8fb9480ed2 
								
							 
						 
						
							
							
								
								Fix PR3325, a miscompilation of invokes by IPSCCP.  Patch by Jay Foad!  
							
							 
							
							... 
							
							
							
							llvm-svn: 62244 
							
						 
						
							2009-01-14 21:01:16 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								45f1ae028e 
								
							 
						 
						
							
							
								
								Fix unused variable warnings.  
							
							 
							
							... 
							
							
							
							llvm-svn: 59778 
							
						 
						
							2008-11-21 01:52:59 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								d73806a9cc 
								
							 
						 
						
							
							
								
								Replace explicit loop with utility function.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58593 
							
						 
						
							2008-11-03 03:49:14 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								a79db30d28 
								
							 
						 
						
							
							
								
								Tidy up several unbeseeming casts from pointer to intptr_t.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55779 
							
						 
						
							2008-09-04 17:05:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								add44f3fb7 
								
							 
						 
						
							
							
								
								improve encapsulation of the BBExecutable set.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55271 
							
						 
						
							2008-08-23 23:39:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								861bec78f8 
								
							 
						 
						
							
							
								
								Temporarily revert r54792. It's causing an ICE during bootstrapping.  
							
							 
							
							... 
							
							
							
							llvm-svn: 54804 
							
						 
						
							2008-08-14 23:05:24 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								52dc07b01a 
								
							 
						 
						
							
							
								
								Use DenseMap. Patch by Pratik Solanki.  
							
							 
							
							... 
							
							
							
							llvm-svn: 54792 
							
						 
						
							2008-08-14 21:31:10 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5c207c83c6 
								
							 
						 
						
							
							
								
								Fix PR2358 by resolving calls with undef arguments to overdefined.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51535 
							
						 
						
							2008-05-24 03:59:33 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								82146fa267 
								
							 
						 
						
							
							
								
								Simplify code by using SwitchInst::findCaseValue instead of reimplementing it.  
							
							 
							
							... 
							
							
							
							llvm-svn: 50957 
							
						 
						
							2008-05-10 23:56:54 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								97951ac580 
								
							 
						 
						
							
							
								
								code restructuring, not functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 50203 
							
						 
						
							2008-04-24 00:21:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								769203cb03 
								
							 
						 
						
							
							
								
								code cleanup, no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 50201 
							
						 
						
							2008-04-24 00:16:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								a7dfbc0366 
								
							 
						 
						
							
							
								
								Be conservative if getresult operand is neither call nor invoke.  
							
							 
							
							... 
							
							
							
							llvm-svn: 49430 
							
						 
						
							2008-04-09 15:58:24 +00:00  
						
					 
				
					
						
							
							
								 
								Gabor Greif
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								e418de3023 
								
							 
						 
						
							
							
								
								Add TODO reminder.  
							
							 
							
							... 
							
							
							
							llvm-svn: 48227 
							
						 
						
							2008-03-11 17:32:05 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								a7a2075ab8 
								
							 
						 
						
							
							
								
								Initial multiple return values support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 48210 
							
						 
						
							2008-03-11 05:46:42 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								83750d9caf 
								
							 
						 
						
							
							
								
								SCCP also needs to be taught to follow unwind_to  
							
							 
							
							... 
							
							
							
							llvm-svn: 48109 
							
						 
						
							2008-03-09 09:44:38 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								35e92c7bea 
								
							 
						 
						
							
							
								
								Not all users of a BB are Instructions any more.  
							
							 
							
							... 
							
							
							
							llvm-svn: 48047 
							
						 
						
							2008-03-08 07:48:41 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								1bfd121321 
								
							 
						 
						
							
							
								
								Make Transforms to be 4.3 warnings-clean  
							
							 
							
							... 
							
							
							
							llvm-svn: 47371 
							
						 
						
							2008-02-20 11:26:25 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
						
					 
				
					
						
							
							
								 
								Christopher Lamb
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								2be91fcdd8 
								
							 
						 
						
							
							
								
								Place SCCPSolver also in the anonymous namespace.  This  
							
							 
							
							... 
							
							
							
							pacifies g++-4.2.
llvm-svn: 40089 
							
						 
						
							2007-07-20 08:56:21 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								2c30a37a5c 
								
							 
						 
						
							
							
								
								Fix PR1431  
							
							 
							
							... 
							
							
							
							Test case at Transformations/SCCP/2007-05-16-InvokeCrash.ll
llvm-svn: 37185 
							
						 
						
							2007-05-17 22:10:15 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								e7da2d6ac3 
								
							 
						 
						
							
							
								
								Fix typo in comment.  
							
							 
							
							... 
							
							
							
							llvm-svn: 36873 
							
						 
						
							2007-05-06 13:37:16 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								8c78a0bff0 
								
							 
						 
						
							
							
								
								Drop 'const'  
							
							 
							
							... 
							
							
							
							llvm-svn: 36662 
							
						 
						
							2007-05-03 01:11:54 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								09f162ca6a 
								
							 
						 
						
							
							
								
								Do not use typeinfo to identify pass in pass manager.  
							
							 
							
							... 
							
							
							
							llvm-svn: 36632 
							
						 
						
							2007-05-01 21:15:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								28d921d04f 
								
							 
						 
						
							
							
								
								fix long lines  
							
							 
							
							... 
							
							
							
							llvm-svn: 36031 
							
						 
						
							2007-04-14 23:32:02 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c33fd469ef 
								
							 
						 
						
							
							
								
								minor cleanups  
							
							 
							
							... 
							
							
							
							llvm-svn: 34904 
							
						 
						
							2007-03-04 04:50:21 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ff7434a526 
								
							 
						 
						
							
							
								
								Fix a minor bug handling constant exprs, introduced by a recent patch.  
							
							 
							
							... 
							
							
							
							llvm-svn: 33175 
							
						 
						
							2007-01-13 00:42:58 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								542964f55b 
								
							 
						 
						
							
							
								
								Rename BoolTy as Int1Ty. Patch by Sheng Zhou.  
							
							 
							
							... 
							
							
							
							llvm-svn: 33076 
							
						 
						
							2007-01-11 18:21:29 +00:00  
						
					 
				
					
						
							
							
								 
								Zhou Sheng
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								806adafd95 
								
							 
						 
						
							
							
								
								Enable a couple xforms for packed vectors (undef | v) -> -1 for packed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32858 
							
						 
						
							2007-01-04 02:12:40 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Laskey
							
						 
						
							 
							
							
							
							
								
							
							
								c4ba9c161b 
								
							 
						 
						
							
							
								
								Vectors are not supported by ConstantInt::getAllOnesValue.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32827 
							
						 
						
							2007-01-03 00:11:03 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								e8a74ee5ea 
								
							 
						 
						
							
							
								
								Fix a typo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32803 
							
						 
						
							2006-12-31 22:26:06 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								b341b0861d 
								
							 
						 
						
							
							
								
								Change inferred getCast into specific getCast. Passes all tests.  
							
							 
							
							... 
							
							
							
							llvm-svn: 32469 
							
						 
						
							2006-12-12 05:05:00 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								5dbf43c983 
								
							 
						 
						
							
							
								
								Removed #include <iostream> and replaced with llvm_* streams.  
							
							 
							
							... 
							
							
							
							llvm-svn: 31923 
							
						 
						
							2006-11-26 09:46:52 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c2d3d3112e 
								
							 
						 
						
							
							
								
								eliminate RegisterOpt.  It does the same thing as RegisterPass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 29925 
							
						 
						
							2006-08-27 22:42:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								17bd60588c 
								
							 
						 
						
							
							
								
								Add supprot for shufflevector  
							
							 
							
							... 
							
							
							
							llvm-svn: 27513 
							
						 
						
							2006-04-08 01:19:12 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c597b8a55e 
								
							 
						 
						
							
							
								
								Make iostream #inclusion explicit  
							
							 
							
							... 
							
							
							
							llvm-svn: 25514 
							
						 
						
							2006-01-22 23:32:06 +00:00  
						
					 
				
					
						
							
							
								 
								Robert Bocchino
							
						 
						
							 
							
							
							
							
								
							
							
								6dce25019d 
								
							 
						 
						
							
							
								
								Lowerpacked and SCCP support for the insertelement operation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25406 
							
						 
						
							2006-01-17 20:06:55 +00:00  
						
					 
				
					
						
							
							
								 
								Robert Bocchino
							
						 
						
							 
							
							
							
							
								
							
							
								bd518d153b 
								
							 
						 
						
							
							
								
								Added lower packed support for the extractelement operation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 25180 
							
						 
						
							2006-01-10 19:05:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								82639853c0 
								
							 
						 
						
							
							
								
								Eliminate tabs and trailing spaces  
							
							 
							
							... 
							
							
							
							llvm-svn: 21480 
							
						 
						
							2005-04-23 21:38:35 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								b1c9317bb4 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							 
							
							... 
							
							
							
							llvm-svn: 21427 
							
						 
						
							2005-04-21 23:48:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ce274ce93d 
								
							 
						 
						
							
							
								
								Silence warnings  
							
							 
							
							... 
							
							
							
							llvm-svn: 19379 
							
						 
						
							2005-01-08 19:34:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8525ebe465 
								
							 
						 
						
							
							
								
								Do not delete the entry block to a function.  
							
							 
							
							... 
							
							
							
							llvm-svn: 18795 
							
						 
						
							2004-12-11 05:32:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								bae4b64553 
								
							 
						 
						
							
							
								
								Implement SCCP/ipsccp-conditional.ll, by totally deleting dead blocks.  
							
							 
							
							... 
							
							
							
							llvm-svn: 18781 
							
						 
						
							2004-12-10 22:29:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7285f43836 
								
							 
						 
						
							
							
								
								Fix SCCP/2004-12-10-UndefBranchBug.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 18776 
							
						 
						
							2004-12-10 20:41:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								27af257ea0 
								
							 
						 
						
							
							
								
								Do not delete dead invoke instructions!  
							
							 
							
							... 
							
							
							
							llvm-svn: 17897 
							
						 
						
							2004-11-16 16:32:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9a038a3a5e 
								
							 
						 
						
							
							
								
								Count more accurately  
							
							 
							
							... 
							
							
							
							llvm-svn: 17824 
							
						 
						
							2004-11-15 07:02:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4f0316229c 
								
							 
						 
						
							
							
								
								rename InstValue to LatticeValue, as it holds for more than instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 17818 
							
						 
						
							2004-11-15 05:03:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								646354bae1 
								
							 
						 
						
							
							
								
								Handle undef values as undefined on the constant lattice  
							
							 
							
							... 
							
							
							
							ignore unreachable instructions
llvm-svn: 17044 
							
						 
						
							2004-10-16 18:09:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3e86084641 
								
							 
						 
						
							
							
								
								Prototype these functions more accurately  
							
							 
							
							... 
							
							
							
							llvm-svn: 16432 
							
						 
						
							2004-09-20 04:43:15 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Alkis Evlogimenos
							
						 
						
							 
							
							
							
							
								
							
							
								832437255d 
								
							 
						 
						
							
							
								
								Stop using getValues().  
							
							 
							
							... 
							
							
							
							llvm-svn: 15487 
							
						 
						
							2004-08-04 08:44:43 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								f0a5bcaae4 
								
							 
						 
						
							
							
								
								Delete a redundant if branch.  
							
							 
							
							... 
							
							
							
							llvm-svn: 14967 
							
						 
						
							2004-07-18 08:34:52 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								c5afc9512b 
								
							 
						 
						
							
							
								
								bug 122:  
							
							 
							
							... 
							
							
							
							- Replace ConstantPointerRef usage with GlobalValue usage
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14947 
							
						 
						
							2004-07-18 00:31:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d79334df33 
								
							 
						 
						
							
							
								
								This patch was contributed by Daniel Berlin!  
							
							 
							
							... 
							
							
							
							Speed up SCCP substantially by processing overdefined values quickly.  This
patch speeds up SCCP by about 30-40% on large testcases.
llvm-svn: 14861 
							
						 
						
							2004-07-15 23:36:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9a63520b1a 
								
							 
						 
						
							
							
								
								Fixes working towards PR341  
							
							 
							
							... 
							
							
							
							llvm-svn: 14839 
							
						 
						
							2004-07-15 01:50:47 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ff9362a8da 
								
							 
						 
						
							
							
								
								Add SCCP support for constant folding calls, implementing:  
							
							 
							
							... 
							
							
							
							test/Regression/Transforms/SCCP/calltest.ll
llvm-svn: 12921 
							
						 
						
							2004-04-13 19:43:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								69193f93b6 
								
							 
						 
						
							
							
								
								Support getelementptr instructions which use uint's to index into structure  
							
							 
							
							... 
							
							
							
							types and can have arbitrary 32- and 64-bit integer types indexing into
sequential types.
llvm-svn: 12653 
							
						 
						
							2004-04-05 01:30:19 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7a7b114871 
								
							 
						 
						
							
							
								
								Do not try to optimize PHI nodes with incredibly high degree.  This reduces SCCP  
							
							 
							
							... 
							
							
							
							time from 615s to 1.49s on a large testcase that has a gigantic switch statement
that all of the blocks in the function go to (an intepreter).
llvm-svn: 12442 
							
						 
						
							2004-03-16 19:49:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								59db22dcd4 
								
							 
						 
						
							
							
								
								Add sccp support for select instructions  
							
							 
							
							... 
							
							
							
							llvm-svn: 12318 
							
						 
						
							2004-03-12 05:52:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								538fee7aa2 
								
							 
						 
						
							
							
								
								Since 'load null' is undefined, we can make it do whatever we want.  Returning  
							
							 
							
							... 
							
							
							
							a zero value is the most likely way to cause further simplification, so we do it.
llvm-svn: 12197 
							
						 
						
							2004-03-07 22:16:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								76b2ff4ded 
								
							 
						 
						
							
							
								
								Adjustments to support the new ConstantAggregateZero class  
							
							 
							
							... 
							
							
							
							llvm-svn: 11474 
							
						 
						
							2004-02-15 05:55:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1b7d4d7b63 
								
							 
						 
						
							
							
								
								Don't use ConstantExpr::getShift anymore  
							
							 
							
							... 
							
							
							
							llvm-svn: 10791 
							
						 
						
							2004-01-12 19:08:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0fe5b32c01 
								
							 
						 
						
							
							
								
								Use constantexprs for casts.  Eliminate use of the ConstantHandling interfaces  
							
							 
							
							... 
							
							
							
							llvm-svn: 10779 
							
						 
						
							2004-01-12 17:43:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fe992d4332 
								
							 
						 
						
							
							
								
								Fix fairly severe bug in my last checking where we treated all unfoldable  
							
							 
							
							... 
							
							
							
							constants as being "true" when evaluating branches.  This was introduced
because we now create constantexprs for the constants instead of failing the
fold.
llvm-svn: 10778 
							
						 
						
							2004-01-12 17:40:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								49f74522ec 
								
							 
						 
						
							
							
								
								* Implement minor performance optimization for the getelementptr case  
							
							 
							
							... 
							
							
							
							* Implement SCCP of load instructions, implementing Transforms/SCCP/loadtest.ll
  This allows us to fold expressions like "foo"[2], even if the pointer is only
  a conditional constant.
llvm-svn: 10767 
							
						 
						
							2004-01-12 04:29:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								05fe6847a8 
								
							 
						 
						
							
							
								
								Implement SCCP/phitest.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 10763 
							
						 
						
							2004-01-12 03:57:30 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								49525f8cf4 
								
							 
						 
						
							
							
								
								Finegrainify namespacification  
							
							 
							
							... 
							
							
							
							llvm-svn: 10725 
							
						 
						
							2004-01-09 06:02:20 +00:00  
						
					 
				
					
						
							
							
								 
								Brian Gaeke
							
						 
						
							 
							
							
							
							
								
							
							
								960707c335 
								
							 
						 
						
							
							
								
								Put all LLVM code into the llvm namespace, as per bug 109.  
							
							 
							
							... 
							
							
							
							llvm-svn: 9903 
							
						 
						
							2003-11-11 22:41:34 +00:00  
						
					 
				
					
						
							
							
								 
								John Criswell
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f0fc9be634 
								
							 
						 
						
							
							
								
								ADd support for the new varargs instructions  
							
							 
							
							... 
							
							
							
							llvm-svn: 9225 
							
						 
						
							2003-10-18 05:56:52 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								8b2bd4ed47 
								
							 
						 
						
							
							
								
								Fix spelling.  
							
							 
							
							... 
							
							
							
							llvm-svn: 9027 
							
						 
						
							2003-10-10 17:57:28 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								35e56e7372 
								
							 
						 
						
							
							
								
								Update comment  
							
							 
							
							... 
							
							
							
							llvm-svn: 8965 
							
						 
						
							2003-10-08 16:56:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0bbbe5d4c8 
								
							 
						 
						
							
							
								
								Use a set to keep track of which edges have been noticed as executable already  
							
							 
							
							... 
							
							
							
							to avoid reprocessing PHI nodes needlessly.  This speeds up the big bad PHI
testcase 43%: from 104.9826 to 73.5157s
llvm-svn: 8964 
							
						 
						
							2003-10-08 16:55:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7324f7cd03 
								
							 
						 
						
							
							
								
								Minor fixes here and there  
							
							 
							
							... 
							
							
							
							llvm-svn: 8963 
							
						 
						
							2003-10-08 16:21:03 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								71ac22ffb5 
								
							 
						 
						
							
							
								
								Avoid building data structures we don't really need.  This improves the runtime  
							
							 
							
							... 
							
							
							
							of a test that Bill Wendling sent me from 228.5s to 105s.  Obviously there is
more improvement to be had, but this is a nice speedup which should be "felt"
by many programs.
llvm-svn: 8962 
							
						 
						
							2003-10-08 15:47:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								9c58cf6d03 
								
							 
						 
						
							
							
								
								Add support for the unwind instruction  
							
							 
							
							... 
							
							
							
							llvm-svn: 8408 
							
						 
						
							2003-09-08 18:54:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								df741d62de 
								
							 
						 
						
							
							
								
								Fix bug: SCCP/2003-08-26-InvokeHandling.ll  
							
							 
							
							... 
							
							
							
							llvm-svn: 8152 
							
						 
						
							2003-08-27 01:08:35 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								7eb05a170a 
								
							 
						 
						
							
							
								
								Spell `necessary' correctly.  
							
							 
							
							... 
							
							
							
							llvm-svn: 7944 
							
						 
						
							2003-08-18 14:43:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8abcd56c74 
								
							 
						 
						
							
							
								
								DEBUG got moved to Support/Debug.h  
							
							 
							
							... 
							
							
							
							llvm-svn: 7492 
							
						 
						
							2003-08-01 22:15:03 +00:00