From: Ahmed Bougacha Date: Mon, 12 Sep 2016 16:05:31 +0000 (+0000) Subject: [BranchFolding] Unique added live-ins after hoisting code. X-Git-Tag: llvmorg-4.0.0-rc1~10054 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b678219aa6263c88064cb1035d8f03b782c5885c;p=platform%2Fupstream%2Fllvm.git [BranchFolding] Unique added live-ins after hoisting code. We're not supposed to have duplicate live-ins. llvm-svn: 281224 --- diff --git a/llvm/lib/CodeGen/BranchFolding.cpp b/llvm/lib/CodeGen/BranchFolding.cpp index 06a8222..0d4a071 100644 --- a/llvm/lib/CodeGen/BranchFolding.cpp +++ b/llvm/lib/CodeGen/BranchFolding.cpp @@ -1972,14 +1972,21 @@ bool BranchFolder::HoistCommonCodeInSuccs(MachineBasicBlock *MBB) { 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; } diff --git a/llvm/test/CodeGen/X86/tail-call-conditional.mir b/llvm/test/CodeGen/X86/tail-call-conditional.mir index cf24eed..3646076 100644 --- a/llvm/test/CodeGen/X86/tail-call-conditional.mir +++ b/llvm/test/CodeGen/X86/tail-call-conditional.mir @@ -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