Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								7867793aff 
								
							 
						 
						
							
							
								
								Add new TargetLowering code to provide the final register type that an  
							
							 
							
							... 
							
							
							
							illegal value type will be transformed to, for code that needs the
register type after all transformations instead of just after the first
transformation.
Factor out the code that uses this information to do copy-from-regs and
copy-to-regs for various purposes into separate functions so that they
are done consistently.
llvm-svn: 37781 
							
						 
						
							2007-06-28 23:29:44 +00:00  
						
					 
				
					
						
							
							
								 
								Lauro Ramos Venancio
							
						 
						
							 
							
							
							
							
								
							
							
								b2c3a67015 
								
							 
						 
						
							
							
								
								Fix a bug in my previous patch.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37778 
							
						 
						
							2007-06-28 20:06:38 +00:00  
						
					 
				
					
						
							
							
								 
								Lauro Ramos Venancio
							
						 
						
							 
							
							
							
							
								
							
							
								b00c9c0d50 
								
							 
						 
						
							
							
								
								When linking two modules, we should copy the alias.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37776 
							
						 
						
							2007-06-28 19:02:54 +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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								e02da55cc8 
								
							 
						 
						
							
							
								
								Make many sets a much more reasonable size.  This decreases the time to optimize  
							
							 
							
							... 
							
							
							
							Anton's testcase from 35.5s to 34.7s.
llvm-svn: 37769 
							
						 
						
							2007-06-28 00:34:34 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								f413419a72 
								
							 
						 
						
							
							
								
								Set implied features based upon the CPU's feature list.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37768 
							
						 
						
							2007-06-27 23:34:06 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								c445982764 
								
							 
						 
						
							
							
								
								Remove ETForest.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37765 
							
						 
						
							2007-06-27 20:53:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								df0c705d7d 
								
							 
						 
						
							
							
								
								If a livein is not used in the block. It's live through.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37764 
							
						 
						
							2007-06-27 18:47:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								77f541ddfd 
								
							 
						 
						
							
							
								
								Partial fix for PR1502: If a EH register is needed in a successor of landing pad, add it as livein to all the blocks in the paths between the landing pad and the specified block.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37763 
							
						 
						
							2007-06-27 18:45:32 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								7dae8efcf2 
								
							 
						 
						
							
							
								
								Use cached information that has already been computed to make clean() simpler and faster.  This is a small speedup on most cases.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37761 
							
						 
						
							2007-06-27 17:38:29 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								0eb265729a 
								
							 
						 
						
							
							
								
								Fold a lot of code into two cases: binary instructions and ternary instructions.  
							
							 
							
							... 
							
							
							
							This saves many lines of code duplication.  No functionality change.
llvm-svn: 37759 
							
						 
						
							2007-06-27 17:03:03 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								3b62d7265d 
								
							 
						 
						
							
							
								
								Rename ("shrinkify") MVT::isExtendedValueType to MVT::isExtendedVT.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37758 
							
						 
						
							2007-06-27 16:08:04 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								1cbdcac409 
								
							 
						 
						
							
							
								
								Remove a redundant newline in the asm output for ELF .rodata sections.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37756 
							
						 
						
							2007-06-27 15:09:47 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								7139a48057 
								
							 
						 
						
							
							
								
								Use getVectorTypeBreakdown in FunctionLoweringInfo::CreateRegForValue  
							
							 
							
							... 
							
							
							
							to compute the number and type of registers needed for vector values
instead of computing it manually. This fixes PR1529.
llvm-svn: 37755 
							
						 
						
							2007-06-27 14:34:07 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								f4e86da3a6 
								
							 
						 
						
							
							
								
								Make the comment for ScalarizeVectorOp mention that it is only for use  
							
							 
							
							... 
							
							
							
							with single-element vectors.
llvm-svn: 37752 
							
						 
						
							2007-06-27 14:06:22 +00:00  
						
					 
				
					
						
							
							
								 
								Zhou Sheng
							
						 
						
							 
							
							
							
							
								
							
							
								8d438858c8 
								
							 
						 
						
							
							
								
								Fix a bug.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37751 
							
						 
						
							2007-06-27 09:50:26 +00:00  
						
					 
				
					
						
							
							
								 
								Duraid Madina
							
						 
						
							 
							
							
							
							
								
							
							
								95759c0e78 
								
							 
						 
						
							
							
								
								ok, this is something of a dirty hack, but it seems to work. (fixes e.g.  
							
							 
							
							... 
							
							
							
							the SPASS miscompilation)
