Add PM extension point EP_VectorizerStart

This extension point allows passes to be executed right before the vectorizer
and other highly target specific optimizations are run.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242389 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Tobias Grosser 2015-07-16 08:20:37 +00:00
parent e03f4bd255
commit 83c223932e
2 changed files with 7 additions and 0 deletions

View File

@ -81,6 +81,11 @@ public:
/// run after everything else.
EP_OptimizerLast,
/// EP_VectorizerStart - This extension point allows adding optimization
/// passes before the vectorizer and other highly target specific
/// optimization passes are executed.
EP_VectorizerStart,
/// EP_EnabledOnOptLevel0 - This extension point allows adding passes that
/// should not be disabled by O0 optimization level. The passes will be
/// inserted after the inlining pass.

View File

@ -318,6 +318,8 @@ void PassManagerBuilder::populateModulePassManager(
if (RunFloat2Int)
MPM.add(createFloat2IntPass());
addExtensionsToPM(EP_VectorizerStart, MPM);
// Re-rotate loops in all our loop nests. These may have fallout out of
// rotated form due to GVN or other transformations, and the vectorizer relies
// on the rotated form. Disable header duplication at -Oz.