OLD | NEW |
---|---|
1 //===- subzero/src/IceClFlags.cpp - Command line flags and parsing --------===// | 1 //===- subzero/src/IceClFlags.cpp - Command line flags and parsing --------===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file defines commandline flags parsing. | 10 // This file defines commandline flags parsing. |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
244 cl::opt<bool> LLVMVerboseErrors( | 244 cl::opt<bool> LLVMVerboseErrors( |
245 "verbose-llvm-parse-errors", | 245 "verbose-llvm-parse-errors", |
246 cl::desc("Print out more descriptive PNaCl bitcode parse errors when " | 246 cl::desc("Print out more descriptive PNaCl bitcode parse errors when " |
247 "building LLVM IR first"), | 247 "building LLVM IR first"), |
248 cl::init(false)); | 248 cl::init(false)); |
249 cl::opt<std::string> OutputFilename("o", cl::desc("Override output filename"), | 249 cl::opt<std::string> OutputFilename("o", cl::desc("Override output filename"), |
250 cl::init("-"), cl::value_desc("filename")); | 250 cl::init("-"), cl::value_desc("filename")); |
251 | 251 |
252 Ice::IceString AppName; | 252 Ice::IceString AppName; |
253 | 253 |
254 // Define the command line options for immediates pooling and randomization | |
255 cl::opt<Ice::RandomizeAndPoolImmediatesEnum> RandomizeAndPoolImmediatesOption( | |
256 "randomize-pool-immediates", | |
257 cl::desc("Randomize or pooling the representation of immediates"), | |
258 cl::init(Ice::NoneImmediatesRandomizationPooling), | |
259 cl::values(clEnumValN(Ice::NoneImmediatesRandomizationPooling, "none", | |
260 "Do not randomize or pooling immediates (default)"), | |
261 clEnumValN(Ice::RandomizeImmediates, "constant-blinding", | |
Jim Stichnoth
2015/06/12 23:48:16
I suggest "blind" instead of "constant-blinding" a
qining
2015/06/17 04:28:52
Agree, but I think we should use 'randomize' inste
| |
262 "Turn on immediate constants blinding"), | |
263 clEnumValN(Ice::PoolImmediates, "constant-pooling", | |
264 "Turn on immediate constants pooling"), | |
265 clEnumValEnd)); | |
266 | |
254 } // end of anonymous namespace | 267 } // end of anonymous namespace |
255 | 268 |
256 namespace Ice { | 269 namespace Ice { |
257 | 270 |
258 void ClFlags::parseFlags(int argc, char **argv) { | 271 void ClFlags::parseFlags(int argc, char **argv) { |
259 cl::ParseCommandLineOptions(argc, argv); | 272 cl::ParseCommandLineOptions(argc, argv); |
260 AppName = IceString(argv[0]); | 273 AppName = IceString(argv[0]); |
261 } | 274 } |
262 | 275 |
263 void ClFlags::resetClFlags(ClFlags &OutFlags) { | 276 void ClFlags::resetClFlags(ClFlags &OutFlags) { |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
336 OutFlags.setTestPrefix(::TestPrefix); | 349 OutFlags.setTestPrefix(::TestPrefix); |
337 OutFlags.setTimeEachFunction(::TimeEachFunction); | 350 OutFlags.setTimeEachFunction(::TimeEachFunction); |
338 OutFlags.setTimingFocusOn(::TimingFocusOn); | 351 OutFlags.setTimingFocusOn(::TimingFocusOn); |
339 OutFlags.setTranslateOnly(::TranslateOnly); | 352 OutFlags.setTranslateOnly(::TranslateOnly); |
340 OutFlags.setUseSandboxing(::UseSandboxing); | 353 OutFlags.setUseSandboxing(::UseSandboxing); |
341 OutFlags.setVerboseFocusOn(::VerboseFocusOn); | 354 OutFlags.setVerboseFocusOn(::VerboseFocusOn); |
342 OutFlags.setOutFileType(::OutFileType); | 355 OutFlags.setOutFileType(::OutFileType); |
343 OutFlags.setMaxNopsPerInstruction(::MaxNopsPerInstruction); | 356 OutFlags.setMaxNopsPerInstruction(::MaxNopsPerInstruction); |
344 OutFlags.setNopProbabilityAsPercentage(::NopProbabilityAsPercentage); | 357 OutFlags.setNopProbabilityAsPercentage(::NopProbabilityAsPercentage); |
345 OutFlags.setVerbose(VMask); | 358 OutFlags.setVerbose(VMask); |
359 | |
360 // set for immediates randomization or pooling option | |
361 OutFlags.setRandomizeAndPoolImmediatesOption( | |
362 ::RandomizeAndPoolImmediatesOption); | |
346 } | 363 } |
347 | 364 |
348 void ClFlags::getParsedClFlagsExtra(ClFlagsExtra &OutFlagsExtra) { | 365 void ClFlags::getParsedClFlagsExtra(ClFlagsExtra &OutFlagsExtra) { |
349 OutFlagsExtra.setAlwaysExitSuccess(AlwaysExitSuccess); | 366 OutFlagsExtra.setAlwaysExitSuccess(AlwaysExitSuccess); |
350 OutFlagsExtra.setBuildOnRead(BuildOnRead); | 367 OutFlagsExtra.setBuildOnRead(BuildOnRead); |
351 OutFlagsExtra.setGenerateBuildAtts(GenerateBuildAtts); | 368 OutFlagsExtra.setGenerateBuildAtts(GenerateBuildAtts); |
352 OutFlagsExtra.setLLVMVerboseErrors(LLVMVerboseErrors); | 369 OutFlagsExtra.setLLVMVerboseErrors(LLVMVerboseErrors); |
353 OutFlagsExtra.setAppName(AppName); | 370 OutFlagsExtra.setAppName(AppName); |
354 OutFlagsExtra.setInputFileFormat(InputFileFormat); | 371 OutFlagsExtra.setInputFileFormat(InputFileFormat); |
355 OutFlagsExtra.setIRFilename(IRFilename); | 372 OutFlagsExtra.setIRFilename(IRFilename); |
356 OutFlagsExtra.setLogFilename(LogFilename); | 373 OutFlagsExtra.setLogFilename(LogFilename); |
357 OutFlagsExtra.setOutputFilename(OutputFilename); | 374 OutFlagsExtra.setOutputFilename(OutputFilename); |
358 } | 375 } |
359 | 376 |
360 } // end of namespace Ice | 377 } // end of namespace Ice |
OLD | NEW |