llvm-svn: 37750 
							
						 
						
							2007-06-27 09:01:14 +00:00  
						
					 
				
					
						
							
							
								 
								Duraid Madina
							
						 
						
							 
							
							
							
							
								
							
							
								89183dcc14 
								
							 
						 
						
							
							
								
								ok, this much doesn't seem to bork anything  
							
							 
							
							... 
							
							
							
							llvm-svn: 37749 
							
						 
						
							2007-06-27 08:31:07 +00:00  
						
					 
				
					
						
							
							
								 
								Duraid Madina
							
						 
						
							 
							
							
							
							
								
							
							
								a415dcaa2a 
								
							 
						 
						
							
							
								
								revert evan's fixes (and my doofusness) since they had a huge code  
							
							 
							
							... 
							
							
							
							quality hit. will look at this soon.
llvm-svn: 37748 
							
						 
						
							2007-06-27 08:11:59 +00:00  
						
					 
				
					
						
							
							
								 
								Duraid Madina
							
						 
						
							 
							
							
							
							
								
							
							
								540d329542 
								
							 
						 
						
							
							
								
								pull evan's fixes - should help the nightly tester (but there are still  
							
							 
							
							... 
							
							
							
							some issues)
llvm-svn: 37747 
							
						 
						
							2007-06-27 07:07:13 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e66f822ecc 
								
							 
						 
						
							
							
								
								Replace std::set with SmallPtrSet.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37746 
							
						 
						
							2007-06-27 05:23:00 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b6a39fcb21 
								
							 
						 
						
							
							
								
								Add support for performing GVNPRE on the three vector-specific operations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37745 
							
						 
						
							2007-06-27 04:10:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6cf1371456 
								
							 
						 
						
							
							
								
								Fix an obvious bug. Old code only worked for the entry block.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37743 
							
						 
						
							2007-06-27 01:16:36 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								5477c54aa0 
								
							 
						 
						
							
							
								
								1. Correct some comments and clean  up some dead code.  
							
							 
							
							... 
							
							
							
							2. When calculating ANTIC_IN, only iterate the changed blocks.  For most average
inputs this is a small speedup, but for cases with unusual CFGs, this can be a significant win.
llvm-svn: 37742 
							
						 
						
							2007-06-26 23:29:41 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4bf87f1f44 
								
							 
						 
						
							
							
								
								Correctly handle implcit def / use operands.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37740 
							
						 
						
							2007-06-26 21:05:13 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d8417d9199 
								
							 
						 
						
							
							
								
								Properly handle kills of a physical register which has sub-registers that are read by later instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37739 
							
						 
						
							2007-06-26 21:03:35 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								335c65e9a4 
								
							 
						 
						
							
							
								
								Silence a warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37737 
							
						 
						
							2007-06-26 18:31:22 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								3176887a73 
								
							 
						 
						
							
							
								
								Use utostr from StringExtras.h instead of ostringstream from <sstream>.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37731 
							
						 
						
							2007-06-26 15:14:48 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								e8c1e428f2 
								
							 
						 
						
							
							
								
								Revert the earlier change that removed the M_REMATERIALIZABLE machine  
							
							 
							
							... 
							
							
							
							instruction flag, and use the flag along with a virtual member function
hook for targets to override if there are instructions that are only
trivially rematerializable with specific operands (i.e. constant pool
loads).
llvm-svn: 37728 
							
						 
						
							2007-06-26 00:48:07 +00:00  
						
					 
				
					
						
							
							
								 
								Duraid Madina
							
						 
						
							 
							
							
							
							
								
							
							
								f4dc5b26e2 
								
							 
						 
						
							
							
								
								tidy this file up a bit  
							
							 
							
							... 
							
							
							
							llvm-svn: 37725 
							
						 
						
							2007-06-26 00:21:58 +00:00  
						
					 
				
					
						
							
							
								 
								Duraid Madina
							
						 
						
							 
							
							
							
							
								
							
							
								77416383e8 
								
							 
						 
						
							
							
								
								A bunch of fixes to the BigBlock allocator improve compile-time by ~20%  
							
							 
							
							... 
							
							
							
							and code quality by ~2% on my tests.
A big thank you to Roman Levenstein for this patch! See
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070618/050717.html 
for more details.
llvm-svn: 37724 
							
						 
						
							2007-06-25 23:46:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ea5c4bd51c 
								
							 
						 
						
							
							
								
								fix Transforms/Inline/2007-06-25-WeakInline.ll by not inlining functions  
							
							 
							
							... 
							
							
							
							with weak linkage.
llvm-svn: 37723 
							
						 
						
							2007-06-25 21:50:09 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								43ca4b48f1 
								
							 
						 
						
							
							
								
								Use the built-in postorder iterators rather than computing a postorder walk by hand.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37721 
							
						 
						
							2007-06-25 18:25:31 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								a866514528 
								
							 
						 
						
							
							
								
								Generalize MVT::ValueType and associated functions to be able to represent  
							
							 
							
							... 
							
							
							
							extended vector types. Remove the special SDNode opcodes used for pre-legalize
