26a484852e 
								
							 
						 
						
							
							
								
								Code generation for 'fence' instruction.  
							
							... 
							
							
							
							llvm-svn: 136283 
							
						 
						
							2011-07-27 22:21:52 +00:00  
				
					
						
							
							
								 
						
							
								456b1edd0d 
								
							 
						 
						
							
							
								
								Revert r136156, which broke several buildbots.  
							
							... 
							
							
							
							llvm-svn: 136206 
							
						 
						
							2011-07-27 01:10:27 +00:00  
				
					
						
							
							
								 
						
							
								9eb62cd159 
								
							 
						 
						
							
							
								
								Delete unnecessarily cautious LastCALLSEQ code.  
							
							... 
							
							
							
							llvm-svn: 136156 
							
						 
						
							2011-07-26 22:00:59 +00:00  
				
					
						
							
							
								 
						
							
								229907cd11 
								
							 
						 
						
							
							
								
								land David Blaikie's patch to de-constify Type, with a few tweaks.  
							
							... 
							
							
							
							llvm-svn: 135375 
							
						 
						
							2011-07-18 04:54:35 +00:00  
				
					
						
							
							
								 
						
							
								945864d6dc 
								
							 
						 
						
							
							
								
								LegalizeDAG doesn't need its own copy of this enum.  
							
							... 
							
							
							
							llvm-svn: 135320 
							
						 
						
							2011-07-15 22:51:43 +00:00  
				
					
						
							
							
								 
						
							
								e49e74261a 
								
							 
						 
						
							
							
								
								Delete LegalizeDAG's own version of isTypeLegal and getTypeAction  
							
							... 
							
							
							
							and just use the ones from TargetLowering directly.
llvm-svn: 135318 
							
						 
						
							2011-07-15 22:39:09 +00:00  
				
					
						
							
							
								 
						
							
								8c5ca645ce 
								
							 
						 
						
							
							
								
								Delete an unused variable and a redundant assert.  
							
							... 
							
							
							
							llvm-svn: 135311 
							
						 
						
							2011-07-15 22:19:02 +00:00  
				
					
						
							
							
								 
						
							
								ad94608b1f 
								
							 
						 
						
							
							
								
								Modernize comments.  
							
							... 
							
							
							
							llvm-svn: 135305 
							
						 
						
							2011-07-15 21:42:20 +00:00  
				
					
						
							
							
								 
						
							
								f03fa189ca 
								
							 
						 
						
							
							
								
								Add an intrinsic and codegen support for fused multiply-accumulate. The intent  
							
							... 
							
							
							
							is to use this for architectures that have a native FMA instruction.
llvm-svn: 134742 
							
						 
						
							2011-07-08 21:39:21 +00:00  
				
					
						
							
							
								 
						
							
								10193c830b 
								
							 
						 
						
							
							
								
								Add a testcase for checking the integer-promotion of many different vector  
							
							... 
							
							
							
							types (with power of two types such as 8,16,32 .. 512).
Fix a bug in the integer promotion of bitcast nodes. Enable integer expanding
only if the target of the conversion is an integer (when the type action is
scalarize).
Add handling to the legalization of vector load/store in cases where the saved
vector is integer-promoted.
llvm-svn: 132985 
							
						 
						
							2011-06-14 08:11:52 +00:00  
				
					
						
							
							
								 
						
							
								a9effb13dd 
								
							 
						 
						
							
							
								
								Refactor getActionType and getTypeToTransformTo ; place all of the 'decision'  
							
							... 
							
							
							
							code in one place. Re-apply 131534 and fix the multi-step promotion of integers.
llvm-svn: 132217 
							
						 
						
							2011-05-27 21:03:13 +00:00  
				
					
						
							
							
								 
						
							
								3d9407f4eb 
								
							 
						 
						
							
							
								
								Revert commit 131534 since it seems to have broken several buildbots.  
							
							... 
							
							
							
							Original log entry:
Refactor getActionType and getTypeToTransformTo ; place all of the 'decision'
code in one place.
llvm-svn: 131536 
							
						 
						
							2011-05-18 14:57:56 +00:00  
				
					
						
							
							
								 
						
							
								c5c27ede55 
								
							 
						 
						
							
							
								
								Refactor getActionType and getTypeToTransformTo ; place all of the 'decision'  
							
							... 
							
							
							
							code in one place.
