1#ifndef PROTEUS_CONFIG_HPP
2#define PROTEUS_CONFIG_HPP
39 return "link-clone-prune";
41 return "link-clone-light";
51 const char *EnvValue = std::getenv(
VarName);
55 return std::string(EnvValue);
60 const char *EnvValue = std::getenv(
VarName);
61 return EnvValue ?
static_cast<bool>(std::stoi(EnvValue)) : Default;
66 const char *EnvValue = std::getenv(
VarName);
67 return EnvValue ? std::stoi(EnvValue) : Default;
73 const char *EnvValue = std::getenv(
VarName);
77 std::string EnvValueStr{EnvValue};
78 std::transform(EnvValueStr.begin(), EnvValueStr.end(), EnvValueStr.begin(),
80 if (EnvValueStr ==
"rtc")
82 if (EnvValueStr ==
"serial")
84 if (EnvValueStr ==
"parallel")
93 const char *EnvValue = std::getenv(
VarName);
97 std::string EnvValueStr{EnvValue};
98 std::transform(EnvValueStr.begin(), EnvValueStr.end(), EnvValueStr.begin(),
100 if (EnvValueStr ==
"link-clone-prune")
102 if (EnvValueStr ==
"link-clone-light")
104 if (EnvValueStr ==
"cross-clone")
107 Logger::outs(
"proteus") <<
"Unknown kernel clone option " << EnvValueStr
108 <<
", using default: " <<
toString(Default) <<
"\n";
149#if PROTEUS_ENABLE_CUDA
152 <<
"Warning: Proteus supports only RTC compilation for CUDA, "
153 "setting Codegen to RTC\n";
157#if PROTEUS_ENABLE_HIP
158#if LLVM_VERSION_MAJOR < 18
161 <<
"Warning: Proteus with LLVM < 18 supports only RTC compilation, "
162 "setting Codegen to RTC\n";
const char * VarName
Definition CompilerInterfaceDevice.cpp:20
#define PROTEUS_FATAL_ERROR(x)
Definition Error.h:7
Definition Config.hpp:112
int ProteusTraceOutput
Definition Config.hpp:132
CodegenOption ProteusCodegen
Definition Config.hpp:131
bool ProteusDisable
Definition Config.hpp:123
static Config & get()
Definition Config.hpp:114
bool ProteusRelinkGlobalsByCopy
Definition Config.hpp:125
bool ProteusSpecializeDims
Definition Config.hpp:122
bool ProteusDumpLLVMIR
Definition Config.hpp:124
std::optional< const std::string > ProteusOptPipeline
Definition Config.hpp:133
bool ProteusUseStoredCache
Definition Config.hpp:119
int ProteusAsyncThreads
Definition Config.hpp:127
KernelCloneOption ProteusKernelClone
Definition Config.hpp:129
bool ProteusSpecializeArgs
Definition Config.hpp:121
std::optional< const std::string > ProteusCacheDir
Definition Config.hpp:134
bool ProteusEnableTimers
Definition Config.hpp:130
bool ProteusAsyncTestBlocking
Definition Config.hpp:128
bool ProteusSpecializeLaunchBounds
Definition Config.hpp:120
bool ProteusAsyncCompilation
Definition Config.hpp:126
static llvm::raw_ostream & outs(const std::string &Name)
Definition Logger.hpp:25
Definition BuiltinsCUDA.cpp:4
int getEnvOrDefaultInt(const char *VarName, int Default)
Definition Config.hpp:64
std::optional< std::string > getEnvOrDefaultString(const char *VarName)
Definition Config.hpp:49
CodegenOption
Definition Config.hpp:11
CodegenOption getEnvOrDefaultCG(const char *VarName, CodegenOption Default)
Definition Config.hpp:70
KernelCloneOption
Definition Config.hpp:17
std::string toString(CodegenOption Option)
Definition Config.hpp:23
KernelCloneOption getEnvOrDefaultKC(const char *VarName, KernelCloneOption Default)
Definition Config.hpp:90
bool getEnvOrDefaultBool(const char *VarName, bool Default)
Definition Config.hpp:58