================ @@ -0,0 +1,47 @@ +//===- AMDGPU.cpp - Emit CIR for AMDGPU -----------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "../TargetLoweringInfo.h" +#include "clang/CIR/Dialect/IR/CIROpsEnums.h" +#include "llvm/Support/ErrorHandling.h" + +namespace cir { + +namespace { + +class AMDGPUTargetLoweringInfo : public TargetLoweringInfo { +public: + // Address space mapping from: + // https://llvm.org/docs/AMDGPUUsage.html#address-spaces + unsigned getTargetAddrSpaceFromCIRAddrSpace( ---------------- RiverDave wrote:
Hey Matt, Sorry for taking a while to get back to you. `cir::LangAddressSpace` isn't a renaming of `clang::LangAS`. It's fundamentally a many-to-one unification. cuda_shared, opencl_local, and sycl_local all collapse to a single OffloadLocal at CIRGen time (this is the design from the https://discourse.llvm.org/t/rfc-clangir-unified-address-space-design-in-clangir/79728). Therefore `TargetInfo::getTargetAddressSpace(LangAS)` is our mapping of the unified representation back the target one. https://github.com/llvm/llvm-project/pull/179084 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
