Skip to content

[MemDepAnalysis] Error: Cannot determine base array, aborting... #891

@zero9178

Description

@zero9178

Given the following C code:

void test54(double var5, float var2[1], int16_t var3[1], double var6[1],
             double var7[1]) {
  var2[0] = var5 ? var6[var3[0]] : var7[0];
}

Dynamatic crashes with the following stack trace:

dynamatic> set-dynamatic-path /home/mboeck/dynamatic
dynamatic> set-src test54.c
dynamatic> compile
[INFO] Compiled to LLVM IR
[INFO] Optimized LLVM IR
Cannot  determine base array, aborting...
UNREACHABLE executed at /home/mboeck/dynamatic/lib/Transforms/LLVMIR/MemDepAnalysis.cpp:716!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/mboeck/dynamatic/bin/opt -S -load-pass-plugin /home/mboeck/dynamatic/build/lib/MemDepAnalysis.so -passes=mem-dep-analysis -polly-process-unprofitable /home/mboeck/dynamatic/build/bin/bug3/out/comp/clang.opt.ll
 #0 0x0000000002a5b5b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/mboeck/dynamatic/bin/opt+0x2a5b5b8)
 #1 0x0000000002a590ee llvm::sys::RunSignalHandlers() (/home/mboeck/dynamatic/bin/opt+0x2a590ee)
 #2 0x0000000002a5bd9d SignalHandler(int) (/home/mboeck/dynamatic/bin/opt+0x2a5bd9d)
 #3 0x00007f24a02fe990 __restore_rt (/lib64/libpthread.so.0+0x12990)
 #4 0x00007f249eb405af raise (/lib64/libc.so.6+0x4e5af)
 #5 0x00007f249eb13ee5 abort (/lib64/libc.so.6+0x21ee5)
 #6 0x00000000029d1f9f (/home/mboeck/dynamatic/bin/opt+0x29d1f9f)
 #7 0x00007f24a0714576 (anonymous namespace)::findBaseInternal(llvm::Value*) (/home/mboeck/dynamatic/build/lib/MemDepAnalysis.so+0x12576)
 #8 0x00007f24a070fc89 (anonymous namespace)::MemDepAnalysisPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/mboeck/dynamatic/build/lib/MemDepAnalysis.so+0xdc89)
 #9 0x00007f24a070ea1d llvm::detail::PassModel<llvm::Function, (anonymous namespace)::MemDepAnalysisPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/mboeck/dynamatic/build/lib/MemDepAnalysis.so+0xca1d)
#10 0x00000000025555d4 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/mboeck/dynamatic/bin/opt+0x25555d4)
#11 0x0000000002c5386d llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/mboeck/dynamatic/bin/opt+0x2c5386d)
#12 0x0000000002559813 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/mboeck/dynamatic/bin/opt+0x2559813)
#13 0x0000000002c53b0d llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/mboeck/dynamatic/bin/opt+0x2c53b0d)
#14 0x00000000025547c4 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/mboeck/dynamatic/bin/opt+0x25547c4)
#15 0x00000000016fd8c4 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/home/mboeck/dynamatic/bin/opt+0x16fd8c4)
#16 0x000000000170bd17 main (/home/mboeck/dynamatic/bin/opt+0x170bd17)
#17 0x00007f249eb2c865 __libc_start_main (/lib64/libc.so.6+0x3a865)
#18 0x00000000016f6fee _start (/home/mboeck/dynamatic/bin/opt+0x16f6fee)
/home/mboeck/dynamatic/tools/dynamatic/scripts/compile.sh: line 201: 1347097 Aborted                 (core dumped) $LLVM_OPT -S -load-pass-plugin "$DYNAMATIC_DIR/build/lib/MemDepAnalysis.so" -passes="mem-dep-analysis" -polly-process-unprofitable "$F_CLANG_OPTIMIZED" > "$F_CLANG_OPTIMIZED_DEPENDENCY"
[FATAL] Failed to apply memory dependency analysis to LLVM IR

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions