mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-02 16:36:40 +00:00
84a719b414
Summary: r347747 added support for clustering mem ops with FI base operands including support for fixed stack objects in shouldClusterFI, but apparently this was never tested. This patch fixes shouldClusterFI to work with scaled as well as unscaled load/store instructions, and fixes the ordering of memory ops in MemOpInfo::operator< to ensure that memory addresses always increase, regardless of which direction the stack grows. Subscribers: MatzeB, kristof.beyls, hiraditya, javed.absar, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71334
54 lines
1.3 KiB
YAML
54 lines
1.3 KiB
YAML
#RUN: llc -mtriple=aarch64-- -mcpu=cyclone -run-pass machine-scheduler -o - %s | FileCheck %s
|
|
---
|
|
name: merge_stack
|
|
# CHECK-LABEL: name: merge_stack
|
|
tracksRegLiveness: true
|
|
stack:
|
|
- { id: 0, size: 16, alignment: 8 }
|
|
body: |
|
|
bb.0:
|
|
liveins: $w0, $w1
|
|
|
|
%0:gpr32 = COPY $w0
|
|
%1:gpr32 = COPY $w1
|
|
undef %3.sub_32:gpr64 = ORRWrs $wzr, %0, 0
|
|
STRXui %3, %stack.0, 0 :: (store 8)
|
|
undef %5.sub_32:gpr64 = ORRWrs $wzr, %1, 0
|
|
STRXui %5, %stack.0, 1 :: (store 8)
|
|
RET_ReallyLR
|
|
|
|
; CHECK: COPY
|
|
; CHECK-NEXT: COPY
|
|
; CHECK-NEXT: ORRWrs
|
|
; CHECK-NEXT: ORRWrs
|
|
; CHECK-NEXT: STRXui
|
|
; CHECK-NEXT: STRXui
|
|
; CHECK-NEXT: RET
|
|
...
|
|
---
|
|
name: merge_fixedstack
|
|
# CHECK-LABEL: name: merge_fixedstack
|
|
tracksRegLiveness: true
|
|
fixedStack:
|
|
- { id: 0, size: 16, alignment: 8, offset: -16 }
|
|
body: |
|
|
bb.0:
|
|
liveins: $w0, $w1
|
|
|
|
%0:gpr32 = COPY $w0
|
|
%1:gpr32 = COPY $w1
|
|
undef %3.sub_32:gpr64 = ORRWrs $wzr, %0, 0
|
|
STRXui %3, %fixed-stack.0, 0 :: (store 8)
|
|
undef %5.sub_32:gpr64 = ORRWrs $wzr, %1, 0
|
|
STRXui %5, %fixed-stack.0, 1 :: (store 8)
|
|
RET_ReallyLR
|
|
|
|
; CHECK: COPY
|
|
; CHECK-NEXT: COPY
|
|
; CHECK-NEXT: ORRWrs
|
|
; CHECK-NEXT: ORRWrs
|
|
; CHECK-NEXT: STRXui
|
|
; CHECK-NEXT: STRXui
|
|
; CHECK-NEXT: RET
|
|
...
|