This is an archive of the discontinued LLVM Phabricator instance.

[libomptarget][devicertl] Replace lanemask with uint64 at interface
ClosedPublic

Authored by JonChesterfield on Aug 18 2021, 12:04 PM.

Details

Summary

Use uint64_t for lanemask on all GPU architectures at the interface
with clang. Updates tests. The deviceRTL is always linked as IR so the zext
and trunc introduced for wave32 architectures will fold after inlining.

Simplification partly motivated by amdgpu gfx10 which will be wave32 and
is awkward to express in the current arch-dependant typedef interface.

Diff Detail

Event Timeline

JonChesterfield requested review of this revision.Aug 18 2021, 12:04 PM
Herald added projects: Restricted Project, Restricted Project, Restricted Project. · View Herald TranscriptAug 18 2021, 12:04 PM
JonChesterfield edited the summary of this revision. (Show Details)Aug 18 2021, 12:05 PM
jdoerfert accepted this revision.Aug 18 2021, 12:34 PM

LG. We could replace LaneMaskTy in the new dev rtl but that is not necessary.

This revision is now accepted and ready to land.Aug 18 2021, 12:34 PM

Yep, and optionally in the old one as well. The 32/64 conversion all shakes out OK in the end. Restricting the patch to the interface and immediate consequences makes it easier to review.

This revision was landed with ongoing or failed builds.Aug 18 2021, 12:48 PM
This revision was automatically updated to reflect the committed changes.