From dc0b8159890134a59fdf34b20e8b2052d9456441 Mon Sep 17 00:00:00 2001 From: Pavel Iliin Date: Sat, 15 Feb 2020 10:50:59 +0000 Subject: [PATCH] [AArch64][FIX] Correct register live range during pseudo expansion. This commit fixes the broken tests after commit b6a9fe209992789be3ed95664d25196361cfad34 on the expensive check builder: http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-ubuntu/builds/2884 --- llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp b/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp index 491f049..496056f 100644 --- a/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp +++ b/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp @@ -464,14 +464,18 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock &MBB, BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(Opcode == AArch64::BSPv8i8 ? AArch64::ORRv8i8 : AArch64::ORRv16i8)) - .addReg(DstReg, RegState::Define) + .addReg(DstReg, + RegState::Define | + getRenamableRegState(MI.getOperand(0).isRenamable())) .add(MI.getOperand(1)) .add(MI.getOperand(1)); BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(Opcode == AArch64::BSPv8i8 ? AArch64::BSLv8i8 : AArch64::BSLv16i8)) .add(MI.getOperand(0)) - .addReg(DstReg, RegState::Kill) + .addReg(DstReg, + RegState::Kill | + getRenamableRegState(MI.getOperand(0).isRenamable())) .add(MI.getOperand(2)) .add(MI.getOperand(3)); } -- 2.7.4