1010#include " substitution/Substitution.h"
1111#include " utils/CryptoUtils.h"
1212
13- # define PASSES_DELIM ' ,'
14- # define ENV_VAR_PREFIX " LLVM_OBF_"
13+ static const char PassesDelimiter = ' ,' ;
14+ static const std::string EnvVarPrefix = " LLVM_OBF_" ;
1515
1616namespace llvm {
1717
@@ -45,21 +45,21 @@ void addPassesFromEnvVar(PassManager<T> &M, const StringRef &var) {
4545 auto passesStr = getEnvVar (var);
4646
4747 SmallVector<StringRef> passes;
48- passesStr.split (passes, PASSES_DELIM , -1 , false );
48+ passesStr.split (passes, PassesDelimiter , -1 , false );
4949 for (auto passName : passes) {
5050 addPassWithName (M, passName);
5151 }
5252}
5353
5454extern " C" PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo () {
5555 /* Fixed seed for cryptoutils */
56- StringRef seed = getEnvVar (ENV_VAR_PREFIX " SEED" );
56+ StringRef seed = getEnvVar (EnvVarPrefix + " SEED" );
5757 if (!seed.empty ()) {
5858 llvm::cryptoutils->prng_seed (seed.data ());
5959 }
6060
6161 /* Print the seed */
62- if (getEnvVar (ENV_VAR_PREFIX " DEBUG_SEED" ) == " y" ) {
62+ if (getEnvVar (EnvVarPrefix + " DEBUG_SEED" ) == " y" ) {
6363 llvm::cryptoutils->get_uint8_t ();
6464 const char *used_seed = llvm::cryptoutils->get_seed ();
6565 outs () << " SEED = 0x" ;
@@ -90,42 +90,42 @@ extern "C" PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo() {
9090 // instance of the instruction combiner pass.
9191 PB.registerPeepholeEPCallback (
9292 [](FunctionPassManager &FPM, PassBuilder::OptimizationLevel O) {
93- addPassesFromEnvVar (FPM, ENV_VAR_PREFIX " PEEPHOLE_PASSES" );
93+ addPassesFromEnvVar (FPM, EnvVarPrefix + " PEEPHOLE_PASSES" );
9494 });
9595
9696 // Add optimization passes after most of the main optimizations, but
9797 // before the last cleanup-ish optimizations.
9898 PB.registerScalarOptimizerLateEPCallback (
9999 [](FunctionPassManager &FPM, PassBuilder::OptimizationLevel O) {
100100 addPassesFromEnvVar (FPM,
101- ENV_VAR_PREFIX " SCALAROPTIMIZERLATE_PASSES" );
101+ EnvVarPrefix + " SCALAROPTIMIZERLATE_PASSES" );
102102 });
103103
104104 // Add optimization passes before the vectorizer and other highly target
105105 // specific optimization passes are executed.
106106 PB.registerVectorizerStartEPCallback (
107107 [](FunctionPassManager &FPM, PassBuilder::OptimizationLevel O) {
108- addPassesFromEnvVar (FPM, ENV_VAR_PREFIX " VECTORIZERSTART_PASSES" );
108+ addPassesFromEnvVar (FPM, EnvVarPrefix + " VECTORIZERSTART_PASSES" );
109109 });
110110
111111 // Add optimization once at the start of the pipeline. This does not
112112 // apply to 'backend' compiles (LTO and ThinLTO link-time pipelines).
113- PB.registerPipelineStartEPCallback ([](ModulePassManager &MPM
113+ PB.registerPipelineStartEPCallback ([& ](ModulePassManager &MPM
114114#if LLVM_VERSION_MAJOR >= 12
115- ,
116- PassBuilder::OptimizationLevel O
115+ ,
116+ PassBuilder::OptimizationLevel O
117117#endif
118118 ) {
119- addPassesFromEnvVar (MPM, ENV_VAR_PREFIX " PIPELINESTART_PASSES" );
119+ addPassesFromEnvVar (MPM, EnvVarPrefix + " PIPELINESTART_PASSES" );
120120 });
121121
122122#if LLVM_VERSION_MAJOR >= 13
123123 // Add optimization right after passes that do basic simplification of
124124 // the input IR.
125125 PB.registerPipelineEarlySimplificationEPCallback (
126126 [](ModulePassManager &MPM, PassBuilder::OptimizationLevel O) {
127- addPassesFromEnvVar (MPM, ENV_VAR_PREFIX
128- " PIPELINEEARLYSIMPLIFICATION_PASSES" );
127+ addPassesFromEnvVar (
128+ MPM, EnvVarPrefix + " PIPELINEEARLYSIMPLIFICATION_PASSES" );
129129 });
130130#endif
131131
@@ -134,7 +134,7 @@ extern "C" PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo() {
134134 // pipeline.
135135 PB.registerOptimizerLastEPCallback (
136136 [](ModulePassManager &MPM, PassBuilder::OptimizationLevel O) {
137- addPassesFromEnvVar (MPM, ENV_VAR_PREFIX " OPTIMIZERLASTEP_PASSES" );
137+ addPassesFromEnvVar (MPM, EnvVarPrefix + " OPTIMIZERLASTEP_PASSES" );
138138 });
139139#else
140140 // Add optimizations at the very end of the function optimization
@@ -144,7 +144,7 @@ extern "C" PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo() {
144144 // the end of the overall pipeline.
145145 PB.registerOptimizerLastEPCallback (
146146 [](FunctionPassManager &FPM, PassBuilder::OptimizationLevel O) {
147- addPassesFromEnvVar (FPM, ENV_VAR_PREFIX " OPTIMIZERLASTEP_PASSES" );
147+ addPassesFromEnvVar (FPM, EnvVarPrefix + " OPTIMIZERLASTEP_PASSES" );
148148 });
149149#endif
150150 }};
0 commit comments