From b678219aa6263c88064cb1035d8f03b782c5885c Mon Sep 17 00:00:00 2001 From: Ahmed Bougacha Date: Mon, 12 Sep 2016 16:05:31 +0000 Subject: [PATCH] [BranchFolding] Unique added live-ins after hoisting code. We're not supposed to have duplicate live-ins. llvm-svn: 281224 --- llvm/lib/CodeGen/BranchFolding.cpp | 7 +++++++ llvm/test/CodeGen/X86/tail-call-conditional.mir | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) 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 -- 2.7.4