Commit eb19e9e9 authored by Eric Christopher's avatar Eric Christopher
Browse files

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.

llvm-svn: 127208
parent 6203d49b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -221,7 +221,7 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)

  // 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()) {
+1 −0
Original line number Diff line number Diff line
; XFAIL: *
; RUN: llc < %s -march=x86 -mcpu=yonah -stats |& \
; RUN:   not grep {Number of register spills}
; END.
+0 −1
Original line number Diff line number Diff line
@@ -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]
+4 −2
Original line number Diff line number Diff line
; 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]
+1 −1
Original line number Diff line number Diff line
; 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]
Loading