[SCCP] Remove legacy SCCP pass.
This is part of the optimization pipeline, of which the legacy pass manager version is deprecated. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D144201
This commit is contained in:
parent
c1877e6465
commit
5356fefc19
@ -97,9 +97,6 @@ void LLVMAddPartiallyInlineLibCallsPass(LLVMPassManagerRef PM);
|
||||
/** See llvm::createReassociatePass function. */
|
||||
void LLVMAddReassociatePass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createSCCPPass function. */
|
||||
void LLVMAddSCCPPass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createSROAPass function. */
|
||||
void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM);
|
||||
|
||||
|
||||
@ -135,7 +135,6 @@ namespace {
|
||||
(void) llvm::createRegionOnlyViewerPass();
|
||||
(void) llvm::createRegionPrinterPass();
|
||||
(void) llvm::createRegionViewerPass();
|
||||
(void) llvm::createSCCPPass();
|
||||
(void) llvm::createSafeStackPass();
|
||||
(void) llvm::createSROAPass();
|
||||
(void) llvm::createSingleLoopExtractorPass();
|
||||
|
||||
@ -31,12 +31,6 @@ class Pass;
|
||||
//
|
||||
FunctionPass *createAlignmentFromAssumptionsPass();
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// SCCP - Sparse conditional constant propagation.
|
||||
//
|
||||
FunctionPass *createSCCPPass();
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// RedundantDbgInstElimination - This pass removes redundant dbg intrinsics
|
||||
|
||||
@ -167,7 +167,6 @@ void PassManagerBuilder::addFunctionSimplificationPasses(
|
||||
MPM.add(createMergedLoadStoreMotionPass()); // Merge ld/st in diamonds
|
||||
MPM.add(createGVNPass(DisableGVNLoadPRE)); // Remove redundancies
|
||||
}
|
||||
MPM.add(createSCCPPass()); // Constant prop with SCCP
|
||||
|
||||
// Delete dead bit computations (instcombine runs after to fold away the dead
|
||||
// computations, and then ADCE will run later to exploit any new DCE
|
||||
@ -236,7 +235,6 @@ void PassManagerBuilder::addVectorPasses(legacy::PassManagerBase &PM,
|
||||
.sinkCommonInsts(true)));
|
||||
|
||||
if (IsFullLTO) {
|
||||
PM.add(createSCCPPass()); // Propagate exposed constants
|
||||
PM.add(createInstructionCombiningPass()); // Clean up again
|
||||
PM.add(createBitTrackingDCEPass());
|
||||
}
|
||||
|
||||
@ -41,7 +41,6 @@
|
||||
#include "llvm/IR/Type.h"
|
||||
#include "llvm/IR/User.h"
|
||||
#include "llvm/IR/Value.h"
|
||||
#include "llvm/InitializePasses.h"
|
||||
#include "llvm/Pass.h"
|
||||
#include "llvm/Support/Casting.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
@ -136,54 +135,3 @@ PreservedAnalyses SCCPPass::run(Function &F, FunctionAnalysisManager &AM) {
|
||||
PA.preserve<DominatorTreeAnalysis>();
|
||||
return PA;
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
//
|
||||
/// SCCP Class - This class uses the SCCPSolver to implement a per-function
|
||||
/// Sparse Conditional Constant Propagator.
|
||||
///
|
||||
class SCCPLegacyPass : public FunctionPass {
|
||||
public:
|
||||
// Pass identification, replacement for typeid
|
||||
static char ID;
|
||||
|
||||
SCCPLegacyPass() : FunctionPass(ID) {
|
||||
initializeSCCPLegacyPassPass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
|
||||
void getAnalysisUsage(AnalysisUsage &AU) const override {
|
||||
AU.addRequired<TargetLibraryInfoWrapperPass>();
|
||||
AU.addPreserved<GlobalsAAWrapperPass>();
|
||||
AU.addPreserved<DominatorTreeWrapperPass>();
|
||||
}
|
||||
|
||||
// runOnFunction - Run the Sparse Conditional Constant Propagation
|
||||
// algorithm, and return true if the function was modified.
|
||||
bool runOnFunction(Function &F) override {
|
||||
if (skipFunction(F))
|
||||
return false;
|
||||
const DataLayout &DL = F.getParent()->getDataLayout();
|
||||
const TargetLibraryInfo *TLI =
|
||||
&getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(F);
|
||||
auto *DTWP = getAnalysisIfAvailable<DominatorTreeWrapperPass>();
|
||||
DomTreeUpdater DTU(DTWP ? &DTWP->getDomTree() : nullptr,
|
||||
DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
return runSCCP(F, DL, TLI, DTU);
|
||||
}
|
||||
};
|
||||
|
||||
} // end anonymous namespace
|
||||
|
||||
char SCCPLegacyPass::ID = 0;
|
||||
|
||||
INITIALIZE_PASS_BEGIN(SCCPLegacyPass, "sccp",
|
||||
"Sparse Conditional Constant Propagation", false, false)
|
||||
INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
|
||||
INITIALIZE_PASS_END(SCCPLegacyPass, "sccp",
|
||||
"Sparse Conditional Constant Propagation", false, false)
|
||||
|
||||
// createSCCPPass - This is the public interface to this file.
|
||||
FunctionPass *llvm::createSCCPPass() { return new SCCPLegacyPass(); }
|
||||
|
||||
|
||||
@ -83,7 +83,6 @@ void llvm::initializeScalarOpts(PassRegistry &Registry) {
|
||||
initializeRegToMemLegacyPass(Registry);
|
||||
initializeRewriteStatepointsForGCLegacyPassPass(Registry);
|
||||
initializeScalarizeMaskedMemIntrinLegacyPassPass(Registry);
|
||||
initializeSCCPLegacyPassPass(Registry);
|
||||
initializeSROALegacyPassPass(Registry);
|
||||
initializeCFGSimplifyPassPass(Registry);
|
||||
initializeStructurizeCFGLegacyPassPass(Registry);
|
||||
@ -196,10 +195,6 @@ void LLVMAddReassociatePass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createReassociatePass());
|
||||
}
|
||||
|
||||
void LLVMAddSCCPPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createSCCPPass());
|
||||
}
|
||||
|
||||
void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM) {
|
||||
unwrap(PM)->add(createSROAPass());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user