- Jan 14, 2008
-
-
Chris Lattner authored
llvm-svn: 45971
-
Chris Lattner authored
an instruction kills a register or not. This is cheap and easy to do now that instructions record this on their flags, and this eliminates the second pass of LiveVariables from the x86 backend. This speeds up a release llc by ~2.5%. llvm-svn: 45955
-
Evan Cheng authored
llvm-svn: 45950
-
Chris Lattner authored
byval work. This miscompilation is due to the program indexing an array out of range and us doing a transformation that broke this. llvm-svn: 45949
-
Chris Lattner authored
llvm-svn: 45948
-
Chris Lattner authored
difficult to understand the invariants. llvm-svn: 45947
-
Chris Lattner authored
easier to show that its safe. No functionality change. llvm-svn: 45946
-
Chris Lattner authored
a load/store of i64. The later prevents promotion/scalarrepl of the source and dest in many cases. This fixes the 300% performance regression of the byval stuff on stepanov_v1p2. llvm-svn: 45945
-
Chris Lattner authored
method, no functionality change. llvm-svn: 45944
-
- Jan 13, 2008
-
-
Chris Lattner authored
greater than memcpy alignment, and if we lower to load/store, use the best alignment info we have. llvm-svn: 45943
-
Chris Lattner authored
make memmove->memcpy conversion a bit simpler. llvm-svn: 45942
-
Duncan Sands authored
llvm-svn: 45940
-
Duncan Sands authored
a pointer to a struct. llvm-svn: 45939
-
Duncan Sands authored
a size, not just structs. llvm-svn: 45938
-
Chris Lattner authored
realize that ne & sgt was a signed comparison (it was only looking at whether the left compare was signed). llvm-svn: 45937
-
Duncan Sands authored
llvm-svn: 45932
-
Duncan Sands authored
if this becomes a varargs call then deal correctly with any parameter attributes on the newly vararg call arguments. llvm-svn: 45931
-
- Jan 12, 2008
-
-
Chris Lattner authored
llvm-svn: 45917
-
Chris Lattner authored
llvm-svn: 45914
-
Evan Cheng authored
llvm-svn: 45913
-
Chris Lattner authored
inlining a function if we know that the function does not write to *any* memory. This implements test/Transforms/Inline/byval2.ll llvm-svn: 45912
-
Evan Cheng authored
llvm-svn: 45911
-
Duncan Sands authored
allowed on the vararg arguments of a call. llvm-svn: 45909
-
Chris Lattner authored
the inliner pass. Patch by Robert Zeh. llvm-svn: 45903
-
Chris Lattner authored
llvm-svn: 45902
-
Evan Cheng authored
llvm-svn: 45898
-
Chris Lattner authored
llvm-svn: 45896
-
Chris Lattner authored
This allows us to sink things like: cvtsi2sd 32(%esp), %xmm1 when reading from the argument area, for example. llvm-svn: 45895
-
Chris Lattner authored
has no stores between the load and the end of block. This works great and sinks hundreds of stores, but we can't turn it on because machineinstrs don't have volatility information and we don't want to sink volatile stores :( llvm-svn: 45894
-
Duncan Sands authored
attributes on the vararg call arguments are also dropped. llvm-svn: 45892
-
Evan Cheng authored
llvm-svn: 45891
-
- 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
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
-
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
-