[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