summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-02-19 07:49:17 +0000
committerChris Lattner <sabre@nondot.org>2008-02-19 07:49:17 +0000
commit75542bd56b4d38d7a2fdf8596a0128509a51e89d (patch)
tree54ad61f91bd4b0a231bd8726edc9d9d3855a28fb /lib
parent15f166c7b6ed054e9a9b54161dd9342d9f083564 (diff)
downloadllvm-75542bd56b4d38d7a2fdf8596a0128509a51e89d.tar.gz
llvm-75542bd56b4d38d7a2fdf8596a0128509a51e89d.tar.bz2
llvm-75542bd56b4d38d7a2fdf8596a0128509a51e89d.tar.xz
remove the LowerSelect pass. The last client was the old Sparc backend, which is long dead by now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47323 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Transforms/Utils/LowerAllocations.cpp1
-rw-r--r--lib/Transforms/Utils/LowerInvoke.cpp1
-rw-r--r--lib/Transforms/Utils/LowerSelect.cpp105
-rw-r--r--lib/Transforms/Utils/LowerSwitch.cpp1
-rw-r--r--lib/Transforms/Utils/Mem2Reg.cpp1
-rw-r--r--lib/Transforms/Utils/UnifyFunctionExitNodes.cpp1
6 files changed, 0 insertions, 110 deletions
diff --git a/lib/Transforms/Utils/LowerAllocations.cpp b/lib/Transforms/Utils/LowerAllocations.cpp
index a43ec4b357..2f422609fe 100644
--- a/lib/Transforms/Utils/LowerAllocations.cpp
+++ b/lib/Transforms/Utils/LowerAllocations.cpp
@@ -48,7 +48,6 @@ namespace {
// This is a cluster of orthogonal Transforms:
AU.addPreserved<UnifyFunctionExitNodes>();
AU.addPreservedID(PromoteMemoryToRegisterID);
- AU.addPreservedID(LowerSelectID);
AU.addPreservedID(LowerSwitchID);
AU.addPreservedID(LowerInvokePassID);
}
diff --git a/lib/Transforms/Utils/LowerInvoke.cpp b/lib/Transforms/Utils/LowerInvoke.cpp
index 920a0286ea..7f0ef85d75 100644
--- a/lib/Transforms/Utils/LowerInvoke.cpp
+++ b/lib/Transforms/Utils/LowerInvoke.cpp
@@ -84,7 +84,6 @@ namespace {
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
// This is a cluster of orthogonal Transforms
AU.addPreservedID(PromoteMemoryToRegisterID);
- AU.addPreservedID(LowerSelectID);
AU.addPreservedID(LowerSwitchID);
AU.addPreservedID(LowerAllocationsID);
}
diff --git a/lib/Transforms/Utils/LowerSelect.cpp b/lib/Transforms/Utils/LowerSelect.cpp
deleted file mode 100644
index e2940c2727..0000000000
--- a/lib/Transforms/Utils/LowerSelect.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-//===- LowerSelect.cpp - Transform select insts to branches ---------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This pass lowers select instructions into conditional branches for targets
-// that do not have conditional moves or that have not implemented the select
-// instruction yet.
-//
-// Note that this pass could be improved. In particular it turns every select
-// instruction into a new conditional branch, even though some common cases have
-// select instructions on the same predicate next to each other. It would be
-// better to use the same branch for the whole group of selects.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Transforms/Scalar.h"
-#include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h"
-#include "llvm/Function.h"
-#include "llvm/Instructions.h"
-#include "llvm/Pass.h"
-#include "llvm/Type.h"
-#include "llvm/Support/Compiler.h"
-using namespace llvm;
-
-namespace {
- /// LowerSelect - Turn select instructions into conditional branches.
- ///
- class VISIBILITY_HIDDEN LowerSelect : public FunctionPass {
- bool OnlyFP; // Only lower FP select instructions?
- public:
- static char ID; // Pass identification, replacement for typeid
- explicit LowerSelect(bool onlyfp = false) : FunctionPass((intptr_t)&ID),
- OnlyFP(onlyfp) {}
-
- virtual void getAnalysisUsage(AnalysisUsage &AU) const {
- // This certainly destroys the CFG.
- // This is a cluster of orthogonal Transforms:
- AU.addPreserved<UnifyFunctionExitNodes>();
- AU.addPreservedID(PromoteMemoryToRegisterID);
- AU.addPreservedID(LowerSwitchID);
- AU.addPreservedID(LowerInvokePassID);
- AU.addPreservedID(LowerAllocationsID);
- }
-
- bool runOnFunction(Function &F);
- };
-
- char LowerSelect::ID = 0;
- RegisterPass<LowerSelect>
- X("lowerselect", "Lower select instructions to branches");
-}
-
-// Publically exposed interface to pass...
-const PassInfo *llvm::LowerSelectID = X.getPassInfo();
-//===----------------------------------------------------------------------===//
-// This pass converts SelectInst instructions into conditional branch and PHI
-// instructions. If the OnlyFP flag is set to true, then only floating point
-// select instructions are lowered.
-//
-FunctionPass *llvm::createLowerSelectPass(bool OnlyFP) {
- return new LowerSelect(OnlyFP);
-}
-
-
-bool LowerSelect::runOnFunction(Function &F) {
- bool Changed = false;
- for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB)
- for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I) {
- if (SelectInst *SI = dyn_cast<SelectInst>(I))
- if (!OnlyFP || SI->getType()->isFloatingPoint()) {
- // Split this basic block in half right before the select instruction.
- BasicBlock *NewCont =
- BB->splitBasicBlock(I, BB->getName()+".selectcont");
-
- // Make the true block, and make it branch to the continue block.
- BasicBlock *NewTrue = new BasicBlock(BB->getName()+".selecttrue",
- BB->getParent(), NewCont);
- new BranchInst(NewCont, NewTrue);
-
- // Make the unconditional branch in the incoming block be a
- // conditional branch on the select predicate.
- BB->getInstList().erase(BB->getTerminator());
- new BranchInst(NewTrue, NewCont, SI->getCondition(), BB);
-
- // Create a new PHI node in the cont block with the entries we need.
- PHINode *PN = new PHINode(SI->getType(), "", NewCont->begin());
- PN->takeName(SI);
- PN->addIncoming(SI->getTrueValue(), NewTrue);
- PN->addIncoming(SI->getFalseValue(), BB);
-
- // Use the PHI instead of the select.
- SI->replaceAllUsesWith(PN);
- NewCont->getInstList().erase(SI);
-
- Changed = true;
- break; // This block is done with.
- }
- }
- return Changed;
-}
diff --git a/lib/Transforms/Utils/LowerSwitch.cpp b/lib/Transforms/Utils/LowerSwitch.cpp
index 5f5e796a35..e31a87fba8 100644
--- a/lib/Transforms/Utils/LowerSwitch.cpp
+++ b/lib/Transforms/Utils/LowerSwitch.cpp
@@ -40,7 +40,6 @@ namespace {
// This is a cluster of orthogonal Transforms
AU.addPreserved<UnifyFunctionExitNodes>();
AU.addPreservedID(PromoteMemoryToRegisterID);
- AU.addPreservedID(LowerSelectID);
AU.addPreservedID(LowerInvokePassID);
AU.addPreservedID(LowerAllocationsID);
}
diff --git a/lib/Transforms/Utils/Mem2Reg.cpp b/lib/Transforms/Utils/Mem2Reg.cpp
index 75e66db933..f9b1d8d499 100644
--- a/lib/Transforms/Utils/Mem2Reg.cpp
+++ b/lib/Transforms/Utils/Mem2Reg.cpp
@@ -43,7 +43,6 @@ namespace {
AU.setPreservesCFG();
// This is a cluster of orthogonal Transforms
AU.addPreserved<UnifyFunctionExitNodes>();
- AU.addPreservedID(LowerSelectID);
AU.addPreservedID(LowerSwitchID);
AU.addPreservedID(LowerInvokePassID);
AU.addPreservedID(LowerAllocationsID);
diff --git a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
index d8802abfb1..f9aaa23666 100644
--- a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
+++ b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
@@ -37,7 +37,6 @@ void UnifyFunctionExitNodes::getAnalysisUsage(AnalysisUsage &AU) const{
AU.addPreservedID(BreakCriticalEdgesID);
// This is a cluster of orthogonal Transforms
AU.addPreservedID(PromoteMemoryToRegisterID);
- AU.addPreservedID(LowerSelectID);
AU.addPreservedID(LowerSwitchID);
}