Now that the profitable bits of EnableFullLoadPRE have been enabled by default, rip out the remainder.

Anyone interested in more general PRE would be better served by implementing it separately, to get real
anticipation calculation, etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115337 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson 2010-10-01 20:02:55 +00:00
parent 7c3423f413
commit 7267e14327
2 changed files with 7 additions and 9 deletions

View File

@ -61,7 +61,6 @@ STATISTIC(NumPRELoad, "Number of loads PRE'd");
static cl::opt<bool> EnablePRE("enable-pre",
cl::init(true), cl::Hidden);
static cl::opt<bool> EnableLoadPRE("enable-load-pre", cl::init(true));
static cl::opt<bool> EnableFullLoadPRE("enable-full-load-pre", cl::init(false));
//===----------------------------------------------------------------------===//
// ValueTable Class
@ -1604,14 +1603,13 @@ bool GVN::processNonLocalLoad(LoadInst *LI,
unsigned NumUnavailablePreds = PredLoads.size();
assert(NumUnavailablePreds != 0 &&
"Fully available value should be eliminated above!");
if (!EnableFullLoadPRE) {
// If this load is unavailable in multiple predecessors, reject it.
// FIXME: If we could restructure the CFG, we could make a common pred with
// all the preds that don't have an available LI and insert a new load into
// that one block.
if (NumUnavailablePreds != 1)
// If this load is unavailable in multiple predecessors, reject it.
// FIXME: If we could restructure the CFG, we could make a common pred with
// all the preds that don't have an available LI and insert a new load into
// that one block.
if (NumUnavailablePreds != 1)
return false;
}
// Check if the load can safely be moved to all the unavailable predecessors.
bool CanDoPRE = true;

View File

@ -1,4 +1,4 @@
; RUN: opt < %s -gvn -enable-full-load-pre -S | FileCheck %s
; RUN: opt < %s -gvn -S | FileCheck %s
define i8* @cat(i8* %s1, ...) nounwind {
entry: