mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
[PowerPC] Fix broken kill flag after MI peephole
The test case in https://bugs.llvm.org/show_bug.cgi?id=47373 exposed two bugs in the PPC back end. The first one was fixed in commit 27714075848e7f05a297317ad28ad2570d8e5a43 but the test case had to be added without -verify-machineinstrs due to the second bug. This commit fixes the use-after-kill that is left behind by the PPC MI peephole optimization.
This commit is contained in:
parent
dc1e85f7b4
commit
130297b6e7
@ -1555,6 +1555,8 @@ bool PPCMIPeephole::emitRLDICWhenLoweringJumpTables(MachineInstr &MI) {
|
||||
MI.getOperand(1).setReg(SrcMI->getOperand(1).getReg());
|
||||
MI.getOperand(2).setImm(NewSH);
|
||||
MI.getOperand(3).setImm(NewMB);
|
||||
MI.getOperand(1).setIsKill(SrcMI->getOperand(1).isKill());
|
||||
SrcMI->getOperand(1).setIsKill(false);
|
||||
|
||||
LLVM_DEBUG(dbgs() << "To: ");
|
||||
LLVM_DEBUG(MI.dump());
|
||||
|
@ -51,4 +51,4 @@ body: |
|
||||
#
|
||||
# CHECK-PASS-NOT: %2:g8rc = RLDICL killed %1, 0, 32
|
||||
# CHECK-PASS-NOT: %3:g8rc = RLDICR %2, 2, 61
|
||||
# CHECK-PASS: %3:g8rc = RLDIC %1, 2, 30
|
||||
# CHECK-PASS: %3:g8rc = RLDIC killed %1, 2, 30
|
||||
|
@ -31,7 +31,7 @@ body: |
|
||||
; CHECK: bb.0.entry:
|
||||
; CHECK: %1:g8rc = COPY $x4
|
||||
; CHECK: %0:g8rc = COPY $x3
|
||||
; CHECK: %3:g8rc = RLDIC %1, 2, 30
|
||||
; CHECK: %3:g8rc = RLDIC killed %1, 2, 30
|
||||
; CHECK: $x3 = COPY %3
|
||||
; CHECK: BLR8 implicit $lr8, implicit $rm, implicit $x3
|
||||
...
|
||||
|
@ -1,5 +1,5 @@
|
||||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; RUN: llc -mtriple=powerpc64-unknown-freebsd13.0 \
|
||||
; RUN: llc -mtriple=powerpc64-unknown-freebsd13.0 -verify-machineinstrs \
|
||||
; RUN: -mcpu=ppc64 -ppc-asm-full-reg-names < %s | FileCheck %s
|
||||
@a = local_unnamed_addr global float* null, align 8
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user