40b31ad3ee 
								
							 
						 
						
							
							
								
								Prefix `next' iterator operation with `llvm::'.  
							
							... 
							
							
							
							Fixes potential ambiguity problems on VS 2010.
Patch by nobled!
llvm-svn: 110029 
							
						 
						
							2010-08-02 06:00:15 +00:00  
				
					
						
							
							
								 
						
							
								2e00e3b12d 
								
							 
						 
						
							
							
								
								Make SDNode::dump() print a newline at the end.  
							
							... 
							
							
							
							llvm-svn: 109234 
							
						 
						
							2010-07-23 16:37:47 +00:00  
				
					
						
							
							
								 
						
							
								59f9970ba5 
								
							 
						 
						
							
							
								
								keep in 80 cols  
							
							... 
							
							
							
							llvm-svn: 109122 
							
						 
						
							2010-07-22 17:18:03 +00:00  
				
					
						
							
							
								 
						
							
								55f0c6b9fc 
								
							 
						 
						
							
							
								
								Split -enable-finite-only-fp-math to two options:  
							
							... 
							
							
							
							-enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN.
llvm-svn: 108465 
							
						 
						
							2010-07-15 22:07:12 +00:00  
				
					
						
							
							
								 
						
							
								1c349f18f8 
								
							 
						 
						
							
							
								
								Move getExtLoad() and (some) getLoad() DebugLoc argument after EVT argument for consistency sake.  
							
							... 
							
							
							
							llvm-svn: 107820 
							
						 
						
							2010-07-07 22:15:37 +00:00  
				
					
						
							
							
								 
						
							
								a3ca21b228 
								
							 
						 
						
							
							
								
								Propagate debug loc.  
							
							... 
							
							
							
							llvm-svn: 107710 
							
						 
						
							2010-07-06 22:08:15 +00:00  
				
					
						
							
							
								 
						
							
								f3aeb2c22c 
								
							 
						 
						
							
							
								
								Infer alignments of fixed frame objects when they are constructed. This ensures remat'ed loads from fixed slots have the right alignments.  
							
							... 
							
							
							
							llvm-svn: 107591 
							
						 
						
							2010-07-04 18:52:05 +00:00  
				
					
						
							
							
								 
						
							
								2041abd958 
								
							 
						 
						
							
							
								
								When splitting a VAARG, remember its alignment.  
							
							... 
							
							
							
							This produces terrible but correct code.
llvm-svn: 106952 
							
						 
						
							2010-06-26 18:22:20 +00:00  
				
					
						
							
							
								 
						
							
								2dc70bea54 
								
							 
						 
						
							
							
								
								Remove variables which are assigned to but for which the value  
							
							... 
							
							
							
							is not used.  Spotted by gcc-4.6.
llvm-svn: 106854 
							
						 
						
							2010-06-25 14:48:39 +00:00  
				
					
						
							
							
								 
						
							
								463f26b4be 
								
							 
						 
						
							
							
								
								Eliminate the other half of the BRCOND optimization, and update  
							
							... 
							
							
							
							as many tests as possible.
llvm-svn: 106749 
							
						 
						
							2010-06-24 15:24:03 +00:00  
				
					
						
							
							
								 
						
							
								df6b33e778 
								
							 
						 
						
							
							
								
								Eliminate the first have of the optimization which eliminates BRCOND  
							
							... 
							
							
							
							when the condition is constant. This optimization shouldn't be
necessary, because codegen shouldn't be able to find dead control
paths that the IR-level optimizer can't find. And it's undesirable,
because it encourages bugpoint to leave "br i1 false" branches
in its output. And it wasn't updating the CFG.
I updated all the tests I could, but some tests are too reduced
and I wasn't able to meaningfully preserve them.
llvm-svn: 106748 
							
						 
						
							2010-06-24 15:04:11 +00:00  
				
					
						
							
							
								 
						
							
								600f62b3ba 
								
							 
						 
						
							
							
								
								Reapply r106634, now that the bug it exposed is fixed.  
							
							... 
							
							
							
							llvm-svn: 106746 
							
						 
						
							2010-06-24 14:30:44 +00:00  
				
					
						
							
							
								 
						
							
								4df321b7ad 
								
							 
						 
						
							
							
								
								Revert r106263, "Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled.  
							
							... 
							
							
							
							llvm-svn: 106634 
							
						 
						
							2010-06-23 17:09:26 +00:00  
				
					
						
							
							
								 
						
							
								dd41bba517 
								
							 
						 
						
							
							
								
								Use A.append(...) instead of A.insert(A.end(), ...) when A is a  
							
							... 
							
							
							
							SmallVector, and other SmallVector simplifications.
