Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								c56af25c01 
								
							 
						 
						
							
							
								
								Fix an 80-column violation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81354 
							
						 
						
							2009-09-09 17:17:19 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								3ddbc242fb 
								
							 
						 
						
							
							
								
								Re-apply r80926, with fixes: keep the domtree informed of new blocks  
							
							 
							
							... 
							
							
							
							that get created during loop unswitching, and fix SplitBlockPredecessors'
LCSSA updating code to create new PHIs instead of trying to just move
existing ones.
Also, optimize Loop::verifyLoop, since it gets called a lot. Use
searches on a sorted list of blocks instead of calling the "contains"
function, as is done in other places in the Loop class, since "contains"
does a linear search. Also, don't call verifyLoop from LoopSimplify or
LCSSA, as the PassManager is already calling verifyLoop as part of
LoopInfo's verifyAnalysis.
llvm-svn: 81221 
							
						 
						
							2009-09-08 15:45:00 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								904199547b 
								
							 
						 
						
							
							
								
								Revert r80926. It causes loop unswitch assertion and slow down some JIT tests significantly.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81101 
							
						 
						
							2009-09-06 02:26:10 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								4c1bdcf5d7 
								
							 
						 
						
							
							
								
								Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verify  
							
							 
							
							... 
							
							
							
							that these passes are properly preserved.
Fix several transformation passes that claimed to preserve LoopSimplify
form but weren't.
llvm-svn: 80926 
							
						 
						
							2009-09-03 16:31:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2dd09dbdf7 
								
							 
						 
						
							
							
								
								eliminate VISIBILITY_HIDDEN from Transforms/Scalar.  PR4861  
							
							 
							
							... 
							
							
							
							llvm-svn: 80766 
							
						 
						
							2009-09-02 06:11:42 +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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								55f1c09e31 
								
							 
						 
						
							
							
								
								Push LLVMContexts through the IntegerType APIs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78948 
							
						 
						
							2009-08-13 21:58:54 +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  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
							
								
							
							
								edb4a70325 
								
							 
						 
						
							
							
								
								Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types.  More to come.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77011 
							
						 
						
							2009-07-24 23:12:02 +00:00  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								c43e47938a 
								
							 
						 
						
							
							
								
								Make makeLoopInvariant report whether it made any changes or not,  
							
							 
							
							... 
							
							
							
							and use this to simplify more code.
llvm-svn: 75722 
							
						 
						
							2009-07-15 01:25:43 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								4d6149f356 
								
							 
						 
						
							
							
								
								Update LoopSimplify and LoopUnswitch to use the new makeLoopInvariant  
							
							 
							
							... 
							
							
							
							function.
llvm-svn: 75584 
							
						 
						
							2009-07-14 01:37:59 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								1e5f00e7a7 
								
							 
						 
						
							
							
								
								This started as a small change, I swear.  Unfortunately, lots of things call the [I|F]CmpInst constructors.  Who knew!?  
							
							 
							
							... 
							
							
							
							llvm-svn: 75200 
							
						 
						
							2009-07-09 23:48:35 +00:00  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
							
								
							
							
								80baed63b4 
								
							 
						 
						
							
							
								
								Second batch of passes using LLVMContext.  
							
							 
							
							... 
							
							
							
							llvm-svn: 74753 
							
						 
						
							2009-07-03 00:54:20 +00:00  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								1efabaaa2a 
								
							 
						 
						
							
							
								
								Allow readonly functions to unwind exceptions.  Teach  
							
							 
							
							... 
							
							
							
							the optimizers about this.  For example, a readonly
