Don't break critical edges for single-bb loops, this helps with PR1877, though

it is only a partial fix.  This change is noise for most programs, but
speeds up Shootout-C++/matrix by 20%, Ptrdist/ks by 24%, smg2000 by 8%,
hexxagon by 9%, bzip2 by 9% (not sure I trust this), ackerman by 13%, etc.

OTOH, it slows down Shootout/fib2 by 40% (I'll update PR1877 with this info).

llvm-svn: 45354
This commit is contained in:
Chris Lattner 2007-12-25 19:06:45 +00:00
parent 28edc56597
commit 90df7f7424

View File

@ -37,8 +37,6 @@ using namespace llvm;
namespace {
cl::opt<bool> OptExtUses("optimize-ext-uses",
cl::init(true), cl::Hidden);
// LLCBETA option.
cl::opt<bool> DontHackBackedge("backedge-hack", cl::Hidden);
}
namespace {
@ -280,7 +278,7 @@ static void SplitEdgeNicely(TerminatorInst *TI, unsigned SuccNum, Pass *P) {
// As a hack, never split backedges of loops. Even though the copy for any
// PHIs inserted on the backedge would be dead for exits from the loop, we
// assume that the cost of *splitting* the backedge would be too high.
if (DontHackBackedge && Dest == TIBB)
if (Dest == TIBB)
return;
/// TIPHIValues - This array is lazily computed to determine the values of