-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Description
I get a message from supervec that the constant synthesizer only supports integers and vectors of integers. I use an array as an argument, and it crashes. Unsure if because arrays are just generally unsupported, or a deeper bug. Two different examples with different stacktraces:
Source file:
void function(unsigned char vin[], unsigned char vout[], int height, int width)
{
int currentIndex, avgColor, redColor, greenColor, blueColor;
for(int i = 0; i < height; ++i)
{
for(int j = 0; j < width; ++j)
{
currentIndex = (i * width + j) * 3;
redColor = vin[currentIndex];
greenColor = vin[currentIndex + 1];
blueColor = vin[currentIndex + 2];
avgColor = (redColor + greenColor + blueColor) / 3;
for(int i = 0; i < 3; ++i)
vout[currentIndex + i] = avgColor;
}
}
}
Compiled using:
clang++ -I -march=native -mavx2 -O3 -Werror -S -emit-llvm function.cpp -o function.ll
Called supervec using:
$HOME/llvm/build/bin/opt -enable-new-pm=0 -load $HOME/minotaur/build/minotaur.so -so -S function.ll
Sketches output:
---------Sketches------------
(copy reservedconst)
-----------------------------
----------------------------------------
define void @_Z8functionPhS_ii.48.49(* nocapture nowrite %0, * nocapture %1, i32 %2, i32 %3, i64 %_reservedc_0) nofree {
%4:
%10 = icmp sgt i32 %3, 0
br i1 %10, label %5, label %9
%5:
%11 = mul i32 %3, 3
%12 = zext i32 %3 to i64
%13 = zext i32 %2 to i64
%14 = zext i32 %3 to i64
br label %6
%6:
%15 = phi i64 [ 0, %5 ], [ %43, %8 ]
%16 = trunc i64 %15 to i32
%17 = mul i32 %11, %16
%18 = sext i32 %17 to i64
%19 = mul nsw i64 %15, %12
br label %7
%7:
%20 = phi i64 [ 0, %6 ], [ %41, %7 ]
%21 = mul nsw nuw i64 %20, 3
%22 = add nsw i64 %21, %18
%23 = gep * nocapture %1, 1 x i64 %22
%24 = add nsw nuw i64 %20, %19
%25 = mul nsw i64 %24, 3
%26 = gep inbounds * nocapture nowrite %0, 1 x i64 %25
%27 = load i8, * %26, align 1
%28 = zext i8 %27 to i16
%29 = add nsw nuw i64 %25, 1
%30 = gep inbounds * nocapture nowrite %0, 1 x i64 %29
%31 = load i8, * %30, align 1
%32 = zext i8 %31 to i16
%33 = add nsw nuw i64 %25, 2
%34 = gep inbounds * nocapture nowrite %0, 1 x i64 %33
%35 = load i8, * %34, align 1
%36 = zext i8 %35 to i16
%37 = add nsw nuw i16 %32, %28
%38 = add nsw nuw i16 %37, %36
%39 = udiv i16 %38, 3
%40 = trunc i16 %39 to i8
memset * %23 align 1, i8 %40, i64 3
%41 = add nsw nuw i64 %20, 1
%42 = icmp eq i64 %41, %14
br i1 %42, label %8, label %7
%8:
%43 = add nsw nuw i64 %15, 1
%44 = icmp eq i64 %43, %13
br i1 %44, label %9, label %6#2
%6#2:
%15#2 = phi i64 [ %43, %8 ]
%16#2 = trunc i64 %15#2 to i32
%17#2 = mul i32 %11, %16#2
%18#2 = sext i32 %17#2 to i64
%19#2 = mul nsw i64 %15#2, %12
br label %7#2
%7#2:
%20#2 = phi i64 [ 0, %6#2 ], [ %41, %7 ]
%21#2 = mul nsw nuw i64 %20#2, 3
%22#2 = add nsw i64 %21#2, %18#2
%23#2 = gep * nocapture %1, 1 x i64 %22#2
%24#2 = add nsw nuw i64 %20#2, %19#2
%25#2 = mul nsw i64 %24#2, 3
%26#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %25#2
%27#2 = load i8, * %26#2, align 1
%28#2 = zext i8 %27#2 to i16
%29#2 = add nsw nuw i64 %25#2, 1
%30#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %29#2
%31#2 = load i8, * %30#2, align 1
%32#2 = zext i8 %31#2 to i16
%33#2 = add nsw nuw i64 %25#2, 2
%34#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %33#2
%35#2 = load i8, * %34#2, align 1
%36#2 = zext i8 %35#2 to i16
%37#2 = add nsw nuw i16 %32#2, %28#2
%38#2 = add nsw nuw i16 %37#2, %36#2
%39#2 = udiv i16 %38#2, 3
%40#2 = trunc i16 %39#2 to i8
memset * %23#2 align 1, i8 %40#2, i64 3
%41#2 = add nsw nuw i64 %20#2, 1
%42#2 = icmp eq i64 %41#2, %14
br i1 %42#2, label %8#2, label %7#2
%8#2:
%43#2 = add nsw nuw i64 %15#2, 1
%44#2 = icmp eq i64 %43#2, %13
br i1 %44#2, label %9, label %6#exit
%9:
ret void
%6#exit:
%15#exit = phi i64 [ %43#2, %8#2 ]
%16#exit = trunc i64 %15#exit to i32
%17#exit = mul i32 %11, %16#exit
%18#exit = sext i32 %17#exit to i64
%19#exit = mul nsw i64 %15#exit, %12
br label #sink
}
=>
define void @_Z8functionPhS_ii.48(* nocapture nowrite %0, * nocapture %1, i32 %2, i32 %3, i64 %_reservedc_0) nofree {
%4:
%10 = icmp sgt i32 %3, 0
br i1 %10, label %5, label %9
%5:
%11 = mul i32 %3, 3
%12 = zext i32 %3 to i64
%13 = zext i32 %2 to i64
br label %6
%6:
%14 = phi i64 [ 0, %5 ], [ %42, %8 ]
%15 = trunc i64 %14 to i32
%16 = mul i32 %11, %15
%17 = sext i32 %16 to i64
%18 = mul nsw i64 %14, %12
br label %7
%7:
%19 = phi i64 [ 0, %6 ], [ %40, %7 ]
%20 = mul nsw nuw i64 %19, 3
%21 = add nsw i64 %20, %17
%22 = gep * nocapture %1, 1 x i64 %21
%23 = add nsw nuw i64 %19, %18
%24 = mul nsw i64 %23, 3
%25 = gep inbounds * nocapture nowrite %0, 1 x i64 %24
%26 = load i8, * %25, align 1
%27 = zext i8 %26 to i16
%28 = add nsw nuw i64 %24, 1
%29 = gep inbounds * nocapture nowrite %0, 1 x i64 %28
%30 = load i8, * %29, align 1
%31 = zext i8 %30 to i16
%32 = add nsw nuw i64 %24, 2
%33 = gep inbounds * nocapture nowrite %0, 1 x i64 %32
%34 = load i8, * %33, align 1
%35 = zext i8 %34 to i16
%36 = add nsw nuw i16 %31, %27
%37 = add nsw nuw i16 %36, %35
%38 = udiv i16 %37, 3
%39 = trunc i16 %38 to i8
memset * %22 align 1, i8 %39, i64 3
%40 = add nsw nuw i64 %19, 1
%41 = icmp eq i64 %40, %_reservedc_0
br i1 %41, label %8, label %7
%8:
%42 = add nsw nuw i64 %14, 1
%43 = icmp eq i64 %42, %13
br i1 %43, label %9, label %6#2
%6#2:
%14#2 = phi i64 [ %42, %8 ]
%15#2 = trunc i64 %14#2 to i32
%16#2 = mul i32 %11, %15#2
%17#2 = sext i32 %16#2 to i64
%18#2 = mul nsw i64 %14#2, %12
br label %7#2
%7#2:
%19#2 = phi i64 [ 0, %6#2 ], [ %40, %7 ]
%20#2 = mul nsw nuw i64 %19#2, 3
%21#2 = add nsw i64 %20#2, %17#2
%22#2 = gep * nocapture %1, 1 x i64 %21#2
%23#2 = add nsw nuw i64 %19#2, %18#2
%24#2 = mul nsw i64 %23#2, 3
%25#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %24#2
%26#2 = load i8, * %25#2, align 1
%27#2 = zext i8 %26#2 to i16
%28#2 = add nsw nuw i64 %24#2, 1
%29#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %28#2
%30#2 = load i8, * %29#2, align 1
%31#2 = zext i8 %30#2 to i16
%32#2 = add nsw nuw i64 %24#2, 2
%33#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %32#2
%34#2 = load i8, * %33#2, align 1
%35#2 = zext i8 %34#2 to i16
%36#2 = add nsw nuw i16 %31#2, %27#2
%37#2 = add nsw nuw i16 %36#2, %35#2
%38#2 = udiv i16 %37#2, 3
%39#2 = trunc i16 %38#2 to i8
memset * %22#2 align 1, i8 %39#2, i64 3
%40#2 = add nsw nuw i64 %19#2, 1
%41#2 = icmp eq i64 %40#2, %_reservedc_0
br i1 %41#2, label %8#2, label %7#2
%8#2:
%42#2 = add nsw nuw i64 %14#2, 1
%43#2 = icmp eq i64 %42#2, %13
br i1 %43#2, label %9, label %6#exit
%9:
ret void
%6#exit:
%14#exit = phi i64 [ %42#2, %8#2 ]
%15#exit = trunc i64 %14#exit to i32
%16#exit = mul i32 %11, %15#exit
%17#exit = sext i32 %16#exit to i64
%18#exit = mul nsw i64 %14#exit, %12
br label #sink
}
constant synthesizer now only supports synthesizing integers and vector of integers
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/stefan/llvm/build/bin/opt -enable-new-pm=0 -load /home/stefan/minotaur/build/minotaur.so -so -S function.ll
1. Running pass 'Function Pass Manager' on module 'function.ll'.
2. Running pass 'Superoptimizer' on function '@_Z8functionPhS_ii'
#0 0x00007efe722d0c14 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x00007efe722cdc9e SignalHandler(int) Signals.cpp:0:0
#2 0x00007efe71d0a210 (/lib/x86_64-linux-gnu/libc.so.6+0x46210)
#3 0x00007efe71f7be14 __dynamic_cast (/lib/x86_64-linux-gnu/libstdc++.so.6+0xa8e14)
#4 0x00007efe709522bb minotaur::LLVMGen::codeGen(minotaur::Inst*, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >&, std::unordered_map<llvm::Argument*, llvm::Constant*, std::hash<llvm::Argument*>, std::equal_to<llvm::Argument*>, std::allocator<std::pair<llvm::Argument* const, llvm::Constant*> > >*) (/home/stefan/minotaur/build/minotaur.so+0x832bb)
#5 0x00007efe7094a014 minotaur::synthesize(llvm::Function&, llvm::TargetLibraryInfo*) (/home/stefan/minotaur/build/minotaur.so+0x7b014)
#6 0x00007efe725d67d3 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/stefan/llvm/build/bin/../lib/libLLVMCore.so.14git+0x2727d3)
#7 0x00007efe725d6a19 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/stefan/llvm/build/bin/../lib/libLLVMCore.so.14git+0x272a19)
#8 0x00007efe725d7c23 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/stefan/llvm/build/bin/../lib/libLLVMCore.so.14git+0x273c23)
#9 0x00005652ce39dfc4 main (/home/stefan/llvm/build/bin/opt+0x27fc4)
#10 0x00007efe71ceb0b3 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:342:3
#11 0x00005652ce39ee7e _start (/home/stefan/llvm/build/bin/opt+0x28e7e)
Segmentation fault (core dumped)
Source file:
void function(unsigned char vin[], unsigned char vout[])
{
constexpr int height = 800;
constexpr int width = 600;
int currentIndex, avgColor, redColor, greenColor, blueColor;
for(int i = 0; i < height; ++i)
{
for(int j = 0; j < width; ++j)
{
currentIndex = (i * width + j) * 3;
redColor = vin[currentIndex];
greenColor = vin[currentIndex + 1];
blueColor = vin[currentIndex + 2];
avgColor = (redColor + greenColor + blueColor) / 3;
for(int i = 0; i < 3; ++i)
vout[currentIndex + i] = avgColor;
}
}
}
Compiled using:
clang++ -I -march=native -mavx2 -O3 -Werror -S -emit-llvm function.cpp -o function.ll
Called supervec using:
$HOME/llvm/build/bin/opt -enable-new-pm=0 -load $HOME/minotaur/build/minotaur.so -so -S function.ll
Sketches output:
$HOME/llvm/build/bin/opt -enable-new-pm=0 -load $HOME/minotaur/build/minotaur.so -so -S function.ll
---------Sketches------------
(copy reservedconst)
(and %, %)
(and %, %)
(and %, reservedconst)
(and %, %)
(and %, reservedconst)
(or %, %)
(or %, %)
(or %, reservedconst)
(or %, %)
(or %, reservedconst)
(xor %, %)
(xor %, %)
(xor %, reservedconst)
(xor %, %)
(xor %, reservedconst)
(add %, %)
(add %, %)
(add %, reservedconst)
(add %, %)
(add %, reservedconst)
(sub %, %)
(sub %, %)
(sub %, %)
(sub %, %)
(sub reservedconst, %)
(sub reservedconst, %)
(mul %, %)
(mul %, %)
(mul %, reservedconst)
(mul %, %)
(mul %, reservedconst)
%
%
-----------------------------
----------------------------------------
define void @_Z8functionPhS_.1.2(* nocapture nowrite %0, * nocapture %1, i64 %_reservedc_0) nofree {
%2:
br label %3
%3:
%7 = phi i64 [ 0, %2 ], [ %33, %5 ]
%8 = mul nsw nuw i64 %7, 1800
%9 = mul nsw nuw i64 %7, 600
br label %4
%4:
%10 = phi i64 [ 0, %3 ], [ %31, %4 ]
%11 = mul nsw nuw i64 %10, 3
%12 = add nsw nuw i64 %8, %11
%13 = gep * nocapture %1, 1 x i64 %12
%14 = add nsw nuw i64 %10, %9
%15 = mul nsw nuw i64 %14, 3
%16 = gep inbounds * nocapture nowrite %0, 1 x i64 %15
%17 = load i8, * %16, align 1
%18 = zext i8 %17 to i16
%19 = add nsw nuw i64 %15, 1
%20 = gep inbounds * nocapture nowrite %0, 1 x i64 %19
%21 = load i8, * %20, align 1
%22 = zext i8 %21 to i16
%23 = add nsw nuw i64 %15, 2
%24 = gep inbounds * nocapture nowrite %0, 1 x i64 %23
%25 = load i8, * %24, align 1
%26 = zext i8 %25 to i16
%27 = add nsw nuw i16 %22, %18
%28 = add nsw nuw i16 %27, %26
%29 = udiv i16 %28, 3
%30 = trunc i16 %29 to i8
memset * %13 align 1, i8 %30, i64 3
%31 = add nsw nuw i64 %10, 1
%32 = icmp eq i64 %31, 600
br i1 %32, label %5, label %4
%5:
%33 = add nsw nuw i64 %7, 1
%34 = icmp eq i64 %33, 800
br i1 %34, label %6, label %3#2
%3#2:
%7#2 = phi i64 [ %33, %5 ]
%8#2 = mul nsw nuw i64 %7#2, 1800
%9#2 = mul nsw nuw i64 %7#2, 600
br label %4#2
%4#2:
%10#2 = phi i64 [ 0, %3#2 ], [ %31, %4 ]
%11#2 = mul nsw nuw i64 %10#2, 3
%12#2 = add nsw nuw i64 %8#2, %11#2
%13#2 = gep * nocapture %1, 1 x i64 %12#2
%14#2 = add nsw nuw i64 %10#2, %9#2
%15#2 = mul nsw nuw i64 %14#2, 3
%16#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %15#2
%17#2 = load i8, * %16#2, align 1
%18#2 = zext i8 %17#2 to i16
%19#2 = add nsw nuw i64 %15#2, 1
%20#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %19#2
%21#2 = load i8, * %20#2, align 1
%22#2 = zext i8 %21#2 to i16
%23#2 = add nsw nuw i64 %15#2, 2
%24#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %23#2
%25#2 = load i8, * %24#2, align 1
%26#2 = zext i8 %25#2 to i16
%27#2 = add nsw nuw i16 %22#2, %18#2
%28#2 = add nsw nuw i16 %27#2, %26#2
%29#2 = udiv i16 %28#2, 3
%30#2 = trunc i16 %29#2 to i8
memset * %13#2 align 1, i8 %30#2, i64 3
%31#2 = add nsw nuw i64 %10#2, 1
%32#2 = icmp eq i64 %31#2, 600
br i1 %32#2, label %5#2, label %4#2
%5#2:
%33#2 = add nsw nuw i64 %7#2, 1
%34#2 = icmp eq i64 %33#2, 800
br i1 %34#2, label %6, label %3#exit
%6:
ret void
%3#exit:
%7#exit = phi i64 [ %33#2, %5#2 ]
%8#exit = mul nsw nuw i64 %7#exit, 1800
%9#exit = mul nsw nuw i64 %7#exit, 600
br label #sink
}
=>
define void @_Z8functionPhS_.1(* nocapture nowrite %0, * nocapture %1, i64 %_reservedc_0) nofree {
%2:
br label %3
%3:
%7 = phi i64 [ 0, %2 ], [ %32, %5 ]
%8 = mul nsw nuw i64 %7, 1800
br label %4
%4:
%9 = phi i64 [ 0, %3 ], [ %30, %4 ]
%10 = mul nsw nuw i64 %9, 3
%11 = add nsw nuw i64 %8, %10
%12 = gep * nocapture %1, 1 x i64 %11
%13 = add nsw nuw i64 %9, %_reservedc_0
%14 = mul nsw nuw i64 %13, 3
%15 = gep inbounds * nocapture nowrite %0, 1 x i64 %14
%16 = load i8, * %15, align 1
%17 = zext i8 %16 to i16
%18 = add nsw nuw i64 %14, 1
%19 = gep inbounds * nocapture nowrite %0, 1 x i64 %18
%20 = load i8, * %19, align 1
%21 = zext i8 %20 to i16
%22 = add nsw nuw i64 %14, 2
%23 = gep inbounds * nocapture nowrite %0, 1 x i64 %22
%24 = load i8, * %23, align 1
%25 = zext i8 %24 to i16
%26 = add nsw nuw i16 %21, %17
%27 = add nsw nuw i16 %26, %25
%28 = udiv i16 %27, 3
%29 = trunc i16 %28 to i8
memset * %12 align 1, i8 %29, i64 3
%30 = add nsw nuw i64 %9, 1
%31 = icmp eq i64 %30, 600
br i1 %31, label %5, label %4
%5:
%32 = add nsw nuw i64 %7, 1
%33 = icmp eq i64 %32, 800
br i1 %33, label %6, label %3#2
%3#2:
%7#2 = phi i64 [ %32, %5 ]
%8#2 = mul nsw nuw i64 %7#2, 1800
br label %4#2
%4#2:
%9#2 = phi i64 [ 0, %3#2 ], [ %30, %4 ]
%10#2 = mul nsw nuw i64 %9#2, 3
%11#2 = add nsw nuw i64 %8#2, %10#2
%12#2 = gep * nocapture %1, 1 x i64 %11#2
%13#2 = add nsw nuw i64 %9#2, %_reservedc_0
%14#2 = mul nsw nuw i64 %13#2, 3
%15#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %14#2
%16#2 = load i8, * %15#2, align 1
%17#2 = zext i8 %16#2 to i16
%18#2 = add nsw nuw i64 %14#2, 1
%19#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %18#2
%20#2 = load i8, * %19#2, align 1
%21#2 = zext i8 %20#2 to i16
%22#2 = add nsw nuw i64 %14#2, 2
%23#2 = gep inbounds * nocapture nowrite %0, 1 x i64 %22#2
%24#2 = load i8, * %23#2, align 1
%25#2 = zext i8 %24#2 to i16
%26#2 = add nsw nuw i16 %21#2, %17#2
%27#2 = add nsw nuw i16 %26#2, %25#2
%28#2 = udiv i16 %27#2, 3
%29#2 = trunc i16 %28#2 to i8
memset * %12#2 align 1, i8 %29#2, i64 3
%30#2 = add nsw nuw i64 %9#2, 1
%31#2 = icmp eq i64 %30#2, 600
br i1 %31#2, label %5#2, label %4#2
%5#2:
%32#2 = add nsw nuw i64 %7#2, 1
%33#2 = icmp eq i64 %32#2, 800
br i1 %33#2, label %6, label %3#exit
%6:
ret void
%3#exit:
%7#exit = phi i64 [ %32#2, %5#2 ]
%8#exit = mul nsw nuw i64 %7#exit, 1800
br label #sink
}
constant synthesizer now only supports synthesizing integers and vector of integers
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/stefan/llvm/build/bin/opt -enable-new-pm=0 -load /home/stefan/minotaur/build/minotaur.so -so -S function.ll
1. Running pass 'Function Pass Manager' on module 'function.ll'.
2. Running pass 'Superoptimizer' on function '@_Z8functionPhS_'
#0 0x00007fe373e7dc14 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x00007fe373e7ac9e SignalHandler(int) Signals.cpp:0:0
#2 0x00007fe3738b7210 (/lib/x86_64-linux-gnu/libc.so.6+0x46210)
#3 0x00007fe373bb2f1d std::ostream::sentry::sentry(std::ostream&) (/lib/x86_64-linux-gnu/libstdc++.so.6+0x132f1d)
#4 0x00007fe373bb36cc std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0x1336cc)
#5 0x00007fe3725a9e68 (anonymous namespace)::llvm2alive_::visitBinaryOperator(llvm::BinaryOperator&) llvm2alive.cpp:0:0
#6 0x00007fe3725af6d8 llvm::InstVisitor<(anonymous namespace)::llvm2alive_, std::unique_ptr<IR::Instr, std::default_delete<IR::Instr> > >::visit(llvm::Instruction&) llvm2alive.cpp:0:0
#7 0x00007fe3725b5180 (anonymous namespace)::llvm2alive_::run() llvm2alive.cpp:0:0
#8 0x00007fe3725b644e llvm_util::llvm2alive(llvm::Function&, llvm::TargetLibraryInfo const&, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > > const&) (/home/stefan/minotaur/build/minotaur.so+0x13a44e)
#9 0x00007fe3724f5c7b minotaur::synthesize(llvm::Function&, llvm::TargetLibraryInfo*) (/home/stefan/minotaur/build/minotaur.so+0x79c7b)
#10 0x00007fe3741837d3 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/stefan/llvm/build/bin/../lib/libLLVMCore.so.14git+0x2727d3)
#11 0x00007fe374183a19 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/stefan/llvm/build/bin/../lib/libLLVMCore.so.14git+0x272a19)
#12 0x00007fe374184c23 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/stefan/llvm/build/bin/../lib/libLLVMCore.so.14git+0x273c23)
#13 0x000055ce202eefc4 main (/home/stefan/llvm/build/bin/opt+0x27fc4)
#14 0x00007fe3738980b3 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:342:3
#15 0x000055ce202efe7e _start (/home/stefan/llvm/build/bin/opt+0x28e7e)
Segmentation fault (core dumped)
Metadata
Metadata
Assignees
Labels
No labels