52131344a2 
								
							 
						 
						
							
							
								
								Remove PHINode::reserveOperandSpace(). Instead, add a parameter to  
							
							... 
							
							
							
							PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128537 
							
						 
						
							2011-03-30 11:28:46 +00:00  
				
					
						
							
							
								 
						
							
								e0938d8a87 
								
							 
						 
						
							
							
								
								(Almost) always call reserveOperandSpace() on newly created PHINodes.  
							
							... 
							
							
							
							llvm-svn: 128535 
							
						 
						
							2011-03-30 11:19:20 +00:00  
				
					
						
							
							
								 
						
							
								2f5f696b66 
								
							 
						 
						
							
							
								
								typoes  
							
							... 
							
							
							
							llvm-svn: 113647 
							
						 
						
							2010-09-10 22:25:58 +00:00  
				
					
						
							
							
								 
						
							
								2104b8d36e 
								
							 
						 
						
							
							
								
								rename llvm::llvm_report_error -> llvm::report_fatal_error  
							
							... 
							
							
							
							llvm-svn: 100709 
							
						 
						
							2010-04-07 22:58:41 +00:00  
				
					
						
							
							
								 
						
							
								321098ebec 
								
							 
						 
						
							
							
								
								Fix nondeterministic behavior.  
							
							... 
							
							
							
							llvm-svn: 93093 
							
						 
						
							2010-01-10 01:07:22 +00:00  
				
					
						
							
							
								 
						
							
								f50a3f19da 
								
							 
						 
						
							
							
								
								Fix nondeterministic behavior.  
							
							... 
							
							
							
							llvm-svn: 93038 
							
						 
						
							2010-01-09 01:06:49 +00:00  
				
					
						
							
							
								 
						
							
								ccce8bae14 
								
							 
						 
						
							
							
								
								Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer.  
							
							... 
							
							
							
							llvm-svn: 92726 
							
						 
						
							2010-01-05 13:12:22 +00:00  
				
					
						
							
							
								 
						
							
								0ad6dce031 
								
							 
						 
						
							
							
								
								Change errs() to dbgs().  
							
							... 
							
							
							
							llvm-svn: 92601 
							
						 
						
							2010-01-05 01:26:44 +00:00  
				
					
						
							
							
								 
						
							
								974e12b2d3 
								
							 
						 
						
							
							
								
								Remove includes of Support/Compiler.h that are no longer needed after the  
							
							... 
							
							
							
							VISIBILITY_HIDDEN removal.
llvm-svn: 85043 
							
						 
						
							2009-10-25 06:57:41 +00:00  
				
					
						
							
							
								 
						
							
								02d5f77d26 
								
							 
						 
						
							
							
								
								Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.  
							
							... 
							
							
							
							Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042 
							
						 
						
							2009-10-25 06:33:48 +00:00  
				
					
						
							
							
								 
						
							
								4e9ac2a34b 
								
							 
						 
						
							
							
								
								Comment-ify.  
							
							... 
							
							
							
							llvm-svn: 80009 
							
						 
						
							2009-08-25 17:42:07 +00:00  
				
					
						
							
							
								 
						
							
								f18cae4979 
								
							 
						 
						
							
							
								
								Switch to SmallVector.  
							
							... 
							
							
							
							llvm-svn: 80007 
							
						 
						
							2009-08-25 17:35:37 +00:00  
				
					
						
							
							
								 
						
							
								5e39d1deec 
								
							 
						 
						
							
							
								
								Pull out this predicate loop into a helper function.  
							
							... 
							
							
							
							llvm-svn: 80006 
							
						 
						
							2009-08-25 17:26:32 +00:00  
				
					
						
							
							
								 
						
							
								34e6148dc8 
								
							 
						 
						
							
							
								
								Handle a corner case when extracing code regions where one of the immediate successor  
							
							... 
							
							
							
							of an extracted block contains a PHI using a value defined in the extracted region.
With this patch, the partial inliner now passes MultiSource/Applications.
llvm-svn: 79963 
							
						 
						
							2009-08-25 00:54:39 +00:00  
				
					
						
							
							
								 
						
							
								b4aa5b1511 
								
							 
						 
						
							
							
								
								When extracting SEME regions of code, the extractor needs to update the dominator tree for split return blocks.  
							
							... 
							
							
							
							llvm-svn: 79957 
							
						 
						
							2009-08-24 23:32:14 +00:00  
				
					
						
							
							
								 
						
							
								b25de3ff60 
								
							 
						 
						
							
							
								
								eliminate the "Value" printing methods that print to a std::ostream.  
							
							... 
							
							
							
							This required converting a bunch of stuff off DOUT and other cleanups.
llvm-svn: 79819 
							
						 
						
							2009-08-23 04:37:46 +00:00  
				
					
						
							
							
								 
						
							
								55f1c09e31 
								
							 
						 
						
							
							
								
								Push LLVMContexts through the IntegerType APIs.  
							
							... 
							
							
							
							llvm-svn: 78948 
							
						 
						
							2009-08-13 21:58:54 +00:00  
				
					
						
							
							
								 
						
							
								03cb69fbd1 
								
							 
						 
						
							
							
								
								Privatize the StructType table, which unfortunately involves routing contexts through a number of APIs.  
							
							... 
							
							
							
							llvm-svn: 78258 
							
						 
						
							2009-08-05 23:16:16 +00:00  
				
					
						
							
							
								 
						
							
								5a1acd9912 
								
							 
						 
						
							
							
								
								Move a few more APIs back to 2.5 forms.  The only remaining ones left to change back are  
							
							... 
							
							
							
							metadata related, which I'm waiting on to avoid conflicting with Devang.
llvm-svn: 77721 
							
						 
						
							2009-07-31 20:28:14 +00:00  
				
					
						
							
							
								 
						
							
								4056ca9568 
								
							 
						 
						
							
							
								
								Move types back to the 2.5 API.  
							
							... 
							
							
							
							llvm-svn: 77516 
							
						 
						
							2009-07-29 22:17:13 +00:00  
				
					
						
							
							
								 
						
							
								edb4a70325 
								
							 
						 
						
							
							
								
								Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types.  More to come.  
							
							... 
							
							
							
							llvm-svn: 77011 
							
						 
						
							2009-07-24 23:12:02 +00:00  
				
					
						
							
							
								 
						
							
								12368685d8 
								
							 
						 
						
							
							
								
								Switch to getNameStr().  
							
							... 
							
							
							
							llvm-svn: 76962 
							
						 
						
							2009-07-24 08:24:36 +00:00  
				
					
						
							
							
								 
						
							
								47db941fd3 
								
							 
						 
						
							
							
								
								Get rid of the Pass+Context magic.  
							
							... 
							
							
							
							llvm-svn: 76702 
							
						 
						
							2009-07-22 00:24:57 +00:00  
				
					
						
							
							
								 
						
							
								4fdeba9706 
								
							 
						 
						
							
							
								
								Revert yesterday's change by removing the LLVMContext parameter to AllocaInst and MallocInst.  
							
							... 
							
							
							
							llvm-svn: 75863 
							
						 
						
							2009-07-15 23:53:25 +00:00  
				
					
						
							
							
								 
						
							
								b6b2530000 
								
							 
						 
						
							
							
								
								Move EVER MORE stuff over to LLVMContext.  
							
							... 
							
							
							
							llvm-svn: 75703 
							
						 
						
							2009-07-14 23:09:55 +00:00  
				
					
						
							
							
								 
						
							
								ccb29cd290 
								
							 
						 
						
							
							
								
								Convert more assert(0)+abort() -> LLVM_UNREACHABLE,  
							
							... 
							
							
							
							and abort()/exit() -> llvm_report_error().
llvm-svn: 75363 
							
						 
						
							2009-07-11 13:10:19 +00:00  
				
					
						
							
							
								 
						
							
								38264b1554 
								
							 
						 
						
							
							
								
								"LLVMContext* " --> "LLVMContext *"  
							
							... 
							
							
							
							llvm-svn: 74878 
							
						 
						
							2009-07-06 23:00:19 +00:00  
				
					
						
							
							
								 
						
							
								e70b637033 
								
							 
						 
						
							
							
								
								More LLVMContext-ification.  
							
							... 
							
							
							
							llvm-svn: 74807 
							
						 
						
							2009-07-05 22:41:43 +00:00  
				
					
						
							
							
								 
						
							
								4caf5eb70c 
								
							 
						 
						
							
							
								
								Fix PR2929 by making bugpoint/code extract propagate the nothrow  
							
							... 
							
							
							
							bit from the original function to the cloned one.
