This is an archive of the discontinued LLVM Phabricator instance.

[NVVM] Update intrinsic defintions to include the `nocallback` attribute
ClosedPublic

Authored by jhuber6 on May 18 2022, 4:40 PM.

Details

Summary

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.

Diff Detail

Event Timeline

jhuber6 created this revision.May 18 2022, 4:40 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 18 2022, 4:40 PM
jhuber6 requested review of this revision.May 18 2022, 4:40 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 18 2022, 4:40 PM
This revision is now accepted and ready to land.May 19 2022, 8:59 AM
This revision was landed with ongoing or failed builds.May 19 2022, 9:30 AM
This revision was automatically updated to reflect the committed changes.
tra added inline comments.May 19 2022, 10:24 AM
llvm/include/llvm/IR/IntrinsicsNVVM.td
1238

Is there a reason these f32<-> f16/bf16 conversion intrinsics should not be a DefaultAttrsIntrinsic ?

jhuber6 added inline comments.May 19 2022, 11:03 AM
llvm/include/llvm/IR/IntrinsicsNVVM.td
1238

They probably could be, I could add them in.