[llvm-commits] [llvm] r145779 - in /llvm/trunk: lib/Target/Sparc/SparcInstrInfo.cpp test/CodeGen/SPARC/2011-12-03-TailDuplication.ll

Venkatraman Govindaraju venkatra at cs.wisc.edu
Sat Dec 3 13:24:48 PST 2011


Author: venkatra
Date: Sat Dec  3 15:24:48 2011
New Revision: 145779

URL: http://llvm.org/viewvc/llvm-project?rev=145779&view=rev
Log:
Sparc CodeGen: Fix AnalyzeBranch for PR 10282. Removing addSuccessor() since
AnalyzeBranch doesn't change the successor, just the order.

Added:
    llvm/trunk/test/CodeGen/SPARC/2011-12-03-TailDuplication.ll
Modified:
    llvm/trunk/lib/Target/Sparc/SparcInstrInfo.cpp

Modified: llvm/trunk/lib/Target/Sparc/SparcInstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcInstrInfo.cpp?rev=145779&r1=145778&r2=145779&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Sparc/SparcInstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/Sparc/SparcInstrInfo.cpp Sat Dec  3 15:24:48 2011
@@ -195,7 +195,7 @@
           .addMBB(UnCondBrIter->getOperand(0).getMBB()).addImm(BranchCode);
         BuildMI(MBB, UnCondBrIter, MBB.findDebugLoc(I), get(SP::BA))
           .addMBB(TargetBB);
-        MBB.addSuccessor(TargetBB);
+
         OldInst->eraseFromParent();
         UnCondBrIter->eraseFromParent();
 

Added: llvm/trunk/test/CodeGen/SPARC/2011-12-03-TailDuplication.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SPARC/2011-12-03-TailDuplication.ll?rev=145779&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/SPARC/2011-12-03-TailDuplication.ll (added)
+++ llvm/trunk/test/CodeGen/SPARC/2011-12-03-TailDuplication.ll Sat Dec  3 15:24:48 2011
@@ -0,0 +1,25 @@
+; RUN: llc -march=sparc <%s
+
+define void @foo(i32 %a) nounwind {
+entry:
+  br i1 undef, label %return, label %else.0
+
+else.0:
+  br i1 undef, label %if.end.0, label %return
+
+if.end.0:
+  br i1 undef, label %if.then.1, label %else.1
+
+else.1:
+  %0 = bitcast i8* undef to i8**
+  br label %else.1.2
+
+if.then.1:
+  br i1 undef, label %return, label %return
+
+else.1.2:
+  br i1 undef, label %return, label %return
+
+return:
+  ret void
+}





More information about the llvm-commits mailing list