function with no uses cannot be removed unless it is
also marked nounwind.
llvm-svn: 71071 
							
						 
						
							2009-05-06 06:49:50 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								bfd4ad67c7 
								
							 
						 
						
							
							
								
								Remove strange extra semicolons.  
							
							 
							
							... 
							
							
							
							llvm-svn: 67287 
							
						 
						
							2009-03-19 05:51:39 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								43a1161379 
								
							 
						 
						
							
							
								
								If "optimize for size" attribute is set then block non-trivial loop unswitches but allow trivial loop unswitches.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63670 
							
						 
						
							2009-02-03 22:04:27 +00:00  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								5a913d61e3 
								
							 
						 
						
							
							
								
								Rename getAnalysisToUpdate to getAnalysisIfAvailable.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63198 
							
						 
						
							2009-01-28 13:14:17 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								1c469d36b0 
								
							 
						 
						
							
							
								
								Undo previous patch.  
							
							 
							
							... 
							
							
							
							llvm-svn: 60701 
							
						 
						
							2008-12-08 17:02:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2b07d3ccde 
								
							 
						 
						
							
							
								
								switch a couple more calls to use array_pod_sort.  
							
							 
							
							... 
							
							
							
							llvm-svn: 60337 
							
						 
						
							2008-12-01 06:52:57 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								fe57d109b6 
								
							 
						 
						
							
							
								
								Ignore conditions that are outside the loop.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58631 
							
						 
						
							2008-11-03 19:38:07 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								7f39e2d85a 
								
							 
						 
						
							
							
								
								Change create*Pass factory functions to return Pass* instead of  
							
							 
							
							... 
							
							
							
							LoopPass*.
 - Although less precise, this means they can be used in clients
   without RTTI (who would otherwise need to include LoopPass.h, which
   eventually includes things using dynamic_cast). This was the
   simplest solution that presented itself, but I am happy to use a
   better one if available.
llvm-svn: 58010 
							
						 
						
							2008-10-22 23:32:42 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								215742a966 
								
							 
						 
						
							
							
								
								Use 0 instead of false to return a null pointer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 57660 
							
						 
						
							2008-10-17 00:56:52 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								9eb525d4f9 
								
							 
						 
						
							
							
								
								Implement function notes as function attributes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56716 
							
						 
						
							2008-09-26 23:51:19 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								4c758ea3e0 
								
							 
						 
						
							
							
								
								Large mechanical patch.  
							
							 
							
							... 
							
							
							
							s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage 
- to implement function notes as function attributes and 
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56622 
							
						 
						
							2008-09-25 21:00:45 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								e15607b7bb 
								
							 
						 
						
							
							
								
								Put FN_NOTE_AlwaysInline and others in FnAttr namespace.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56527 
							
						 
						
							2008-09-24 00:06:15 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								e87abd26ba 
								
							 
						 
						
							
							
								
								Move FN_NOTE_AlwaysInline and other out of ParamAttrs namespace.  
							
							 
							
							... 
							
							
							
							Do not check isDeclaration() in hasNote(). It is clients' responsibility.
llvm-svn: 56524 
							
						 
						
							2008-09-23 23:52:03 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								82fed6702b 
								
							 
						 
						
							
							
								
								Use parameter attribute store (soon to be renamed) for  
							
							 
							
							... 
							
							
							
							Function Notes also. Function notes are stored at index ~0.
llvm-svn: 56511 
							
						 
						
							2008-09-23 22:35:17 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								329fe728b5 
								
							 
						 
						
							
							
								
								Add hasNote() to check note associated with a function.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56477 
							
						 
						
							2008-09-22 22:32:29 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								40519f0370 
								
							 
						 
						
							
							
								
								A loop may be unswitched multiple times. Reconstruct dom info. at the end.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55806 
							
						 
						
							2008-09-04 22:43:59 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								00ec74616b 
								
							 
						 
						
							
							
								
								Initialize loop data first.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55792 
							
						 
						
							2008-09-04 20:36:36 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								d52071540c 
								
							 
						 
						
							
							
								
								Do not unswitch if the function notes say we're optimizing this function for size.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55786 
							
						 
						
							2008-09-04 18:55:13 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								a79db30d28 
								
							 
						 
						
							
							
								
								Tidy up several unbeseeming casts from pointer to intptr_t.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55779 
							
						 
						
							2008-09-04 17:05:41 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								eb611ddeb2 
								
							 
						 
						
							
							
								
								Do not try to update dominator info while manipulating CFG.  This code does not handle all cases and keeps invalid dom info around some cases, which misleads other passes down stream.  
							
							 
							
							... 
							
							
							
							Right now, dom info is recaluclated in the end if the loop is switched.
llvm-svn: 53106 
							
						 
						
							2008-07-03 17:37:52 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								a96eabaab7 
								
							 
						 
						
							
							
								
								Remove unused function.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53090 
							
						 
						
							2008-07-03 07:10:03 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								226edd1826 
								
							 
						 
						
							
							
								
								Remove extra FIXME  
							
							 
							
							... 
							
							
							
							llvm-svn: 53087 
							
						 
						
							2008-07-03 06:50:04 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								c4dcf82a16 
								
							 
						 
						
							
							
								
								Reconstruct dom info, if loop is unswitched.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53086 
							
						 
						
							2008-07-03 06:48:21 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								e491bb8845 
								
							 
						 
						
							
							
								
								LoopUnswitch does not preserve dominator info in all cases.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53085 
							
						 
						
							2008-07-03 05:55:03 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								7dcfff392a 
								
							 
						 
						
							
							
								
								Undo previous patch. It is not that simple to fix dom info here.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53062 
							
						 
						
							2008-07-03 00:08:13 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								5adfcb5783 
								
							 
						 
						
							
							
								
								Preserve dom info while simplifing loop after the unswitch.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53052 
							
						 
						
							2008-07-02 22:58:54 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								ed50fb5b61 
								
							 
						 
						
							
							
								
								reuse vectors.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53007 
							
						 
						
							2008-07-02 01:44:29 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								57d94d6304 
								
							 
						 
						
							
							
								
								Fix comment.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53006 
							
						 
						
							2008-07-02 01:31:19 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								e149d4ed4d 
								
							 
						 
						
							
							
								
								Preserve loop data so that it is not fetched everytime it is needed.  
							
							 
							
							... 
							
							
							
							Keep track of currentLoop.
llvm-svn: 53005 
							
						 
						
							2008-07-02 01:18:13 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								cd6b697945 
								
							 
						 
						
							
							
								
								Preserve dominance frontier while trivially unswitching loop.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52438 
							
						 
						
							2008-06-18 02:16:38 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								7314d0ee3c 
								
							 
						 
						
							
							
								
								Update dom tree. Fix PR 2372.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51887 
							
						 
						
							2008-06-02 22:52:56 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								f96e1371e8 
								
							 
						 
						
							
							
								
								Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places to  
							
							 
							
							... 
							
							
							
							use it instead of duplicating its functionality.
llvm-svn: 51499 
							
						 
						
							2008-05-23 21:05:58 +00:00  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								6a2da37c0e 
								
							 
						 
						
							
							
								
								Make several variable declarations static.  
							
							 
							
							... 
							
							
							
							llvm-svn: 50696 
							
						 
						
							2008-05-06 01:53:16 +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
							
						 
						
							 
							
							
							
							
								
							
							
								559c867ece 
								
							 
						 
						
							
							
								
								fit some more code in 80 cols.  
							
							 
							
							... 
							
							
							
							llvm-svn: 50016 
							
						 
						
							2008-04-21 00:25:49 +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  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								11fc6f8765 
								
							 
						 
						
							
							
								
								Update the block cloner which fixes bugpoint on code using unwind_to (phew!)  
							
							 
							
							... 
							
							
							
							and also update the cloning interface's major user, the loop optimizations.
llvm-svn: 48088 
							
						 
						
							2008-03-09 05:24:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
						
					 
				
					
						
							
							
								 
								David Greene
							
						 
						
							 
							
							
							
							
								
							
							
								c4a80fb574 
								
							 
						 
						
							
							
								
								Get rid of annoying spaces.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45100 
							
						 
						
							2007-12-17 17:40:29 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b0dd27ee91 
								
							 
						 
						
							
							
								
								Make LoopInfoBase more generic, in preparation for having MachineLoopInfo.  This involves a small interface change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 44348 
							
						 
						
							2007-11-27 03:43:35 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								2af23f976b 
								
							 
						 
						
							
							
								
								Do not walk invalid iterator.  
							
							 
							
							... 
							
							
							
							llvm-svn: 42812 
							
						 
						
							2007-10-09 21:31:36 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								a69f987b66 
								
							 
						 
						
							
							
								
								Fix bug in updating dominance frontier after loop  
							
							 
							
							... 
							
							
							
							unswitch when frontier includes basic blocks that 
are not inside loop.
llvm-svn: 42654 
							
						 
						
							2007-10-05 22:29:34 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								3574759d85 
								
							 
						 
						
							
							
								
								Fix 80 col violation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 42591 
							
						 
						
							2007-10-03 21:17:43 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								e192e32577 
								
							 
						 
						
							
							
								
								Refactor code in a separate method.  
							
							 
							
							... 
							
							
							
							llvm-svn: 42590 
							
						 
						
							2007-10-03 21:16:08 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								83cc3f8f51 
								
							 
						 
						
							
							
								
								Update aux. info associated with an instruction before erasing instruction.  
							
							 
							
							... 
							
							
							
							llvm-svn: 42180 
							
						 
						
							2007-09-20 23:45:50 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								b5933bbbd5 
								
							 
						 
						
							
							
								
								Use SmallVector instead of std::vector.  
							
							 
							
							... 
							
							
							
							llvm-svn: 41207 
							
						 
						
							2007-08-21 00:31:24 +00:00  
						
					 
				
					
						
							
							
								 
								David Greene
							
						 
						
							 
							
							
							
							
								
							
							
								816a190cdf 
								
							 
						 
						
							
							
								
								Fix GLIBCXX_DEBUG error triggered by incrementing erased iterator.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40897 
							
						 
						
							2007-08-07 16:44:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2740694450 
								
							 
						 
						
							
							
								
								wrap some long lines.  Major offenders that are left include  
							
							 
							
							... 
							
							
							
							gvn, gvnpre, dse, and predsimplify.  To see these, use:
  make check-line-length
llvm-svn: 40738 
							
						 
						
							2007-08-02 16:53:43 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								a882328e61 
								
							 
						 
						
							
							
								
								Update dominator info for the middle blocks created while spliting  
							
							 
							
							... 
							
							
							
							exit edge to preserve LCSSA.
Fix dominance frontier update during loop unswitch. This fixes PR 1589, again
llvm-svn: 40737 
							
						 
						
							2007-08-02 15:25:57 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								34890b2f27 
								
							 
						 
						
							
							
								
								Undo previous check-in.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40698 
							
						 
						
							2007-08-01 23:24:50 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								561b0c29a3 
								
							 
						 
						
							
							
								
								Update dominator info for the middle blocks created while spliting  
							
							 
							
							... 
							
							
							
							exit edge to preserve LCSSA.
Fix dominance frontier update during loop unswitch. This fixes PR 1589.
llvm-svn: 40695 
							
						 
						
							2007-08-01 22:23:50 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								34d442f274 
								
							 
						 
						
							
							
								
								More explicit keywords.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40673 
							
						 
						
							2007-08-01 15:32:29 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								d491198000 
								
							 
						 
						
							
							
								
								Loop unswitch preserves dom info.  
							
							 
							
							... 
							
							
							
							Use simple analysis interface to preserve analysis info maintained by other loop passes.
llvm-svn: 40627 
							
						 
						
							2007-07-31 08:03:26 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								7d165e1d84 
								
							 
						 
						
							
							
								
								If loop can be unswitched again, then do it yourself.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40609 
							
						 
						
							2007-07-30 23:07:10 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								14fae50666 
								
							 
						 
						
							
							
								
								Remove dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40606 
							
						 
						
							2007-07-30 21:10:44 +00:00  
						
					 
				
					
						
							
							
								 
								Chuck Rose III
							
						 
						
							 
							
							
							
							
								
							
							
								1a39a2d13d 
								
							 
						 
						
							
							
								
								VStudio compiler errors and placing Function*->ExFunc map under ManagedStatic control.  
							
							 
							
							... 
							
							
							
							This commit fixes two things.  One is a pair of VStudio compiler errors stemming from variables
which defined within the for loop statement and also within the body of the for loop.  I fixed these 
by renaming one of the two variables.  Additionally, I've made the Function*->ExFunc map in 
ExternalFunctions.cpp a ManagedStatic object, so that cleanup will be done on llvm_shutdown.  In repeated
uses of the interpreter, where the same Function* address may get used for completely differnet functions,
this was causing a crash.
llvm-svn: 40558 
							
						 
						
							2007-07-27 18:26:35 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								8a1d1ac925 
								
							 
						 
						
							
							
								
								Fix typo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 40025 
							
						 
						
							2007-07-18 23:50:19 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								bb8ea8cefc 
								
							 
						 
						
							
							
								
								Fix dominator info update to accommodate CFG changes.  
							
							 
							
							... 
							
							
							
							This fixes PR1559.
llvm-svn: 40024 
							
						 
						
							2007-07-18 23:48:20 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								29ccf8ba52 
								
							 
						 
						
							
							
								
								Disable claims to preserve analysis until open issues are resolved.  
							
							 
							
							... 
							
							
							
							llvm-svn: 39834 
							
						 
						
							2007-07-13 21:53:42 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								12358b4827 
								
							 
						 
						
							
							
								
								These rountines are now available as part of basic block utilities.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37955 
							
						 
						
							2007-07-06 22:03:47 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								0975c6d7f9 
								
							 
						 
						
							
							
								
								Preserve DominanceFrontier.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37820 
							
						 
						
							2007-06-29 23:11:49 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								9feb7f5846 
								
							 
						 
						
							
							
								
								Do not filter loop if candidate branch is in loop header.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37792 
							
						 
						
							2007-06-29 01:39:53 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								6ba5ad482f 
								
							 
						 
						
							
							
								
								- Undo previous check and allow loop switch for condtion that is not inside  
							
							 
							
							... 
							
							
							
							loop.
- Avoid loop unswich for loop header branch.
- While cloning dominators fix typo and handle self dominating blocks.
llvm-svn: 37772 
							
						 
						
							2007-06-28 02:05:46 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								3304e469f7 
								
							 
						 
						
							
							
								
								Update LoopUnswitch pass to preserve DomiantorTree.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37771 
							
						 
						
							2007-06-28 00:49:00 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								3c723c8db7 
								
							 
						 
						
							
							
								
								If a condition is not inside a loop then the condition is suitable  
							
							 
							
							... 
							
							
							
							to loop unswitch candidate for the loop.
llvm-svn: 37770 
							
						 
						
							2007-06-28 00:44:10 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								506310d3dd 
								
							 
						 
						
							
							
								
								Avoid non-trivial loop unswitching while optimizing for size.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37446 
							
						 
						
							2007-06-06 00:21:03 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								9557247412 
								
							 
						 
						
							
							
								
								Fix PR1333  
							
							 
							
							... 
							
							
							
							Testcases :
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049451.html 
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049452.html 
llvm-svn: 36955 
							
						 
						
							2007-05-09 08:24:12 +00:00  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								901a27d892 
								
							 
						 
						
							
							
								
								Now LoopUnswitch is a LoopPass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34992 
							
						 
						
							2007-03-07 00:26:10 +00:00  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								558990e189 
								
							 
						 
						
							
							
								
								Use more efficient test for one value in a ConstantInt.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34859 
							
						 
						
							2007-03-02 23:35:28 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								97517ff930 
								
							 
						 
						
							
							
								
								Use efficient container SmallPtrSet  
							
							 
							
							... 
							
							
							
							llvm-svn: 34640 
							
						 
						
							2007-02-26 20:22:50 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								967b84c681 
								
							 
						 
						
							
							
								
								Do not unswitch loop on same value again and again.  
							
							 
							
							... 
							
							
							
							llvm-svn: 34638 
							
						 
						
							2007-02-26 19:31:58 +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
							
						 
						
							 
							
							
							
							
								
							
							
								1bfc7ab6a7 
								
							 
						 
						
							
							
								
								Switch inliner over to use DenseMap instead of std::map for ValueMap.  This  
							
							 
							
							... 
							
							
							
							speeds up the inliner 16%.
llvm-svn: 33801 
							
						 
						
							2007-02-03 00:08:31 +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  
						
					 
				
					
						
							
							
								 
								Reid Spencer
							
						 
						
							 
							
							
							
							
								
							
							
								a94d394ad2 
								
							 
						 
						
							
							
								
								For PR1043:  
							
							 
							
							... 
							
							
							
							This is the final patch for this PR. It implements some minor cleanup
in the use of IntegerType, to wit:
1. Type::getIntegerTypeMask -> IntegerType::getBitMask
2. Type::Int*Ty changed to IntegerType* from Type*
3. ConstantInt::getType() returns IntegerType* now, not Type*
This also fixes PR1120.
Patch by Sheng Zhou.
llvm-svn: 33370 
							
						 
						
							2007-01-19 21:13:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ca82a908e3 
								
							 
						 
						
							
							
								
								fix a bug in a recent patch  
							
							 
							
							... 
							
							
							
							llvm-svn: 33164 
							
						 
						
							2007-01-13 00:02:49 +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  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								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
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								f489d0f85c 
								
							 
						 
						
							
							
								
								Do not rely on std::sort and std::erase to get list of unique  
							
							 
							
							... 
							
							
							
							exit blocks. The output is dependent on addresses of basic block.
Add and use Loop::getUniqueExitBlocks.
llvm-svn: 29966 
							
						 
						
							2006-08-29 22:29:16 +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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								00b974cdbc 
								
							 
						 
						
							
							
								
								Fix a error that hadn't yet cause any problems, but I'm sure it would have  
							
							 
							
							... 
							
							
							
							somewhere down the road.
llvm-svn: 29197 
							
						 
						
							2006-07-19 03:51:48 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								18e816f356 
								
							 
						 
						
							
							
								
								Switch to a very conservative heuristic for determining when loop-unswitching  
							
							 
							
							... 
							
							
							
							will be profitable.  This is mainly to remove some cases where excessive
unswitching would result in long compile times and/or huge generated code.
Once someone comes up with a better heuristic that avoids these cases, this
should be switched out.
llvm-svn: 28962 
							
						 
						
							2006-06-28 17:47:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0a2e11260e 
								
							 
						 
						
							
							
								
								Don't unswitch really large loops even if they are mostly filled with empty  
							
							 
							
							... 
							
							
							
							blocks.
llvm-svn: 28959 
							
						 
						
							2006-06-28 16:38:55 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								bb3ae5eb8f 
								
							 
						 
						
							
							
								
								Fix for 2006-06-27-DeadSwitchCase.ll  
							
							 
							
							... 
							
							
							
							Be more careful when updating Phi nodes after eliminating dead switch cases.  Fix
proposed by Chris.
llvm-svn: 28947 
							
						 
						
							2006-06-27 22:26:09 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								f52351e50f 
								
							 
						 
						
							
							
								
								Make LoopUnswitch able to unswitch loops with live-out values by taking advantage  
							
							 
							
							... 
							
							
							
							of LCSSA.  This results several times the number of unswitchings occurring on
tests such and timberwolfmc, unix-tbl, and ldecod.
llvm-svn: 28912 
							
						 
						
							2006-06-26 07:44:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0c4f5a655a 
								
							 
						 
						
							
							
								
								Fix Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll, a loop unswitch  
							
							 
							
							... 
							
							
							
							bug exposed by the recent lcssa work.
llvm-svn: 28779 
							
						 
						
							2006-06-14 04:46:17 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								fd0a3d6e5c 
								
							 
						 
						
							
							
								
								Reapply my 6/9 changes.  The bug Evan saw no longer occurs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 28759 
							
						 
						
							2006-06-12 21:49:21 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1b6e310e6f 
								
							 
						 
						
							
							
								
								Back out Owen's 6/9 changes. They broke MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others).  
							
							 
							
							... 
							
							
							
							llvm-svn: 28747 
							
						 
						
							2006-06-11 09:32:57 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b1dc1d44f8 
								
							 
						 
						
							
							
								
								Add LCSSA as a requirement for LoopUnswitch, and assert that LoopUnswitch preserves  
							
							 
							
							... 
							
							
							
							LCSSA.
llvm-svn: 28739 
							
						 
						
							2006-06-09 18:40:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5821a6a17a 
								
							 
						 
						
							
							
								
								add the actual cost to the debug info  
							
							 
							
							... 
							
							
							
							llvm-svn: 27051 
							
						 
						
							2006-03-24 07:14:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e5521db5bc 
								
							 
						 
						
							
							
								
								Fix Regression/Transforms/LoopUnswitch/2006-02-22-UnswitchCrash.ll, which  
							
							 
							
							... 
							
							
							
							caused SPASS to fail building last night.
We can't trivially unswitch a loop if the exit block has phi nodes in it,
because we don't know which predecessor to use.
llvm-svn: 26320 
							
						 
						
							2006-02-22 23:55:00 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8a5a324dac 
								
							 
						 
						
							
							
								
								Add some comments, simplify some code, and fix a bug that caused rewriting  
							
							 
							
							... 
							
							
							
							to rewrite with the wrong value.
llvm-svn: 26311 
							
						 
						
							2006-02-22 06:37:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c2e3a7a4ce 
								
							 
						 
						
							
							
								
								improved support for branch folding, still not enabled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26289 
							
						 
						
							2006-02-18 07:57:38 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								19fa8ac938 
								
							 
						 
						
							
							
								
								Implement deletion of dead blocks, currently disabled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26285 
							
						 
						
							2006-02-18 02:42:34 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								cb853de534 
								
							 
						 
						
							
							
								
								a previous patch completely disabled trivial unswitching, this fixees it.  
							
							 
							
							... 
							
							
							
							Thanks to nate for pointing this out :)
