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
Infinite recursion in loop vectorizer #28915
Comments
Bisection points at r264697. This code is coming from real code (pygame) even though it looks like fuzzer output ;) |
*** Bug llvm/llvm-bugzilla-archive#28716 has been marked as a duplicate of this bug. *** |
Sounds like this is a 3.8 -> 3.9 regression. |
*** Bug #28564 has been marked as a duplicate of this bug. *** |
mkuper pointed out there's a fix up for review: http://reviews.llvm.org/D22952 |
Fixed by r278573. |
mentioned in issue #28974 |
mentioned in issue llvm/llvm-bugzilla-archive#28716 |
Extended Description
$ cat t.c
a, b, c;
fn1() {
while (b--) {
c = a;
switch (a & 3)
case 0:
do
case 3:
case 2:
case 1:
;
while (--c)
;
}
}
$ clang -O2 t.c
...
#8 0x00000000019ffbaa (anonymous namespace)::InnerLoopVectorizer::createBlockInMask(llvm::BasicBlock*) (bin/clang)
#9 0x0000000001a000d4 (anonymous namespace)::InnerLoopVectorizer::createEdgeMask(llvm::BasicBlock*, llvm::BasicBlock*) (bin/clang)
... repeats 100+ times ...
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 3.9.0 (trunk 275303) (llvm/trunk 275304)
The crash only occurs at -O2, the bug comes from the interaction of multiple passes.
The text was updated successfully, but these errors were encountered: