- Apr 07, 2011
-
-
Andrew Trick authored
induction variable. The preRA scheduler is unaware of induction vars, so we look for potential "virtual register cycles" instead. Fixes <rdar://problem/8946719> Bad scheduling prevents coalescing llvm-svn: 129100
-
- Apr 05, 2011
-
-
Bill Wendling authored
It needed to be moved closer to the setjmp statement, because the code directly after the setjmp needs to know about values that are on the stack. Also, the 'bitcast' of the function context was causing a dead load. This wouldn't be too horrible, except that at -O0 it wasn't optimized out, and because it wasn't using the correct base pointer (if there is a VLA), it would try to access a value from a garbage address. <rdar://problem/9130540> llvm-svn: 128873
-
Stuart Hastings authored
llvm-svn: 128868
-
- Apr 02, 2011
-
-
Cameron Zwarich authored
transformations in target-specific DAG combines without causing DAGCombiner to delete the same node twice. If you know of a better way to avoid this (see my next patch for an example), please let me know. llvm-svn: 128758
-
- Apr 01, 2011
-
-
Evan Cheng authored
llvm-svn: 128730
-
Evan Cheng authored
Assign node order numbers to results of call instruction lowering. This should improve src line debug info when sdisel is used. rdar://9199118 llvm-svn: 128728
-
Evan Cheng authored
rdar://8911343 llvm-svn: 128696
-
- Mar 26, 2011
-
-
Benjamin Kramer authored
It couldn't be used outside of the file because SDISelAsmOperandInfo is local to SelectionDAGBuilder.cpp. Making it a static function avoids a weird linkage dance. llvm-svn: 128342
-
- Mar 25, 2011
-
-
Andrew Trick authored
Yet another case of unchecked NULL node (for physreg copy). May fix PR9509. llvm-svn: 128266
-
- Mar 23, 2011
-
-
Eli Friedman authored
Also cleaning up some duplicated code while I'm here. llvm-svn: 128176
-
Andrew Trick authored
so the scheduler can't create new interferences on the copies themselves. Prior to this fix the scheduler could get stuck in a loop creating copies. Fixes PR9509. llvm-svn: 128164
-
Andrew Trick authored
llvm-svn: 128163
-
Andrew Trick authored
I'm tired of doing this manually for each checkout. If anyone knows a better way debug isel for non-trivial tests feel free to revert and let me know how to do it. llvm-svn: 128132
-
- Mar 21, 2011
-
-
Eric Christopher authored
llvm-svn: 128004
-
- Mar 19, 2011
-
-
Nadav Rotem authored
not have native support for this operation (such as X86). The legalized code uses two vector INT_TO_FP operations and is faster than scalarizing. llvm-svn: 127951
-
- Mar 17, 2011
-
-
Benjamin Kramer authored
BuildUDIV: If the divisor is even we can simplify the fixup of the multiplied value by introducing an early shift. This allows us to compile "unsigned foo(unsigned x) { return x/28; }" into shrl $2, %edi imulq $613566757, %rdi, %rax shrq $32, %rax ret instead of movl %edi, %eax imulq $613566757, %rax, %rcx shrq $32, %rcx subl %ecx, %eax shrl %eax addl %ecx, %eax shrl $4, %eax on x86_64 llvm-svn: 127829
-
Cameron Zwarich authored
llvm-svn: 127809
-
Cameron Zwarich authored
llvm-svn: 127807
-
- Mar 16, 2011
-
-
Cameron Zwarich authored
rather than an int. Thankfully, this only causes LLVM to miss optimizations, not generate incorrect code. This just fixes the zext at the return. We still insert an i32 ZextAssert when reading a function's arguments, but it is followed by a truncate and another i8 ZextAssert so it is not optimized. llvm-svn: 127766
-
Cameron Zwarich authored
llvm-svn: 127764
-
- Mar 15, 2011
-
-
Evan Cheng authored
zext(undef) = 0, because the top bits will be zero. llvm-svn: 127649
-
- Mar 14, 2011
-
-
Evan Cheng authored
llvm-svn: 127600
-
Evan Cheng authored
llvm-svn: 127598
-
- Mar 11, 2011
-
-
Owen Anderson authored
llvm-svn: 127496
-
Andrew Trick authored
Replace -dag-chain-limit flag with constant. It has survived a release cycle without being touched, so no longer needs to pollute the hidden-help text. llvm-svn: 127468
-
Evan Cheng authored
Avoid replacing the value of a directly stored load with the stored value if the load is indexed. rdar://9117613. llvm-svn: 127440
-
- Mar 10, 2011
-
-
Evan Cheng authored
llvm-svn: 127380
-
Evan Cheng authored
llvm-svn: 127376
-
- Mar 09, 2011
-
-
Evan Cheng authored
flexible. If it returns a register class that's different from the input, then that's the register class used for cross-register class copies. If it returns a register class that's the same as the input, then no cross- register class copies are needed (normal copies would do). If it returns null, then it's not at all possible to copy registers of the specified register class. llvm-svn: 127368
-
Andrew Trick authored
This helps cases like 2008-07-19-movups-spills.ll, but doesn't have an obvious impact on benchmarks llvm-svn: 127347
-
Benjamin Kramer authored
llvm-svn: 127335
-
- Mar 08, 2011
-
-
Eric Christopher authored
with this before since none of the register tracking or nightly tests had unschedulable nodes. This should probably be refixed with a special default Node that just returns some "don't touch me" values. Fixes PR9427 llvm-svn: 127263
-
Andrew Trick authored
This change uses the MaxReorderWindow for both height and depth, which tends to limit the negative effects of high register pressure. llvm-svn: 127203
-
- Mar 07, 2011
-
-
Cameron Zwarich authored
llvm-svn: 127175
-
Owen Anderson authored
llvm-svn: 127163
-
- Mar 06, 2011
-
-
Eric Christopher authored
llvm-svn: 127131
-
Andrew Trick authored
Disable a couple of experimental heuristics to get the best results from the current implementation of -pre-RA-sched=list-ilp. llvm-svn: 127113
-
- Mar 05, 2011
-
-
Andrew Trick authored
llvm-svn: 127075
-
Andrew Trick authored
llvm-svn: 127071
-
Andrew Trick authored
llvm-svn: 127068
-