llvm-svn: 106452 
							
						 
						
							2010-06-21 19:47:52 +00:00  
				
					
						
							
							
								 
						
							
								96ca25eba5 
								
							 
						 
						
							
							
								
								Don't replace the old Ordering object with a new one; just clear()  
							
							... 
							
							
							
							the old one.
llvm-svn: 106284 
							
						 
						
							2010-06-18 15:40:58 +00:00  
				
					
						
							
							
								 
						
							
								a4f46b3ef8 
								
							 
						 
						
							
							
								
								Don't call clear() on DbgInfo when it's going to be deleted anyway.  
							
							... 
							
							
							
							Don't replace the old DbgInfo with a new one when clear() on the
old one is sufficient.
llvm-svn: 106283 
							
						 
						
							2010-06-18 15:36:18 +00:00  
				
					
						
							
							
								 
						
							
								92c11acdb8 
								
							 
						 
						
							
							
								
								Change UpdateNodeOperands' operand and return value from SDValue to  
							
							... 
							
							
							
							SDNode *, since it doesn't care about the ResNo value.
llvm-svn: 106282 
							
						 
						
							2010-06-18 15:30:29 +00:00  
				
					
						
							
							
								 
						
							
								b92156d5e4 
								
							 
						 
						
							
							
								
								Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,  
							
							... 
							
							
							
							which is faster, simpler, and less surprising.
llvm-svn: 106263 
							
						 
						
							2010-06-18 01:05:21 +00:00  
				
					
						
							
							
								 
						
							
								0883789ec4 
								
							 
						 
						
							
							
								
								Handle ext(ext(x)) -> ext(x) immediately, since it's simple.  
							
							... 
							
							
							
							llvm-svn: 106256 
							
						 
						
							2010-06-18 00:08:30 +00:00  
				
					
						
							
							
								 
						
							
								b782caa393 
								
							 
						 
						
							
							
								
								Fill in missing support for ISD::FEXP, ISD::FPOWI, and friends.  
							
							... 
							
							
							
							llvm-svn: 105283 
							
						 
						
							2010-06-01 18:35:14 +00:00  
				
					
						
							
							
								 
						
							
								14c46517b5 
								
							 
						 
						
							
							
								
								fix PR6623: when optimizing for size, don't inline memcpy/memsets  
							
							... 
							
							
							
							that are too large.  This causes the freebsd bootloader to be too
large apparently.
It's unclear if this should be an -Os or -Oz thing.  Thoughts welcome.
llvm-svn: 105228 
							
						 
						
							2010-05-31 17:30:14 +00:00  
				
					
						
							
							
								 
						
							
								b4a773b452 
								
							 
						 
						
							
							
								
								the 'limit' argument to FindOptimalMemOpLowering is unsigned, not uint64_t.  
							
							... 
							
							
							
							llvm-svn: 105226 
							
						 
						
							2010-05-31 17:12:23 +00:00  
				
					
						
							
							
								 
						
							
								d16aa541af 
								
							 
						 
						
							
							
								
								SelectionDAG shouldn't have a FunctionLoweringInfo member. RegsForValue  
							
							... 
							
							
							
							shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set
doesn't needs its EnableFastISel argument.
llvm-svn: 105101 
							
						 
						
							2010-05-29 17:03:36 +00:00  
				
					
						
							
							
								 
						
							
								c98892fdaa 
								
							 
						 
						
							
							
								
								Adjust eh.sjlj.setjmp to properly have a chain and to have an opcode entry in  
							
							... 
							
							
							
							ISD::. No functional change.
llvm-svn: 104734 
							
						 
						
							2010-05-26 20:22:18 +00:00  
				
					
						
							
							
								 
						
							
								bb4656c05e 
								
							 
						 
						
							
							
								
								Improve assertion messages.  
							
							... 
							
							
							
							llvm-svn: 103882 
							
						 
						
							2010-05-15 18:38:02 +00:00  
				
					
						
							
							
								 
						
							
								bb919dfb6b 
								
							 
						 
						
							
							
								
								Implement a bunch more TargetSelectionDAGInfo infrastructure.  
							
							... 
							
							
							
							Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and
