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 /// \file | 10 /// \file |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 cl::init(false)); | 83 cl::init(false)); |
84 | 84 |
85 cl::opt<bool> | 85 cl::opt<bool> |
86 ForceMemIntrinOpt("fmem-intrin-opt", | 86 ForceMemIntrinOpt("fmem-intrin-opt", |
87 cl::desc("Force optimization of memory intrinsics.")); | 87 cl::desc("Force optimization of memory intrinsics.")); |
88 | 88 |
89 cl::opt<bool> | 89 cl::opt<bool> |
90 FunctionSections("ffunction-sections", | 90 FunctionSections("ffunction-sections", |
91 cl::desc("Emit functions into separate sections")); | 91 cl::desc("Emit functions into separate sections")); |
92 | 92 |
| 93 cl::opt<bool> MockBoundsCheck("mock-bounds-check", |
| 94 cl::desc("Mock bounds checking on loads/stores")); |
| 95 |
93 // Number of translation threads (in addition to the parser thread and | 96 // Number of translation threads (in addition to the parser thread and |
94 // the emitter thread). The special case of 0 means purely | 97 // the emitter thread). The special case of 0 means purely |
95 // sequential, i.e. parser, translator, and emitter all within the | 98 // sequential, i.e. parser, translator, and emitter all within the |
96 // same single thread. (This may need a slight rework if we expand to | 99 // same single thread. (This may need a slight rework if we expand to |
97 // multiple parser or emitter threads.) | 100 // multiple parser or emitter threads.) |
98 cl::opt<uint32_t> NumThreads( | 101 cl::opt<uint32_t> NumThreads( |
99 "threads", | 102 "threads", |
100 cl::desc("Number of translation threads (0 for purely sequential)"), | 103 cl::desc("Number of translation threads (0 for purely sequential)"), |
101 // TODO(stichnot): Settle on a good default. Consider | 104 // TODO(stichnot): Settle on a good default. Consider |
102 // something related to std::thread::hardware_concurrency(). | 105 // something related to std::thread::hardware_concurrency(). |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 OutFlags.DataSections = false; | 360 OutFlags.DataSections = false; |
358 OutFlags.DecorateAsm = false; | 361 OutFlags.DecorateAsm = false; |
359 OutFlags.DisableInternal = false; | 362 OutFlags.DisableInternal = false; |
360 OutFlags.DisableIRGeneration = false; | 363 OutFlags.DisableIRGeneration = false; |
361 OutFlags.DisableTranslation = false; | 364 OutFlags.DisableTranslation = false; |
362 OutFlags.DumpStats = false; | 365 OutFlags.DumpStats = false; |
363 OutFlags.EnableBlockProfile = false; | 366 OutFlags.EnableBlockProfile = false; |
364 OutFlags.ForceMemIntrinOpt = false; | 367 OutFlags.ForceMemIntrinOpt = false; |
365 OutFlags.FunctionSections = false; | 368 OutFlags.FunctionSections = false; |
366 OutFlags.GenerateUnitTestMessages = false; | 369 OutFlags.GenerateUnitTestMessages = false; |
| 370 OutFlags.MockBoundsCheck = false; |
367 OutFlags.PhiEdgeSplit = false; | 371 OutFlags.PhiEdgeSplit = false; |
368 OutFlags.RandomNopInsertion = false; | 372 OutFlags.RandomNopInsertion = false; |
369 OutFlags.RandomRegAlloc = false; | 373 OutFlags.RandomRegAlloc = false; |
370 OutFlags.ReorderBasicBlocks = false; | 374 OutFlags.ReorderBasicBlocks = false; |
371 OutFlags.ReorderFunctions = false; | 375 OutFlags.ReorderFunctions = false; |
372 OutFlags.ReorderGlobalVariables = false; | 376 OutFlags.ReorderGlobalVariables = false; |
373 OutFlags.ReorderPooledConstants = false; | 377 OutFlags.ReorderPooledConstants = false; |
374 OutFlags.SkipUnimplemented = false; | 378 OutFlags.SkipUnimplemented = false; |
375 OutFlags.SubzeroTimingEnabled = false; | 379 OutFlags.SubzeroTimingEnabled = false; |
376 OutFlags.TimeEachFunction = false; | 380 OutFlags.TimeEachFunction = false; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
419 OutFlags.setDefaultGlobalPrefix(::DefaultGlobalPrefix); | 423 OutFlags.setDefaultGlobalPrefix(::DefaultGlobalPrefix); |
420 OutFlags.setDisableInternal(::DisableInternal); | 424 OutFlags.setDisableInternal(::DisableInternal); |
421 OutFlags.setDisableIRGeneration(::DisableIRGeneration); | 425 OutFlags.setDisableIRGeneration(::DisableIRGeneration); |
422 OutFlags.setDisableTranslation(::DisableTranslation); | 426 OutFlags.setDisableTranslation(::DisableTranslation); |
423 OutFlags.setDumpStats(::DumpStats); | 427 OutFlags.setDumpStats(::DumpStats); |
424 OutFlags.setEnableBlockProfile(::EnableBlockProfile); | 428 OutFlags.setEnableBlockProfile(::EnableBlockProfile); |
425 OutFlags.setForceMemIntrinOpt(::ForceMemIntrinOpt); | 429 OutFlags.setForceMemIntrinOpt(::ForceMemIntrinOpt); |
426 OutFlags.setFunctionSections(::FunctionSections); | 430 OutFlags.setFunctionSections(::FunctionSections); |
427 OutFlags.setNumTranslationThreads(::NumThreads); | 431 OutFlags.setNumTranslationThreads(::NumThreads); |
428 OutFlags.setOptLevel(::OLevel); | 432 OutFlags.setOptLevel(::OLevel); |
| 433 OutFlags.setMockBoundsCheck(::MockBoundsCheck); |
429 OutFlags.setPhiEdgeSplit(::EnablePhiEdgeSplit); | 434 OutFlags.setPhiEdgeSplit(::EnablePhiEdgeSplit); |
430 OutFlags.setRandomSeed(::RandomSeed); | 435 OutFlags.setRandomSeed(::RandomSeed); |
431 OutFlags.setRandomizeAndPoolImmediatesOption( | 436 OutFlags.setRandomizeAndPoolImmediatesOption( |
432 ::RandomizeAndPoolImmediatesOption); | 437 ::RandomizeAndPoolImmediatesOption); |
433 OutFlags.setRandomizeAndPoolImmediatesThreshold( | 438 OutFlags.setRandomizeAndPoolImmediatesThreshold( |
434 ::RandomizeAndPoolImmediatesThreshold); | 439 ::RandomizeAndPoolImmediatesThreshold); |
435 OutFlags.setReorderFunctionsWindowSize(::ReorderFunctionsWindowSize); | 440 OutFlags.setReorderFunctionsWindowSize(::ReorderFunctionsWindowSize); |
436 OutFlags.setShouldReorderBasicBlocks(::ReorderBasicBlocks); | 441 OutFlags.setShouldReorderBasicBlocks(::ReorderBasicBlocks); |
437 OutFlags.setShouldDoNopInsertion(::ShouldDoNopInsertion); | 442 OutFlags.setShouldDoNopInsertion(::ShouldDoNopInsertion); |
438 OutFlags.setShouldRandomizeRegAlloc(::RandomizeRegisterAllocation); | 443 OutFlags.setShouldRandomizeRegAlloc(::RandomizeRegisterAllocation); |
(...skipping 24 matching lines...) Expand all Loading... |
463 OutFlagsExtra.setGenerateBuildAtts(GenerateBuildAtts); | 468 OutFlagsExtra.setGenerateBuildAtts(GenerateBuildAtts); |
464 OutFlagsExtra.setLLVMVerboseErrors(LLVMVerboseErrors); | 469 OutFlagsExtra.setLLVMVerboseErrors(LLVMVerboseErrors); |
465 OutFlagsExtra.setAppName(AppName); | 470 OutFlagsExtra.setAppName(AppName); |
466 OutFlagsExtra.setInputFileFormat(InputFileFormat); | 471 OutFlagsExtra.setInputFileFormat(InputFileFormat); |
467 OutFlagsExtra.setIRFilename(IRFilename); | 472 OutFlagsExtra.setIRFilename(IRFilename); |
468 OutFlagsExtra.setLogFilename(LogFilename); | 473 OutFlagsExtra.setLogFilename(LogFilename); |
469 OutFlagsExtra.setOutputFilename(OutputFilename); | 474 OutFlagsExtra.setOutputFilename(OutputFilename); |
470 } | 475 } |
471 | 476 |
472 } // end of namespace Ice | 477 } // end of namespace Ice |
OLD | NEW |