You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$opt -slp-vectorizer small-opt.bc
In this step, opt will consume too much memory and not terminate.
By using godbolt, it shows that the llvm 6/7/truck version also has this problem.
struct {
int a;
int b;
int c
} * d, e, f, g, h;
fn1() {
int j;
int k;
int l;
int m;
n : {
int o;
p:
if (j)
for (; e.a;) {
int q;
for (; h.c;) {
int i;
if (k)
goto p;
if (l)
for (; 2; i)
return o;
}
}
int r;
if (m)
aa:
if (0 & r && 0)
for (; 0;) {
int a;
for (; 0;) {
if (a)
goto n;
for (; f.c; f)
goto aa;
}
for (; 0;)
for (; g.b; 1)
return d;
}
}
}
The text was updated successfully, but these errors were encountered:
This may not a bug. When I test this testcase, I set the time of timeout command to 60s, but it cannot produce the result. Without the limitation of run time, opt can output the result. Maybe it is a performance problem.
Extended Description
$clang -v
clang version 9.0.0 (trunk 355281)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/jack-zhou/Documents/llvm/llvm_truck/llvm/build4/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.3.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.3.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@MX32
Selected multilib: .;@m64
$clang -O3 -c -emit-llvm -mllvm -disable-llvm-optzns small.c
$opt -gvn -structurizecfg small.bc -o small-opt.bc
$opt -slp-vectorizer small-opt.bc
In this step, opt will consume too much memory and not terminate.
By using godbolt, it shows that the llvm 6/7/truck version also has this problem.
struct {
int a;
int b;
int c
} * d, e, f, g, h;
fn1() {
int j;
int k;
int l;
int m;
n : {
int o;
p:
if (j)
for (; e.a;) {
int q;
for (; h.c;) {
int i;
if (k)
goto p;
if (l)
for (; 2; i)
return o;
}
}
int r;
if (m)
aa:
if (0 & r && 0)
for (; 0;) {
int a;
for (; 0;) {
if (a)
goto n;
for (; f.c; f)
goto aa;
}
for (; 0;)
for (; g.b; 1)
return d;
}
}
}
The text was updated successfully, but these errors were encountered: