Am Di., 9. März 2021 um 14:40 Uhr schrieb Josh Ward <
joshawa...@gmail.com>:
> I have only ended up in JSCOP calls because 1. I am seriously interested in developing LLVM and polly and 2. nothing works.
>
> I can call all passes with opt and clang except for the passes that import JSCOP (in opt) to perform interchange. In clang I can call all the passes except for a few such as set-position early (admittedly deprecated) I get an archaic error that "error in backend: Option {polly-show, position-early etc.} not supported with NPM" but when I look that up in my LLVM build I get hit with tons of abstraction with dialog (DIAG) entries which are a dead end. Am I on a wrong build? I built LLVM with ENABLE_PROJECTS="clang;clang-tools-extra;libunwind;lldb;compiler-rt;lld;openmp;polly;debuginfo-tests;parallel-libs"
LLVM recently switched to the new pass manager (NPM) and some
developer's options have not been ported yet. You can build LLVM with
`cmake -DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=OFF`. Even without the
flag, you can use `opt -enable-new-pm=0` for `clang
-flegacy-pass-manger`. I don't know a corresponding option for rustc.
I have a not-yet-committed patch to support the -polly-position=early
(and -polly-dump-before) using the NPM. I can port more options for
the NPM, but I work primarily with the legacy pass manager and for
some things the NPM does not provide support for passes not in its
core libraries (specifically `clang -fdebug-pass-manager`).
If you are interested in contributing improved support of Polly and
the NPM, I can point to the relevant directions.
> Rust with polly flags as well as clang with polly-parallel-force seems to quietly fail resulting in no optimizations but running code when I call opt passes manually (again as per website example documentation) I can display graphviz graph that confirms there are green SCOPs ready for optimization. I am using LLVM 13 and the associated Clang.
Whether SCoPs are recognized may depend on other passes in the pass
pipeline, such as loop normalization and alias analysis.
> also the example code on the website is non existent it just shows resulting SCOPs of a mystery.c file which is initially confusing.
The documentation is unfortunately quite out-of-date. Improving it
would certainly be appreciated. There are more options giving more
interesting output, such as -debug-only=polly-scops,
-debug-only=polly-opt-isl and -debu-only=polly-ast. Interpreting most
of the output by Polly usually requires some knowledge about its
internal modeling.
> Id like to develop code at some point and I can at least contribute from this with documentation. Ive also requested membership to submit bugs.
Looking forward to your contributions. Please don't hesitate having
more conversations on this mailing list.
I've created a
bugs.llvm.org account for you. I send the password in a
separate email.
Michael
--
Tardyzentrismus verboten!