Skip to content

Commit 0d2ea7f

Browse files
Applied review remarks
1 parent 60ceda3 commit 0d2ea7f

File tree

5 files changed

+92
-56
lines changed

5 files changed

+92
-56
lines changed

clang/lib/Basic/Targets/AMDGPU.cpp

Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -37,50 +37,56 @@ static const char *const DataLayoutStringAMDGCN =
3737
"-ni:7:8";
3838

3939
const LangASMap AMDGPUTargetInfo::AMDGPUDefIsGenMap = {
40-
llvm::AMDGPU::Generic, // Default
41-
llvm::AMDGPU::Global, // opencl_global
42-
llvm::AMDGPU::Local, // opencl_local
43-
llvm::AMDGPU::Constant, // opencl_constant
44-
llvm::AMDGPU::Private, // opencl_private
45-
llvm::AMDGPU::Generic, // opencl_generic
46-
llvm::AMDGPU::Global, // opencl_global_device
47-
llvm::AMDGPU::Global, // opencl_global_host
48-
llvm::AMDGPU::Global, // cuda_device
49-
llvm::AMDGPU::Constant, // cuda_constant
50-
llvm::AMDGPU::Local, // cuda_shared
51-
llvm::AMDGPU::Global, // sycl_global
52-
llvm::AMDGPU::Global, // sycl_global_device
53-
llvm::AMDGPU::Global, // sycl_global_host
54-
llvm::AMDGPU::Local, // sycl_local
55-
llvm::AMDGPU::Private, // sycl_private
56-
llvm::AMDGPU::Generic, // ptr32_sptr
57-
llvm::AMDGPU::Generic, // ptr32_uptr
58-
llvm::AMDGPU::Generic, // ptr64
59-
llvm::AMDGPU::Generic, // hlsl_groupshared
40+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // Default
41+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Global), // opencl_global
42+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Local), // opencl_local
43+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Constant), // opencl_constant
44+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Private), // opencl_private
45+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // opencl_generic
46+
static_cast<unsigned>(
47+
llvm::AMDGPU::AddrSpace::Global), // opencl_global_device
48+
static_cast<unsigned>(
49+
llvm::AMDGPU::AddrSpace::Global), // opencl_global_host
50+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Global), // cuda_device
51+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Constant), // cuda_constant
52+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Local), // cuda_shared
53+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Global), // sycl_global
54+
static_cast<unsigned>(
55+
llvm::AMDGPU::AddrSpace::Global), // sycl_global_device
56+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Global), // sycl_global_host
57+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Local), // sycl_local
58+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Private), // sycl_private
59+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // ptr32_sptr
60+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // ptr32_uptr
61+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // ptr64
62+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // hlsl_groupshared
6063
};
6164

6265
const LangASMap AMDGPUTargetInfo::AMDGPUDefIsPrivMap = {
63-
llvm::AMDGPU::Private, // Default
64-
llvm::AMDGPU::Global, // opencl_global
65-
llvm::AMDGPU::Local, // opencl_local
66-
llvm::AMDGPU::Constant, // opencl_constant
67-
llvm::AMDGPU::Private, // opencl_private
68-
llvm::AMDGPU::Generic, // opencl_generic
69-
llvm::AMDGPU::Global, // opencl_global_device
70-
llvm::AMDGPU::Global, // opencl_global_host
71-
llvm::AMDGPU::Global, // cuda_device
72-
llvm::AMDGPU::Constant, // cuda_constant
73-
llvm::AMDGPU::Local, // cuda_shared
66+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Private), // Default
67+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Global), // opencl_global
68+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Local), // opencl_local
69+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Constant), // opencl_constant
70+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Private), // opencl_private
71+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // opencl_generic
72+
static_cast<unsigned>(
73+
llvm::AMDGPU::AddrSpace::Global), // opencl_global_device
74+
static_cast<unsigned>(
75+
llvm::AMDGPU::AddrSpace::Global), // opencl_global_host
76+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Global), // cuda_device
77+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Constant), // cuda_constant
78+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Local), // cuda_shared
7479
// SYCL address space values for this map are dummy
75-
llvm::AMDGPU::Generic, // sycl_global
76-
llvm::AMDGPU::Generic, // sycl_global_device
77-
llvm::AMDGPU::Generic, // sycl_global_host
78-
llvm::AMDGPU::Generic, // sycl_local
79-
llvm::AMDGPU::Generic, // sycl_private
80-
llvm::AMDGPU::Generic, // ptr32_sptr
81-
llvm::AMDGPU::Generic, // ptr32_uptr
82-
llvm::AMDGPU::Generic, // ptr64
83-
llvm::AMDGPU::Generic, // hlsl_groupshared
80+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // sycl_global
81+
static_cast<unsigned>(
82+
llvm::AMDGPU::AddrSpace::Generic), // sycl_global_device
83+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // sycl_global_host
84+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // sycl_local
85+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // sycl_private
86+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // ptr32_sptr
87+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // ptr32_uptr
88+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // ptr64
89+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Generic), // hlsl_groupshared
8490

8591
};
8692
} // namespace targets