llvm-svn: 26280 
							
						 
						
							2006-02-18 01:32:04 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								29f771ba21 
								
							 
						 
						
							
							
								
								initial trivial support for folding branches that have now-constant destinations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26279 
							
						 
						
							2006-02-18 01:27:45 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8e44ff50b0 
								
							 
						 
						
							
							
								
								When unswitching a loop, make sure to update loop info with exit blocks in  
							
							 
							
							... 
							
							
							
							the right loop.
llvm-svn: 26277 
							
						 
						
							2006-02-18 00:55:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								baddba41c7 
								
							 
						 
						
							
							
								
								Fix loops where the header has an exit, fixing a loop-unswitch crash on crafty  
							
							 
							
							... 
							
							
							
							llvm-svn: 26258 
							
						 
						
							2006-02-17 06:39:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6fd136239b 
								
							 
						 
						
							
							
								
								start of some new simplification code, not thoroughly tested, use at your own  
							
							 
							
							... 
							
							
							
							risk :)
llvm-svn: 26248 
							
						 
						
							2006-02-17 00:31:07 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fa335f6083 
								
							 
						 
						
							
							
								
								Change SplitBlock to increment a BasicBlock::iterator, not an Instruction*.  Apparently they do different things :)  
							
							 
							
							... 
							
							
							
							This fixes a testcase that nate reduced from spass.
Also included are a couple minor code changes that don't affect the generated
code at all.
llvm-svn: 26235 
							
						 
						
							2006-02-16 19:36:22 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								55f63f1b53 
								
							 
						 
						
							
							
								
								Fix VC++ warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26228 
							
						 
						
							2006-02-16 04:07:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ff42e81028 
								
							 
						 
						
							
							
								
								fix a bug where we unswitched the wrong way  
							
							 
							
							... 
							
							
							
							llvm-svn: 26225 
							
						 
						
							2006-02-16 01:24:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fdff0bb43e 
								
							 
						 
						
							
							
								
								Implement trivial unswitching for switch stmts.  This allows us to trivial  
							
							 
							
							... 
							
							
							
							unswitch this loop on 2 before sweating to unswitch on 1/3.
void test4(int N, int i, int C, int*P, int*Q) {
  int j;
  for (j = 0; j < N; ++j) {
    switch (C) {                // general unswitching.
    default: P[i+j] = 0; break;
    case 1: Q[i+j] = 0; break;
    case 3: P[i+j] = Q[i+j]; break;
    case 2: break;              //  TRIVIAL UNSWITCH on C==2
    }
  }
}
llvm-svn: 26223 
							
						 
						
							2006-02-15 22:52:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e5cb76d744 
								
							 
						 
						
							
							
								
								make "trivial" unswitching significantly more general.  It can now handle  
							
							 
							
							... 
							
							
							
							this for example:
  for (j = 0; j < N; ++j) {     // trivial unswitch
    if (C)
      P[i+j] = 0;
  }
turning it into the obvious code without bothering to duplicate an empty loop.
llvm-svn: 26220 
							
						 
						
							2006-02-15 22:03:36 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								65152d80ec 
								
							 
						 
						
							
							
								
								Checking the wrong value.  This caused us to emit silly code like  
							
							 
							
							... 
							
							
							
							Y = seteq bool X, true
instead of just using X :)
llvm-svn: 26215 
							
						 
						
							2006-02-15 19:05:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								01db04efb0 
								
							 
						 
						
							
							
								
								more refactoring, no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26194 
							
						 
						
							2006-02-15 01:44:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b0cbe7106e 
								
							 
						 
						
							
							
								
								pull some code out into a function  
							
							 
							
							... 
							
							
							
							llvm-svn: 26191 
							
						 
						
							2006-02-15 00:07:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0b8ec1a132 
								
							 
						 
						
							
							
								
								Use statistics to keep track of what flavors of loops we are unswitching  
							
							 
							
							... 
							
							
							
							llvm-svn: 26157 
							
						 
						
							2006-02-14 01:01:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fbadd7e1ee 
								
							 
						 
						
							
							
								
								implement unswitching of loops with switch stmts and selects in them  
							
							 
							
							... 
							
							
							
							llvm-svn: 26114 
							
						 
						
							2006-02-11 00:43:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f1b151684d 
								
							 
						 
						
							
							
								
								Update PHI nodes in successors of exit blocks.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26113 
							
						 
						
							2006-02-10 23:26:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fe4151efe7 
								
							 
						 
						
							
							
								
								Reform the unswitching code in terms of edge splitting, not block splitting.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26112 
							
						 
						
							2006-02-10 23:16:39 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ec6b40a093 
								
							 
						 
						
							
							
								
								Fix a case where UnswitchTrivialCondition broke critical edges with  
							
							 
							
							... 
							
							
							
							phi's in the successors