llvm-svn: 61194 
							
						 
						
							2008-12-18 05:52:56 +00:00  
				
					
						
							
							
								 
						
							
								234b44add2 
								
							 
						 
						
							
							
								
								Fix spelling.  
							
							... 
							
							
							
							llvm-svn: 60971 
							
						 
						
							2008-12-13 05:21:37 +00:00  
				
					
						
							
							
								 
						
							
								158ff2c4a9 
								
							 
						 
						
							
							
								
								Use Instruction::eraseFromParent().  
							
							... 
							
							
							
							llvm-svn: 52606 
							
						 
						
							2008-06-21 22:08:46 +00:00  
				
					
						
							
							
								 
						
							
								f96e1371e8 
								
							 
						 
						
							
							
								
								Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places to  
							
							... 
							
							
							
							use it instead of duplicating its functionality.
llvm-svn: 51499 
							
						 
						
							2008-05-23 21:05:58 +00:00  
				
					
						
							
							
								 
						
							
								697e94cc22 
								
							 
						 
						
							
							
								
								Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better.  
							
							... 
							
							
							
							llvm-svn: 51143 
							
						 
						
							2008-05-15 10:04:30 +00:00  
				
					
						
							
							
								 
						
							
								7629b71dd4 
								
							 
						 
						
							
							
								
								Revert r49614.  As Dan pointed out, some of these aren't correct.  
							
							... 
							
							
							
							llvm-svn: 49657 
							
						 
						
							2008-04-14 17:38:21 +00:00  
				
					
						
							
							
								 
						
							
								1f6fbc4bc3 
								
							 
						 
						
							
							
								
								Replace calls of the form V1->setName(V2->getName()) with V1->takeName(V2),  
							
							... 
							
							
							
							which is significantly more efficient.
llvm-svn: 49614 
							
						 
						
							2008-04-13 19:15:17 +00:00  
				
					
						
							
							
								 
						
							
								e9ecc68d8f 
								
							 
						 
						
							
							
								
								API changes for class Use size reduction, wave 1.  
							
							... 
							
							
							
							Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277 
							
						 
						
							2008-04-06 20:25:17 +00:00  
				
					
						
							
							
								 
						
							
								1bfd121321 
								
							 
						 
						
							
							
								
								Make Transforms to be 4.3 warnings-clean  
							
							... 
							
							
							
							llvm-svn: 47371 
							
						 
						
							2008-02-20 11:26:25 +00:00  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								edf0788758 
								
							 
						 
						
							
							
								
								Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space.  
							
							... 
							
							
							
							llvm-svn: 45082 
							
						 
						
							2007-12-17 01:12:55 +00:00  
				
					
						
							
							
								 
						
							
								ca831a829d 
								
							 
						 
						
							
							
								
								Move Split<...>() into DomTreeBase.  This should make the #include's of DominatorInternals.h  
							
							... 
							
							
							
							in CodeExtractor and LoopSimplify unnecessary.
Hartmut, could you confirm that this fixes the issues you were seeing?
llvm-svn: 43115 
							
						 
						
							2007-10-18 05:13:52 +00:00  
				
					
						
							
							
								 
						
							
								2f842e613f 
								
							 
						 
						
							
							
								
								Fixed linker errors (unresolved externals: split<>(...)) when compiling with VC++. Please review.  
							
							... 
							
							
							
							llvm-svn: 43081 
							
						 
						
							2007-10-17 18:37:09 +00:00  
				
					
						
							
							
								 
						
							
								c656cbb8c2 
								
							 
						 
						
							
							
								
								Update GEP constructors to use an iterator interface to fix  
							
							... 
							
							
							
							GLIBCXX_DEBUG issues.
llvm-svn: 41697 
							
						 
						
							2007-09-04 15:46:09 +00:00  
				
					
						
							
							
								 
						
							
								17a5dfe6f7 
								
							 
						 
						
							
							
								
								New CallInst interface to address GLIBCXX_DEBUG errors caused by  
							
							... 
							
							
							
							indexing an empty std::vector.
