[llvm-bugs] [Bug 51627] New: [AArch64][MIScheduler] UseAA incorrectly reordering struct load and store that alias

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Aug 25 14:50:29 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=51627

            Bug ID: 51627
           Summary: [AArch64][MIScheduler] UseAA incorrectly reordering
                    struct load and store that alias
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: cameron.mcinally at nyu.edu
                CC: david.green at arm.com, htmldeveloper at gmail.com,
                    llvm-bugs at lists.llvm.org, Paul.Walker at arm.com

Created attachment 25194
  --> https://bugs.llvm.org/attachment.cgi?id=25194&action=edit
Reduced test case

The attached test case miscompiles at -O1:

> llc test.ll -O1 -mcpu=carmel

This is a regression, found in release/13.x, from this commit:

>commit af342f72400445b85c38ba768439c495d7cf346f
>Author: David Green <david.green at arm.com>
>Date: Sat Apr 24 17:51:50 2021 +0100
>
>[AArch64] Enable UseAA globally in the AArch64 backend
>
>This is similar to D69796 from the ARM backend. We remove the UseAA
>feature, enabling it globally in the AArch64 backend. This should in
>general be an improvement allowing the backend to reorder more
>instructions in scheduling and codegen, and enabling it by default helps
>to improve the testing of the feature, not making it cpu-specific. A
>debugging option is added instead for testing.

The Machine Instruction Scheduler is reordering a load and store that alias:

.Ltmp2:
adrp x8, .S01101
add x8, x8, :lo12:.S01101
ldr w9, [x8]
str w9, [sp, #8]
ldrb w8, [x8, #4]
ldr x0, [sp, #8] <== HERE
strb w8, [sp, #12] <== AND HERE
bl foo
mov w0, wzr
ldr x30, [sp], #16 // 8-byte Folded Reload
ret

The 8b store to sp+12 should happen before the 64b load from sp+8.

-- 
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/20210825/dc7808fb/attachment.html>


More information about the llvm-bugs mailing list