EmitTargetCodeForMemmove out of TargetLowering and into
SelectionDAGInfo to exercise this.
llvm-svn: 103481 
							
						 
						
							2010-05-11 17:31:57 +00:00  
				
					
						
							
							
								 
						
							
								e4d6670f6b 
								
							 
						 
						
							
							
								
								Add an assertion to catch attempts to access off the end of the array.  
							
							... 
							
							
							
							Based on a patch by Javier Martinez.
llvm-svn: 103391 
							
						 
						
							2010-05-10 04:54:28 +00:00  
				
					
						
							
							
								 
						
							
								51c1695a0a 
								
							 
						 
						
							
							
								
								Fix PR 7087, and probably other things, by extending  
							
							... 
							
							
							
							getConstantFP to accept the two supported long double
target types.  This was not the original intent, but
there are other places that assume this works and it's
easy enough to do.
llvm-svn: 103299 
							
						 
						
							2010-05-07 21:35:53 +00:00  
				
					
						
							
							
								 
						
							
								e7dff14d5d 
								
							 
						 
						
							
							
								
								Print debug information for SDNodes.  
							
							... 
							
							
							
							llvm-svn: 103227 
							
						 
						
							2010-05-07 01:09:21 +00:00  
				
					
						
							
							
								 
						
							
								de4b225093 
								
							 
						 
						
							
							
								
								EXTRACT_VECTOR_ELT of an INSERT_VECTOR_ELT may have the same index, but the  
							
							... 
							
							
							
							indexes could be of a different value type. Or not even using the same SDNode
for the constant (weird, I know). Compare the actual values instead of the
pointers.
llvm-svn: 102791 
							
						 
						
							2010-04-30 22:19:17 +00:00  
				
					
						
							
							
								 
						
							
								e098352ed1 
								
							 
						 
						
							
							
								
								Add DBG_VALUE handling for byval parameters; this  
							
							... 
							
							
							
							produces a comment on targets that support it, but
the Dwarf writer is not hooked up yet.
llvm-svn: 102372 
							
						 
						
							2010-04-26 20:06:49 +00:00  
				
					
						
							
							
								 
						
							
								ad33d33719 
								
							 
						 
						
							
							
								
								Add another variant of this test which found a place where  
							
							... 
							
							
							
							CodeGen's ComputeMaskedBits was being over-conservative when computing
bits for an ADD.
llvm-svn: 101963 
							
						 
						
							2010-04-21 00:19:28 +00:00  
				
					
						
							
							
								 
						
							
								1e95790fd4 
								
							 
						 
						
							
							
								
								Give SelectionDAG a TargetMachine too, rather than having it  
							
							... 
							
							
							
							fetch one from the MachineFunction.
llvm-svn: 101807 
							
						 
						
							2010-04-19 19:22:07 +00:00  
				
					
						
							
							
								 
						
							
								8422e57baa 
								
							 
						 
						
							
							
								
								Delete now-unnecessary const_casts.  
							
							... 
							
							
							
							llvm-svn: 101637 
							
						 
						
							2010-04-17 15:32:28 +00:00  
				
					
						
							
							
								 
						
							
								21cea8ac2e 
								
							 
						 
						
							
							
								
								Use const qualifiers with TargetLowering. This eliminates several  
							
							... 
							
							
							
							const_casts, and it reinforces the design of the Target classes being
