diff options
author | Adam Nemet <anemet@apple.com> | 2016-02-05 01:14:05 +0000 |
---|---|---|
committer | Adam Nemet <anemet@apple.com> | 2016-02-05 01:14:05 +0000 |
commit | 9455c1d2b1fc7cd551ff80f004e14cf9ffd4c371 (patch) | |
tree | 3ff837ee9ee372d2c1e43be2c05ada735ab52324 /llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp | |
parent | 0cf866ac6c193a190526fa51b1d129267b00f2a1 (diff) | |
download | llvm-9455c1d2b1fc7cd551ff80f004e14cf9ffd4c371.zip llvm-9455c1d2b1fc7cd551ff80f004e14cf9ffd4c371.tar.gz llvm-9455c1d2b1fc7cd551ff80f004e14cf9ffd4c371.tar.bz2 |
[LoopLoadElim] Don't allow versioning when optForSize
This was requested in the review of D16300.
llvm-svn: 259861
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp index 1064d08..db96bea 100644 --- a/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp +++ b/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp @@ -465,9 +465,16 @@ public: return false; } - // Point of no-return, start the transformation. First, version the loop if - // necessary. if (!Checks.empty() || !LAI.PSE.getUnionPredicate().isAlwaysTrue()) { + if (L->getHeader()->getParent()->optForSize()) { + DEBUG(dbgs() << "Versioning is needed but not allowed when optimizing " + "for size.\n"); + return false; + } + + // Point of no-return, start the transformation. First, version the loop + // if necessary. + LoopVersioning LV(LAI, L, LI, DT, PSE.getSE(), false); LV.setAliasChecks(std::move(Checks)); LV.setSCEVChecks(LAI.PSE.getUnionPredicate()); |