Change Polly's position to "before-vectorizer"
commit3804676976321f4acff4430adc0805155fa70c16
authorTobias Grosser <tobias@grosser.es>
Mon, 7 Aug 2017 22:33:34 +0000 (7 22:33 +0000)
committerTobias Grosser <tobias@grosser.es>
Mon, 7 Aug 2017 22:33:34 +0000 (7 22:33 +0000)
tree3869f4602637d4d33978224ab665d49f5286fbba
parent845ab224cc56cb3e5eda43f682c2fd6781087c48
Change Polly's position to "before-vectorizer"

Polly has traditionally always been executed at the beginning of the pass
pipeline as LLVM's inliner and DeLICM passes introduced plenty of scalar
dependences which prevented any kind of useful high-level loop optimizations
later in the pass pipeline. With DeLICM now being available, Polly can also
run optimizations when folded into the pass pipeline. This has the benefit
that Polly should now be more effective on C++ code and as an additional bonus,
no additional early canonicalization phase must be run. As a result, Polly
touches the code only if it applies a transformation. Code that does not
benefit from Polly is not touched and consequently will have the very same
execution time as without Polly enabled. Random performance changes, as could
sometimes be observed with polly-position=early are consequently not possible
any more. If performance is changed, this is due to Polly is choosing to
perform a transformation. If this choice is wrong, it can be fixed directly
in Polly.

http://polly.llvm.org/docs/Architecture.html#polly-in-the-llvm-pass-pipeline

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@310319 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Support/RegisterPasses.cpp