[NVVM] Update intrinsic defintions to include the `nocallback` attribute
authorJoseph Huber <jhuber6@vols.utk.edu>
Wed, 18 May 2022 23:33:17 +0000 (19:33 -0400)
committerJoseph Huber <jhuber6@vols.utk.edu>
Thu, 19 May 2022 16:30:35 +0000 (12:30 -0400)
commitdbffa4073cf8cf278d72ad1bc3defdf7ae4f8949
tree2649d43c9bca3228e7c8acef04ba4d06b7b14103
parentc35ca3a1c78f693b749ad11742350b7fc6c5cd89
[NVVM] Update intrinsic defintions to include the `nocallback` attribute

This patch adds the `nocallback` attribute to the NVVM intrinsics that
did not use the `DefaultAttrsIntrinsic` method that includes it already.
The `nocallback` attribute states that the intrinsic function cannot
enter back into the caller's translation-unit. This allows as to
determine that a function calling a `nocallback` function can have the
`norecurse` attribute.  This should be safe for all the NVVM intrinsics
because they do not call other functions within the translation unit.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D125937
llvm/include/llvm/IR/IntrinsicsNVVM.td
llvm/test/Transforms/OpenMP/barrier_removal.ll
llvm/test/Transforms/OpenMP/replace_globalization.ll