Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
KernelMetadata.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <optional>
5#include <string>
6#include <unordered_map>
7#include <vector>
8
9namespace proteus::runtime {
10
12 const void *HostAddr = nullptr;
13 const void *DevAddr = nullptr;
14 uint64_t VarSize = 0;
15};
16
17using GlobalMetadataMap = std::unordered_map<std::string, GlobalMetadata>;
18
20public:
21 KernelMetadata(std::string Name, uint64_t StaticHash,
22 std::vector<char> Bitcode, GlobalMetadataMap Globals);
23
24 const std::string &getName() const;
25 uint64_t getStaticHash() const;
26 const std::vector<char> &getBitcode() const;
27 const GlobalMetadataMap &getGlobals() const;
28
29private:
30 std::string Name;
31 uint64_t StaticHash = 0;
32 std::vector<char> Bitcode;
33 GlobalMetadataMap Globals;
34};
35
36std::optional<KernelMetadata> captureKernelMetadata(const void *Kernel);
37
38} // namespace proteus::runtime
void * Kernel
Definition CompilerInterfaceDevice.cpp:59
Definition KernelMetadata.h:19
const std::string & getName() const
Definition KernelMetadata.cpp:13
const GlobalMetadataMap & getGlobals() const
Definition KernelMetadata.cpp:19
const std::vector< char > & getBitcode() const
Definition KernelMetadata.cpp:17
uint64_t getStaticHash() const
Definition KernelMetadata.cpp:15
Definition CompilerInterfaceDevice.cpp:86
std::unordered_map< std::string, GlobalMetadata > GlobalMetadataMap
Definition KernelMetadata.h:17
std::optional< KernelMetadata > captureKernelMetadata(const void *Kernel)
Definition CompilerInterfaceDevice.cpp:88
Definition KernelMetadata.h:11
uint64_t VarSize
Definition KernelMetadata.h:14
const void * HostAddr
Definition KernelMetadata.h:12
const void * DevAddr
Definition KernelMetadata.h:13