diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
commit | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch) | |
tree | 012bb94d777798f1f56ac1cec429509766d05181 /contrib/libs/llvm12/lib/Transforms/Scalar/LoopRotation.cpp | |
parent | 6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff) | |
download | ydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/lib/Transforms/Scalar/LoopRotation.cpp')
-rw-r--r-- | contrib/libs/llvm12/lib/Transforms/Scalar/LoopRotation.cpp | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/contrib/libs/llvm12/lib/Transforms/Scalar/LoopRotation.cpp b/contrib/libs/llvm12/lib/Transforms/Scalar/LoopRotation.cpp index ad1cfc68ec..252668e1d0 100644 --- a/contrib/libs/llvm12/lib/Transforms/Scalar/LoopRotation.cpp +++ b/contrib/libs/llvm12/lib/Transforms/Scalar/LoopRotation.cpp @@ -12,7 +12,7 @@ #include "llvm/Transforms/Scalar/LoopRotation.h" #include "llvm/ADT/Statistic.h" -#include "llvm/Analysis/AssumptionCache.h" +#include "llvm/Analysis/AssumptionCache.h" #include "llvm/Analysis/InstructionSimplify.h" #include "llvm/Analysis/LoopPass.h" #include "llvm/Analysis/MemorySSA.h" @@ -34,35 +34,35 @@ static cl::opt<unsigned> DefaultRotationThreshold( "rotation-max-header-size", cl::init(16), cl::Hidden, cl::desc("The default maximum header size for automatic loop rotation")); -static cl::opt<bool> PrepareForLTOOption( - "rotation-prepare-for-lto", cl::init(false), cl::Hidden, - cl::desc("Run loop-rotation in the prepare-for-lto stage. This option " - "should be used for testing only.")); - -LoopRotatePass::LoopRotatePass(bool EnableHeaderDuplication, bool PrepareForLTO) - : EnableHeaderDuplication(EnableHeaderDuplication), - PrepareForLTO(PrepareForLTO) {} +static cl::opt<bool> PrepareForLTOOption( + "rotation-prepare-for-lto", cl::init(false), cl::Hidden, + cl::desc("Run loop-rotation in the prepare-for-lto stage. This option " + "should be used for testing only.")); +LoopRotatePass::LoopRotatePass(bool EnableHeaderDuplication, bool PrepareForLTO) + : EnableHeaderDuplication(EnableHeaderDuplication), + PrepareForLTO(PrepareForLTO) {} + PreservedAnalyses LoopRotatePass::run(Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR, LPMUpdater &) { - // Vectorization requires loop-rotation. Use default threshold for loops the - // user explicitly marked for vectorization, even when header duplication is - // disabled. - int Threshold = EnableHeaderDuplication || - hasVectorizeTransformation(&L) == TM_ForcedByUser - ? DefaultRotationThreshold - : 0; + // Vectorization requires loop-rotation. Use default threshold for loops the + // user explicitly marked for vectorization, even when header duplication is + // disabled. + int Threshold = EnableHeaderDuplication || + hasVectorizeTransformation(&L) == TM_ForcedByUser + ? DefaultRotationThreshold + : 0; const DataLayout &DL = L.getHeader()->getModule()->getDataLayout(); const SimplifyQuery SQ = getBestSimplifyQuery(AR, DL); Optional<MemorySSAUpdater> MSSAU; if (AR.MSSA) MSSAU = MemorySSAUpdater(AR.MSSA); - bool Changed = - LoopRotation(&L, &AR.LI, &AR.TTI, &AR.AC, &AR.DT, &AR.SE, - MSSAU.hasValue() ? MSSAU.getPointer() : nullptr, SQ, false, - Threshold, false, PrepareForLTO || PrepareForLTOOption); + bool Changed = + LoopRotation(&L, &AR.LI, &AR.TTI, &AR.AC, &AR.DT, &AR.SE, + MSSAU.hasValue() ? MSSAU.getPointer() : nullptr, SQ, false, + Threshold, false, PrepareForLTO || PrepareForLTOOption); if (!Changed) return PreservedAnalyses::all(); @@ -80,13 +80,13 @@ namespace { class LoopRotateLegacyPass : public LoopPass { unsigned MaxHeaderSize; - bool PrepareForLTO; + bool PrepareForLTO; public: static char ID; // Pass ID, replacement for typeid - LoopRotateLegacyPass(int SpecifiedMaxHeaderSize = -1, - bool PrepareForLTO = false) - : LoopPass(ID), PrepareForLTO(PrepareForLTO) { + LoopRotateLegacyPass(int SpecifiedMaxHeaderSize = -1, + bool PrepareForLTO = false) + : LoopPass(ID), PrepareForLTO(PrepareForLTO) { initializeLoopRotateLegacyPassPass(*PassRegistry::getPassRegistry()); if (SpecifiedMaxHeaderSize == -1) MaxHeaderSize = DefaultRotationThreshold; @@ -122,17 +122,17 @@ public: if (MSSAA) MSSAU = MemorySSAUpdater(&MSSAA->getMSSA()); } - // Vectorization requires loop-rotation. Use default threshold for loops the - // user explicitly marked for vectorization, even when header duplication is - // disabled. - int Threshold = hasVectorizeTransformation(L) == TM_ForcedByUser - ? DefaultRotationThreshold - : MaxHeaderSize; - + // Vectorization requires loop-rotation. Use default threshold for loops the + // user explicitly marked for vectorization, even when header duplication is + // disabled. + int Threshold = hasVectorizeTransformation(L) == TM_ForcedByUser + ? DefaultRotationThreshold + : MaxHeaderSize; + return LoopRotation(L, LI, TTI, AC, &DT, &SE, MSSAU.hasValue() ? MSSAU.getPointer() : nullptr, SQ, - false, Threshold, false, - PrepareForLTO || PrepareForLTOOption); + false, Threshold, false, + PrepareForLTO || PrepareForLTOOption); } }; } // end namespace @@ -147,6 +147,6 @@ INITIALIZE_PASS_DEPENDENCY(MemorySSAWrapperPass) INITIALIZE_PASS_END(LoopRotateLegacyPass, "loop-rotate", "Rotate Loops", false, false) -Pass *llvm::createLoopRotatePass(int MaxHeaderSize, bool PrepareForLTO) { - return new LoopRotateLegacyPass(MaxHeaderSize, PrepareForLTO); +Pass *llvm::createLoopRotatePass(int MaxHeaderSize, bool PrepareForLTO) { + return new LoopRotateLegacyPass(MaxHeaderSize, PrepareForLTO); } |