New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Polly] Sequence of scops breaks with scev-codegen #21578
Comments
First note: Second note: Third note, or what happends here: R0: X = ... after independent blocks: R0: X = ... Thus it looks like everything is fine. However if X was e.g., involved in Fourth note, or what to do about it:
Fifth note: |
I would like to eliminate it entirely. That's the reason the the scev based code generation. We also still need support to model scalars without translating them to arrays and then it can possibly fully eliminated.
This test case is really not related to run-time alias checks. I just verified it with running this command: polly-opt alias-checks-two-scops-in-a-row.ll -polly-codegen-isl -polly-codegen-scev -polly-ignore-aliasing I marked it as such as I did not had time to had time to look at the test case (even though it would have been easy to understand.
Thanks.
No idea yet. I need to think about this.
Me as well (I want the openmp codegen out). As it is not RTC related, I may have a look myself. ;) Tobias |
*** Bug #12681 has been marked as a duplicate of this bug. *** |
This very test case has been fixed in r222103. The way how polly handles sequences of scops is still not perfect, but we should open a new bug report (with a corresponding test case) to track this. |
Move to Polly Product. |
Extended Description
With r219208 the following command on the attached test case asserts:
polly-opt alias-checks-two-scops-in-a-row.ll -polly-codegen-isl -polly-codegen-scev -polly-code-generator=isl
opt: /home/grosser/Projects/polly/git/tools/polly/lib/Transform/IndependentBlocks.cpp:551: void ::IndependentBlocks::verifyScop(const llvm::Region *) const: Assertion `areAllBlocksIndependent(R) && "Cannot generate independent blocks"' failed.
This is a reduced test case derived from the last failure in LNT.
The run-time alias check is involved here, but it may very well be that the actual problem is caused by a issue with the scev based code generation or the way we (incorrectly) (in)validate data of subsequent scops.
In general the way we optimize two scops in one function is fishy, so nasty bugs are unfortunatly somehow expected.
The text was updated successfully, but these errors were encountered: