summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
diff options
context:
space:
mode:
authorAmjad Aboud <amjad.aboud@intel.com>2018-01-24 14:48:49 +0000
committerAmjad Aboud <amjad.aboud@intel.com>2018-01-24 14:48:49 +0000
commitd53504e37999771f4ce621c081cc3da42ea1c84d (patch)
treeb5d8bf2f032b54ca401663f478c10760966d43b7 /llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
parent9b3d4c01a04876c823577c36f9394b755e84640b (diff)
downloadbcm5719-llvm-d53504e37999771f4ce621c081cc3da42ea1c84d.tar.gz
bcm5719-llvm-d53504e37999771f4ce621c081cc3da42ea1c84d.zip
Reverted 323321.
llvm-svn: 323326
Diffstat (limited to 'llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp')
-rw-r--r--llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp110
1 files changed, 0 insertions, 110 deletions
diff --git a/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp b/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
deleted file mode 100644
index b7364d2ecdf..00000000000
--- a/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-//===- AggressiveInstCombine.cpp ------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the aggressive expression pattern combiner classes.
-// Currently, it handles expression patterns for:
-// * Truncate instruction
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h"
-#include "AggressiveInstCombineInternal.h"
-#include "llvm/Analysis/AliasAnalysis.h"
-#include "llvm/Analysis/BasicAliasAnalysis.h"
-#include "llvm/Analysis/GlobalsModRef.h"
-#include "llvm/Analysis/TargetLibraryInfo.h"
-#include "llvm/IR/DataLayout.h"
-#include "llvm/Pass.h"
-#include "llvm/Transforms/Scalar.h"
-using namespace llvm;
-
-#define DEBUG_TYPE "aggressive-instcombine"
-
-namespace {
-/// Contains expression pattern combiner logic.
-/// This class provides both the logic to combine expression patterns and
-/// combine them. It differs from InstCombiner class in that each pattern
-/// combiner runs only once as opposed to InstCombine's multi-iteration,
-/// which allows pattern combiner to have higher complexity than the O(1)
-/// required by the instruction combiner.
-class AggressiveInstCombinerLegacyPass : public FunctionPass {
-public:
- static char ID; // Pass identification, replacement for typeid
-
- AggressiveInstCombinerLegacyPass() : FunctionPass(ID) {
- initializeAggressiveInstCombinerLegacyPassPass(
- *PassRegistry::getPassRegistry());
- }
-
- void getAnalysisUsage(AnalysisUsage &AU) const override;
-
- /// Run all expression pattern optimizations on the given /p F function.
- ///
- /// \param F function to optimize.
- /// \returns true if the IR is changed.
- bool runOnFunction(Function &F) override;
-};
-} // namespace
-
-void AggressiveInstCombinerLegacyPass::getAnalysisUsage(
- AnalysisUsage &AU) const {
- AU.setPreservesCFG();
- AU.addRequired<TargetLibraryInfoWrapperPass>();
- AU.addPreserved<AAResultsWrapperPass>();
- AU.addPreserved<BasicAAWrapperPass>();
- AU.addPreserved<GlobalsAAWrapperPass>();
-}
-
-bool AggressiveInstCombinerLegacyPass::runOnFunction(Function &F) {
- auto &TLI = getAnalysis<TargetLibraryInfoWrapperPass>().getTLI();
- auto &DL = F.getParent()->getDataLayout();
-
- bool MadeIRChange = false;
-
- // Handle TruncInst patterns
- TruncInstCombine TIC(TLI, DL);
- MadeIRChange |= TIC.run(F);
-
- // TODO: add more patterns to handle...
-
- return MadeIRChange;
-}
-
-PreservedAnalyses AggressiveInstCombinePass::run(Function &F,
- FunctionAnalysisManager &AM) {
- auto &TLI = AM.getResult<TargetLibraryAnalysis>(F);
- auto &DL = F.getParent()->getDataLayout();
- bool MadeIRChange = false;
-
- // Handle TruncInst patterns
- TruncInstCombine TIC(TLI, DL);
- MadeIRChange |= TIC.run(F);
- if (!MadeIRChange)
- // No changes, all analyses are preserved.
- return PreservedAnalyses::all();
-
- // Mark all the analyses that instcombine updates as preserved.
- PreservedAnalyses PA;
- PA.preserveSet<CFGAnalyses>();
- PA.preserve<AAManager>();
- PA.preserve<GlobalsAA>();
- return PA;
-}
-
-char AggressiveInstCombinerLegacyPass::ID = 0;
-INITIALIZE_PASS_BEGIN(AggressiveInstCombinerLegacyPass,
- "aggressive-instcombine",
- "Combine pattern based expressions", false, false)
-INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
-INITIALIZE_PASS_END(AggressiveInstCombinerLegacyPass, "aggressive-instcombine",
- "Combine pattern based expressions", false, false)
-
-FunctionPass *llvm::createAggressiveInstCombinerPass() {
- return new AggressiveInstCombinerLegacyPass();
-}
OpenPOWER on IntegriCloud