jcranmer-intel added a comment.
================ Comment at: clang/lib/CodeGen/CGOpenCLRuntime.cpp:80 + + if (useSPIRVTargetExtType(CGM)) { + switch (cast<BuiltinType>(T)->getKind()) { ---------------- Anastasia wrote: > Perhaps it's best to split into separate functions and reflect in naming what > they correspond to. I've decided to pull this out into a new subclass of CGOpenCLRuntime that's target specific. ================ Comment at: clang/lib/CodeGen/CGOpenCLRuntime.cpp:100 +#define INTEL_SUBGROUP_AVC_TYPE(Name, Id) \ + case BuiltinType::OCLIntelSubgroupAVC##Id: \ + return llvm::TargetExtType::get(Ctx, "spirv.Avc" #Id "INTEL"); ---------------- Anastasia wrote: > Why does this need special handling? The `EXT_OPAQUE_TYPE` macro doesn't map cleanly to the SPIR-V OpType* names--the parameters you'd get would be `intel_sub_group_avc_mce_payload_t, OCLIntelSubgroupAVCMcePayload, cl_intel_device_side_avc_motion_estimation` whereas the SPIR-V type name is supposed to be `AvcMcePayloadINTEL`. Using the `INTEL_SUBGROUP_AVC_TYPE` instead allows me to construct the correct SPIR-V type name without having to manually write out each case statement, or adjust macros used in many, many more places. (As it is, I need to rename 4 of the types). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141008/new/ https://reviews.llvm.org/D141008 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits