1#ifndef PROTEUS_PASS_HELPERS_H
2#define PROTEUS_PASS_HELPERS_H
4#include <llvm/ADT/SetVector.h>
5#include <llvm/Demangle/Demangle.h>
6#include <llvm/IR/Module.h>
7#include <llvm/TargetParser/Triple.h>
13#define DEBUG_TYPE "proteus-pass"
14#ifdef PROTEUS_ENABLE_DEBUG
25#elif PROTEUS_ENABLE_CUDA
52 Triple TargetTriple(M.getTargetTriple());
54 <<
"TargetTriple " << M.getTargetTriple() <<
"\n");
55 if (TargetTriple.isNVPTX() || TargetTriple.isAMDGCN())
62 llvm::sys::fs::UniqueID ID;
63 if (
auto EC = llvm::sys::fs::getUniqueID(M.getSourceFileName(), ID))
68 llvm::raw_svector_ostream OutStr(Out);
69 OutStr << llvm::format(
"%x_%x", ID.getDevice(), ID.getFile());
71 return std::string(Out);
#define PROTEUS_FATAL_ERROR(x)
Definition Error.h:7
constexpr char const * LaunchFunctionName
Definition Helpers.h:32
#define DEBUG(x)
Definition Helpers.h:17
constexpr char const * RegisterFunctionName
Definition Helpers.h:31
constexpr char const * RegisterVarName
Definition Helpers.h:33
constexpr char const * RegisterFatBinaryName
Definition Helpers.h:34
static llvm::raw_ostream & logs(const std::string &Name)
Definition Logger.hpp:19
Definition BuiltinsCUDA.cpp:4
@ END
Definition CompilerInterfaceTypes.h:35
@ BEGIN
Definition CompilerInterfaceTypes.h:21
std::string getUniqueFileID(Module &M)
Definition Helpers.h:61
bool isDeviceCompilation(Module &M)
Definition Helpers.h:51
static bool isEqual(const RuntimeConstantInfo &LHS, const RuntimeConstantInfo &RHS)
Definition Helpers.h:95
static unsigned getHashValue(const RuntimeConstantInfo &Val)
Definition Helpers.h:91
static RuntimeConstantInfo getEmptyKey()
Definition Helpers.h:81
static RuntimeConstantInfo getTombstoneKey()
Definition Helpers.h:86
std::string ModuleIR
Definition Helpers.h:43
SmallSetVector< RuntimeConstantInfo, 16 > ConstantArgs
Definition Helpers.h:42
ModuleInfo(const Module &M)
Definition Helpers.h:48
const Module & M
Definition Helpers.h:47
int32_t Pos
Definition CompilerInterfaceRuntimeConstantInfo.h:18
RuntimeConstantType Type
Definition CompilerInterfaceRuntimeConstantInfo.h:17
Definition CompilerInterfaceRuntimeConstantInfo.h:58
RuntimeConstantArgInfo ArgInfo
Definition CompilerInterfaceRuntimeConstantInfo.h:59