[LLVMbugs] [Bug 17593] New: Fix A9 instruction scheduling using the new machine model.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Oct 15 21:36:13 PDT 2013


http://llvm.org/bugs/show_bug.cgi?id=17593

            Bug ID: 17593
           Summary: Fix A9 instruction scheduling using the new machine
                    model.
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: atrick at apple.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Source:

#define N  2000000
static double b[N], c[N];
void Scale () {
    double scalar = 3.0;
    for (int j=0;j<N;j++)
        b[j] = scalar*c[j];
}

$clang -O3 foo.c -static -S -o foo.s  -mllvm -unroll-count=4 -mcpu=cortex-a9
-fno-vectorize -fno-slp-vectorize --target=arm -mfloat-abi=hard -mllvm
-enable-misched -mllvm -scheditins=false

per-operand cost model :
Scale:
  push  {lr}
  movw  r12, :lower16:c
  movw  lr, :lower16:b
  movw  r3, #9216
  movt  r12, :upper16:c
  mov r1, #0
  vmov.f64  d16, #3.000000e+00
  movt  lr, :upper16:b
  movt  r3, #244
.LBB0_1:
  add r0, r12, r1
  add r2, lr, r1
  vldr  d17, [r0]
  add r1, r1, #32
  vmul.f64  d17, d17, d16
  cmp r1, r3
  vstr  d17, [r2]
  vldr  d17, [r0, #8]
  vmul.f64  d17, d17, d16
  vstr  d17, [r2, #8]
  vldr  d17, [r0, #16]
  vmul.f64  d17, d17, d16
  vstr  d17, [r2, #16]
  vldr  d17, [r0, #24]
  vmul.f64  d17, d17, d16
  vstr  d17, [r2, #24]
  bne .LBB0_1
  pop {lr}
  bx  lr
.Ltmp0:

Using Itinerary will generate better scheduled code:
clang -O3 foo.c -static -S -o foo.s  -mllvm -unroll-count=4 -mcpu=cortex-a9
-fno-vectorize -fno-slp-vectorize --target=arm -mfloat-abi=hard -mllvm
-enable-misched

Scale:
  movw  r12, :lower16:c
  movw  r2, :lower16:b
  movw  r3, #9216
  movt  r12, :upper16:c
  mov r1, #0
  vmov.f64  d16, #3.000000e+00
  movt  r2, :upper16:b
  movt  r3, #244
.LBB0_1:
  add r0, r12, r1
  vldr  d17, [r0]
  vldr  d18, [r0, #8]
  vmul.f64  d17, d17, d16
  vldr  d19, [r0, #16]
  vldr  d20, [r0, #24]
  add r0, r2, r1
  vmul.f64  d18, d18, d16
  add r1, r1, #32
  cmp r1, r3
  vmul.f64  d19, d19, d16
  vmul.f64  d20, d20, d16
  vstmia  r0, {d17, d18, d19, d20}
  bne .LBB0_1
  bx  lr

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20131016/7695fb63/attachment.html>


More information about the llvm-bugs mailing list