- Jan 12, 2008
-
-
Chris Lattner authored
llvm-svn: 45893
-
Duncan Sands authored
attributes on the vararg call arguments are also dropped. llvm-svn: 45892
-
Evan Cheng authored
llvm-svn: 45891
-
Chris Lattner authored
just xfail it. llvm-svn: 45890
-
Chris Lattner authored
llvm-svn: 45888
-
- Jan 11, 2008
-
-
Duncan Sands authored
parameter, even if it is a varargs function. Do allow attributes on the varargs part of a call, but not beyond the last argument. Only allow selected attributes to be on the varargs part of a call (currently only 'byval' is allowed). The reasoning here is that most attributes, eg inreg, simply make no sense here. llvm-svn: 45887
-
Chris Lattner authored
get away with it, which exposes opportunities to eliminate the memory objects entirely. For example, we now compile byval.ll to: define internal void @f1(i32 %b.0, i64 %b.1) { entry: %tmp2 = add i32 %b.0, 1 ; <i32> [#uses=0] ret void } define i32 @main() nounwind { entry: call void @f1( i32 1, i64 2 ) ret i32 0 } This seems like it would trigger a lot for code that passes around small structs (e.g. SDOperand's or _Complex)... llvm-svn: 45886
-
Duncan Sands authored
llvm-svn: 45885
-
Duncan Sands authored
call, don't discard them. llvm-svn: 45884
-
Scott Michel authored
- struct_2.ll: Completely unaligned load/store testing - call_indirect.ll, struct_1.ll: Add test lines to exercise X-form [$reg($reg)] addressing At this point, loads and stores should be under control (he says in an optimistic tone of voice.) llvm-svn: 45882
-
Dale Johannesen authored
llvm-svn: 45881
-
Chris Lattner authored
llvm-svn: 45878
-
Chris Lattner authored
llvm-svn: 45877
-
Chris Lattner authored
whether an argument is byval and pass into isSafeToPromoteArgument. llvm-svn: 45876
-
Chris Lattner authored
llvm-svn: 45875
-
Chris Lattner authored
llvm-svn: 45874
-
Chris Lattner authored
llvm-svn: 45873
-
Chris Lattner authored
llvm-svn: 45872
-
Chris Lattner authored
llvm-svn: 45871
-
Chris Lattner authored
llvm-svn: 45870
-
Chris Lattner authored
llvm-svn: 45869
-
Arnold Schwaighofer authored
Actually were not riding any arguments. Sadly there is no semantic spell checker that is going to safe you from such a mistake. llvm-svn: 45868
-
Arnold Schwaighofer authored
commit all arguments where moved to the stack slot where they would reside on a normal function call before the lowering to the tail call stack slot. This was done to prevent arguments overwriting each other. Now only arguments sourcing from a FORMAL_ARGUMENTS node or a CopyFromReg node with virtual register (could also be a caller's argument) are lowered indirectly. --This line, and those below, will be ignored-- M X86/X86ISelLowering.cpp M X86/README.txt llvm-svn: 45867
-
Arnold Schwaighofer authored
llvm-svn: 45865
-
Evan Cheng authored
llvm-svn: 45864
-
Evan Cheng authored
llvm-svn: 45861
-
Chris Lattner authored
llvm-svn: 45860
-
Chris Lattner authored
llvm-svn: 45859
-
Chris Lattner authored
llvm-svn: 45858
-
Chris Lattner authored
llvm-svn: 45857
-
Chris Lattner authored
llvm-svn: 45856
-
Chris Lattner authored
llvm-svn: 45855
-
Chris Lattner authored
llvm-svn: 45854
-
Chris Lattner authored
copy of it in case the callee modifies the struct. llvm-svn: 45853
-
Evan Cheng authored
llvm-svn: 45852
-
Scott Michel authored
- Cleaned up custom load/store logic, common code is now shared [see note below], cleaned up address modes - More test cases: various intrinsics, structure element access (load/store test), updated target data strings, indirect function calls. Note: This patch contains a refactoring of the LoadSDNode and StoreSDNode structures: they now share a common base class, LSBaseSDNode, that provides an interface to their common functionality. There is some hackery to access the proper operand depending on the derived class; otherwise, to do a proper job would require finding and rearranging the SDOperands sent to StoreSDNode's constructor. The current refactor errs on the side of being conservatively and backwardly compatible while providing functionality that reduces redundant code for targets where loads and stores are custom-lowered. llvm-svn: 45851
-
Evan Cheng authored
llvm-svn: 45850
-
Dale Johannesen authored
llvm-svn: 45849
-
Dale Johannesen authored
Cosmetic changes to spacing to match gcc (some dejagnu tests actually care). llvm-svn: 45848
-
Chris Lattner authored
both work right according to the new flags. This removes the TII::isReallySideEffectFree predicate, and adds TII::isInvariantLoad. It removes NeverHasSideEffects+MayHaveSideEffects and adds UnmodeledSideEffects as machine instr flags. Now the clients can decide everything they need. I think isRematerializable can be implemented in terms of the flags we have now, though I will let others tackle that. llvm-svn: 45843
-