[llvm] r281224 - [BranchFolding] Unique added live-ins after hoisting code.

Ahmed Bougacha via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 12 09:05:31 PDT 2016


Author: ab
Date: Mon Sep 12 11:05:31 2016
New Revision: 281224

URL: http://llvm.org/viewvc/llvm-project?rev=281224&view=rev
Log:
[BranchFolding] Unique added live-ins after hoisting code.

We're not supposed to have duplicate live-ins.

Modified:
    llvm/trunk/lib/CodeGen/BranchFolding.cpp
    llvm/trunk/test/CodeGen/X86/tail-call-conditional.mir

Modified: llvm/trunk/lib/CodeGen/BranchFolding.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/BranchFolding.cpp?rev=281224&r1=281223&r2=281224&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/BranchFolding.cpp (original)
+++ llvm/trunk/lib/CodeGen/BranchFolding.cpp Mon Sep 12 11:05:31 2016
@@ -1972,14 +1972,21 @@ bool BranchFolder::HoistCommonCodeInSucc
   FBB->erase(FBB->begin(), FIB);
 
   // Update livein's.
+  bool AddedLiveIns = false;
   for (unsigned i = 0, e = LocalDefs.size(); i != e; ++i) {
     unsigned Def = LocalDefs[i];
     if (LocalDefsSet.count(Def)) {
       TBB->addLiveIn(Def);
       FBB->addLiveIn(Def);
+      AddedLiveIns = true;
     }
   }
 
+  if (AddedLiveIns) {
+    TBB->sortUniqueLiveIns();
+    FBB->sortUniqueLiveIns();
+  }
+
   ++NumHoist;
   return true;
 }

Modified: llvm/trunk/test/CodeGen/X86/tail-call-conditional.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/tail-call-conditional.mir?rev=281224&r1=281223&r2=281224&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/tail-call-conditional.mir (original)
+++ llvm/trunk/test/CodeGen/X86/tail-call-conditional.mir Mon Sep 12 11:05:31 2016
@@ -66,7 +66,7 @@ body:             |
     TCRETURNdi64 @f1, 0, csr_64, implicit %rsp, implicit %rdi, implicit %rsi
 
   ; CHECK: bb.2:
-  ; CHECK-NEXT: liveins: %rax, %rsi, %rdi, %rsi
+  ; CHECK-NEXT: liveins: %rax, %rdi, %rsi
   ; CHECK-NEXT: {{^  $}}
   ; CHECK-NEXT: TCRETURNdi64 @f2, 0, csr_64, implicit %rsp, implicit %rdi, implicit %rsi
 




More information about the llvm-commits mailing list