Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

omp dump pass fails on lulesh with LLVM 3.9 #171

Open
pablooliveira opened this issue Feb 24, 2017 · 3 comments
Open

omp dump pass fails on lulesh with LLVM 3.9 #171

pablooliveira opened this issue Feb 24, 2017 · 3 comments
Assignees
Labels

Comments

@pablooliveira
Copy link
Member

/home/poliveira/clang+llvm-3.9.1-aarch64-linux-gnu/bin/opt -S -load /home/poliveira/local/lib/libcere_regiondump.so -omp-region-dump  --region=__cere__lulesh__ZL28CalcHourglassControlForElemsR6DomainPdd_1037 --invocation=1  lulesh.ll -o lulesh.ll

Basic Block in function '__cere__lulesh__ZL28CalcHourglassControlForElemsR6DomainPdd_1037' does not have terminator!
label %newFuncRoot
LLVM ERROR: Broken function found, compilation aborted!

@mihailpopov do you have an idea of what is going on ? I know in aarch64 some changes were commited to the way openmp microtasks were outlined in LLVM 3.9. Maybe it could be that ?

@pablooliveira
Copy link
Member Author

I just tested it in LLVM 3.8 on the same CERE version and platform and it works well. So this in LLVM 3.9 triggered.

@mihailpopov
Copy link
Member

It is not the outlining pass that fails: it is the dump compilation pass.

I was able to replay this region (with a dump generated with LLVM 3.8) => the outlining pass was successfully used by the replay pass of LLVM 3.9.

Moreover, I tested the following commands:
clang -g -O3 -fopenmp -Wall -O0 -g -DUSE_OMP=1 -DUSE_MPI=0 -I. lulesh.cc -S -emit-llvm -o lulesh.ll
opt -S -load /usr/local/lib/libcere_regionoutliner.so -omp-region-outliner lulesh.ll -o lulesh2.ll
opt -S -load /usr/local/lib/libcere_regiondump.so -omp-region-dump --region=__cere__lulesh__ZL28CalcHourglassControlForElemsR6DomainPdd_1037 --invocation=1 lulesh2.ll -o lulesh3.ll

I checked the .ll file validity after the outlining and it looked ok. So, the issue appears during the dump pass: I will focus there.

@pablooliveira pablooliveira changed the title omp outliner pass fails on lulesh with LLVM 3.9 on aarch64 omp dump pass fails on lulesh with LLVM 3.9 on aarch64 Mar 17, 2017
@pablooliveira
Copy link
Member Author

This is also confirmed on x86.

@pablooliveira pablooliveira changed the title omp dump pass fails on lulesh with LLVM 3.9 on aarch64 omp dump pass fails on lulesh with LLVM 3.9 Apr 25, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants