[PATCH] D73682: [ARM][LowOverheadLoops] Check scalar predicates
Sam Parker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 30 01:14:57 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG6726d67bfd9e: [ARM][LowOverheadLoops] Check scalar predicates (authored by samparker).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D73682/new/
https://reviews.llvm.org/D73682
Files:
llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir
Index: llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir
===================================================================
--- llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir
+++ llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir
@@ -1,5 +1,5 @@
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
-# RUN: llc -mtriple=thumbv8.1m.main -mattr=+mve -run-pass=arm-low-overhead-loops %s -o - | FileCheck %s
+# RUN: llc -mtriple=thumbv8.1m.main -mattr=+mve -run-pass=arm-low-overhead-loops %s -o - --verify-machineinstrs | FileCheck %s
--- |
define hidden arm_aapcs_vfpcc void @dont_ignore_vctp(float* %pSrc, float* %pDst, i32 %blockSize) local_unnamed_addr #0 {
@@ -100,8 +100,11 @@
; CHECK: frame-setup CFI_INSTRUCTION def_cfa_offset 8
; CHECK: frame-setup CFI_INSTRUCTION offset $lr, -4
; CHECK: frame-setup CFI_INSTRUCTION offset $r7, -8
- ; CHECK: renamable $r3, dead $cpsr = tLSLri killed renamable $r2, 1, 14, $noreg
- ; CHECK: t2IT 11, 8, implicit-def dead $itstate
+ ; CHECK: renamable $r3, dead $cpsr = tLSLri renamable $r2, 1, 14, $noreg
+ ; CHECK: renamable $r12 = t2MOVi 4, 14, $noreg, $noreg
+ ; CHECK: tCMPi8 renamable $r3, 4, 14, $noreg, implicit-def $cpsr
+ ; CHECK: t2IT 11, 8, implicit-def $itstate
+ ; CHECK: dead $r12 = t2LSLri killed renamable $r2, 1, 11, killed $cpsr, $noreg, implicit killed renamable $r12, implicit killed $itstate
; CHECK: renamable $r2 = tLEApcrel %const.0, 14, $noreg
; CHECK: renamable $q0 = MVE_VLDRWU32 killed renamable $r2, 0, 0, $noreg :: (load 16 from constant-pool)
; CHECK: $lr = MVE_DLSTP_32 killed renamable $r3
Index: llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
===================================================================
--- llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
+++ llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
@@ -835,6 +835,9 @@
while (!Chain.empty()) {
MachineInstr *MI = Chain.back();
Chain.pop_back();
+ if (TII->getPredicate(*MI) != ARMCC::AL)
+ continue;
+
if (RDA->isSafeToRemove(MI, Remove, Ignore)) {
for (auto &MO : MI->operands()) {
if (!MO.isReg() || !MO.isUse() || MO.getReg() == 0)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73682.241365.patch
Type: text/x-patch
Size: 2263 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200130/61a247cc/attachment.bin>
More information about the llvm-commits
mailing list