Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: src/IceClFlags.cpp

Issue 1185703004: Add constant blinding/pooling option for X8632 code translation (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: reformat Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698