Dan Gohman 
							
						 
					 
					
						
						
							
						
						6cb8c23db1 
					 
					
						
						
							
							Reapply r112091 and r111922, support for metadata linking, with a  
						
						... 
						
						
						
						fix: add a flag to MapValue and friends which indicates whether
any module-level mappings are being made. In the common case of
inlining, no module-level mappings are needed, so MapValue doesn't
need to examine non-function-local metadata, which can be very
expensive in the case of a large module with really deep metadata
(e.g. a large C++ program compiled with -g).
This flag is a little awkward; perhaps eventually it can be moved
into the ClonedCodeInfo class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112190  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-08-26 15:41:53 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						e9916a302f 
					 
					
						
						
							
							Use ValueMap instead of DenseMap.  
						
						... 
						
						
						
						The ValueMapper used by various cloning utility maps MDNodes also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106706  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-24 00:33:28 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						29d3dd8a64 
					 
					
						
						
							
							Cosmetic change.  
						
						... 
						
						
						
						Do not use "ValueMap" as a name for a local variable or an argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106698  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-23 23:55:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0ca2f28458 
					 
					
						
						
							
							rename InlineInfo.DevirtualizedCalls -> InlinedCalls to  
						
						... 
						
						
						
						reflect that it includes all inlined calls now, not just
devirtualized ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102824  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-05-01 01:26:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						076863225c 
					 
					
						
						
							
							switch InlineInfo.DevirtualizedCalls's list to be of WeakVH.  
						
						... 
						
						
						
						This fixes a bug where calls inlined into an invoke would get
changed into an invoke but the array would keep pointing to
the (now dead) call.  The improved inliner behavior is still
disabled for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102196  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-23 18:37:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fe9af3b1f7 
					 
					
						
						
							
							The inliner was choosing to not consider call sites  
						
						... 
						
						
						
						that appear in the SCC as a result of inlining as candidates
for inlining.  Change this so that it *does* consider call 
sites that change from being indirect to being direct as a
result of inlining.  This allows it to completely 
"devirtualize" the testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102146  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-22 23:37:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						60915146f4 
					 
					
						
						
							
							refactor the interface to InlineFunction so that most of the in/out  
						
						... 
						
						
						
						arguments are handled with a new InlineFunctionInfo class.  This 
makes it easier to extend InlineFunction to return more info in the
future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102137  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-22 23:07:58 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						5deb57c685 
					 
					
						
						
							
							Don't bother with sprintf, just pass the Twine through.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94684  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-01-27 19:58:47 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						43ea505fb0 
					 
					
						
						
							
							Eliminate unnecessary LLVMContexts.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91729  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-12-18 23:42:08 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						53bb5c95af 
					 
					
						
						
							
							Implement support to debug inlined functions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86748  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-10 23:06:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						8f2718fbef 
					 
					
						
						
							
							enhance InlineFunction to be able to optionally return  
						
						... 
						
						
						
						a the list of static allocas that it inlined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80203  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-08-27 04:20:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ec1bea0d94 
					 
					
						
						
							
							smallvectorize the list of returns built by CloneAndPruneFunctionInto.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80202  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-08-27 04:02:30 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						597ef10577 
					 
					
						
						
							
							remove CloneTrace, which appears to be dead since 2004.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80201  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-08-27 03:56:43 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						12ddd40953 
					 
					
						
						
							
							Make LLVMContext and LLVMContextImpl classes instead of structs.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78690  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-08-11 17:45:13 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						48b2f3e485 
					 
					
						
						
							
							Factor some of the constants+context related code out into a separate header, to make LLVMContextImpl.h  
						
						... 
						
						
						
						not hideous.  Also, fix some MSVC compile errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78115  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-08-04 22:41:48 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						c8d76d5afb 
					 
					
						
						
							
							Make Loop and MachineLoop be subclasses of LoopBase, rather than typedefs,  
						
						... 
						
						
						
						using the Curiously Recurring Template Pattern with LoopBase.
This will help further refactoring, and future functionality for
Loop. Also, Headers can now foward-declare Loop, instead of pulling
in LoopInfo.h or doing tricks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75519  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-13 21:51:15 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						8b477ed579 
					 
					
						
						
							
							Add a pointer to the owning LLVMContext to Module.  This requires threading LLVMContext through a lot  
						
						... 
						
						
						
						of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools.
