Bill Wendling 
							
						 
					 
					
						
						
							
						
						3aaf5d9933 
					 
					
						
						
							
							Use > instead of >=. We want to promote aggregates of 128-bytes.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65960  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-03-03 19:18:49 +00:00 
						 
				 
			
				
					
						
							
							
								Zhou Sheng 
							
						 
					 
					
						
						
							
						
						a8d57fe96b 
					 
					
						
						
							
							Ignore dbg info intrinsics when folding conditional branch to  
						
						... 
						
						
						
						conditional branch predecessors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65509  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-26 06:56:37 +00:00 
						 
				 
			
				
					
						
							
							
								Zhou Sheng 
							
						 
					 
					
						
						
							
						
						9a7c743fc0 
					 
					
						
						
							
							Don't block basic block with only SwitchInst to fold into predecessors.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65456  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-25 15:34:27 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						5622f07a21 
					 
					
						
						
							
							While folding unconditional return move DbgRegionEndInst into the predecessor, instead of removing it. This fixes following tests from llvmgcc42 testsuite.  
						
						... 
						
						
						
						gcc.c-torture/execute/20000605-3.c
gcc.c-torture/execute/20020619-1.c
gcc.c-torture/execute/20030920-1.c
gcc.c-torture/execute/loop-ivopts-1.c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65353  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-24 00:05:16 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						bd75b8345f 
					 
					
						
						
							
							If llvm.dbg.region.end is disappearing then remove corresponding llvm.dbg.func.start also.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64278  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-11 01:29:06 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						0464a1431b 
					 
					
						
						
							
							Ignore dbg intrinsic while folding unconditional branch.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64242  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-10 22:14:17 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						998cbb0444 
					 
					
						
						
							
							Revert rev. 63876. It is causing llvm-gcc bootstrap failure.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63888  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-05 21:46:41 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						1851db6b0f 
					 
					
						
						
							
							Ignore dbg intrinsics while propagating conditional expression info.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63876  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-05 19:15:39 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						2cc86a1de1 
					 
					
						
						
							
							Ignore dbg intrinsics while folding switch instruction.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63802  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-05 00:30:42 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						d0a203d76f 
					 
					
						
						
							
							Ignore dbg intrinsics.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63781  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-04 21:39:48 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						556b20ab46 
					 
					
						
						
							
							While folding vallue comparison terminators ignore dbg intrinsics.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63700  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-04 01:06:11 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						65085cf7b3 
					 
					
						
						
							
							Ignore dbg intrinsics while hoisting common code in the two blocks up into the branch block.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63687  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-04 00:03:08 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						383d7ed915 
					 
					
						
						
							
							Do not let dbg intrinsic block folding of two entry phi node.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63671  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-02-03 22:12:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						63bf29b5b1 
					 
					
						
						
							
							another fix for PR3354  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62561  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-20 01:15:41 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						5049fa6bbc 
					 
					
						
						
							
							Doxygen-ify comments.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62546  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-19 23:43:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6ff645bf0f 
					 
					
						
						
							
							Fix a problem exposed by PR3354: simplifycfg was making a potentially  
						
						... 
						
						
						
						trapping instruction be executed unconditionally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62541  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-19 23:03:13 +00:00 
						 
				 
			
				
					
						
							
							
								Bill Wendling 
							
						 
					 
					
						
						
							
						
						13524bfd00 
					 
					
						
						
							
							Temporarily revert r62487. It's causing this error during a release bootstrap of  
						
						... 
						
						
						
						llvm-gcc. Most likely, it's miscompiling one of the "gen*" programs:
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./prev-gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./prev-gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.6.0/bin/ -c -g -O2 -mdynamic-no-pic -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -mdynamic-no-pic -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/build -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include  -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include  -D_DEBUG  -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS   -o build/gencondmd.o build/gencondmd.c
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected '}' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: warning: excess elements in struct initializer
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: warning: (near initialization for 'insn_conditions[4]')
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected '}' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected ',' or ';' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:927: error: expected identifier or '(' before ',' token
../../llvm-gcc.src/gcc/config/i386/sse.md:3458: error: expected identifier or '(' before ',' token
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62506  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-19 08:46:20 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c4f85dd708 
					 
					
						
						
							
							Fix PR3016, a bug which can occur do to an invalid assumption:  
						
						... 
						
						
						
						we assumed a CFG structure that would be valid when all code in 
