[llvm] r217120 - Revert r216803 "[MachineSinking] Clear kill flag of all operands at all their uses."
Juergen Ributzka
juergen at apple.com
Wed Sep 3 19:07:36 PDT 2014
Author: ributzka
Date: Wed Sep 3 21:07:36 2014
New Revision: 217120
URL: http://llvm.org/viewvc/llvm-project?rev=217120&view=rev
Log:
Revert r216803 "[MachineSinking] Clear kill flag of all operands at all their uses."
This reverts commit r216803, because it might have broken the buildbot.
The issue is tracked in PR20842.
Removed:
llvm/trunk/test/CodeGen/AArch64/fast-isel-machine-sink.ll
Modified:
llvm/trunk/lib/CodeGen/MachineSink.cpp
Modified: llvm/trunk/lib/CodeGen/MachineSink.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineSink.cpp?rev=217120&r1=217119&r2=217120&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineSink.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineSink.cpp Wed Sep 3 21:07:36 2014
@@ -724,19 +724,9 @@ bool MachineSinking::SinkInstruction(Mac
++MachineBasicBlock::iterator(DbgMI));
}
- // When sinking the instruction the live time of its operands can be extended
- // bejond their original last use (marked with a kill flag). Conservatively
- // clear the kill flag in all instructions that use the same operand
- // registers.
- for (auto &MO : MI->uses())
- if (MO.isReg() && MO.isUse()) {
- // Preserve the kill flag for this instruction.
- bool IsKill = MO.isKill();
- // Clear the kill flag in all instruction that use this operand.
- MRI->clearKillFlags(MO.getReg());
- // Restore the kill flag for only this instruction.
- MO.setIsKill(IsKill);
- }
+ // Conservatively, clear any kill flags, since it's possible that they are no
+ // longer correct.
+ MI->clearKillInfo();
return true;
}
Removed: llvm/trunk/test/CodeGen/AArch64/fast-isel-machine-sink.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/fast-isel-machine-sink.ll?rev=217119&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/fast-isel-machine-sink.ll (original)
+++ llvm/trunk/test/CodeGen/AArch64/fast-isel-machine-sink.ll (removed)
@@ -1,27 +0,0 @@
-; RUN: llc -mtriple=aarch64-apple-darwin -fast-isel -verify-machineinstrs < %s
-
-define void @test() {
- %sext = shl i64 undef, 32
- %1 = ashr exact i64 %sext, 32
- %2 = icmp sgt i64 undef, %1
- br i1 %2, label %3, label %.critedge1
-
-; <label>:3 ; preds = %0
- %4 = getelementptr inbounds i32* undef, i64 %1
- %5 = load i32* %4, align 4
- br i1 undef, label %6, label %.critedge1
-
-; <label>:6 ; preds = %3
- %7 = and i32 %5, 255
- %8 = icmp eq i32 %7, 255
- br i1 %8, label %.lr.ph, label %._crit_edge
-
-.lr.ph: ; preds = %.lr.ph, %6
- br i1 undef, label %.lr.ph, label %.critedge1
-
-._crit_edge: ; preds = %6
- ret void
-
-.critedge1: ; preds = %.lr.ph, %3, %0
- ret void
-}
More information about the llvm-commits
mailing list