Patches for Clang and LLVM-GCC to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74614  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-01 16:58:40 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						652f7ea955 
					 
					
						
						
							
							Revert 51775.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51795  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-30 22:47:19 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						babf11f249 
					 
					
						
						
							
							Patches for building llvm on Solaris x86. Contributed by Nathan Keynes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51775  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-05-30 17:16:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3dab223dc9 
					 
					
						
						
							
							don't include loopinfo.h from this file.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45858  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-01-11 06:30:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7ed47a1335 
					 
					
						
						
							
							Don't attribute in file headers anymore.  See llvmdev for the  
						
						... 
						
						
						
						discussion of this change.  Boy are my fingers tired. ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-12-29 19:59:42 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						019b92a70c 
					 
					
						
						
							
							Start the process of making MachineLoopInfo possible by templating Loop.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44097  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-11-14 02:33:58 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						4bc2a0b420 
					 
					
						
						
							
							Add utility to clone loops.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40997  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-08-10 17:59:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5e665f5594 
					 
					
						
						
							
							Switch inliner over to use DenseMap instead of std::map for ValueMap.  This  
						
						... 
						
						
						
						speeds up the inliner 16%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33801  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-02-03 00:08:31 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1dfdf8255e 
					 
					
						
						
							
							The inliner/cloner can now optionally take TargetData info, which can be  
						
						... 
						
						
						
						used by constant folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33676  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-01-30 23:22:39 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f72716d81f 
					 
					
						
						
							
							Implement a new method: CloneAndPruneFunctionInto, as documented.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28518  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-27 01:21:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						782e60150e 
					 
					
						
						
							
							Add a CloneModule call that exposes the mapping of values from the old module  
						
						... 
						
						
						
						to the new module.  Patch provided by Nick Lewycky!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28349  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-05-17 18:05:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4c2881ecb9 
					 
					
						
						
							
							Teach inline function how to update the callgraph when it makes changes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25318  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-14 20:05:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a4c29d2037 
					 
					
						
						
							
							Allow the code cloning interfaces to capture some important info about the  
						
						... 
						
						
						
						code being cloned if the client wants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-01-13 18:39:17 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						34695381d6 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21412  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2005-04-21 20:59:05 +00:00 
						 
				 
			
				
					
						
							
							
								Alkis Evlogimenos 
							
						 
					 
					
						
						
							
						
						2b6d2eb2d0 
					 
					
						
						
							
							Declare function defined in namespace llvm as gcc-3.4 doesn't accept a definition in a namespace of a non-declared function.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13602  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-19 19:17:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cb2b3e5005 
					 
					
						
						
							
							Check in header file I forgot before.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11115  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-04 03:59:08 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						d0fde30ce8 
					 
					
						
						
							
							Put all LLVM code into the llvm namespace, as per bug 109.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-11 22:41:34 +00:00 
						 
				 
			
				
					
						
							
							
								John Criswell 
							
						 
					 
					
						
						
							
						
						6fbcc26f14 
					 
					
						
						
							
							Added LLVM copyright header (for lack of a better term).  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-10-20 20:19:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a04e51f4c0 
					 
					
						
						
							
							Fix an FLAT OUT WRONG comment  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8263  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-08-31 19:37:29 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9d3a1b2d97 
					 
					
						
						
							
							Add versions of InlineFunction which work on Invoke instructions and general call sites  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8105  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-08-24 06:58:32 +00:00 
						 
				 
			
				
					
						
							
							
								Tanya Lattner 
							
						 
					 
					
						
						
							
						
						658c5bcdb2 
					 
					
						
						
							
							Fixed comment width, changed arg to be const, fixed indentation, removed unnecessary includes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6476  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-05-31 20:01:37 +00:00 
						 
				 
			
				
					
						
							
							
								Tanya Lattner 
							
						 
					 
					
						
						
							
						
						7cf322f51b 
					 
					
						
						
							
							Sorry, correcting small typo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6433  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-05-30 15:53:50 +00:00 
						 
				 
			
				
					
						
							
							
								Tanya Lattner 
							
						 
					 
					
						
						
							
						
						2c49fc023e 
					 
					
						
						
							
							Added support for cloning a trace.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6430  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-05-30 15:48:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						aa101c3147 
					 
					
						
						
							
							Doxygenify comments  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6393  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-05-29 15:06:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a107e5f11c 
					 
					
						
						
							
							Add prototype for new CloneBasicBlock function  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5804  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-04-18 03:49:22 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d4fd397805 
					 
					
						
						
							
							Cloning stuff doesn't modify the source module  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4787  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2002-11-20 20:22:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d18015599c 
					 
					
						
						
							
							Minor changes to cloning interface  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4770  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2002-11-19 22:54:01 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1c9985067b 
					 
					
						
						
							
							Extend function cloning interface to support inlining  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4767  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2002-11-19 21:54:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						84bf9880ea 
					 
					
						
						
							
							Merge cloning and inlining utilities  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4763  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2002-11-19 20:58:38 +00:00