Change Polly's position to "before-vectorizer"
authorTobias Grosser <tobias@grosser.es>
Mon, 7 Aug 2017 22:33:34 +0000 (22:33 +0000)
committerTobias Grosser <tobias@grosser.es>
Mon, 7 Aug 2017 22:33:34 +0000 (22:33 +0000)
commit50206d8f5748e255c0054ab78196803745c6eb29
tree9c94f63ea8e644b3010d952bb5aaafc0727a5061
parent2b3a54bafc38fd096986e401eedd49b88c9cf576
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

llvm-svn: 310319
polly/lib/Support/RegisterPasses.cpp