Nick Lewycky 
							
						 
					 
					
						
						
							
						
						6c1fa7caae 
					 
					
						
						
							
							Revert r187191, which broke opt -mem2reg on the testcases included in PR16867.  
						
						... 
						
						
						
						However, opt -O2 doesn't run mem2reg directly so nobody noticed until r188146
when SROA started sending more things directly down the PromoteMemToReg path.
In order to revert r187191, I also revert dependent revisions r187296, r187322
and r188146. Fixes PR16867. Does not add the testcases from that PR, but both
of them should get added for both mem2reg and sroa when this revert gets
unreverted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188327  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-08-13 22:51:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chandler Carruth 
							
						 
					 
					
						
						
							
						
						6c3a95dab5 
					 
					
						
						
							
							Thread DataLayout through the callers and into mem2reg. This will be  
						
						... 
						
						
						
						useful in a subsequent patch, but causes an unfortunate amount of noise,
so I pulled it out into a separate patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187322  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-28 06:43:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chandler Carruth 
							
						 
					 
					
						
						
							
						
						30c016f41f 
					 
					
						
						
							
							Make the mem2reg interface use an ArrayRef as it keeps a copy of these  
						
						... 
						
						
						
						to iterate over.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186788  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-21 08:37:58 +00:00 
						 
				 
			
				
					
						
							
							
								Chandler Carruth 
							
						 
					 
					
						
						
							
						
						02aea0116a 
					 
					
						
						
							
							Update mem2reg's comments to conform to the new doxygen standards. No  
						
						... 
						
						
						
						functionality changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186772  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-20 22:20:05 +00:00 
						 
				 
			
				
					
						
							
							
								Jakub Staszak 
							
						 
					 
					
						
						
							
						
						674be02d52 
					 
					
						
						
							
							Fix include guards so they exactly match file names.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172025  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-01-10 00:45:19 +00:00 
						 
				 
			
				
					
						
							
							
								Andrew Trick 
							
						 
					 
					
						
						
							
						
						ecef06a497 
					 
					
						
						
							
							Remove a stale forward declaration.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156770  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-05-14 18:03:19 +00:00 
						 
				 
			
				
					
						
							
							
								Cameron Zwarich 
							
						 
					 
					
						
						
							
						
						419e8a6299 
					 
					
						
						
							
							Roll r123609 back in with two changes that fix test failures with expensive  
						
						... 
						
						
						
						checks enabled:
1) Use '<' to compare integers in a comparison function rather than '<='.
2) Use the uniqued set DefBlocks rather than Info.DefiningBlocks to initialize
the priority queue.
The speedup of scalarrepl on test-suite + SPEC2000 + SPEC2006 is a bit less, at
just under 16% rather than 17%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123662  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-01-17 17:38:41 +00:00 
						 
				 
			
				
					
						
							
							
								Cameron Zwarich 
							
						 
					 
					
						
						
							
						
						b1086a9c6d 
					 
					
						
						
							
							Roll out r123609 due to failures on the llvm-x86_64-linux-checks bot.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123618  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-01-17 07:26:51 +00:00 
						 
				 
			
				
					
						
							
							
								Cameron Zwarich 
							
						 
					 
					
						
						
							
						
						ebed6de7b1 
					 
					
						
						
							
							Eliminate the use of dominance frontiers in PromoteMemToReg. In addition to  
						
						... 
						
						
						
						eliminating a potentially quadratic data structure, this also gives a 17%
speedup when running -scalarrepl on test-suite + SPEC2000 + SPEC2006. My initial
experiment gave a greater speedup around 25%, but I moved the dominator tree
level computation from dominator tree construction to PromoteMemToReg.
Since this approach to computing IDFs has a much lower overhead than the old
code using precomputed DFs, it is worth looking at using this new code for the
second scalarrepl pass as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123609  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-01-17 01:08:59 +00:00 
						 
				 
			
				
					
						
							
							
								Nick Lewycky 
							
						 
					 
					
						
						
							
						
						ce2c51b670 
					 
					
						
						
							
							Pull LLVMContext out of PromoteMemToReg.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89645  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-11-23 03:50:44 +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 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						e922c02019 
					 
					
						
						
							
							Get rid of the Pass+Context magic.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-22 00:24:57 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						07cf79ef53 
					 
					
						
						
							
							"LLVMContext* " --> "LLVMContext *"  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74878  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-06 23:00:19 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						0a205a4598 
					 
					
						
						
							
							More LLVMContext-ification.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74807  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-07-05 22:41:43 +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 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						326821ef12 
					 
					
						
						
							
							Use DominatorTree instead of ETForest.  
						
						... 
						
						
						
						This allows faster immediate domiantor walk.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37500  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-06-07 21:57:03 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						c20a64d2bb 
					 
					
						
						
							
							Mem2Reg does not need TargetData.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36446  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-25 18:41:11 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						41968df51e 
					 
					
						
						
							
							Remove unused function argument.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36441  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-25 17:15:20 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						df07335b46 
					 
					
						
						
							
							Move more passes to using ETForest instead of DominatorTree.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36271  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-04-20 06:27:13 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						d41b30def3 
					 
					
						
						
							
							Unbreak VC++ build.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2006-11-05 19:31:28 +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 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1fca5ff62b 
					 
					
						
						
							
							Convert 'struct' to 'class' in various places to adhere to the coding standards  
						
						... 
						
						
						
						and work better with VC++.  Patch contributed by Morten Ofstad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-27 16:14:51 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7f820b157d 
					 
					
						
						
							
							Add an optional argument to PromoteMemToReg  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16346  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-15 01:02:30 +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 
							
						 
					 
					
						
						
							
						
						43f820d1f7 
					 
					
						
						
							
							Change the interface to PromoteMemToReg to also take a DominatorTree  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8883  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-10-05 21:20:13 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						fb743a937f 
					 
					
						
						
							
							Change the mem2reg interface to accept a TargetData argument  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5685  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-03-03 17:25:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						782752b7a2 
					 
					
						
						
							
							Add a new interface file for the PromoteMemToReg interface in the Utils library  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5609  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-02-22 23:04:52 +00:00