diff options
| -rw-r--r-- | polly/lib/CodeGen/CodegenCleanup.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/polly/lib/CodeGen/CodegenCleanup.cpp b/polly/lib/CodeGen/CodegenCleanup.cpp index fd3dea25adb..f5a5744d519 100644 --- a/polly/lib/CodeGen/CodegenCleanup.cpp +++ b/polly/lib/CodeGen/CodegenCleanup.cpp @@ -62,36 +62,46 @@ public: FPM->add(createCFGSimplificationPass()); FPM->add(createSROAPass()); FPM->add(createEarlyCSEPass()); - FPM->add(createInstructionCombiningPass()); + + FPM->add(createPromoteMemoryToRegisterPass()); + FPM->add(createInstructionCombiningPass(true)); + FPM->add(createCFGSimplificationPass()); + FPM->add(createSROAPass()); + FPM->add(createEarlyCSEPass(true)); + FPM->add(createSpeculativeExecutionIfHasBranchDivergencePass()); FPM->add(createJumpThreadingPass()); FPM->add(createCorrelatedValuePropagationPass()); FPM->add(createCFGSimplificationPass()); - FPM->add(createInstructionCombiningPass()); + FPM->add(createInstructionCombiningPass(true)); + FPM->add(createLibCallsShrinkWrapPass()); + FPM->add(createTailCallEliminationPass()); FPM->add(createCFGSimplificationPass()); FPM->add(createReassociatePass()); - FPM->add(createLoopRotatePass()); + FPM->add(createLoopRotatePass(-1)); FPM->add(createGVNPass()); FPM->add(createLICMPass()); FPM->add(createLoopUnswitchPass()); FPM->add(createCFGSimplificationPass()); - FPM->add(createInstructionCombiningPass()); + FPM->add(createInstructionCombiningPass(true)); FPM->add(createIndVarSimplifyPass()); FPM->add(createLoopIdiomPass()); FPM->add(createLoopDeletionPass()); FPM->add(createCFGSimplificationPass()); - FPM->add(createSimpleLoopUnrollPass()); + FPM->add(createSimpleLoopUnrollPass(3)); FPM->add(createMergedLoadStoreMotionPass()); + FPM->add(createGVNPass()); FPM->add(createMemCpyOptPass()); + FPM->add(createSCCPPass()); FPM->add(createBitTrackingDCEPass()); - FPM->add(createInstructionCombiningPass()); + FPM->add(createInstructionCombiningPass(true)); FPM->add(createJumpThreadingPass()); FPM->add(createCorrelatedValuePropagationPass()); FPM->add(createDeadStoreEliminationPass()); FPM->add(createLICMPass()); - FPM->add(createLoopRerollPass()); FPM->add(createAggressiveDCEPass()); FPM->add(createCFGSimplificationPass()); - FPM->add(createInstructionCombiningPass()); + FPM->add(createInstructionCombiningPass(true)); + FPM->add(createFloat2IntPass()); return FPM->doInitialization(); } |