llvm-svn: 131534 
							
						 
						
							2011-05-18 12:26:38 +00:00  
				
					
						
							
							
								 
						
							
								abffc991dc 
								
							 
						 
						
							
							
								
								Misc. code cleanups.  
							
							... 
							
							
							
							llvm-svn: 131497 
							
						 
						
							2011-05-17 22:22:52 +00:00  
				
					
						
							
							
								 
						
							
								d282f46c6b 
								
							 
						 
						
							
							
								
								Delete unused variables.  
							
							... 
							
							
							
							llvm-svn: 131430 
							
						 
						
							2011-05-16 22:19:54 +00:00  
				
					
						
							
							
								 
						
							
								d4d12d14b5 
								
							 
						 
						
							
							
								
								Trim #includes.  
							
							... 
							
							
							
							llvm-svn: 131429 
							
						 
						
							2011-05-16 22:14:50 +00:00  
				
					
						
							
							
								 
						
							
								ae9b1685a8 
								
							 
						 
						
							
							
								
								Fix whitespace and 80-column violations.  
							
							... 
							
							
							
							llvm-svn: 131428 
							
						 
						
							2011-05-16 22:09:53 +00:00  
				
					
						
							
							
								 
						
							
								aa02c0847d 
								
							 
						 
						
							
							
								
								Since I can't reproduce the failures from 131261, re-trying with a  
							
							... 
							
							
							
							simplified version.  <rdar://problem/9298790>
llvm-svn: 131274 
							
						 
						
							2011-05-13 00:51:54 +00:00  
				
					
						
							
							
								 
						
							
								8d57d8ea64 
								
							 
						 
						
							
							
								
								Revert 131266 and 131261 due to buildbot complaints.  
							
							... 
							
							
							
							rdar://problem/9298790
llvm-svn: 131269 
							
						 
						
							2011-05-13 00:15:17 +00:00  
				
					
						
							
							
								 
						
							
								89f1b47e3a 
								
							 
						 
						
							
							
								
								Non-fast-isel followup to 129634; correctly handle branches controlled  
							
							... 
							
							
							
							by non-CMP expressions.  The executable test case (129821) would test
