[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