@@ -133,6 +133,19 @@ enum : unsigned {
133
133
};
134
134
} // namespace DWARFAS
135
135
136
+ namespace impl {
137
+ // TODO: Move this into mapToDWARFAddrSpace when we switch to C++23
138
+ // (see https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2647r1.html)
139
+ static constexpr unsigned LLVMToDWARFAddrSpaceMapping[] = {
140
+ DWARFAS::GENERIC, // < AMDGPUAS::FLAT_ADDRESS
141
+ DWARFAS::GLOBAL, // < AMDGPUAS::GLOBAL_ADDRESS
142
+ DWARFAS::REGION, // < AMDGPUAS::REGION_ADDRESS
143
+ DWARFAS::LOCAL, // < AMDGPUAS::LOCAL_ADDRESS
144
+ DWARFAS::GLOBAL, // < AMDGPUAS::CONSTANT_ADDRESS
145
+ DWARFAS::PRIVATE_LANE // < AMDGPUAS::PRIVATE_ADDRESS
146
+ };
147
+ } // end namespace impl
148
+
136
149
// / If @p LLVMAddressSpace has a corresponding DWARF encoding,
137
150
// / return it; otherwise return the sentinel value -1 to indicate
138
151
// / no such mapping exists.
@@ -144,20 +157,12 @@ enum : unsigned {
144
157
// /
145
158
// / Note: This could return std::optional<int> but that would require
146
159
// / an extra #include.
147
- inline int mapToDWARFAddrSpace (unsigned LLVMAddrSpace) {
148
- static constexpr unsigned LLVMToDWARFAddrSpaceMapping[] = {
149
- DWARFAS::GENERIC, // < AMDGPUAS::FLAT_ADDRESS
150
- DWARFAS::GLOBAL, // < AMDGPUAS::GLOBAL_ADDRESS
151
- DWARFAS::REGION, // < AMDGPUAS::REGION_ADDRESS
152
- DWARFAS::LOCAL, // < AMDGPUAS::LOCAL_ADDRESS
153
- DWARFAS::GLOBAL, // < AMDGPUAS::CONSTANT_ADDRESS
154
- DWARFAS::PRIVATE_LANE // < AMDGPUAS::PRIVATE_ADDRESS
155
- };
156
- static constexpr unsigned SizeOfLLVMToDWARFAddrSpaceMapping =
157
- sizeof (LLVMToDWARFAddrSpaceMapping) /
158
- sizeof (LLVMToDWARFAddrSpaceMapping[0 ]);
160
+ constexpr int mapToDWARFAddrSpace (unsigned LLVMAddrSpace) {
161
+ constexpr unsigned SizeOfLLVMToDWARFAddrSpaceMapping =
162
+ sizeof (impl::LLVMToDWARFAddrSpaceMapping) /
163
+ sizeof (impl::LLVMToDWARFAddrSpaceMapping[0 ]);
159
164
if (LLVMAddrSpace < SizeOfLLVMToDWARFAddrSpaceMapping)
160
- return LLVMToDWARFAddrSpaceMapping[LLVMAddrSpace];
165
+ return impl:: LLVMToDWARFAddrSpaceMapping[LLVMAddrSpace];
161
166
return -1 ;
162
167
}
163
168
} // end namespace AMDGPU
0 commit comments