void test14(double var14, float var1[1], float var8[1]) {
var1[0] = var14 ? var8[0] : var1[0];
}
dynamatic> set-dynamatic-path /home/mboeck/dynamatic
dynamatic> set-src test14.c
dynamatic> compile
[INFO] Compiled to LLVM IR
[INFO] Optimized LLVM IR
opt: /home/mboeck/dynamatic/lib/Transforms/LLVMIR/MemDepAnalysis.cpp:709: Value *(anonymous namespace)::findBaseInternal(Value *): Assertion `trueBase == falseBase' failed.
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/bug4/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 0x00007f6a89de5990 __restore_rt (/lib64/libpthread.so.0+0x12990)
#4 0x00007f6a886275af raise (/lib64/libc.so.6+0x4e5af)
#5 0x00007f6a885faee5 abort (/lib64/libc.so.6+0x21ee5)
#6 0x00007f6a885fadb9 _nl_load_domain.cold.0 (/lib64/libc.so.6+0x21db9)
#7 0x00007f6a8861ff06 (/lib64/libc.so.6+0x46f06)
#8 0x00007f6a8a1fb54a (anonymous namespace)::findBaseInternal(llvm::Value*) (/home/mboeck/dynamatic/build/lib/MemDepAnalysis.so+0x1254a)
#9 0x00007f6a8a1f6c89 (anonymous namespace)::MemDepAnalysisPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/mboeck/dynamatic/build/lib/MemDepAnalysis.so+0xdc89)
#10 0x00007f6a8a1f5a1d 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)
#11 0x00000000025555d4 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/mboeck/dynamatic/bin/opt+0x25555d4)
#12 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)
#13 0x0000000002559813 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/mboeck/dynamatic/bin/opt+0x2559813)
#14 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)
#15 0x00000000025547c4 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/mboeck/dynamatic/bin/opt+0x25547c4)
#16 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)
#17 0x000000000170bd17 main (/home/mboeck/dynamatic/bin/opt+0x170bd17)
#18 0x00007f6a88613865 __libc_start_main (/lib64/libc.so.6+0x3a865)
#19 0x00000000016f6fee _start (/home/mboeck/dynamatic/bin/opt+0x16f6fee)
/home/mboeck/dynamatic/tools/dynamatic/scripts/compile.sh: line 201: 1138306 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
Given following C code:
Dynamatic outputs the following assertion: