- Dec 07, 2007
-
-
Evan Cheng authored
llvm-svn: 44671
-
- Dec 06, 2007
-
-
Dale Johannesen authored
Simpler and safer. llvm-svn: 44663
-
Evan Cheng authored
llvm-svn: 44660
-
Chris Lattner authored
only disable it if we don't know it will be obviously profitable. Still fixme, but less so. :) llvm-svn: 44658
-
Chris Lattner authored
the X86 backend are needed before this should be enabled by default. llvm-svn: 44657
-
Chris Lattner authored
_foo: movl $12, %eax andl 4(%esp), %eax movl _array(%eax), %eax ret instead of: _foo: movl 4(%esp), %eax shrl $2, %eax andl $3, %eax movl _array(,%eax,4), %eax ret As it turns out, this triggers all the time, in a wide variety of situations, for example, I see diffs like this in various programs: - movl 8(%eax), %eax - shll $2, %eax - andl $1020, %eax - movl (%esi,%eax), %eax + movzbl 8(%eax), %eax + movl (%esi,%eax,4), %eax - shll $2, %edx - andl $1020, %edx - movl (%edi,%edx), %edx + andl $255, %edx + movl (%edi,%edx,4), %edx Unfortunately, I also see stuff like this, which can be fixed in the X86 backend: - andl $85, %ebx - addl _bit_count(,%ebx,4), %ebp + shll $2, %ebx + andl $340, %ebx + addl _bit_count(%ebx), %ebp llvm-svn: 44656
-
Chris Lattner authored
llvm-svn: 44654
-
Dale Johannesen authored
llvm-svn: 44649
-
Evan Cheng authored
Fix for PR1831: if all defs of an interval are re-materializable, then it's a preferred spill candiate. llvm-svn: 44644
-
- Dec 05, 2007
-
-
Evan Cheng authored
llvm-svn: 44612
-
Evan Cheng authored
llvm-svn: 44611
-
Evan Cheng authored
llvm-svn: 44610
-
Evan Cheng authored
llvm-svn: 44609
-
Chris Lattner authored
llvm-svn: 44608
-
Chris Lattner authored
llvm-svn: 44607
-
Evan Cheng authored
This allows an important optimization to be re-enabled. - If all uses / defs of a split interval can be folded, give the interval a low spill weight so it would not be picked in case spilling is needed (avoid pushing other intervals in the same BB to be spilled). llvm-svn: 44601
-
Evan Cheng authored
the stored register is killed. llvm-svn: 44600
-
Evan Cheng authored
llvm-svn: 44587
-
- Dec 04, 2007
-
-
Evan Cheng authored
Spiller unfold optimization bug: do not clobber a reusable stack slot value unless it can be modified. llvm-svn: 44575
-
Chris Lattner authored
to codegen this: define float @test_extract_elt(<1 x float> * %P) { %p = load <1 x float>* %P %R = extractelement <1 x float> %p, i32 0 ret float %R } llvm-svn: 44570
-
Chris Lattner authored
llvm-svn: 44569
-
Evan Cheng authored
llvm-svn: 44565
-
- Dec 03, 2007
-
-
Evan Cheng authored
llvm-svn: 44549
-
Duncan Sands authored
throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). llvm-svn: 44544
-
Evan Cheng authored
llvm-svn: 44532
-
Evan Cheng authored
llvm-svn: 44531
-
- Dec 02, 2007
-
-
Evan Cheng authored
llvm-svn: 44517
-
- Dec 01, 2007
-
-
Evan Cheng authored
llvm-svn: 44482
-
Evan Cheng authored
llvm-svn: 44479
-
- Nov 30, 2007
-
-
Evan Cheng authored
llvm-svn: 44467
-
Devang Patel authored
llvm-svn: 44446
-
Evan Cheng authored
llvm-svn: 44443
-
- Nov 29, 2007
-
-
Evan Cheng authored
in the middle of a split basic block, create a new live interval starting at the def. This avoid artifically extending the live interval over a number of cycles where it is dead. e.g. bb1: = vr1204 (use / kill) <= new interval starts and ends here. ... ... vr1204 = (new def) <= start a new interval here. = vr1204 (use) llvm-svn: 44436
-
Evan Cheng authored
llvm-svn: 44434
-
Evan Cheng authored
llvm-svn: 44428
-
Evan Cheng authored
llvm-svn: 44427
-
- Nov 28, 2007
-
-
Duncan Sands authored
use them. llvm-svn: 44403
-
Duncan Sands authored
llvm-svn: 44399
-
Evan Cheng authored
llvm-svn: 44386
-
- Nov 27, 2007
-
-
Owen Anderson authored
llvm-svn: 44384
-