clang/lib/Basic/Targets/AMDGPU.h

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "clang/Basic/TargetInfo.h"
1818
#include "clang/Basic/TargetOptions.h"
1919
#include "llvm/ADT/StringSet.h"
20+
#include "llvm/Support/AMDGPUAddrSpace.h"
2021
#include "llvm/Support/Compiler.h"
2122
#include "llvm/TargetParser/TargetParser.h"
2223
#include "llvm/TargetParser/Triple.h"
@@ -99,7 +100,8 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
99100
return 32;
100101
unsigned TargetAS = getTargetAddressSpace(AS);
101102

102-
if (TargetAS == llvm::AMDGPU::Private || TargetAS == llvm::AMDGPU::Local)
103+
if (TargetAS == static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Private) ||
104+
TargetAS == static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Local))
103105
return 32;
104106

105107
return 64;
@@ -369,7 +371,8 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
369371
}
370372

371373
std::optional<LangAS> getConstantAddressSpace() const override {
372-
return getLangASFromTargetAS(llvm::AMDGPU::Constant);
374+
return getLangASFromTargetAS(
375+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Constant));
373376
}
374377

375378
const llvm::omp::GV &getGridValue() const override {
@@ -385,7 +388,7 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
385388

386389
/// \returns Target specific vtbl ptr address space.
387390
unsigned getVtblPtrAddressSpace() const override {
388-
return static_cast<unsigned>(llvm::AMDGPU::Constant);
391+
return static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Constant);
389392
}
390393

391394
/// \returns If a target requires an address within a target specific address
@@ -398,9 +401,11 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
398401
getDWARFAddressSpace(unsigned AddressSpace) const override {
399402
const unsigned DWARF_Private = 1;
400403
const unsigned DWARF_Local = 2;
401-
if (AddressSpace == llvm::AMDGPU::Private) {
404+
if (AddressSpace ==
405+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Private)) {
402406
return DWARF_Private;
403-
} else if (AddressSpace == llvm::AMDGPU::Local) {
407+
} else if (AddressSpace ==
408+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Local)) {
404409
return DWARF_Local;
405410
} else {
406411
return std::nullopt;

flang/lib/Frontend/FrontendActions.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
#include "llvm/Passes/PassBuilder.h"
5959
#include "llvm/Passes/PassPlugin.h"
6060
#include "llvm/Passes/StandardInstrumentations.h"
61+
#include "llvm/Support/AMDGPUAddrSpace.h"
6162
#include "llvm/Support/Error.h"
6263
#include "llvm/Support/ErrorHandling.h"
6364
#include "llvm/Support/FileSystem.h"
@@ -302,7 +303,8 @@ static void addAMDGPUSpecificMLIRItems(mlir::ModuleOp &mlirModule,
302303
originalGVOp.setValueAttr(
303304
builder.getIntegerAttr(int32Type, oclcABIVERsion));
304305
originalGVOp.setUnnamedAddr(mlir::LLVM::UnnamedAddr::Local);
305-
originalGVOp.setAddrSpace(llvm::AMDGPU::Constant);
306+
originalGVOp.setAddrSpace(
307+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Constant));
306308
originalGVOp.setVisibility_(mlir::LLVM::Visibility::Hidden);
307309
return;
308310
}
@@ -313,7 +315,8 @@ static void addAMDGPUSpecificMLIRItems(mlir::ModuleOp &mlirModule,
313315
/* Name */ codeObjectVersionGlobalOpName,
314316
/* Value */ builder.getIntegerAttr(int32Type, oclcABIVERsion));
315317
covInfo.setUnnamedAddr(mlir::LLVM::UnnamedAddr::Local);
316-
covInfo.setAddrSpace(llvm::AMDGPU::Constant);
318+
covInfo.setAddrSpace(
319+
static_cast<unsigned>(llvm::AMDGPU::AddrSpace::Constant));
317320
covInfo.setVisibility_(mlir::LLVM::Visibility::Hidden);
318321
builder.setInsertionPointToStart(mlirModule.getBody());
319322
builder.insert(covInfo);
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
//===---------------- AMDGPUAddrSpace.h -------------------------*- C++ -*-===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
//
9+
/// \file
10+
/// AMDGPU address space definition
11+
///
12+
//
13+
//===----------------------------------------------------------------------===//
14+
15+
#ifndef LLVM_SUPPORT_AMDGPUADDRSPACE_H
16+
#define LLVM_SUPPORT_AMDGPUADDRSPACE_H
17+
18+
namespace llvm {
19+
namespace AMDGPU {
20+
enum class AddrSpace {
21+
Generic = 0,
22+
Global = 1,
23+
Local = 3,
24+
Constant = 4,
25+
Private = 5
26+
};
27+
28+
} // end namespace AMDGPU
29+
} // end namespace llvm
30+
31+
#endif // LLVM_SUPPORT_AMDGPUADDRSPACE_H

llvm/include/llvm/TargetParser/TargetParser.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,6 @@ class Triple;
3131
// back-end to TableGen to create these clean tables.
3232
namespace AMDGPU {
3333

34-
/// Address space values for AMD GPUs
35-
enum AddrSpace {
36-
Generic = 0,
37-
Global = 1,
38-
Local = 3,
39-
Constant = 4,
40-
Private = 5
41-
};
42-
4334
/// GPU kinds supported by the AMDGPU target.
4435
enum GPUKind : uint32_t {
4536
// Not specified processor.

0 commit comments

Comments
 (0)