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 |