diff options
| author | Clement Courbet <courbet@google.com> | 2017-10-05 08:03:39 +0000 |
|---|---|---|
| committer | Clement Courbet <courbet@google.com> | 2017-10-05 08:03:39 +0000 |
| commit | 6603fc0e7be3e182ec120de8de7f9b4bb5cb905b (patch) | |
| tree | 898c4462319e9dcd52ad5e5bb0d8edc104e897e2 /llvm/lib/Transforms/Scalar | |
| parent | 17b0c78447e094e8465abc5dfb3a491f02521647 (diff) | |
| download | bcm5719-llvm-6603fc0e7be3e182ec120de8de7f9b4bb5cb905b.tar.gz bcm5719-llvm-6603fc0e7be3e182ec120de8de7f9b4bb5cb905b.zip | |
Revert "[MergeICmps] Disable mergeicmps if the target does not want to handle memcmp expansion."
Breaks
clang-stage1-cmake-RA-incremental/llvm/test/Transforms/MergeICmps/X86/tuple-four-int8.ll
This reverts commit 3038c459d67f8898ffa295d54a013b280690abfa.
llvm-svn: 314972
Diffstat (limited to 'llvm/lib/Transforms/Scalar')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/MergeICmps.cpp | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/llvm/lib/Transforms/Scalar/MergeICmps.cpp b/llvm/lib/Transforms/Scalar/MergeICmps.cpp index c68cc53a518..a56cffcdfa0 100644 --- a/llvm/lib/Transforms/Scalar/MergeICmps.cpp +++ b/llvm/lib/Transforms/Scalar/MergeICmps.cpp @@ -28,8 +28,6 @@ #include <vector> #include "llvm/ADT/APSInt.h" #include "llvm/Analysis/Loads.h" -#include "llvm/Analysis/TargetLibraryInfo.h" -#include "llvm/Analysis/TargetTransformInfo.h" #include "llvm/IR/Function.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/IntrinsicInst.h" @@ -43,6 +41,8 @@ namespace { #define DEBUG_TYPE "mergeicmps" +#define MERGEICMPS_DOT_ON + // A BCE atom. struct BCEAtom { BCEAtom() : GEP(nullptr), LoadI(nullptr), Offset() {} @@ -589,30 +589,22 @@ class MergeICmps : public FunctionPass { bool runOnFunction(Function &F) override { if (skipFunction(F)) return false; const auto &TLI = getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(); - const auto &TTI = getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F); - auto PA = runImpl(F, &TLI, &TTI); + auto PA = runImpl(F, &TLI); return !PA.areAllPreserved(); } private: void getAnalysisUsage(AnalysisUsage &AU) const override { AU.addRequired<TargetLibraryInfoWrapperPass>(); - AU.addRequired<TargetTransformInfoWrapperPass>(); } - PreservedAnalyses runImpl(Function &F, const TargetLibraryInfo *TLI, - const TargetTransformInfo *TTI); + PreservedAnalyses runImpl(Function &F, const TargetLibraryInfo *TLI); }; -PreservedAnalyses MergeICmps::runImpl(Function &F, const TargetLibraryInfo *TLI, - const TargetTransformInfo *TTI) { +PreservedAnalyses MergeICmps::runImpl(Function &F, + const TargetLibraryInfo *TLI) { DEBUG(dbgs() << "MergeICmpsPass: " << F.getName() << "\n"); - // We only try merging comparisons if the target wants to expand memcmp later. - // The rationale is to avoid turning small chains into memcmp calls. - unsigned MaxLoadSize; - if (!TTI->enableMemCmpExpansion(MaxLoadSize)) return PreservedAnalyses::all(); - bool MadeChange = false; for (auto BBIt = ++F.begin(); BBIt != F.end(); ++BBIt) { @@ -631,7 +623,6 @@ char MergeICmps::ID = 0; INITIALIZE_PASS_BEGIN(MergeICmps, "mergeicmps", "Merge contiguous icmps into a memcmp", false, false) INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass) -INITIALIZE_PASS_DEPENDENCY(TargetTransformInfoWrapperPass) INITIALIZE_PASS_END(MergeICmps, "mergeicmps", "Merge contiguous icmps into a memcmp", false, false) |