Updates to all clients.
llvm-svn: 40660 
							
						 
						
							2007-08-01 03:43:44 +00:00  
				
					
						
							
							
								 
						
							
								d5258a23a5 
								
							 
						 
						
							
							
								
								Move code to update dominator information after basic block is split  
							
							... 
							
							
							
							from LoopSimplify.cpp to Dominator.cpp
llvm-svn: 37689 
							
						 
						
							2007-06-21 17:23:45 +00:00  
				
					
						
							
							
								 
						
							
								cf470e5255 
								
							 
						 
						
							
							
								
								Do not use ETForest as well as DomiantorTree.  DominatorTree is sufficient.  
							
							... 
							
							
							
							llvm-svn: 37501 
							
						 
						
							2007-06-07 22:17:16 +00:00  
				
					
						
							
							
								 
						
							
								ebc5b96735 
								
							 
						 
						
							
							
								
								s/DominatorTree::createNewNode/DominatorTree::addNewBlock/g  
							
							... 
							
							
							
							llvm-svn: 37415 
							
						 
						
							2007-06-04 16:43:25 +00:00  
				
					
						
							
							
								 
						
							
								a89566aefd 
								
							 
						 
						
							
							
								
								Add basic block level interface to change immediate dominator  
							
							... 
							
							
							
							and create new node.
llvm-svn: 37414 
							
						 
						
							2007-06-04 16:22:33 +00:00  
				
					
						
							
							
								 
						
							
								08293fd6d1 
								
							 
						 
						
							
							
								
								Use new ETForest accessor.  
							
							... 
							
							
							
							llvm-svn: 36248 
							
						 
						
							2007-04-18 04:46:35 +00:00  
				
					
						
							
							
								 
						
							
								fb80151c42 
								
							 
						 
						
							
							
								
								Removed tabs everywhere except autogenerated & external files. Add make  
							
							... 
							
							
							
							target for tabs checking.
llvm-svn: 36146 
							
						 
						
							2007-04-16 18:10:23 +00:00  
				
					
						
							
							
								 
						
							
								f095bf3ac4 
								
							 
						 
						
							
							
								
								Expunge DomSet from CodeExtractor.  This is part of the continuing work  
							
							... 
							
							
							
							on PR1171.
llvm-svn: 35726 
							
						 
						
							2007-04-07 05:31:27 +00:00  
				
					
						
							
							
								 
						
							
								dcb291faa4 
								
							 
						 
						
							
							
								
								Change uses of Function::front to Function::getEntryBlock for readability.  
							
							... 
							
							
							
							llvm-svn: 35265 
							
						 
						
							2007-03-22 16:38:57 +00:00  
				
					
						
							
							
								 
						
							
								a06a8fd2d7 
								
							 
						 
						
							
							
								
								Eliminate use of ctors that take vectors.  
							
							... 
							
							
							
							llvm-svn: 34219 
							
						 
						
							2007-02-13 02:10:56 +00:00  
				
					
						
							
							
								 
						
							
								557ab15e71 
								
							 
						 
						
							
							
								
								Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in  
							
							... 
							
							
							
							the Transforms library. This reduces debug library size by 132 KB, debug
binary size by 376 KB, and reduces link time for llvm tools slightly.
llvm-svn: 33939 
							
						 
						
							2007-02-05 23:32:05 +00:00  
				
					
						
							
							
								 
						
							
								7a63e7a7ad 
								
							 
						 
						
							
							
								
								eliminate temporary vectors  
							
							... 
							
							
							
							llvm-svn: 33713 
							
						 
						
							2007-01-31 20:07:32 +00:00  
				
					
						
							
							
								 
						
							
								cddc9dfe97 
								
							 
						 
						
							
							
								
								Implement review feedback for the ConstantBool->ConstantInt merge. Chris  
							
							... 
							
							
							
							recommended that getBoolValue be replaced with getZExtValue and that
get(bool) be replaced by get(const Type*, uint64_t). This implements
those changes.
llvm-svn: 33110 
							
						 
						
							2007-01-12 04:24:46 +00:00  
				
					
						
							
							
								 
						
							
								542964f55b 
								
							 
						 
						
							
							
								
								Rename BoolTy as Int1Ty. Patch by Sheng Zhou.  
							
							... 
							
							
							
							llvm-svn: 33076 
							
						 
						
							2007-01-11 18:21:29 +00:00  
				
					
						
							
							
								 
						
							
								75b871fb1e 
								
							 
						 
						
							
							
								
								For PR1043:  
							
							... 
							
							
							
							Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.
