diff options
author | Amjad Aboud <amjad.aboud@intel.com> | 2018-01-24 14:48:49 +0000 |
---|---|---|
committer | Amjad Aboud <amjad.aboud@intel.com> | 2018-01-24 14:48:49 +0000 |
commit | d53504e37999771f4ce621c081cc3da42ea1c84d (patch) | |
tree | b5d8bf2f032b54ca401663f478c10760966d43b7 /llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp | |
parent | 9b3d4c01a04876c823577c36f9394b755e84640b (diff) | |
download | bcm5719-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.cpp | 110 |
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(); -} |