1#ifndef PROTEUS_CONFIG_HPP
2#define PROTEUS_CONFIG_HPP
32 return "ParallelThinLTO";
41 return "link-clone-prune";
43 return "link-clone-light";
53 const char *EnvValue = std::getenv(
VarName);
54 return EnvValue ?
static_cast<bool>(std::stoi(EnvValue)) : Default;
59 const char *EnvValue = std::getenv(
VarName);
60 return EnvValue ? std::stoi(EnvValue) : Default;
66 const char *EnvValue = std::getenv(
VarName);
70 std::string EnvValueStr{EnvValue};
71 std::transform(EnvValueStr.begin(), EnvValueStr.end(), EnvValueStr.begin(),
73 if (EnvValueStr ==
"rtc")
75 if (EnvValueStr ==
"serial")
77 if (EnvValueStr ==
"parallel")
79 if (EnvValueStr ==
"thinlto")
82 Logger::outs(
"proteus") <<
"Unknown codegen option " << EnvValueStr
83 <<
", using default codegen option: "
91 const char *EnvValue = std::getenv(
VarName);
95 std::string EnvValueStr{EnvValue};
96 std::transform(EnvValueStr.begin(), EnvValueStr.end(), EnvValueStr.begin(),
98 if (EnvValueStr ==
"link-clone-prune")
100 if (EnvValueStr ==
"link-clone-light")
102 if (EnvValueStr ==
"cross-clone")
105 Logger::outs(
"proteus") <<
"Unknown kernel clone option " << EnvValueStr
106 <<
", using default: " <<
toString(Default) <<
"\n";
143#if PROTEUS_ENABLE_CUDA
146 <<
"Warning: Proteus supports only RTC compilation for CUDA, "
147 "setting Codegen to RTC\n";
151#if PROTEUS_ENABLE_HIP
152#if LLVM_VERSION_MAJOR < 18
155 <<
"Warning: Proteus with LLVM < 18 supports only RTC compilation, "
156 "setting Codegen to RTC\n";
const char * VarName
Definition CompilerInterfaceDevice.cpp:20
Definition Config.hpp:110
CodegenOption ProteusCodegen
Definition Config.hpp:129
bool ProteusDisable
Definition Config.hpp:121
static Config & get()
Definition Config.hpp:112
bool ProteusRelinkGlobalsByCopy
Definition Config.hpp:123
bool ProteusSpecializeDims
Definition Config.hpp:120
bool ProteusDumpLLVMIR
Definition Config.hpp:122
bool ProteusTraceOutput
Definition Config.hpp:130
bool ProteusUseStoredCache
Definition Config.hpp:117
int ProteusAsyncThreads
Definition Config.hpp:125
KernelCloneOption ProteusKernelClone
Definition Config.hpp:127
bool ProteusSpecializeArgs
Definition Config.hpp:119
bool ProteusEnableTimers
Definition Config.hpp:128
bool ProteusAsyncTestBlocking
Definition Config.hpp:126
bool ProteusSpecializeLaunchBounds
Definition Config.hpp:118
bool ProteusAsyncCompilation
Definition Config.hpp:124
static llvm::raw_ostream & outs(const std::string &Name)
Definition Logger.hpp:25
Definition Dispatcher.cpp:14
int getEnvOrDefaultInt(const char *VarName, int Default)
Definition Config.hpp:57
CodegenOption
Definition Config.hpp:10
CodegenOption getEnvOrDefaultCG(const char *VarName, CodegenOption Default)
Definition Config.hpp:63
KernelCloneOption
Definition Config.hpp:17
std::string toString(CodegenOption Option)
Definition Config.hpp:23
KernelCloneOption getEnvOrDefaultKC(const char *VarName, KernelCloneOption Default)
Definition Config.hpp:88
bool getEnvOrDefaultBool(const char *VarName, bool Default)
Definition Config.hpp:51