| 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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 | 104 |
| 105 cl::opt<bool> ShouldDoNopInsertion("nop-insertion", | 105 cl::opt<bool> ShouldDoNopInsertion("nop-insertion", |
| 106 cl::desc("Randomly insert NOPs"), | 106 cl::desc("Randomly insert NOPs"), |
| 107 cl::init(false)); | 107 cl::init(false)); |
| 108 | 108 |
| 109 cl::opt<bool> | 109 cl::opt<bool> |
| 110 RandomizeRegisterAllocation("randomize-regalloc", | 110 RandomizeRegisterAllocation("randomize-regalloc", |
| 111 cl::desc("Randomize register allocation"), | 111 cl::desc("Randomize register allocation"), |
| 112 cl::init(false)); | 112 cl::init(false)); |
| 113 | 113 |
| 114 cl::opt<bool> SkipUnimplemented( |
| 115 "skip-unimplemented", |
| 116 cl::desc("Skip through unimplemented lowering code instead of aborting."), |
| 117 cl::init(false)); |
| 118 |
| 114 cl::opt<bool> SubzeroTimingEnabled( | 119 cl::opt<bool> SubzeroTimingEnabled( |
| 115 "timing", cl::desc("Enable breakdown timing of Subzero translation")); | 120 "timing", cl::desc("Enable breakdown timing of Subzero translation")); |
| 116 | 121 |
| 117 cl::opt<Ice::TargetArch> TargetArch( | 122 cl::opt<Ice::TargetArch> TargetArch( |
| 118 "target", cl::desc("Target architecture:"), cl::init(Ice::Target_X8632), | 123 "target", cl::desc("Target architecture:"), cl::init(Ice::Target_X8632), |
| 119 cl::values( | 124 cl::values( |
| 120 clEnumValN(Ice::Target_X8632, "x8632", "x86-32"), | 125 clEnumValN(Ice::Target_X8632, "x8632", "x86-32"), |
| 121 clEnumValN(Ice::Target_X8632, "x86-32", "x86-32 (same as x8632)"), | 126 clEnumValN(Ice::Target_X8632, "x86-32", "x86-32 (same as x8632)"), |
| 122 clEnumValN(Ice::Target_X8632, "x86_32", "x86-32 (same as x8632)"), | 127 clEnumValN(Ice::Target_X8632, "x86_32", "x86-32 (same as x8632)"), |
| 123 clEnumValN(Ice::Target_X8664, "x8664", "x86-64"), | 128 clEnumValN(Ice::Target_X8664, "x8664", "x86-64"), |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 OutFlags.DecorateAsm = false; | 258 OutFlags.DecorateAsm = false; |
| 254 OutFlags.DisableInternal = false; | 259 OutFlags.DisableInternal = false; |
| 255 OutFlags.DisableIRGeneration = false; | 260 OutFlags.DisableIRGeneration = false; |
| 256 OutFlags.DisableTranslation = false; | 261 OutFlags.DisableTranslation = false; |
| 257 OutFlags.DumpStats = false; | 262 OutFlags.DumpStats = false; |
| 258 OutFlags.FunctionSections = false; | 263 OutFlags.FunctionSections = false; |
| 259 OutFlags.GenerateUnitTestMessages = false; | 264 OutFlags.GenerateUnitTestMessages = false; |
| 260 OutFlags.PhiEdgeSplit = false; | 265 OutFlags.PhiEdgeSplit = false; |
| 261 OutFlags.RandomNopInsertion = false; | 266 OutFlags.RandomNopInsertion = false; |
| 262 OutFlags.RandomRegAlloc = false; | 267 OutFlags.RandomRegAlloc = false; |
| 268 OutFlags.SkipUnimplemented = false; |
| 263 OutFlags.SubzeroTimingEnabled = false; | 269 OutFlags.SubzeroTimingEnabled = false; |
| 264 OutFlags.TimeEachFunction = false; | 270 OutFlags.TimeEachFunction = false; |
| 265 OutFlags.UseSandboxing = false; | 271 OutFlags.UseSandboxing = false; |
| 266 // Enum and integer fields. | 272 // Enum and integer fields. |
| 267 OutFlags.Opt = Opt_m1; | 273 OutFlags.Opt = Opt_m1; |
| 268 OutFlags.OutFileType = FT_Iasm; | 274 OutFlags.OutFileType = FT_Iasm; |
| 269 OutFlags.RandomMaxNopsPerInstruction = 0; | 275 OutFlags.RandomMaxNopsPerInstruction = 0; |
| 270 OutFlags.RandomNopProbabilityAsPercentage = 0; | 276 OutFlags.RandomNopProbabilityAsPercentage = 0; |
| 271 OutFlags.TArch = TargetArch_NUM; | 277 OutFlags.TArch = TargetArch_NUM; |
| 272 OutFlags.VMask = IceV_None; | 278 OutFlags.VMask = IceV_None; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 OutFlags.setDisableIRGeneration(::DisableIRGeneration); | 310 OutFlags.setDisableIRGeneration(::DisableIRGeneration); |
| 305 OutFlags.setDisableTranslation(::DisableTranslation); | 311 OutFlags.setDisableTranslation(::DisableTranslation); |
| 306 OutFlags.setDumpStats(::DumpStats); | 312 OutFlags.setDumpStats(::DumpStats); |
| 307 OutFlags.setFunctionSections(::FunctionSections); | 313 OutFlags.setFunctionSections(::FunctionSections); |
| 308 OutFlags.setNumTranslationThreads(::NumThreads); | 314 OutFlags.setNumTranslationThreads(::NumThreads); |
| 309 OutFlags.setOptLevel(::OLevel); | 315 OutFlags.setOptLevel(::OLevel); |
| 310 OutFlags.setPhiEdgeSplit(::EnablePhiEdgeSplit); | 316 OutFlags.setPhiEdgeSplit(::EnablePhiEdgeSplit); |
| 311 OutFlags.setRandomSeed(::RandomSeed); | 317 OutFlags.setRandomSeed(::RandomSeed); |
| 312 OutFlags.setShouldDoNopInsertion(::ShouldDoNopInsertion); | 318 OutFlags.setShouldDoNopInsertion(::ShouldDoNopInsertion); |
| 313 OutFlags.setShouldRandomizeRegAlloc(::RandomizeRegisterAllocation); | 319 OutFlags.setShouldRandomizeRegAlloc(::RandomizeRegisterAllocation); |
| 320 OutFlags.setSkipUnimplemented(::SkipUnimplemented); |
| 314 OutFlags.setSubzeroTimingEnabled(::SubzeroTimingEnabled); | 321 OutFlags.setSubzeroTimingEnabled(::SubzeroTimingEnabled); |
| 315 OutFlags.setTargetArch(::TargetArch); | 322 OutFlags.setTargetArch(::TargetArch); |
| 316 OutFlags.setTargetInstructionSet(::TargetInstructionSet); | 323 OutFlags.setTargetInstructionSet(::TargetInstructionSet); |
| 317 OutFlags.setTestPrefix(::TestPrefix); | 324 OutFlags.setTestPrefix(::TestPrefix); |
| 318 OutFlags.setTimeEachFunction(::TimeEachFunction); | 325 OutFlags.setTimeEachFunction(::TimeEachFunction); |
| 319 OutFlags.setTimingFocusOn(::TimingFocusOn); | 326 OutFlags.setTimingFocusOn(::TimingFocusOn); |
| 320 OutFlags.setTranslateOnly(::TranslateOnly); | 327 OutFlags.setTranslateOnly(::TranslateOnly); |
| 321 OutFlags.setUseSandboxing(::UseSandboxing); | 328 OutFlags.setUseSandboxing(::UseSandboxing); |
| 322 OutFlags.setVerboseFocusOn(::VerboseFocusOn); | 329 OutFlags.setVerboseFocusOn(::VerboseFocusOn); |
| 323 OutFlags.setOutFileType(::OutFileType); | 330 OutFlags.setOutFileType(::OutFileType); |
| 324 OutFlags.setMaxNopsPerInstruction(::MaxNopsPerInstruction); | 331 OutFlags.setMaxNopsPerInstruction(::MaxNopsPerInstruction); |
| 325 OutFlags.setNopProbabilityAsPercentage(::NopProbabilityAsPercentage); | 332 OutFlags.setNopProbabilityAsPercentage(::NopProbabilityAsPercentage); |
| 326 OutFlags.setVerbose(VMask); | 333 OutFlags.setVerbose(VMask); |
| 327 } | 334 } |
| 328 | 335 |
| 329 void ClFlags::getParsedClFlagsExtra(ClFlagsExtra &OutFlagsExtra) { | 336 void ClFlags::getParsedClFlagsExtra(ClFlagsExtra &OutFlagsExtra) { |
| 330 OutFlagsExtra.setAlwaysExitSuccess(AlwaysExitSuccess); | 337 OutFlagsExtra.setAlwaysExitSuccess(AlwaysExitSuccess); |
| 331 OutFlagsExtra.setBuildOnRead(BuildOnRead); | 338 OutFlagsExtra.setBuildOnRead(BuildOnRead); |
| 332 OutFlagsExtra.setGenerateBuildAtts(GenerateBuildAtts); | 339 OutFlagsExtra.setGenerateBuildAtts(GenerateBuildAtts); |
| 333 OutFlagsExtra.setLLVMVerboseErrors(LLVMVerboseErrors); | 340 OutFlagsExtra.setLLVMVerboseErrors(LLVMVerboseErrors); |
| 334 OutFlagsExtra.setAppName(AppName); | 341 OutFlagsExtra.setAppName(AppName); |
| 335 OutFlagsExtra.setInputFileFormat(InputFileFormat); | 342 OutFlagsExtra.setInputFileFormat(InputFileFormat); |
| 336 OutFlagsExtra.setIRFilename(IRFilename); | 343 OutFlagsExtra.setIRFilename(IRFilename); |
| 337 OutFlagsExtra.setLogFilename(LogFilename); | 344 OutFlagsExtra.setLogFilename(LogFilename); |
| 338 OutFlagsExtra.setOutputFilename(OutputFilename); | 345 OutFlagsExtra.setOutputFilename(OutputFilename); |
| 339 } | 346 } |
| 340 | 347 |
| 341 } // end of namespace Ice | 348 } // end of namespace Ice |
| OLD | NEW |