vector operations, and the special MVT::Vector type used with them. Adjust
lowering and legalize to work with the normal SDNode kinds instead, and to
use the normal MVT functions to work with vector types instead of using the
two special operands that the pre-legalize nodes held.
This allows pre-legalize and post-legalize DAGs, and the code that operates
on them, to be more consistent. Pre-legalize vector operators can be handled
more consistently with scalar operators. And, -view-dag-combine1-dags and
-view-legalize-dags now look prettier for vector code.
llvm-svn: 37719 
							
						 
						
							2007-06-25 16:23:39 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								2e84e3f7b7 
								
							 
						 
						
							
							
								
								Make minor adjustments to whitespace and comments to reduce differences  
							
							 
							
							... 
							
							
							
							between SSE1 instructions and their respective SSE2 analogues.
llvm-svn: 37718 
							
						 
						
							2007-06-25 15:44:19 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								33209bd6b8 
								
							 
						 
						
							
							
								
								Fix loadv2i32 to be loadv4i32, though it isn't actually used anywhere yet.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37717 
							
						 
						
							2007-06-25 15:19:03 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								e33c4b739b 
								
							 
						 
						
							
							
								
								Say AT&T instead of Intel in the comments for AT&T support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37716 
							
						 
						
							2007-06-25 15:11:25 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								ec9038bc69 
								
							 
						 
						
							
							
								
								Provide hook for alloca on VCPP. Patch by Scott Graham  
							
							 
							
							... 
							
							
							
							llvm-svn: 37715 
							
						 
						
							2007-06-25 07:12:14 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								191eb06352 
								
							 
						 
						
							
							
								
								1) Fix an issue with non-deterministic iteration order in phi_translate  
							
							 
							
							... 
							
							
							
							2) Remove some maximal-set computing code that is no longer used.
3) Use a post-order CFG traversal to compute ANTIC_IN instead of a postdom traversal.
This causes the ANTIC_IN calculation to converge much faster.  Thanks to Daniel Berlin for suggesting this.
With this patch, the time to optimize 403.gcc decreased from 17.5s to 7.5s, and Anton's huge
testcase decreased from 62 minutes to 38 seconds.
llvm-svn: 37714 
							
						 
						
							2007-06-25 05:41:12 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								8735f44104 
								
							 
						 
						
							
							
								
								Fix value ranges.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37713 
							
						 
						
							2007-06-24 20:14:22 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								7fb6da8e4d 
								
							 
						 
						
							
							
								
								Fix a silly mistake that was causing failures.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37712 
							
						 
						
							2007-06-24 08:42:24 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								0f986fdbfa 
								
							 
						 
						
							
							
								
								Remove tabs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37710 
							
						 
						
							2007-06-24 04:40:16 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								26e25d340e 
								
							 
						 
						
							
							
								
								Remove use of ETForest. Also cleaned up issues around unreachable basic  
							
							 
							
							... 
							
							
							
							blocks, and optimizing within one basic block.
llvm-svn: 37709 
							
						 
						
							2007-06-24 04:36:20 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								49409f6501 
								
							 
						 
						
							
							
								
								Rework topo_sort so eliminate some behavior that scaled terribly.  This reduces the time to optimize 403.gcc from 18.2s to 17.5s,  
							
							 
							
							... 
							
							
							
							and has an even larger effect on larger testcases.
llvm-svn: 37708 
							
						 
						
							2007-06-22 21:31:16 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								21a1131565 
								
							 
						 
						
							
							
								
								Perform fewer set insertions while calculating ANTIC_IN.  This reduces the amount of time to optimize 403.gcc from 21.9s to 18.2s.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37707 
							
						 
						
							2007-06-22 18:27:04 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								92c7b22e1a 
								
							 
						 
						
							
							
								
								Remove some code that I was using for collecting performance information that should not have been committed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37706 
							
						 
						
							2007-06-22 17:04:40 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								0c550df9d2 
								
							 
						 
						
							
							
								
								Fix the build.  
							
							 
							
							... 
							
							
							
							llvm-svn: 37705 
							
						 
						
							2007-06-22 16:59:54 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								309d3d51b3 
								
							 
						 
						
							
							
								
								Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits from  
							
							 
							
							... 
							
							
							
							TargetLowering to SelectionDAG so that they have more convenient
access to the current DAG, in preparation for the ValueType routines
being changed from standalone functions to members of SelectionDAG for
the pre-legalize vector type changes.
llvm-svn: 37704 
							
						 
						
							2007-06-22 14:59:07 +00:00