[llvm-bugs] [Bug 42431] New: correlated-propagation crashes: Assertion `BI->getSuccessor(!isTrueDest) == BBTo && "BBTo isn't a successor of BBFrom"' failed.

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jun 27 18:50:11 PDT 2019


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

            Bug ID: 42431
           Summary: correlated-propagation crashes: Assertion
                    `BI->getSuccessor(!isTrueDest) == BBTo && "BBTo isn't
                    a successor of BBFrom"' failed.
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: cszide at 163.com
                CC: llvm-bugs at lists.llvm.org

Created attachment 22155
  --> https://bugs.llvm.org/attachment.cgi?id=22155&action=edit
.bc file of the source code

Though the assert message of this bug is the same as bug 35801, the reason of
this bug maybe different from bug 35801, since one developer pointed out that
bug 35801 is a bug in NewGVN.

$clang -v
clang version 9.0.0 (trunk 363125)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.4.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.4.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64


$clang -O3 -c -emit-llvm -femit-all-decls -mllvm -disable-llvm-optzns small.c

opt -slp-vectorizer -lowerswitch -loop-rotate -sroa -jump-threading -scalarizer
-break-crit-edges -correlated-propagation small.bc -o small-opt.bc
opt:
/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/lib/Analysis/LazyValueInfo.cpp:1338:
bool getEdgeValueLocal(llvm::Value*, llvm::BasicBlock*, llvm::BasicBlock*,
llvm::ValueLatticeElement&): Assertion `BI->getSuccessor(!isTrueDest) == BBTo
&& "BBTo isn't a successor of BBFrom"' failed.
Stack dump:
0.      Program arguments:
/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt -slp-vectorizer
-lowerswitch -loop-rotate -sroa -jump-threading -scalarizer -break-crit-edges
-correlated-propagation small.bc -o small-opt.bc 
1.      Running pass 'Function Pass Manager' on module 'small.bc'.
2.      Running pass 'Value Propagation' on function '@g'
 #0 0x0000555d46c2887a llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x257887a)
 #1 0x0000555d46c26534 llvm::sys::RunSignalHandlers()
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x2576534)
 #2 0x0000555d46c26672 SignalHandler(int)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x2576672)
 #3 0x00007ff520c52890 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x12890)
 #4 0x00007ff51f904e97 raise
/build/glibc-OTsEL5/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #5 0x00007ff51f906801 abort /build/glibc-OTsEL5/glibc-2.27/stdlib/abort.c:81:0
 #6 0x00007ff51f8f639a __assert_fail_base
/build/glibc-OTsEL5/glibc-2.27/assert/assert.c:89:0
 #7 0x00007ff51f8f6412 (/lib/x86_64-linux-gnu/libc.so.6+0x30412)
 #8 0x0000555d45f5fab8 (anonymous
namespace)::LazyValueInfoImpl::getEdgeValue(llvm::Value*, llvm::BasicBlock*,
llvm::BasicBlock*, llvm::ValueLatticeElement&, llvm::Instruction*)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x18afab8)
 #9 0x0000555d45f611b8 (anonymous namespace)::LazyValueInfoImpl::solve()
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x18b11b8)
#10 0x0000555d45f633d8 (anonymous
namespace)::LazyValueInfoImpl::getValueOnEdge(llvm::Value*, llvm::BasicBlock*,
llvm::BasicBlock*, llvm::Instruction*)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x18b33d8)
#11 0x0000555d45f63538 llvm::LazyValueInfo::getConstantOnEdge(llvm::Value*,
llvm::BasicBlock*, llvm::BasicBlock*, llvm::Instruction*)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x18b3538)
#12 0x0000555d4696fbf6 runImpl(llvm::Function&, llvm::LazyValueInfo*,
llvm::DominatorTree*, llvm::SimplifyQuery const&)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x22bfbf6)
#13 0x0000555d46971aa5 (anonymous
namespace)::CorrelatedValuePropagation::runOnFunction(llvm::Function&)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x22c1aa5)
#14 0x0000555d465e1189 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x1f31189)
#15 0x0000555d465e1281 llvm::FPPassManager::runOnModule(llvm::Module&)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x1f31281)
#16 0x0000555d465e03e1 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x1f303e1)
#17 0x0000555d44ec90a9 main
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x8190a9)
#18 0x00007ff51f8e7b97 __libc_start_main
/build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:344:0
#19 0x0000555d44f4e3fa _start
(/home/jack-zhou/Documents/llvm/llvm_truck/llvm2/build1/bin/opt+0x89e3fa)
Aborted (core dumped)

--------------------------------
int a, d, e, f;
unsigned b;
short c;
int g() {
  long h[] = {4, 4, 4, 4, 4};
j:
  b = -6;
  for (; b < 9;) {
    int i = 0;
    for (; i < 6; i++)
      for (; c;) {
        if (a)
          goto j;
        return d;
      }
    if (f) {
      long *k = &h[2];
      *k = 0;
    } else
      goto j;
  }
  return e;
}

-- 
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/20190628/c9d34523/attachment-0001.html>


More information about the llvm-bugs mailing list