(void) llvm::createDeadStoreEliminationPass();
(void) llvm::createDeadTypeEliminationPass();
(void) llvm::createEdgeProfilerPass();
- (void) llvm::createFastDeadLoadEliminationPass();
+ (void) llvm::createRedundantLoadEliminationPass();
(void) llvm::createFastDeadStoreEliminationPass();
(void) llvm::createFunctionInliningPass();
(void) llvm::createFunctionProfilerPass();
//===----------------------------------------------------------------------===//
//
-// FastDeadLoadElimination - This pass deletes loads that are dominated by
+// RedundantLoadElimination - This pass deletes loads that are dominated by
// must-aliased loads and are not stored to between the loads.
//
-FunctionPass *createFastDeadLoadEliminationPass();
+FunctionPass *createRedundantLoadEliminationPass();
//===----------------------------------------------------------------------===//
//
//
//===----------------------------------------------------------------------===//
-#define DEBUG_TYPE "fdle"
+#define DEBUG_TYPE "rle"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Function.h"
#include "llvm/Instructions.h"
STATISTIC(NumFastLoads, "Number of loads deleted");
namespace {
- struct VISIBILITY_HIDDEN FDLE : public FunctionPass {
+ struct VISIBILITY_HIDDEN RLE : public FunctionPass {
static char ID; // Pass identification, replacement for typeid
- FDLE() : FunctionPass((intptr_t)&ID) {}
+ RLE() : FunctionPass((intptr_t)&ID) {}
virtual bool runOnFunction(Function &F) {
bool Changed = false;
AU.addPreserved<MemoryDependenceAnalysis>();
}
};
- char FDLE::ID = 0;
- RegisterPass<FDLE> X("fdle", "Fast Dead Load Elimination");
+ char RLE::ID = 0;
+ RegisterPass<RLE> X("rle", "Redundant Load Elimination");
}
-FunctionPass *llvm::createFastDeadLoadEliminationPass() { return new FDLE(); }
+FunctionPass *llvm::createRedundantLoadEliminationPass() { return new RLE(); }
-bool FDLE::runOnBasicBlock(BasicBlock &BB) {
+bool RLE::runOnBasicBlock(BasicBlock &BB) {
MemoryDependenceAnalysis& MD = getAnalysis<MemoryDependenceAnalysis>();
// Record the last-seen load from this pointer
+++ /dev/null
-load_lib llvm.exp
-
-RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,llx,c,cpp,tr}]]
+++ /dev/null
-; RUN: llvm-as < %s | opt -fdle | llvm-dis | not grep DEAD
-
-define void @test(i32* %Q, i32* %P) {
- %A = load i32* %Q
- %DEAD = load i32* %Q ; <i32> [#uses=1]
- ret void
-}
+++ /dev/null
-; RUN: llvm-as < %s | opt -fdle | llvm-dis | grep NOTDEAD
-
-define void @test(i32* %Q, i32* %P) {
- %A = load i32* %Q
- %NOTDEAD = volatile load i32* %Q ; <i32> [#uses=1]
- ret void
-}
--- /dev/null
+load_lib llvm.exp
+
+RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,llx,c,cpp,tr}]]
--- /dev/null
+; RUN: llvm-as < %s | opt -rle | llvm-dis | not grep DEAD
+
+define void @test(i32* %Q, i32* %P) {
+ %A = load i32* %Q
+ %DEAD = load i32* %Q ; <i32> [#uses=1]
+ ret void
+}
--- /dev/null
+; RUN: llvm-as < %s | opt -rle | llvm-dis | grep NOTDEAD
+
+define void @test(i32* %Q, i32* %P) {
+ %A = load i32* %Q
+ %NOTDEAD = volatile load i32* %Q ; <i32> [#uses=1]
+ ret void
+}