this as well, if we had an "-O0 -disable-arm-fast-isel" LLVM-GCC
tester.  Alas, the ARM assembly would be very difficult to check with
FileCheck.
The thumb2-cbnz.ll test is affected; it generates larger code (tst.w
vs. cmp #0 ), but I believe the new version is correct.
rdar://problem/9298790
llvm-svn: 131261 
							
						 
						
							2011-05-12 23:36:41 +00:00  
				
					
						
							
							
								 
						
							
								999fa3bf1f 
								
							 
						 
						
							
							
								
								Correctly walk through nested and adjacent CALLSEQ_START nodes.  No  
							
							... 
							
							
							
							test case; I've only seen this on a release branch, and I can't get it
to reproduce on trunk.  rdar://problem/7662569
llvm-svn: 131152 
							
						 
						
							2011-05-10 21:20:03 +00:00  
				
					
						
							
							
								 
						
							
								bcaedb5ce0 
								
							 
						 
						
							
							
								
								Rewrite the expander for umulo/smulo to remember to sign extend the input  
							
							... 
							
							
							
							manually and pass all (now) 4 arguments to the mul libcall. Add a new
ExpandLibCall for just this (copied gratuitously from type legalization).
Fixes rdar://9292577
llvm-svn: 129842 
							
						 
						
							2011-04-20 01:19:45 +00:00  
				
					
						
							
							
								 
						
							
								468086d5e1 
								
							 
						 
						
							
							
								
								Delete unnecessary variable.  <rdar://problem/7662569>  
							
							... 
							
							
							
							llvm-svn: 129796 
							
						 
						
							2011-04-19 20:09:38 +00:00  
				
					
						
							
							
								 
						
							
								0b68c1219f 
								
							 
						 
						
							
							
								
								Support nested CALLSEQ_BEGIN/END; necessary for ARM byval support.  <rdar://problem/7662569>  
							
							... 
							
							
							
							llvm-svn: 129761 
							
						 
						
							2011-04-19 16:16:58 +00:00  
				
					
						
							
							
								 
						
							
								b14ce09fca 
								
							 
						 
						
							
							
								
								Fix divmod libcall lowering. Convert to {S|U}DIVREM first and then expand the node to a libcall. rdar://9280991  
							
							... 
							
							
							
							llvm-svn: 129633 
							
						 
						
							2011-04-16 03:08:26 +00:00  
				
					
						
							
							
								 
						
							
								0ab5e2cded 
								
							 
						 
						
							
							
								
								Fix a ton of comment typos found by codespell.  Patch by  
							
							... 
							
							
							
							Luis Felipe Strano Moraes!
llvm-svn: 129558 
							
						 
						
							2011-04-15 05:18:47 +00:00  
				
					
						
							
							
								 
						
							
								ad68c93a2d 
								
							 
						 
						
							
							
								
								Revert 123704; it broke threaded LLVM.  
							
							... 
							
							
							
							llvm-svn: 128868 
							
						 
						
							2011-04-05 00:37:28 +00:00  
				
					
						
							
							
								 
						
							
								bd76679700 
								
							 
						 
						
							
							
								
								Issue libcalls __udivmod*i4 / __divmod*i4 for div / rem pairs.  
							
							... 
							
							
							
							rdar://8911343
llvm-svn: 128696 
							
						 
						
							2011-04-01 00:42:02 +00:00  
				
					
						
							
							
								 
						
							
								cd526fa15e 
								
							 
						 
						
							
							
								
								Use the correct LHS type when determining the legalization of a shift's RHS type.  
							
							... 
							
							
							
							llvm-svn: 127163 
							
						 
						
							2011-03-07 18:29:47 +00:00  
				
					
						
							
							
								 
						
							
								b2c80da4ae 
								
							 
						 
						
							
							
								
								Allow targets to specify a the type of the RHS of a shift parameterized on the type of the LHS.  
							
							... 
							
							
							
							llvm-svn: 126518 
							
						 
						
							2011-02-25 21:41:48 +00:00  
				
					
						
							
							
								 
						
							
								b7ae3ccb84 
								
							 
						 
						
							
							
								
								Do not lose debug info of an inlined function argument even if the argument is only used through GEPs.  
							
							... 
							
							
							
							This time with a fix that avoids using invalidated DenseMap iterator.
llvm-svn: 125984 
							
						 
						
							2011-02-18 22:43:42 +00:00  
				
					
						
							
							
								 
						
							
								0a1a36dc46 
								
							 
						 
						
							
							
								
								Roll out r125794 to help diagnose the llvm-gcc-i386-linux-selfhost failure.  
							
							... 
							
							
							
							llvm-svn: 125830 
							
						 
						
							2011-02-18 04:58:10 +00:00  
				
					
						
							
							
								 
						
							
								f922a431ee 
								
							 
						 
						
							
							
								
								Do not lose debug info of an inlined function argument even if the argument is only used through GEPs.  
							
							... 
							
							
							
							llvm-svn: 125794 
							
						 
						
							2011-02-17 23:33:27 +00:00  
				
					
						
							
							
								 
						
							
								81c4306005 
								
							 
						 
						
							
							
								
								Swap VT and DebugLoc operands of getExtLoad() for consistency with  
							
							... 
							
							
							
							other getNode() methods.  Radar 9002173.
llvm-svn: 125665 
							
						 
						
							2011-02-16 16:23:55 +00:00  
				
					
						
							
							
								 
						
							
								1cec755494 
								
							 
						 
						
							
							
								
								Speculatively revert r124380.  
							
							... 
							
							
							
							llvm-svn: 124397 
							
						 
						
							2011-01-27 19:15:01 +00:00  
				
					
						
							
							
								 
						
							
								3b266a2780 
								
							 
						 
						
							
							
								
								While legalizing SDValues do not drop SDDbgValues, trasfer them to new legal nodes.  
							
							... 
							
							
							
							Take 2. This includes fix for dragonegg crash.
llvm-svn: 124380 
							
						 
						
							2011-01-27 17:43:53 +00:00  
				
					
						
							
							
								 
						
							
								fb4ee9bbde 
								
							 
						 
						
							
							
								
								Initialize variable to get rid of clang warning.  
							
							... 
							
							
							
							llvm-svn: 124331 
							
						 
						
							2011-01-26 22:21:35 +00:00  
				
					
						
							
							
								 
						
							
								084e0628e0 
								
							 
						 
						
							
							
								
								Revert r124302  
							
							... 
							
							
							
							llvm-svn: 124320 
							
						 
						
							2011-01-26 21:12:32 +00:00  
				
					
						
							
							
								 
						
							
								bab5e6ed0e 
								
							 
						 
						
							
							
								
								[AVX] Add INSERT_SUBVECTOR and support it on x86.  This provides a  
							
							... 
							
							
							
							default implementation for x86, going through the stack in a similr
fashion to how the codegen implements BUILD_VECTOR.  Eventually this
will get matched to VINSERTF128 if AVX is available.
llvm-svn: 124307 
							
						 
						
							2011-01-26 19:13:22 +00:00  
				
					
						
							
							
								 
						
							
								a11210b1b8 
								
							 
						 
						
							
							
								
								While legalizing SDValues do not drop SDDbgValues, trasfer them to new legal nodes.  
							
							... 
							
							
							
							llvm-svn: 124302 
							
						 
						
							2011-01-26 18:55:05 +00:00  
				
					
						
							
							
								 
						
							
								b2139f655b 
								
							 
						 
						
							
							
								
								Use only one API at a time.  
							
							... 
							
							
							
							llvm-svn: 123866 
							
						 
						
							2011-01-20 01:29:23 +00:00  
				
					
						
							
							
								 
						
							
								bb14f65672 
								
							 
						 
						
							
							
								
								If we can, lower the multiply part of a umulo/smulo call to a libcall  
							
							... 
							
							
							
							with an invalid type then split the result and perform the overflow check
normally.
Fixes the 32-bit parts of rdar://8622122 and rdar://8774702.
llvm-svn: 123864 
							
						 
						
							2011-01-20 00:29:24 +00:00  
				
					
						
							
							
								 
						
							
								4fa832aab0 
								
							 
						 
						
							
							
								
								Remove checking that prevented overlapping CALLSEQ_START/CALLSEQ_END  
							
							... 
							
							
							
							ranges, add legalizer support for nested calls.  Necessary for ARM
byval support.  Radar 7662569.
llvm-svn: 123704 
							
						 
						
							2011-01-18 00:09:27 +00:00  
				
					
						
							
							
								 
						
							
								bec03ea725 
								
							 
						 
						
							
							
								
								Add an assert so we don't silently miscompile ctpop for bit widths > 128.  
							
							... 
							
							
							
							llvm-svn: 123549 
							
						 
						
							2011-01-15 21:19:37 +00:00  
				
					
						
							
							
								 
						
							
								fff2517edc 
								
							 
						 
						
							
							
								
								Reimplement CTPOP legalization with the "best" algorithm from  
							
							... 
							
							
							
							http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel 
In a silly microbenchmark on a 65 nm core2 this is 1.5x faster than the old
code in 32 bit mode and about 2x faster in 64 bit mode. It's also a lot shorter,
especially when counting 64 bit population on a 32 bit target.
I hope this is fast enough to replace Kernighan-style counting loops even when
the input is rather sparse.
llvm-svn: 123547 
						
							2011-01-15 20:30:30 +00:00  
				
					
						
							
							
								 
						
							
								958620dd6d 
								
							 
						 
						
							
							
								
								Fix r123346 to handle scalar types too.  
							
							... 
							
							
							
							llvm-svn: 123352 
							
						 
						
							2011-01-13 01:06:51 +00:00  
				
					
						
							
							
								 
						
							
								6e017a1134 
								
							 
						 
						
							
							
								
								Apply the patch from PR8958, which allows llc to get slightly  
							
							... 
							
							
							
							further on the associated testcase before aborting.
llvm-svn: 123346 
							
						 
						
							2011-01-12 23:56:26 +00:00  
				
					
						
							
							
								 
						
							
								2f93128109 
								
							 
						 
						
							
							
								
								Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there.  
							
							... 
							
							
							
							llvm-svn: 123170 
							
						 
						
							2011-01-10 12:39:04 +00:00  
				
					
						
							
							
								 
						
							
								988518109d 
								
							 
						 
						
							
							
								
								Remove TODO, these appear to be implemented.  
							
							... 
							
							
							
							llvm-svn: 122849 
							
						 
						
							2011-01-04 22:31:50 +00:00  
				
					
						
							
							
								 
						
							
								83cce8e7ab 
								
							 
						 
						
							
							
								
								Fix indentation, add comment.  
							
							... 
							
							
							
							llvm-svn: 122345 
							
						 
						
							2010-12-21 17:16:58 +00:00