the function is reachable, but not all code is necessarily 
reachable.  Do a simple, but horrible, CFG walk to check for this
case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62487  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-19 02:46:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9e0dad4f41 
					 
					
						
						
							
							reduce indentation by using 'continue', no functionality change.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62477  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-19 02:07:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6fe73bbcf3 
					 
					
						
						
							
							Fix some problems in SpeculativelyExecuteBB.  Basically,  
						
						... 
						
						
						
						because of dead code, a phi could use the speculated instruction
that was not in "BB2".  Make this check explicit and tighten up 
some other corners.  This fixes PR3292.  No testcase becauase this
depends entirely on visitation order of blocks and requires a 
sequence of 8 passes to repro.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62476  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-19 00:36:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9dd3b610dc 
					 
					
						
						
							
							Make this a bit more explicit about which cases need the  
						
						... 
						
						
						
						check.  No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62474  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-01-18 23:22:07 +00:00 
						 
				 
			
				
					
						
							
							
								Eli Friedman 
							
						 
					 
					
						
						
							
						
						080efb8cea 
					 
					
						
						
							
							Add a helper to remove a branch and DCE the condition, and use it  
						
						... 
						
						
						
						consistently for deleting branches.  In addition to being slightly 
more readable, this makes SimplifyCFG a bit better 
about cleaning up after itself when it makes conditions unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61100  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-12-16 20:54:32 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						a16ead8b10 
					 
					
						
						
							
							fix a bug I introduced in simplifycfg handling single entry phi  
						
						... 
						
						
						
						nodes. FoldSingleEntryPHINodes deletes the PHI, so there is no
need to delete it afterward.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60653  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-12-07 07:22:45 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						29874e0dc6 
					 
					
						
						
							
							Factor some code into a new FoldSingleEntryPHINodes method.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60501  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-12-03 19:44:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						71af9b07a5 
					 
					
						
						
							
							Rename DeleteBlockIfDead to DeleteDeadBlock and make it  
						
						... 
						
						
						
						unconditionally delete the block.  All likely clients will
do the checking anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60464  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-12-03 06:40:52 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2b1ba24fb7 
					 
					
						
						
							
							Factor some code out of SimplifyCFG, forming a new  
						
						... 
						
						
						
						DeleteBlockIfDead method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60463  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-12-03 06:37:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						9fd4955c6a 
					 
					
						
						
							
							delete ErasePossiblyDeadInstructionTree, replacing uses of it with  
						
						... 
						
						
						
						RecursivelyDeleteTriviallyDeadInstructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60196  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-27 23:25:44 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5a5c9a5acd 
					 
					
						
						
							
							simplify this code a bit.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60164  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-11-27 07:54:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f8131c99de 
					 
					
						
						
							
							Fix PR2967 by not deleting volatile load/stores that occur before unreachable.  
						
						... 
						
						
						
						I don't really see this as being needed, but there is little harm from doing
it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58385  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-29 17:46:26 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						20da1f07da 
					 
					
						
						
							
							Nick Lewycky's patch.  
						
						... 
						
						
						
						While hosting instruction check PHI node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57025  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-10-03 18:57:37 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						0598866c05 
					 
					
						
						
							
							Large mechanical patch.  
						
						... 
						
						
						
						s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage 
- to implement function notes as function attributes and 
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-25 21:00:45 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						3d0a9a371c 
					 
					
						
						
							
							Try to place hoisted instructions befoe icmp instruction.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56315  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-18 22:50:42 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						48fbc2d39b 
					 
					
						
						
							
							Do not hoist instruction above branch condition. The instruction may use branch condition.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56286  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-09-17 18:21:49 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						a8c763b307 
					 
					
						
						
							
							Use empty() instead of begin() == end().  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54780  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-08-14 18:13:49 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						fc74abfba5 
					 
					
						
						
							
							Enable first-class aggregates support.  
						
						... 
						
						
						
						Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.
The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53941  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-23 00:34:11 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						cfa94198d5 
					 
					
						
						
							
							Reapply r53735.  My last patch fixed the failures Dan observed.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53761  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-18 17:49:43 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						79c23effe2 
					 
					
						
						
							
							Revert r53735. It broke SPEC 464.h264ref.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53757  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-18 16:44:49 +00:00 
						 
				 
			
				
					
						
							
							
								Owen Anderson 
							
						 
					 
					
						
						
							
						
						f7d3ecf091 
					 
					
						
						
							
							Use MergeBlockIntoPredecessor to simplify some code.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53735  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-17 20:00:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						093a438502 
					 
					
						
						
							
							Fix mishandling of the infinite loop case when merging two blocks.  This  
						
						... 
						
						
						
						fixes PR2540.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53533  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-13 22:23:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b824512b8d 
					 
					
						
						
							
							more refactoring.  Use early exits instead of really complex logic.  
						
						... 
						
						
						
						No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53532  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-13 22:04:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						eb388af89f 
					 
					
						
						
							
							improve comments.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53531  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-13 21:55:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						867661ac8b 
					 
					
						
						
							
							factor another large hunk of code out into its own function.  
						
						... 
						
						
						
						No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53530  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-13 21:53:26 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3698909623 
					 
					
						
						
							
							Final bit of simplification for FoldBranchToCommonDest.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53528  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-13 21:20:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						70087f31f1 
					 
					
						
						
							
							simplify logic a bit  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53527  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-13 21:15:11 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1347e87c7b 
					 
					
						
						
							
							Refactor some code out into its own helper function, getting rid of crazy multiline  
						
						... 
						
						
						
						conditionals and commenting the code better.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53526  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-07-13 21:12:01 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e5334ea518 
					 
					
						
						
							
							- Use O(1) check of basic block size limit.  
						
						... 
						
						
						
						- Avoid speculatively execute vector ops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52703  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-25 07:50:12 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						502a4f5162 
					 
					
						
						
							
							Do not speculatively execute an instruction by hoisting it to its predecessor BB if any of its operands are defined but not used in BB. The transformation will prevent the operand from being sunk into the use block.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52244  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-12 21:15:59 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						797d95188d 
					 
					
						
						
							
							For now, avoid generating FP select instructions in order to speculatively execute integer arithmetic instructions. FP selects are more likely to be expensive (even compared to branch on fcmp). This is not a wonderful solution but I rather err on the side of conservative.  
						
						... 
						
						
						
						This fixes the heapsort performance regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52224  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-11 19:18:20 +00:00 
						 
				 
			
				
					
						
							
							
								Gabor Greif 
							
						 
					 
					
						
						
							
						
						f7ea3638e0 
					 
					
						
						
							
							op_iterator-ify loops  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52191  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-10 22:03:26 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						4d09efd7b8 
					 
					
						
						
							
							Speculatively execute a block when the the block is the then part of a triangle shape and it contains a single, side effect free, cheap instruction. The branch is eliminated by adding a select instruction. i.e.  
						
						... 
						
						
						
						Turn                                                                                                                                                                                                       
BB:                                                                                                                                                                                                        
    %t1 = icmp                                                                                                                                                                                             
    br i1 %t1, label %BB1, label %BB2                                                                                                                                                                      
BB1:                                                                                                                                                                                                       
    %t3 = add %t2, c                                                                                                                                                                                       
    br label BB2                                                                                                                                                                                           
BB2:                                                                                                                                                                                                       
=>                                                                                                                                                                                                         
BB:                                                                                                                                                                                                        
    %t1 = icmp                                                                                                                                                                                             
    %t4 = add %t2, c                                                                                                                                                                                       
    %t3 = select i1 %t1, %t2, %t3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52073  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2008-06-07 08:52:29 +00:00