16 #ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUHSAMETADATASTREAMER_H 17 #define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUHSAMETADATASTREAMER_H 27 class AMDGPUTargetStreamer;
47 virtual void end() = 0;
55 std::shared_ptr<msgpack::Node> HSAMetadataRoot =
56 std::make_shared<msgpack::MapNode>();
73 std::shared_ptr<msgpack::ArrayNode>
74 getWorkGroupDimensions(
MDNode *Node)
const;
76 std::shared_ptr<msgpack::MapNode>
99 void emitHiddenKernelArgs(
const Function &Func,
unsigned &Offset,
102 std::shared_ptr<msgpack::Node> &getRootMetadata(
StringRef Key) {
103 return (*cast<msgpack::MapNode>(HSAMetadataRoot.get()))[
Key];
106 std::shared_ptr<msgpack::Node> &getHSAMetadataRoot() {
107 return HSAMetadataRoot;
143 std::vector<uint32_t> getWorkGroupDimensions(
MDNode *Node)
const;
156 void emitKernelLanguage(
const Function &Func);
158 void emitKernelAttrs(
const Function &Func);
160 void emitKernelArgs(
const Function &Func);
170 void emitHiddenKernelArgs(
const Function &Func);
172 const Metadata &getHSAMetadata()
const {
194 #endif // LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUHSAMETADATASTREAMER_H
A parsed version of the target data layout string in and methods for querying it. ...
Type
MessagePack types as defined in the standard, with the exception of Integer being divided into a sign...
This class represents an incoming formal argument to a Function.
This class represents lattice values for constants.
A Module instance is used to store all the information related to an LLVM module. ...
constexpr char PointeeAlign[]
Key for Kernel::Arg::Metadata::mPointeeAlign.
StringRef getTypeName()
We provide a function which tries to compute the (demangled) name of a type statically.
Track resource usage for kernels / entry functions.
amdgpu Simplify well known AMD library false Value Value const Twine & Name
This is a data structure for representing MessagePack "documents", with methods to go to and from Mes...
void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
The instances of the Type class are immutable: once they are created, they are never changed...
constexpr char TypeName[]
Key for Kernel::Arg::Metadata::mTypeName.
bool verify(const TargetRegisterInfo &TRI) const
Check that information hold by this instance make sense for the given TRI.
AccessQualifier
Access qualifiers.
The access may modify the value stored in memory.
amdgpu Simplify well known AMD library false Value Value * Arg
AddressSpaceQualifier
Address space qualifiers.
constexpr char AccQual[]
Key for Kernel::Arg::Metadata::mAccQual.
StringRef - Represent a constant reference to a string, i.e.
constexpr char Args[]
Key for Kernel::Metadata::mArgs.