- Jan 29, 2009
-
-
Owen Anderson authored
XFAIL this test. It only worked before because of a bug in the spill point selection code. Not deleting because it should be possible to enhance the selection code to handle this in the future. llvm-svn: 63340
-
Evan Cheng authored
Local register allocator shouldn't assume only the entry and landing pad basic blocks have live-ins. llvm-svn: 63323
-
Dan Gohman authored
the element indices may be equal if either one is not a constant. llvm-svn: 63311
-
Evan Cheng authored
llvm-svn: 63267
-
Dan Gohman authored
dagcombines that help it match in several more cases. Add several more cases to test/CodeGen/X86/bt.ll. This doesn't yet include matching for BT with an immediate operand, it just covers more register+register cases. llvm-svn: 63266
-
Mon P Wang authored
llvm-svn: 63252
-
- Jan 28, 2009
-
-
Bill Wendling authored
llvm-svn: 63247
-
Evan Cheng authored
The memory alignment requirement on some of the mov{h|l}p{d|s} patterns are 16-byte. That is overly strict. These instructions read / write f64 memory locations without alignment requirement. llvm-svn: 63195
-
Mon P Wang authored
llvm-svn: 63194
-
Bill Wendling authored
llvm-svn: 63149
-
- Jan 27, 2009
-
-
Evan Cheng authored
llvm-svn: 63090
-
Dan Gohman authored
llvm-svn: 63075
-
- Jan 26, 2009
-
-
Duncan Sands authored
checking logic. Rather than make the checking more complicated, I've tweaked some logic to make things conform to how the checking thought things ought to be, since this results in a simpler "mental model". llvm-svn: 63048
-
Dan Gohman authored
llvm-svn: 63042
-
Evan Cheng authored
Enhance logic in X86DAGToDAGISel::PreprocessForRMW which move load inside callseq_start to allow it to be folded into a call. It was not considering the cases where a token factor is between the load and the callseq_start. llvm-svn: 63022
-
Nate Begeman authored
other x86 segments. address space 0 is stack/default, 1-255 are reserved for client use. llvm-svn: 62980
-
- Jan 25, 2009
-
-
Torok Edwin authored
for example in the case of va-args. XFAIL associated tests. llvm-svn: 62972
-
Torok Edwin authored
llvm-svn: 62967
-
Evan Cheng authored
Teach 2addr pass to be do more commuting. If both uses of a two-address instruction are killed, but the first operand has a use before and after the def, commute if the second operand does not suffer from the same issue. %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1 %reg1029<def> = MOV8rr %reg1028 %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead> insert => %reg1030<def> = MOV8rr %reg1028 %reg1030<def> = ADD8rr %reg1028<kill>, %reg1029<kill>, %EFLAGS<imp-def,dead> In this case, it might not be possible to coalesce the second MOV8rr instruction if the first one is coalesced. So it would be profitable to commute it: %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1 %reg1029<def> = MOV8rr %reg1028 %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead> insert => %reg1030<def> = MOV8rr %reg1029 %reg1030<def> = ADD8rr %reg1029<kill>, %reg1028<kill>, %EFLAGS<imp-def,dead> llvm-svn: 62954
-
- Jan 24, 2009
-
-
Dan Gohman authored
llvm-svn: 62921
-
- Jan 23, 2009
-
-
Evan Cheng authored
llvm-svn: 62836
-
- Jan 22, 2009
-
-
Dan Gohman authored
Simplify x+0 to x in unsafe-fp-math mode. This avoids a bunch of redundant work in many cases, because in unsafe-fp-math mode, ISD::FADD with a constant is considered free to negate, so the DAGCombiner often negates x+0 to -0-x thinking it's free, when in reality the end result is -x, which is more expensive than x. Also, combine x*0 to 0. This fixes PR3374. llvm-svn: 62789
-
Devang Patel authored
llvm-svn: 62770
-
- Jan 21, 2009
-
-
Bill Wendling authored
llvm-svn: 62716
-
Bill Wendling authored
llvm-svn: 62714
-
Dan Gohman authored
special cases after producing the new reduced-width load, because the new load already has the needed adjustments built into it. This fixes several bugs due to the special cases, including PR3317. llvm-svn: 62692
-
Dan Gohman authored
we want to clear %ah to zero before a division, just use a zero-extending mov to %al. This fixes PR3366. llvm-svn: 62691
-
Evan Cheng authored
unsigned test(unsigned a) { return ~a; } llvm used to generate: movl $4294967295, %eax xorl 4(%esp), %eax Now it generates: movl 4(%esp), %eax notl %eax It's 3 bytes shorter. llvm-svn: 62661
-
Owen Anderson authored
llvm-svn: 62639
-
- Jan 20, 2009
-
-
Evan Cheng authored
Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref. llvm-svn: 62617
-
Evan Cheng authored
llvm-svn: 62604
-
Bill Wendling authored
llvm-svn: 62572
-
Dan Gohman authored
as its comment says, even in the case where it will be generating extending loads. This fixes PR3216. llvm-svn: 62557
-
Evan Cheng authored
llvm-svn: 62547
-
- Jan 19, 2009
-
-
Dale Johannesen authored
llvm-svn: 62538
-
Dan Gohman authored
uses are added to the From node while it is processing From's use list, because of automatic local CSE. The fix is to avoid visiting any new uses. Fix a few places in the DAGCombiner that assumed that after a RAUW call, the From node has no users and may be deleted. This fixes PR3018. llvm-svn: 62533
-
Dale Johannesen authored
llvm-svn: 62528
-
Evan Cheng authored
DIVREM isel deficiency: If sign bit is known zero, zero out DX/EDX/RDX instead of sign extending the low part (in AX/EAX/RAX) into it. llvm-svn: 62519
-
Evan Cheng authored
optimize it to a SINT_TO_FP when the sign bit is known zero. X86 isel should perform the optimization itself. llvm-svn: 62504
-
- Jan 18, 2009
-
-