[Attributor][OpenMP] Add assumption for non-call assembly instructions
authorJohannes Doerfert <johannes@jdoerfert.de>
Sat, 11 Sep 2021 23:34:47 +0000 (18:34 -0500)
committerJohannes Doerfert <johannes@jdoerfert.de>
Tue, 29 Mar 2022 01:57:52 +0000 (20:57 -0500)
commit7df2eba7fac2281498092dedea67d85d4f7ecfd5
treed2d7bff44a96f3b78eee7eb3d64da331804e1712
parentbb0b23174e4ab963df427393fbf21bddede499bf
[Attributor][OpenMP] Add assumption for non-call assembly instructions

Inline assembly is scary but we need to support it for the OpenMP GPU
device runtime. The new assumption expresses the fact that it may not
have call semantics, that is, it will not call another function but
simply perform an operation or side-effect. This is important for
reachability in the presence of inline assembly.

Differential Revision: https://reviews.llvm.org/D109986
llvm/include/llvm/IR/Assumptions.h
llvm/lib/IR/Assumptions.cpp
llvm/lib/Transforms/IPO/AttributorAttributes.cpp
llvm/test/Transforms/Attributor/reachability.ll [new file with mode: 0644]
openmp/libomptarget/DeviceRTL/include/Types.h