mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-03-01 16:59:14 +00:00
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. llvm-svn: 115337
This commit is contained in:
parent
c7c6c2d04d
commit
a88628cd72
@ -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;
|
||||
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user