aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInstance.cpp
diff options
context:
space:
mode:
authorTom Eccles <tom.eccles@arm.com>2025-04-29 17:19:40 +0100
committerGitHub <noreply@github.com>2025-04-29 17:19:40 +0100
commit7b70fc74d039dbb0c3c67feb1741bb5c446d55f7 (patch)
tree6b8f91ed45b408c7566901c7881368d045ed2dbc /clang/lib/Frontend/CompilerInstance.cpp
parentd20796dab776f80c26915c44d558357f3459a184 (diff)
downloadllvm-7b70fc74d039dbb0c3c67feb1741bb5c446d55f7.zip
llvm-7b70fc74d039dbb0c3c67feb1741bb5c446d55f7.tar.gz
llvm-7b70fc74d039dbb0c3c67feb1741bb5c446d55f7.tar.bz2
[mlir][OpenMP] Convert omp.cancel sections to LLVMIR (#137193)
This is quite ugly but it is the best I could think of. The old FiniCBWrapper was way too brittle depending upon the exact block structure inside of the section, and could be confused by any control flow in the section (e.g. an if clause on cancel). The wording in the comment and variable names didn't seem to match where it was actually branching too as well. Clang's (non-OpenMPIRBuilder) lowering for cancel inside of sections branches to a block containing __kmpc_for_static_fini. This was hard to achieve here because sometimes the FiniCBWrapper has to run before the worksharing loop finalization has been crated. To get around this ordering issue I created a dummy branch to a dummy block, which is then fixed later once all of the information is available.
Diffstat (limited to 'clang/lib/Frontend/CompilerInstance.cpp')
0 files changed, 0 insertions, 0 deletions