llvm-svn: 33073 
							
						 
						
							2007-01-11 12:24:14 +00:00  
				
					
						
							
							
								 
						
							
								c635f47d9a 
								
							 
						 
						
							
							
								
								For PR950:  
							
							... 
							
							
							
							This patch replaces signed integer types with signless ones:
1. [US]Byte -> Int8
2. [U]Short -> Int16
3. [U]Int   -> Int32
4. [U]Long  -> Int64.
5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion
   and other methods related to signedness. In a few places this warranted
   identifying the signedness information from other sources.
llvm-svn: 32785 
							
						 
						
							2006-12-31 05:48:39 +00:00  
				
					
						
							
							
								 
						
							
								f3baad3ee1 
								
							 
						 
						
							
							
								
								Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are  
							
							... 
							
							
							
							now cerr, cout, and NullStream resp.
llvm-svn: 32298 
							
						 
						
							2006-12-07 01:30:32 +00:00  
				
					
						
							
							
								 
						
							
								4ae401074c 
								
							 
						 
						
							
							
								
								Remove #include <iostream> and use llvm_* streams instead.  
							
							... 
							
							
							
							llvm-svn: 31925 
							
						 
						
							2006-11-26 10:17:54 +00:00  
				
					
						
							
							
								 
						
							
								e0fc4dfc22 
								
							 
						 
						
							
							
								
								For PR950:  
							
							... 
							
							
							
							This patch implements the first increment for the Signless Types feature.
All changes pertain to removing the ConstantSInt and ConstantUInt classes
in favor of just using ConstantInt.
llvm-svn: 31063 
							
						 
						
							2006-10-20 07:07:24 +00:00  
				
					
						
							
							
								 
						
							
								525804f31e 
								
							 
						 
						
							
							
								
								simplify code  
							
							... 
							
							
							
							llvm-svn: 30656 
							
						 
						
							2006-09-28 22:58:25 +00:00  
				
					
						
							
							
								 
						
							
								469640e506 
								
							 
						 
						
							
							
								
								Add explicit #includes of <iostream>  
							
							... 
							
							
							
							llvm-svn: 25509 
							
						 
						
							2006-01-22 22:53:01 +00:00  
				
					
						
							
							
								 
						
							
								b1c9317bb4 
								
							 
						 
						
							
							
								
								Remove trailing whitespace  
							
							... 
							
							
							
							llvm-svn: 21427 
							
						 
						
							2005-04-21 23:48:37 +00:00  
				
					
						
							
							
								 
						
							
								531f9e92d4 
								
							 
						 
						
							
							
								
								This mega patch converts us from using Function::a{iterator|begin|end} to  
							
							... 
							
							
							
							using Function::arg_{iterator|begin|end}.  Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
llvm-svn: 20597 
							
						 
						
							2005-03-15 04:54:21 +00:00  
				
					
						
							
							
								 
						
							
								a35dfcedd3 
								
							 
						 
						
							
							
								
								switchinst ctor now takes a hint for the number of cases that it will have.  
							
							... 
							
							
							
							llvm-svn: 19898 
							
						 
						
							2005-01-29 00:38:26 +00:00  
				
					
						
							
							
								 
						
							
								72a57c3259 
								
							 
						 
						
							
							
								
								Allow constructor parameter to override aggregating args; fix spacing  
							
							... 
							
							
							
							llvm-svn: 18028 
							
						 
						
							2004-11-20 02:20:27 +00:00  
				
					
						
							
							
								 
						
							
								9b0291b18d 
								
							 
						 
						
							
							
								
								Fix: CodeExtractor/2004-11-12-InvokeExtract.ll  
							
							... 
							
							
							
							llvm-svn: 17699 
							
						 
						
							2004-11-13 00:06:45 +00:00  
				
					
						
							
							
								 
						
							
								5bcca6058a 
								
							 
						 
						
							
							
								
								Fix a bug where the code extractor would get a bit confused handling invoke  
							
							... 
							
							
							
							instructions, setting DefBlock to a block it did not have dom info for.
llvm-svn: 17697 
							
						 
						
							2004-11-12 23:50:44 +00:00  
				
					
						
							
							
								 
						
							
								6614946443 
								
							 
						 
						
							
							
								
								Convert code to compile with vc7.1.  
							
							... 
							
							
							
							Patch contributed by Paolo Invernizzi. Thanks Paolo!
llvm-svn: 16368 
							
						 
						
							2004-09-15 17:06:42 +00:00  
				
					
						
							
							
								 
						
							
								7c16caa336 
								
							 
						 
						
							
							
								
								Changes For Bug 352  
							
							... 
							
							
							
							Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137 
							
						 
						
							2004-09-01 22:55:40 +00:00  
				
					
						
							
							
								 
						
							
								56273827b1 
								
							 
						 
						
							
							
								
								If we are extracting a block that has multiple successors that are the same  
							
							... 
							
							
							
							block (common in a switch), make sure to remove extra edges in successor
blocks.  This fixes CodeExtractor/2004-08-12-BlockExtractPHI.ll and should
be pulled into LLVM 1.3 (though the regression test need not be, as that
would require pulling in the LoopExtract.cpp changes).
llvm-svn: 15717 
							
						 
						
							2004-08-13 03:27:07 +00:00  
				
					
						
							
							
								 
						
							
								f06b043204 
								
							 
						 
						
							
							
								
								When we code extract some stuff, leave the codeRepl block in the place where  
							
							... 
							
							
							
							the extracted code was, instead of putting it at the end of the function
llvm-svn: 15716 
							
						 
						
							2004-08-13 03:17:39 +00:00  
				
					
						
							
							
								 
						
							
								7f1c7ede5b 
								
							 
						 
						
							
							
								
								Fix code extraction of unwind blocks.  This fixed bugs that bugpoint can  
							
							... 
							
							
							
							run into.  This should go into 1.3
llvm-svn: 15679 
							
						 
						
							2004-08-12 03:17:02 +00:00  
				
					
						
							
							
								 
						
							
								902dcf0729 
								
							 
						 
						
							
							
								
								These files don't need to include <iostream> since they include "Support/Debug.h".  
							
							... 
							
							
							
							llvm-svn: 15089 
							
						 
						
							2004-07-21 20:50:33 +00:00  
				
					
						
							
							
								 
						
							
								32c518e526 
								
							 
						 
						
							
							
								
								Progress on PR341  
							
							... 
							
							
							
							llvm-svn: 14840 
							
						 
						
							2004-07-15 02:06:12 +00:00  
				
					
						
							
							
								 
						
							
								eb04d9bcb4 
								
							 
						 
						
							
							
								
								Add #include <iostream> since Value.h does not #include it any more.  
							
							... 
							
							
							
							llvm-svn: 14622 
							
						 
						
							2004-07-04 12:19:56 +00:00  
				
					
						
							
							
								 
						
							
								0eefdcd73f 
								
							 
						 
						
							
							
								
								Do not pass a null pointer if this instruction is not prepended or  
							
							... 
							
							
							
							appended anywhere.
llvm-svn: 13798 
							
						 
						
							2004-05-26 22:50:28 +00:00  
				
					
						
							
							
								 
						
							
								66219abac7 
								
							 
						 
						
							
							
								
								Do not pass in the same argument to the extracted function more than once, and  
							
							... 
							
							
							
							give the extracted function a more useful name than just foo_code.
llvm-svn: 13493 
							
						 
						
							2004-05-12 16:26:18 +00:00  
				
					
						
							
							
								 
						
							
								13d2ddfe9c 
								
							 
						 
						
							
							
								
								Implement support for code extracting basic blocks that have a return  
							
							... 
							
							
							
							instruction in them.
llvm-svn: 13490 
							
						 
						
							2004-05-12 16:07:41 +00:00  
				
					
						
							
							
								 
						
							
								795c9933e2 
								
							 
						 
						
							
							
								
								Implement splitting of PHI nodes, allowing block extraction of BB's that have  
							
							... 
							
							
							
							PHI node entries from multiple outside-the-region blocks.  This also fixes