immutable.
SelectionDAGISel::IsLegalToFold is now a static member function, because
PIC16 uses it in an unconventional way. There is more room for API
cleanup here.
And PIC16's AsmPrinter no longer uses TargetLowering.
llvm-svn: 101635 
							
						 
						
							2010-04-17 15:26:15 +00:00  
				
					
						
							
							
								 
						
							
								4d273f4519 
								
							 
						 
						
							
							
								
								Commit this, which should have accompanied 101531.  
							
							... 
							
							
							
							llvm-svn: 101532 
							
						 
						
							2010-04-16 20:22:43 +00:00  
				
					
						
							
							
								 
						
							
								bcaf681cde 
								
							 
						 
						
							
							
								
								Add const qualifiers to CodeGen's use of LLVM IR constructs.  
							
							... 
							
							
							
							llvm-svn: 101334 
							
						 
						
							2010-04-15 01:51:59 +00:00  
				
					
						
							
							
								 
						
							
								ecd40a34e2 
								
							 
						 
						
							
							
								
								Remove unnecessary parens.  
							
							... 
							
							
							
							llvm-svn: 101010 
							
						 
						
							2010-04-12 02:24:01 +00:00  
				
					
						
							
							
								 
						
							
								ebe47c872f 
								
							 
						 
						
							
							
								
								Avoid using f64 to lower memcpy from constant string. It's cheaper to use i32 store of immediates.  
							
							... 
							
							
							
							llvm-svn: 100751 
							
						 
						
							2010-04-08 07:37:57 +00:00  
				
					
						
							
							
								 
						
							
								3b9f02a2aa 
								
							 
						 
						
							
							
								
								Three changes:  
							
							... 
							
							
							
							1. Introduce some enums and accessors in the InlineAsm class
   that eliminate a ton of magic numbers when handling inline
   asm SDNode.
2. Add a new MDNodeSDNode selection dag node type that holds
   a MDNode (shocking!)
3. Add a new argument to ISD::INLINEASM nodes that hold !srcloc
   metadata, propagating it to the instruction emitter, which
   drops it.
No functionality change.
llvm-svn: 100605 
							
						 
						
							2010-04-07 05:20:54 +00:00  
				
					
						
							
							
								 
						
							
								bf86224d5e 
								
							 
						 
						
							
							
								
								Remove assert to treat memmove and memset like memcpy  
							
							... 
							
							
							
							llvm-svn: 100521 
							
						 
						
							2010-04-06 08:27:51 +00:00  
				
					
						
							
							
								 
						
							
								272a2f8432 
								
							 
						 
						
							
							
								
								Fix an obvious copy-n-paste bug. It's not known to cause any miscompilation.  
							
							... 
							
							
							
							llvm-svn: 100494 
							
						 
						
							2010-04-05 23:33:29 +00:00  
				
					
						
							
							
								 
						
							
								f38547c83f 
								
							 
						 
						
							
							
								
								Add a comment.  
							
							... 
							
							
							
							llvm-svn: 100459 
							
						 
						
							2010-04-05 20:24:08 +00:00  
				
					
						
							
							
								 
						
							
								bc217873e3 
								
							 
						 
						
							
							
								
								lowering a volatile llvm.memcpy to a libc memcpy is ok.  
							
							... 
							
							
							
							PR6779
llvm-svn: 100457 
							
						 
						
							2010-04-05 20:11:45 +00:00  
				
					
						
							
							
								 
						
							
								fb964e57e5 
								
							 
						 
						
							
							
								
								remove the now-redundant MMI pointer in SelectionDAG.  
							
							... 
							
							
							
							llvm-svn: 100419 
							
						 
						
							2010-04-05 06:19:28 +00:00  
				
					
						
							
							
								 
						
							
								6361414c88 
								
							 
						 
						
							
							
								
								remove some redundant MMI arguments.  
							
							... 
							
							
							
							llvm-svn: 100417 
							
						 
						
							2010-04-05 06:10:13 +00:00  
				
					
						
							
							
								 
						
							
								ab5dc34351 
								
							 
						 
						
							
							
								
								selection dag doesn't need DwarfWriter, remove some tendrils.  
							
							... 
							
							
							
							llvm-svn: 100382 
							
						 
						
							2010-04-05 02:23:33 +00:00  
				
					
						
							
							
								 
						
							
								c576ee9040 
								
							 
						 
						
							
							
								
								Reapply address space patch after fixing an issue in MemCopyOptimizer.  
							
							... 
							
							
							
							Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
llvm-svn: 100304 
							
						 
						
							2010-04-04 03:10:48 +00:00  
				
					
						
							
							
								 
						
							
								bd009d6d6d 
								
							 
						 
						
							
							
								
								stop using DebugLoc::getUnknownLoc()  
							
							... 
							
							
							
							llvm-svn: 100215 
							
						 
						
							2010-04-02 20:17:23 +00:00  
				
					
						
							
							
								 
						
							
								61399375a2 
								
							 
						 
						
							
							
								
								Correctly lower memset / memcpy of undef. It should be a nop. PR6767.  
							
							... 
							
							
							
							llvm-svn: 100208 
							
						 
						
							2010-04-02 19:36:14 +00:00