llvm-svn: 26108 
							
						 
						
							2006-02-10 19:08:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6e263155a6 
								
							 
						 
						
							
							
								
								add some notes, move some code around.  Implement unswitching of loops  
							
							 
							
							... 
							
							
							
							with branches on partially invariant computations.
llvm-svn: 26104 
							
						 
						
							2006-02-10 02:30:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4935417a84 
								
							 
						 
						
							
							
								
								Move code around to be more logical, no functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 26103 
							
						 
						
							2006-02-10 02:01:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3fc3148b85 
								
							 
						 
						
							
							
								
								When unswitching a trivial loop, do admit we are doing it! :)  
							
							 
							
							... 
							
							
							
							llvm-svn: 26102 
							
						 
						
							2006-02-10 01:36:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ed7a67b0de 
								
							 
						 
						
							
							
								
								Implement unconditional unswitching of 'trivial' loops, those loops that contain  
							
							 
							
							... 
							
							
							
							branches in their entry block that control whether or not the loop is a noop or not.
llvm-svn: 26101 
							
						 
						
							2006-02-10 01:24:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4f0e66df6a 
								
							 
						 
						
							
							
								
								Simplify control flow a bit, note that unswitch preserves canonical loop form  
							
							 
							
							... 
							
							
							
							llvm-svn: 26098 
							
						 
						
							2006-02-09 22:15:42 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8976219850 
								
							 
						 
						
							
							
								
								Make the threshold a parameter  
							
							 
							
							... 
							
							
							
							llvm-svn: 26093 
							
						 
						
							2006-02-09 20:15:48 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2826e0511b 
								
							 
						 
						
							
							
								
								Simplify the loop-unswitch pass, by not even trying to unswitch loops with  
							
							 
							
							... 
							
							
							
							uses of loop values outside the loop.  We need loop-closed SSA form to do
this right, or to use SSA rewriting if we really care.
llvm-svn: 26089 
							
						 
						
							2006-02-09 19:14:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c597b8a55e 
								
							 
						 
						
							
							
								
								Make iostream #inclusion explicit  
							
							 
							
							... 
							
							
							
							llvm-svn: 25514 
							
						 
						
							2006-01-22 23:32:06 +00:00  
						
					 
				
					
						
							
							
								 
								Misha Brukman
							
						 
						
							 
							
							
							
							
								
							
							
								b1c9317bb4 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							 
							
							... 
							
							
							
							llvm-svn: 21427 
							
						 
						
							2005-04-21 23:48:37 +00:00  
						
					 
				
					
						
							
							
								 
								Jeff Cohen
							
						 
						
							 
							
							
							
							
								
							
							
								eca0d0f2da 
								
							 
						 
						
							
							
								
								Put createLoopUnswitchPass() into proper namespace  
							
							 
							
							... 
							
							
							
							llvm-svn: 19306 
							
						 
						
							2005-01-06 05:47:18 +00:00  
						
					 
				
					
						
							
							
								 
								Alkis Evlogimenos
							
						 
						
							 
							
							
							
							
								
							
							
								a5c04ee50f 
								
							 
						 
						
							
							
								
								Fixes to make LLVM compile with vc7.1.  
							
							 
							
							... 
							
							
							
							Patch contributed by Paolo Invernizzi!
llvm-svn: 16152 
							
						 
						
							2004-09-03 18:19:51 +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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f48f777d4c 
								
							 
						 
						
							
							
								
								Initial checkin of a simple loop unswitching pass.  It still needs work,  
							
							 
							
							... 
							
							
							
							but it's a start, and seems to do it's basic job.
llvm-svn: 13068 
							
						 
						
							2004-04-19 18:07:02 +00:00