extraction of the entry block in a function.  Yaay.
This has successfully block extracted all (but one) block from the score_move
function in obsequi (out of 33).  Hrm, I wonder which block the bug is in.  :)
llvm-svn: 13489 
							
						 
						
							2004-05-12 15:29:13 +00:00  
				
					
						
							
							
								 
						
							
								3b2917bfcf 
								
							 
						 
						
							
							
								
								* Pull some code out into the definedInRegion/definedInCaller methods  
							
							... 
							
							
							
							* Add a stub for the severSplitPHINodes which will allow us to bbextract
  bb's with PHI nodes in them soon.
* Remove unused arguments from findInputsOutputs
* Dramatically simplify the code in findInputsOutputs.  In particular,
  nothing really cares whether or not a PHI node is using something.
* Move moveCodeToFunction to after emitCallAndSwitchStatement as that's the
  order they get called.
* Fix a bug where we would code extract a region that included a call to
  vastart.  Like 'alloca', calls to vastart must stay in the function that
  they are defined in.
* Add some comments.
llvm-svn: 13482 
							
						 
						
							2004-05-12 06:01:40 +00:00  
				
					
						
							
							
								 
						
							
								ffc4926263 
								
							 
						 
						
							
							
								
								Generate substantially better code when there are a limited number of exits  
							
							... 
							
							
							
							from the extracted region.  If the return has 0 or 1 exit blocks, the new
function returns void.  If it has 2 exits, it returns bool, otherwise it
returns a ushort as before.
This allows us to use a conditional branch instruction when there are two
exit blocks, as often happens during block extraction.
llvm-svn: 13481 
							
						 
						
							2004-05-12 04:14:24 +00:00  
				
					
						
							
							
								 
						
							
								3d1ca67fdd 
								
							 
						 
						
							
							
								
								Two minor improvements:  
							
							... 
							
							
							
							1. Get rid of the silly abort block.  When doing bb extraction, we get one
     abort block for every block extracted, which is kinda annoying.
  2. If the switch ends up having a single destination, turn it into an
     unconditional branch.
I would like to add support for conditional branches, but to do this we will
want to have the function return a bool instead of a ushort.
llvm-svn: 13478 
							
						 
						
							2004-05-12 03:22:33 +00:00  
				
					
						
							
							
								 
						
							
								3596f0a180 
								
							 
						 
						
							
							
								
								* Allow aggregating extracted function arguments (controlled by flag)  
							
							... 
							
							
							
							* Commandline option (for now) controls that flag that is passed in
llvm-svn: 13141 
							
						 
						
							2004-04-23 23:54:17 +00:00  
				
					
						
							
							
								 
						
							
								232155dc1b 
								
							 
						 
						
							
							
								
								Fix bug: CodeExtractor/2004-03-17-MissedLiveIns.ll  
							
							... 
							
							
							
							With this fix we now successfully extract all 149 loops from 256.bzip2 without
crashing or miscompiling the program!
llvm-svn: 12493 
							
						 
						
							2004-03-18 05:56:32 +00:00  
				
					
						
							
							
								 
						
							
								acd75986ee 
								
							 
						 
						
							
							
								
								Fix CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll  
							
							... 
							
							
							
							llvm-svn: 12489 
							
						 
						
							2004-03-18 05:38:31 +00:00  
				
					
						
							
							
								 
						
							
								320d59f4cd 
								
							 
						 
						
							
							
								
								Seriously simplify and correct the PHI node handling code.  
							
							... 
							
							
							
							llvm-svn: 12487 
							
						 
						
							2004-03-18 05:28:49 +00:00  
				
					
						
							
							
								 
						
							
								d8017a340d 
								
							 
						 
						
							
							
								
								Fix CodeExtractor/2004-03-17-OutputMismatch.ll  
							
							... 
							
							
							
							llvm-svn: 12486 
							
						 
						
							2004-03-18 04:12:05 +00:00  
				
					
						
							
							
								 
						
							
								37de257ef0 
								
							 
						 
						
							
							
								
								Fix several bugs in the extractor:  
							
							... 
							
							
							
							1. Names were not put on the new arguments created (ok, this just helps sanity :)
2. Fix outgoing pointer values
3. Do not insert stores for values that had not been computed
4. Fix some wierd problems with the outset calculation
This fixes CodeExtractor/2004-03-14-DominanceProblem.ll, making the extractor
work on at least one simple case!
llvm-svn: 12484 
							
						 
						
							2004-03-18 03:49:40 +00:00  
				
					
						
							
							
								 
						
							
								cee3404d0a 
								
							 
						 
						
							
							
								
								Prune #includes, moving the module interface to the front.  Note that this  
							
							... 
							
							
							
							exposed the fact that the header was not self-contained.  There is a reason
we do things :)
llvm-svn: 12481 
							
						 
						
							2004-03-18 03:15:29 +00:00  
				
					
						
							
							
								 
						
							
								fb87cdecd8 
								
							 
						 
						
							
							
								
								Mostly cosmetic improvements.  Do fix the bug where a global value was considered an input.  
							
							... 
							
							
							
							llvm-svn: 12406 
							
						 
						
							2004-03-15 01:26:44 +00:00  
				
					
						
							
							
								 
						
							
								73ab1fa7c8 
								
							 
						 
						
							
							
								
								Assert that input blocks meet the invariants we expect  
							
							... 
							
							
							
							Simplify the input/output finder.  All elements of a basic block are
instructions.  Any used arguments are also inputs.  An instruction can only
be used by another instruction.
llvm-svn: 12405 
							
						 
						
							2004-03-15 01:18:23 +00:00  
				
					
						
							
							
								 
						
							
								5b2072ecd3 
								
							 
						 
						
							
							
								
								No correctness fixes here, just minor qoi fixes:  
							
							... 
							
							
							
							* Don't insert a branch to the switch instruction after the call, just
  make it a single block.
* Insert the new alloca instructions in the entry block of the original
  function instead of having them execute dynamically
* Don't make the default edge of the switch instruction go back to the switch.
  The loop extractor shouldn't create new loops!
* Give meaningful names to the alloca slots and the reload instructions
* Some minor code simplifications
llvm-svn: 12402 
							
						 
						
							2004-03-14 23:43:24 +00:00  
				
					
						
							
							
								 
						
							
								b4d8bf365c 
								
							 
						 
						
							
							
								
								Simplify code a bit, and fix bug CodeExtractor/2004-03-14-NoSwitchSupport.ll  
							
							... 
							
							
							
							This also implements a two minor improvements:
  * Don't insert live-out stores IN the region, insert them on the code path
    that exits the region
  * If the region is exited to the same block from multiple paths, share the
    switch statement entry, live-out store code, and the basic block.
llvm-svn: 12401 
							
						 
						
							2004-03-14 23:05:49 +00:00  
				
					
						
							
							
								 
						
							
								9c431f6c44 
								
							 
						 
						
							
							
								
								Simplify the code a bit by making the collection of basic blocks to extract  
							
							... 
							
							
							
							a member of the class.  While we're at it, turn the collection into a set
instead of a vector to improve efficiency and make queries simpler.
llvm-svn: 12400 
							
						 
						
							2004-03-14 22:34:55 +00:00  
				
					
						
							
							
								 
						
							
								4fca71eb44 
								
							 
						 
						
							
							
								
								Minor random cleanups  
							
							... 
							
							
							
							llvm-svn: 12382 
							
						 
						
							2004-03-14 04:01:47 +00:00  
				
					
						
							
							
								 
						
							
								3684469326 
								
							 
						 
						
							
							
								
								Verify functions as they are produced if -debug is specified.  Reduce  
							
							... 
							
							
							
							curly braceage
llvm-svn: 12378 
							
						 
						
							2004-03-14 03:17:22 +00:00  
				
					
						
							
							
								 
						
							
								f44acae31e 
								
							 
						 
						
							
							
								
								Implement ExtractCodeRegion()  
							
							... 
							
							
							
							llvm-svn: 12070 
							
						 
						
							2004-03-02 00:20:57 +00:00  
				
					
						
							
							
								 
						
							
								5af2be7d09 
								
							 
						 
						
							
							
								
								* Add implementation of ExtractBasicBlock()  
							
							... 
							
							
							
							* Add comments to ExtractLoop()
llvm-svn: 12053 
							
						 
						
							2004-03-01 18:28:34 +00:00