[llvm-bugs] [Bug 28541] New: Infinite recursion in loop vectorizer

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Jul 13 12:17:43 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=28541

            Bug ID: 28541
           Summary: Infinite recursion in loop vectorizer
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Loop Optimizer
          Assignee: unassignedbugs at nondot.org
          Reporter: benny.kra at gmail.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

$ 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 ...
1.      <eof> parser at end of file
2.      Per-module optimization passes
3.      Running pass 'Function Pass Manager' on module 't.c'.
4.      Running pass 'Loop Vectorization' on function '@fn1'
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.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160713/58ffcf7b/attachment.html>


More information about the llvm-bugs mailing list