Skip to content
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

loop vectorizer causes dominance violation #30090

Closed
llvmbot opened this issue Oct 20, 2016 · 3 comments
Closed

loop vectorizer causes dominance violation #30090

llvmbot opened this issue Oct 20, 2016 · 3 comments
Labels
bugzilla Issues migrated from bugzilla loopoptim

Comments

@llvmbot
Copy link
Collaborator

llvmbot commented Oct 20, 2016

Bugzilla Link 30742
Resolution FIXED
Resolved on Jan 09, 2017 14:10
Version trunk
OS Linux
Attachments -loop-vectorize bug
Reporter LLVM Bugzilla Contributor
CC @Delena,@hfinkel,@ZviRackover

Extended Description

The attached program shows a failure in opt's loop vectorizer pass. I believe this failure has been present for several releases, and I have replicated it with trunk, 3.9, etc.

% opt bug.bc -verify -disable-output
% opt bug.bc -loop-vectorize -disable-output
Instruction does not dominate all uses!
%49 = select i1 %48, i32 1, i32 %47
%43 = add i32 %49, -7
LLVM ERROR: Broken function found, compilation aborted!

@llvmbot
Copy link
Collaborator Author

llvmbot commented Oct 26, 2016

I believe the vectorizer must not be keeping the dominator tree up to date properly. It looks like a SCEVExpander is generating code in an unexpected place.

@llvmbot
Copy link
Collaborator Author

llvmbot commented Jan 3, 2017

Patch submitted here: https://reviews.llvm.org/D28168

@llvmbot
Copy link
Collaborator Author

llvmbot commented Jan 9, 2017

Fix committed in r291462. The patch delays the fix-up operation for external induction variable users until after the dominator tree has been updated. But we should work towards keeping the dominator tree up-to-date throughout the transformation, rather than updating it at the end.

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 10, 2021
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla loopoptim
Projects
None yet
Development

No branches or pull requests

1 participant