[llvm-commits] [llvm] r133004 - /llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Eli Friedman
eli.friedman at gmail.com
Tue Jun 14 12:13:42 PDT 2011
On Tue, Jun 14, 2011 at 11:12 AM, Rafael Espindola
<rafael.espindola at gmail.com> wrote:
> Author: rafael
> Date: Tue Jun 14 13:12:31 2011
> New Revision: 133004
>
> URL: http://llvm.org/viewvc/llvm-project?rev=133004&view=rev
> Log:
> Partial revert of 132882.
> Dan noted that this would work on the case shown on the commit message. I think
> the case that was failing was a bb ending with a redundant conditional jump:
>
> ...
> jne foo
>
> foo:
> ...
>
> I was unable to find any such case in the tests or in a debug build of clang,
> so I will revert this part of the patch and watch the bots.
This is making stuff explode; try
test-suite/SingleSource/Benchmarks/Adobe-C++/stepanov_vector.cpp , for
example.
-Eli
> Modified:
> llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=133004&r1=133003&r2=133004&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Tue Jun 14 13:12:31 2011
> @@ -1925,7 +1925,7 @@
> return false;
>
> // The predecessor has to be immediately before this block.
> - MachineBasicBlock *Pred = *PI;
> + const MachineBasicBlock *Pred = *PI;
>
> if (!Pred->isLayoutSuccessor(MBB))
> return false;
> @@ -1934,26 +1934,9 @@
> if (Pred->empty())
> return true;
>
> - // Check the terminators in the previous blocks
> - for (MachineBasicBlock::iterator II = Pred->getFirstTerminator(),
> - IE = Pred->end(); II != IE; ++II) {
> - MachineInstr &MI = *II;
> -
> - // If it is not a simple branch, we are in a table somewhere.
> - if (!MI.getDesc().isBranch() || MI.getDesc().isIndirectBranch())
> - return false;
> -
> - // If we are the operands of one of the branches, this is not
> - // a fall through.
> - for (MachineInstr::mop_iterator OI = MI.operands_begin(),
> - OE = MI.operands_end(); OI != OE; ++OI) {
> - const MachineOperand& OP = *OI;
> - if (OP.isMBB() && OP.getMBB() == MBB)
> - return false;
> - }
> - }
> -
> - return true;
> + // Otherwise, check the last instruction.
> + const MachineInstr &LastInst = Pred->back();
> + return !LastInst.getDesc().isBarrier();
> }
>
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list