From c8c5c8f0fad4d1bd54ccd372255c9802287625f2 Mon Sep 17 00:00:00 2001 From: Nate Begeman Date: Tue, 5 Apr 2005 04:32:16 +0000 Subject: [PATCH] Back out the previous change to SelectBranchCC, since there are cases it could miscompile. A correct solution will be found in the near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21095 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCISelPattern.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/Target/PowerPC/PPCISelPattern.cpp b/lib/Target/PowerPC/PPCISelPattern.cpp index f480ed21eb6..dd1a4f331bf 100644 --- a/lib/Target/PowerPC/PPCISelPattern.cpp +++ b/lib/Target/PowerPC/PPCISelPattern.cpp @@ -667,13 +667,20 @@ void ISel::SelectBranchCC(SDOperand N) // Get the MBB we will fall through to so that we can hand it off to the // branch selection pass as an argument to the PPC::COND_BRANCH pseudo op. - ilist::iterator It = BB; - MachineBasicBlock *Fallthrough = ++It; + //ilist::iterator It = BB; + //MachineBasicBlock *Fallthrough = ++It; Select(N.getOperand(0)); //chain unsigned Opc = SelectSetCR0(N.getOperand(1)); - BuildMI(BB, PPC::COND_BRANCH, 4).addReg(PPC::CR0).addImm(Opc) - .addMBB(Dest).addMBB(Fallthrough); + // FIXME: Use this once we have something approximating two-way branches + // We cannot currently use this in case the ISel hands us something like + // BRcc MBBx + // BR MBBy + // since the fallthrough basic block for the conditional branch does not start + // with the unconditional branch (it is skipped over). + //BuildMI(BB, PPC::COND_BRANCH, 4).addReg(PPC::CR0).addImm(Opc) + // .addMBB(Dest).addMBB(Fallthrough); + BuildMI(BB, Opc, 2).addReg(PPC::CR0).addMBB(Dest); return; }