Disable header duplication at -Oz in loop-rotate pass.
authorRoman Divacky <rdivacky@freebsd.org>
Fri, 21 Nov 2014 19:53:24 +0000 (19:53 +0000)
committerRoman Divacky <rdivacky@freebsd.org>
Fri, 21 Nov 2014 19:53:24 +0000 (19:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222562 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/PassManagerBuilder.cpp

index da85a91c78aef4f5e88ec974348ebe76519fc291..0414caa61fcac461df1acd5a07de40c774f07a17 100644 (file)
@@ -228,7 +228,8 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) {
     MPM.add(createTailCallEliminationPass()); // Eliminate tail calls
   MPM.add(createCFGSimplificationPass());     // Merge & remove BBs
   MPM.add(createReassociatePass());           // Reassociate expressions
-  MPM.add(createLoopRotatePass());            // Rotate Loop
+  // Rotate Loop - disable header duplication at -Oz
+  MPM.add(createLoopRotatePass(SizeLevel == 2 ? 0 : -1));
   MPM.add(createLICMPass());                  // Hoist loop invariants
   MPM.add(createLoopUnswitchPass(SizeLevel || OptLevel < 3));
   MPM.add(createInstructionCombiningPass());