[llvm-commits] [llvm] r127208 - in /llvm/trunk: lib/Target/X86/ test/CodeGen/X86/

Eli Friedman eli.friedman at gmail.com
Tue Mar 8 16:42:23 PST 2011


On Mon, Mar 7, 2011 at 9:42 PM, Eric Christopher <echristo at apple.com> wrote:
> Author: echristo
> Date: Mon Mar  7 20:42:25 2011
> New Revision: 127208
>
> URL: http://llvm.org/viewvc/llvm-project?rev=127208&view=rev
> Log:
> Turn on list-ilp scheduling by default on x86 and x86-64, fix up
> testcases accordingly. Some are currently xfailed and will be filed
> as bugs to be fixed or understood.
>
> Performance results:
>
> roughly neutral on SPEC
> some micro benchmarks in the llvm suite are up between 100 and 150%, only
> a pair of regressions that are due to be investigated
>
> john-the-ripper saw:
> 10% improvement in traditional DES
> 8% improvement in BSDI DES
> 59% improvement in FreeBSD MD5
> 67% improvement in OpenBSD Blowfish
> 14% improvement in LM DES
>
> Small compile time impact.
>
>
> Modified:
>    llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
>    llvm/trunk/test/CodeGen/X86/2006-05-01-SchedCausingSpills.ll
>    llvm/trunk/test/CodeGen/X86/2008-07-11-SpillerBug.ll
>    llvm/trunk/test/CodeGen/X86/2008-07-19-movups-spills.ll
>    llvm/trunk/test/CodeGen/X86/2008-08-05-SpillerBug.ll
>    llvm/trunk/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll
>    llvm/trunk/test/CodeGen/X86/2009-04-20-LinearScanOpt.ll
>    llvm/trunk/test/CodeGen/X86/2010-05-03-CoalescerSubRegClobber.ll
>    llvm/trunk/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll
>    llvm/trunk/test/CodeGen/X86/break-anti-dependencies.ll
>    llvm/trunk/test/CodeGen/X86/coalesce-esp.ll
>    llvm/trunk/test/CodeGen/X86/commute-two-addr.ll
>    llvm/trunk/test/CodeGen/X86/fold-pcmpeqd-0.ll
>    llvm/trunk/test/CodeGen/X86/lsr-loop-exit-cond.ll
>    llvm/trunk/test/CodeGen/X86/lsr-reuse.ll
>    llvm/trunk/test/CodeGen/X86/pr1505b.ll
>    llvm/trunk/test/CodeGen/X86/remat-scalar-zero.ll
>    llvm/trunk/test/CodeGen/X86/v-binop-widen.ll
>    llvm/trunk/test/CodeGen/X86/zext-sext.ll
>
> Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Mon Mar  7 20:42:25 2011
> @@ -221,7 +221,7 @@
>
>   // X86 is weird, it always uses i8 for shift amounts and setcc results.
>   setBooleanContents(ZeroOrOneBooleanContent);
> -  setSchedulingPreference(Sched::RegPressure);
> +  setSchedulingPreference(Sched::ILP);
>   setStackPointerRegisterToSaveRestore(X86StackPtr);
>
>   if (Subtarget->isTargetWindows() && !Subtarget->isTargetCygMing()) {
>
> Modified: llvm/trunk/test/CodeGen/X86/2006-05-01-SchedCausingSpills.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2006-05-01-SchedCausingSpills.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/2006-05-01-SchedCausingSpills.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/2006-05-01-SchedCausingSpills.ll Mon Mar  7 20:42:25 2011
> @@ -1,3 +1,4 @@
> +; XFAIL: *
>  ; RUN: llc < %s -march=x86 -mcpu=yonah -stats |& \
>  ; RUN:   not grep {Number of register spills}
>  ; END.
>
> Modified: llvm/trunk/test/CodeGen/X86/2008-07-11-SpillerBug.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2008-07-11-SpillerBug.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/2008-07-11-SpillerBug.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/2008-07-11-SpillerBug.ll Mon Mar  7 20:42:25 2011
> @@ -4,7 +4,6 @@
>  ; CHECK: andl    $65534, %
>  ; CHECK-NEXT: movl %
>  ; CHECK-NEXT: movzwl
> -; CHECK-NEXT: movl $17
>
>  @g_5 = external global i16             ; <i16*> [#uses=2]
>  @g_107 = external global i16           ; <i16*> [#uses=1]
>
> Modified: llvm/trunk/test/CodeGen/X86/2008-07-19-movups-spills.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2008-07-19-movups-spills.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/2008-07-19-movups-spills.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/2008-07-19-movups-spills.ll Mon Mar  7 20:42:25 2011
> @@ -1,7 +1,9 @@
> -; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=1 -mattr=sse2 | grep movaps | count 75
> -; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=0 -mattr=sse2 | grep movaps | count 75
> +; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=1 -mattr=sse2 | grep movups | count 33
> +; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=0 -mattr=sse2 | grep movups | count 33
>  ; PR2539
>  ; PR8969 - make 32-bit linux have a 16-byte aligned stack
> +; Verify that movups is still generated with an aligned stack for the globals
> +; that must be accessed unaligned
>
>  external global <4 x float>, align 1           ; <<4 x float>*>:0 [#uses=2]
>  external global <4 x float>, align 1           ; <<4 x float>*>:1 [#uses=1]
>
> Modified: llvm/trunk/test/CodeGen/X86/2008-08-05-SpillerBug.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2008-08-05-SpillerBug.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/2008-08-05-SpillerBug.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/2008-08-05-SpillerBug.ll Mon Mar  7 20:42:25 2011
> @@ -1,4 +1,4 @@
> -; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=yonah -disable-fp-elim -stats |& grep asm-printer | grep 55
> +; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=yonah -pre-RA-sched=list-burr -disable-fp-elim -stats |& grep asm-printer | grep 55
>  ; PR2568
>
>  @g_3 = external global i16             ; <i16*> [#uses=1]
>
> Modified: llvm/trunk/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll Mon Mar  7 20:42:25 2011
> @@ -1,6 +1,6 @@
>  ; Check that eh_return & unwind_init were properly lowered
>  ; RUN: llc < %s | grep %ebp | count 7
> -; RUN: llc < %s | grep %ecx | count 5
> +; RUN: llc < %s | grep %edx | count 5
>
>  target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"
>  target triple = "i386-pc-linux"
>
> Modified: llvm/trunk/test/CodeGen/X86/2009-04-20-LinearScanOpt.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2009-04-20-LinearScanOpt.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/2009-04-20-LinearScanOpt.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/2009-04-20-LinearScanOpt.ll Mon Mar  7 20:42:25 2011
> @@ -1,4 +1,4 @@
> -; RUN: llc < %s -mtriple=x86_64-apple-darwin10.0 -relocation-model=pic -disable-fp-elim -stats |& grep asm-printer | grep 82
> +; RUN: llc < %s -mtriple=x86_64-apple-darwin10.0 -relocation-model=pic -disable-fp-elim -stats |& grep asm-printer | grep 79
>  ; rdar://6802189
>
>  ; Test if linearscan is unfavoring registers for allocation to allow more reuse
>
> Modified: llvm/trunk/test/CodeGen/X86/2010-05-03-CoalescerSubRegClobber.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2010-05-03-CoalescerSubRegClobber.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/2010-05-03-CoalescerSubRegClobber.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/2010-05-03-CoalescerSubRegClobber.ll Mon Mar  7 20:42:25 2011
> @@ -1,4 +1,4 @@
> -; RUN: llc < %s | FileCheck %s
> +; RUN: llc -pre-RA-sched=list-burr < %s | FileCheck %s
>  ; PR6941
>  target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
>  target triple = "x86_64-apple-darwin10.0.0"
>
> Modified: llvm/trunk/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll Mon Mar  7 20:42:25 2011
> @@ -19,8 +19,8 @@
>  }
>
>  ; CHECK: movq  ___stack_chk_guard at GOTPCREL(%rip), %rax
> -; CHECK: movb  30(%rsp), %dl
> -; CHECK: movb  (%rsp), %sil
> -; CHECK: movb  %sil, (%rsp)
> -; CHECK: movb  %dl, 30(%rsp)
> +; CHECK: movb   38(%rsp), %bl
> +; CHECK: movb   8(%rsp), %dl
> +; CHECK: movb   %dl, 8(%rsp)
> +; CHECK: movb   %bl, 38(%rsp)
>  ; CHECK: callq ___stack_chk_fail
>
> Modified: llvm/trunk/test/CodeGen/X86/break-anti-dependencies.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/break-anti-dependencies.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/break-anti-dependencies.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/break-anti-dependencies.ll Mon Mar  7 20:42:25 2011
> @@ -1,4 +1,5 @@
> -; RUN: llc < %s -march=x86-64 -post-RA-scheduler -break-anti-dependencies=none > %t
> +; Without list-burr scheduling we may not see the difference in codegen here.
> +; RUN: llc < %s -march=x86-64 -post-RA-scheduler -pre-RA-sched=list-burr -break-anti-dependencies=none > %t
>  ; RUN:   grep {%xmm0} %t | count 14
>  ; RUN:   not grep {%xmm1} %t
>  ; RUN: llc < %s -march=x86-64 -post-RA-scheduler -break-anti-dependencies=critical > %t
>
> Modified: llvm/trunk/test/CodeGen/X86/coalesce-esp.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/coalesce-esp.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/coalesce-esp.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/coalesce-esp.ll Mon Mar  7 20:42:25 2011
> @@ -1,4 +1,4 @@
> -; RUN: llc < %s | grep {movl   %esp, %ecx}
> +; RUN: llc < %s | grep {movl   %esp, %ebp}
>  ; PR4572
>
>  ; Don't coalesce with %esp if it would end up putting %esp in
>
> Modified: llvm/trunk/test/CodeGen/X86/commute-two-addr.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/commute-two-addr.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/commute-two-addr.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/commute-two-addr.ll Mon Mar  7 20:42:25 2011
> @@ -38,11 +38,10 @@
>  define %0 @t3(i32 %lb, i8 zeroext %has_lb, i8 zeroext %lb_inclusive, i32 %ub, i8 zeroext %has_ub, i8 zeroext %ub_inclusive) nounwind {
>  entry:
>  ; DARWIN: t3:
> +; DARWIN: shll $16
>  ; DARWIN: shlq $32, %rcx
>  ; DARWIN-NOT: leaq
>  ; DARWIN: orq %rcx, %rax
> -; DARWIN-NOT: mov
> -; DARWIN: shll $16
>   %tmp21 = zext i32 %lb to i64
>   %tmp23 = zext i32 %ub to i64
>   %tmp24 = shl i64 %tmp23, 32
>
> Modified: llvm/trunk/test/CodeGen/X86/fold-pcmpeqd-0.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fold-pcmpeqd-0.ll?rev=127208&r1=127207&r2=127208&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/fold-pcmpeqd-0.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/fold-pcmpeqd-0.ll Mon Mar  7 20:42:25 2011
> @@ -1,5 +1,4 @@
> -; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=yonah  | not grep pcmpeqd
> -; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=yonah  | grep orps | grep CPI0_2  | count 2
> +; RUN: llc < %s -mtriple=i386-apple-darwin | grep pcmpeqd | count 1
>  ; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep pcmpeqd | count 1
>
>  ; This testcase shouldn't need to spill the -1 value,

It looks like the change to this test is causing the failure at
http://google1.osuosl.org:8011/builders/llvm-arm-linux/builds/593/

-Eli




More information about the llvm-commits mailing list