diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h b/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h index 54ed0afbba6d..bcf7fc449094 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h @@ -53,6 +53,11 @@ public: virtual void emitKernel(const MachineFunction &MF, const SIProgramInfo &ProgramInfo) = 0; + +protected: + virtual void emitVersion() = 0; + virtual void emitHiddenKernelArgs(const MachineFunction &MF, unsigned &Offset, + msgpack::ArrayDocNode Args) = 0; }; // TODO: Rename MetadataStreamerV3 -> MetadataStreamerMsgPackV3. @@ -79,7 +84,7 @@ protected: msgpack::MapDocNode getHSAKernelProps(const MachineFunction &MF, const SIProgramInfo &ProgramInfo) const; - void emitVersion(); + void emitVersion() override; void emitPrintf(const Module &Mod); @@ -87,8 +92,7 @@ protected: void emitKernelAttrs(const Function &Func, msgpack::MapDocNode Kern); - void emitKernelArgs(const Function &Func, const GCNSubtarget &ST, - msgpack::MapDocNode Kern); + void emitKernelArgs(const MachineFunction &MF, msgpack::MapDocNode Kern); void emitKernelArg(const Argument &Arg, unsigned &Offset, msgpack::ArrayDocNode Args); @@ -100,8 +104,8 @@ protected: StringRef BaseTypeName = "", StringRef AccQual = "", StringRef TypeQual = ""); - void emitHiddenKernelArgs(const Function &Func, const GCNSubtarget &ST, - unsigned &Offset, msgpack::ArrayDocNode Args); + void emitHiddenKernelArgs(const MachineFunction &MF, unsigned &Offset, + msgpack::ArrayDocNode Args) override; msgpack::DocNode &getRootMetadata(StringRef Key) { return HSAMetadataDoc->getRoot().getMap(/*Convert=*/true)[Key]; @@ -127,9 +131,9 @@ public: }; // TODO: Rename MetadataStreamerV4 -> MetadataStreamerMsgPackV4. -class MetadataStreamerV4 final : public MetadataStreamerV3 { - void emitVersion(); - +class MetadataStreamerV4 : public MetadataStreamerV3 { +protected: + void emitVersion() override; void emitTargetID(const IsaInfo::AMDGPUTargetID &TargetID); public: @@ -140,6 +144,18 @@ public: const IsaInfo::AMDGPUTargetID &TargetID) override; }; +// TODO: Rename MetadataStreamerV5 -> MetadataStreamerMsgPackV5. +class MetadataStreamerV5 final : public MetadataStreamerV4 { +protected: + void emitVersion() override; + void emitHiddenKernelArgs(const MachineFunction &MF, unsigned &Offset, + msgpack::ArrayDocNode Args) override; + +public: + MetadataStreamerV5() = default; + ~MetadataStreamerV5() = default; +}; + // TODO: Rename MetadataStreamerV2 -> MetadataStreamerYamlV2. class MetadataStreamerV2 final : public MetadataStreamer { private: @@ -167,8 +183,6 @@ private: const MachineFunction &MF, const SIProgramInfo &ProgramInfo) const; - void emitVersion(); - void emitPrintf(const Module &Mod); void emitKernelLanguage(const Function &Func); @@ -191,6 +205,13 @@ private: return HSAMetadata; } +protected: + void emitVersion() override; + void emitHiddenKernelArgs(const MachineFunction &MF, unsigned &Offset, + msgpack::ArrayDocNode Args) override { + llvm_unreachable("Dummy override should not be invoked!"); + } + public: MetadataStreamerV2() = default; ~MetadataStreamerV2() = default; |