18adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//===--- CC1Options.td - Options for clang -cc1 ---------------------------===//
28adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//
38adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//                     The LLVM Compiler Infrastructure
48adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//
58adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar// This file is distributed under the University of Illinois Open Source
68adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar// License. See LICENSE.TXT for details.
78adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//
88adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//===----------------------------------------------------------------------===//
98adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//
10ef8225444452a1486bd721f3285301fe84643b00Stephen Hines//  This file defines the options accepted by clang -cc1 and clang -cc1as.
118adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//
128adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//===----------------------------------------------------------------------===//
138adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar
14f1eaab122932a5c61b13ce9ae6d590e24558eb84Richard Smithlet Flags = [CC1Option, NoDriverOption] in {
158adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar
1633a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
178adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar// Target Options
1833a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
198adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar
20ef8225444452a1486bd721f3285301fe84643b00Stephen Hineslet Flags = [CC1Option, CC1AsOption, NoDriverOption] in {
21ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
22c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef target_cpu : Separate<["-"], "target-cpu">,
2338b48afd338d494099697d2611e1f45e558e469eDaniel Dunbar  HelpText<"Target a specific cpu type">;
24c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef target_feature : Separate<["-"], "target-feature">,
258adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar  HelpText<"Target specific attributes">;
26c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef triple : Separate<["-"], "triple">,
278adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar  HelpText<"Specify target triple (e.g. i686-apple-darwin9)">;
28ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
29ef8225444452a1486bd721f3285301fe84643b00Stephen Hines}
30ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
31ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef target_abi : Separate<["-"], "target-abi">,
32ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Target a particular ABI type">;
33ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef target_linker_version : Separate<["-"], "target-linker-version">,
34ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Target linker version">;
35c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef triple_EQ : Joined<["-"], "triple=">, Alias<triple>;
36ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef mfpmath : Separate<["-"], "mfpmath">,
37ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Which unit to use for fp math">;
3850a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar
3933a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
40e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar// Analyzer Options
4133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
42e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
43c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analysis_UnoptimizedCFG : Flag<["-"], "unoptimized-cfg">,
44c9c6b904f3fb4f515f7f041b7c49f5e3b7c53bd3Ted Kremenek  HelpText<"Generate unoptimized CFGs for all analyses">;
45c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analysis_CFGAddImplicitDtors : Flag<["-"], "cfg-add-implicit-dtors">,
46c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencer  HelpText<"Add C++ implicit destructors to CFGs for all analyses">;
47e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
48c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_store : Separate<["-"], "analyzer-store">,
49e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Source Code Analysis - Abstract Memory Store Models">;
50c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_store_EQ : Joined<["-"], "analyzer-store=">, Alias<analyzer_store>;
51e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
52c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_constraints : Separate<["-"], "analyzer-constraints">,
53e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Source Code Analysis - Symbolic Constraint Engines">;
54c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_constraints_EQ : Joined<["-"], "analyzer-constraints=">,
55e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  Alias<analyzer_constraints>;
56e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
57c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_output : Separate<["-"], "analyzer-output">,
58e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Source Code Analysis - Output Options">;
59c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_output_EQ : Joined<["-"], "analyzer-output=">,
60e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  Alias<analyzer_output>;
61e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
62c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_purge : Separate<["-"], "analyzer-purge">,
63d30952838421ddfb9f7e346b2ba8213889a5f789Anna Zaks  HelpText<"Source Code Analysis - Dead Symbol Removal Frequency">;
64c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_purge_EQ : Joined<["-"], "analyzer-purge=">, Alias<analyzer_purge>;
65d30952838421ddfb9f7e346b2ba8213889a5f789Anna Zaks
66c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_opt_analyze_headers : Flag<["-"], "analyzer-opt-analyze-headers">,
67e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Force the static analyzer to analyze functions defined in header files">;
68c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_opt_analyze_nested_blocks : Flag<["-"], "analyzer-opt-analyze-nested-blocks">,
6920249a1af2e462dcafdd6a350f1c7967b264ff25Michael J. Spencer  HelpText<"Analyze the definitions of blocks in addition to functions">;
70c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_display_progress : Flag<["-"], "analyzer-display-progress">,
71e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Emit verbose output about the analyzer's progress">;
72c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyze_function : Separate<["-"], "analyze-function">,
73e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Run analysis on specific function">;
74c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyze_function_EQ : Joined<["-"], "analyze-function=">, Alias<analyze_function>;
75c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_eagerly_assume : Flag<["-"], "analyzer-eagerly-assume">,
76e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Eagerly assume the truth/falseness of some symbolic constraints">;
77c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef trim_egraph : Flag<["-"], "trim-egraph">,
78e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Only show error-related paths in the analysis graph">;
79c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_viz_egraph_graphviz : Flag<["-"], "analyzer-viz-egraph-graphviz">,
80e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Display exploded graph using GraphViz">;
81c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_viz_egraph_ubigraph : Flag<["-"], "analyzer-viz-egraph-ubigraph">,
82e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Display exploded graph using Ubigraph">;
8366253352131e3e7a22b3bfd0e180607aa2bfb988Anna Zaks
84c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_inline_max_stack_depth : Separate<["-"], "analyzer-inline-max-stack-depth">,
858235f9c9c8b3d1737d1c6bd57f7ba3f616b92392Anna Zaks  HelpText<"Bound on stack depth while inlining (4 by default)">;
86c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_inline_max_stack_depth_EQ : Joined<["-"], "analyzer-inline-max-stack-depth=">, 
8766253352131e3e7a22b3bfd0e180607aa2bfb988Anna Zaks  Alias<analyzer_inline_max_stack_depth>;
8866253352131e3e7a22b3bfd0e180607aa2bfb988Anna Zaks  
89c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_inlining_mode : Separate<["-"], "analyzer-inlining-mode">,
9066253352131e3e7a22b3bfd0e180607aa2bfb988Anna Zaks  HelpText<"Specify the function selection heuristic used during inlining">;
91c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_inlining_mode_EQ : Joined<["-"], "analyzer-inlining-mode=">, Alias<analyzer_inlining_mode>;
925903a373db3d27794c90b25687e0dd6adb0e497dAnna Zaks
93c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_disable_retry_exhausted : Flag<["-"], "analyzer-disable-retry-exhausted">,
94b47dbcbc12430fdf3e5a5b9f59cdec5480e89e75Anna Zaks  HelpText<"Do not re-analyze paths leading to exhausted nodes with a different strategy (may decrease code coverage)">;
9566253352131e3e7a22b3bfd0e180607aa2bfb988Anna Zaks  
96c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_max_loop : Separate<["-"], "analyzer-max-loop">,
976362b893731ccf4480a96527db9e55e04b801503Zhongxing Xu  HelpText<"The maximum number of times the analyzer will go through a loop">;
98c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_stats : Flag<["-"], "analyzer-stats">,
9981fb169f42769e02c7425b23885a261c025fd5e6Anna Zaks  HelpText<"Print internal analyzer statistics.">;
100e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
101c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_checker : Separate<["-"], "analyzer-checker">,
10243dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis  HelpText<"Choose analyzer checkers to enable">;
103c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_checker_EQ : Joined<["-"], "analyzer-checker=">,
10443dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis  Alias<analyzer_checker>;
10543dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
106c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_disable_checker : Separate<["-"], "analyzer-disable-checker">,
10743dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis  HelpText<"Choose analyzer checkers to disable">;
108c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_disable_checker_EQ : Joined<["-"], "analyzer-disable-checker=">,
10943dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis  Alias<analyzer_disable_checker>;
11043dee220252ef0b42c5f8a3bb1eca97f84f2565fArgyrios Kyrtzidis
111c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_checker_help : Flag<["-"], "analyzer-checker-help">,
112116f3640daee424dfcdbe55e80be5a67476be4b0Argyrios Kyrtzidis  HelpText<"Display the list of analyzer checkers that are available">;
113116f3640daee424dfcdbe55e80be5a67476be4b0Argyrios Kyrtzidis
114c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyzer_config : Separate<["-"], "analyzer-config">,
115318cc3c07eaca04d319be841e9e3bac35d1ff9f5Ted Kremenek  HelpText<"Choose analyzer options to enable">;
1167b73e0832b20af1f43601a3d19e76d02d9f4dce5Ted Kremenek
11733a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
118b5c6babd3d8e0233b8ea5a4eb1e2700e30c0d396Fariborz Jahanian// Migrator Options
119b5c6babd3d8e0233b8ea5a4eb1e2700e30c0d396Fariborz Jahanian//===----------------------------------------------------------------------===//
120c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef migrator_no_nsalloc_error : Flag<["-"], "no-ns-alloc-error">,
121b5c6babd3d8e0233b8ea5a4eb1e2700e30c0d396Fariborz Jahanian  HelpText<"Do not error on use of NSAllocateCollectable/NSReallocateCollectable">;
122b5c6babd3d8e0233b8ea5a4eb1e2700e30c0d396Fariborz Jahanian
123c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef migrator_no_finalize_removal : Flag<["-"], "no-finalize-removal">,
12426f0e4e7ab534fb42485c930f20a424ecc8c9830Fariborz Jahanian  HelpText<"Do not remove finalize method in gc mode">;
12526f0e4e7ab534fb42485c930f20a424ecc8c9830Fariborz Jahanian
126b5c6babd3d8e0233b8ea5a4eb1e2700e30c0d396Fariborz Jahanian//===----------------------------------------------------------------------===//
12750a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar// CodeGen Options
12833a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
12950a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar
130ef8225444452a1486bd721f3285301fe84643b00Stephen Hineslet Flags = [CC1Option, CC1AsOption, NoDriverOption] in {
131ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
132ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef fdebug_compilation_dir : Separate<["-"], "fdebug-compilation-dir">,
133ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"The compilation directory to embed in the debug info.">;
134ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef dwarf_debug_flags : Separate<["-"], "dwarf-debug-flags">,
135ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"The string to embed in the Dwarf debug flags record.">;
136ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef mno_exec_stack : Flag<["-"], "mnoexecstack">,
137ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Mark the file as not needing an executable stack">;
138ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef compress_debug_sections : Flag<["-"], "compress-debug-sections">,
139ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    HelpText<"Compress DWARF debug sections using zlib">;
140ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef msave_temp_labels : Flag<["-"], "msave-temp-labels">,
141ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Save temporary labels in the symbol table. "
142ef8225444452a1486bd721f3285301fe84643b00Stephen Hines           "Note this may change .s semantics and shouldn't generally be used "
143ef8225444452a1486bd721f3285301fe84643b00Stephen Hines           "on compiler-generated code.">;
144ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
145ef8225444452a1486bd721f3285301fe84643b00Stephen Hines}
146ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
147c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef disable_llvm_optzns : Flag<["-"], "disable-llvm-optzns">,
14850a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar  HelpText<"Don't run LLVM optimization passes">;
149c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef disable_llvm_verifier : Flag<["-"], "disable-llvm-verifier">,
150824e19ed926d7aa1296a007d0607ac4437e3c4a9John McCall  HelpText<"Don't run the LLVM IR verifier pass">;
151c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef disable_red_zone : Flag<["-"], "disable-red-zone">,
15250a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar  HelpText<"Do not emit code that uses the red zone.">;
153c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef dwarf_column_info : Flag<["-"], "dwarf-column-info">,
154da3301eec823fe770bfa49a1cb19649506caa698Eric Christopher  HelpText<"Turn on column location information.">;
155c706c8e440abf61910c042380e19c67932998395Eric Christopherdef split_dwarf : Flag<["-"], "split-dwarf">,
156c706c8e440abf61910c042380e19c67932998395Eric Christopher  HelpText<"Split out the dwarf .dwo sections">;
1570f43a6daddd41722a4183a49b344f85b5aefbb33Eric Christopherdef gnu_pubnames : Flag<["-"], "gnu-pubnames">,
1580f43a6daddd41722a4183a49b344f85b5aefbb33Eric Christopher  HelpText<"Emit newer GNU style pubnames">;
159651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesdef arange_sections : Flag<["-"], "arange_sections">,
160651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  HelpText<"Emit DWARF .debug_arange sections">;
161c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fforbid_guard_variables : Flag<["-"], "fforbid-guard-variables">,
16232096695c76033a6b0b1747c439f7378a11e8312John McCall  HelpText<"Emit an error if a C++ static local initializer would need a guard variable">;
163c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef no_implicit_float : Flag<["-"], "no-implicit-float">,
164005af27c607536038864ff36d480b5ecd066a267Chad Rosier  HelpText<"Don't generate implicit floating point instructions">;
165c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdump_vtable_layouts : Flag<["-"], "fdump-vtable-layouts">,
166824d7ea07a4e9208925daa6ae9289fb2b39bce9fAnders Carlsson  HelpText<"Dump the layouts of all vtables that will be emitted in a translation unit">;
167c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef femit_coverage_notes : Flag<["-"], "femit-coverage-notes">,
168e8ba8d78a258ec992d3521eebdae8324db777b14Nick Lewycky  HelpText<"Emit a gcov coverage notes file when compiling.">;
169c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef femit_coverage_data: Flag<["-"], "femit-coverage-data">,
170e8ba8d78a258ec992d3521eebdae8324db777b14Nick Lewycky  HelpText<"Instrument the program to emit gcov coverage data when run.">;
171c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef coverage_file : Separate<["-"], "coverage-file">,
1723dc05418538c719fea48b906bfa4febe5296e126Nick Lewycky  HelpText<"Emit coverage data to this filename. The extension will be replaced.">;
173c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef coverage_file_EQ : Joined<["-"], "coverage-file=">, Alias<coverage_file>;
1740f815f1f91e5cf0726fd8296445038fec3bed80bNick Lewyckydef coverage_cfg_checksum : Flag<["-"], "coverage-cfg-checksum">,
1750f815f1f91e5cf0726fd8296445038fec3bed80bNick Lewycky  HelpText<"Emit CFG checksum for functions in .gcno files.">;
17683c546afef39d6b7be69f3f399804ebf037c4022Nick Lewyckydef coverage_no_function_names_in_data : Flag<["-"], "coverage-no-function-names-in-data">,
1770f815f1f91e5cf0726fd8296445038fec3bed80bNick Lewycky  HelpText<"Emit function names in .gcda files.">;
1780f815f1f91e5cf0726fd8296445038fec3bed80bNick Lewyckydef coverage_version_EQ : Joined<["-"], "coverage-version=">,
1790f815f1f91e5cf0726fd8296445038fec3bed80bNick Lewycky  HelpText<"Four-byte version string for gcov files.">;
180f2b5e0707229e1149828ebc8d01d9308a997d6dfNick Lewyckydef test_coverage : Flag<["-"], "test-coverage">,
181f2b5e0707229e1149828ebc8d01d9308a997d6dfNick Lewycky  HelpText<"Do not generate coverage files or remove coverage changes from IR">;
182c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fuse_register_sized_bitfield_access: Flag<["-"], "fuse-register-sized-bitfield-access">,
183e26bdb91b7e3912ffe895b78a446db94471a59ddDaniel Dunbar  HelpText<"Use register sized accesses to bit-fields, when possible.">;
184c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef relaxed_aliasing : Flag<["-"], "relaxed-aliasing">,
185be570121a6da523020c3b11eb15aba97becb5d2fDevang Patel  HelpText<"Turn off Type Based Alias Analysis">;
18696d6c4596587df59821da10270d2102da4a49b73Manman Rendef no_struct_path_tbaa : Flag<["-"], "no-struct-path-tbaa">,
18796d6c4596587df59821da10270d2102da4a49b73Manman Ren  HelpText<"Turn off struct-path aware Type Based Alias Analysis">;
188c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef masm_verbose : Flag<["-"], "masm-verbose">,
189f219e7c1529fac29e34483667f740b452e5ef9ccDaniel Dunbar  HelpText<"Generate verbose assembly output">;
190c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mcode_model : Separate<["-"], "mcode-model">,
191f219e7c1529fac29e34483667f740b452e5ef9ccDaniel Dunbar  HelpText<"The code model to use">;
192c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mdebug_pass : Separate<["-"], "mdebug-pass">,
193f219e7c1529fac29e34483667f740b452e5ef9ccDaniel Dunbar  HelpText<"Enable additional debug output">;
194c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mdisable_fp_elim : Flag<["-"], "mdisable-fp-elim">,
195f219e7c1529fac29e34483667f740b452e5ef9ccDaniel Dunbar  HelpText<"Disable frame pointer elimination optimization">;
196c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mdisable_tail_calls : Flag<["-"], "mdisable-tail-calls">,
1971db772bd68502e0dabbd8efeb7f7c64a4ab2e37aNick Lewycky  HelpText<"Disable tail call optimization, keeping the call stack accurate">;
198c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef menable_no_infinities : Flag<["-"], "menable-no-infs">,
199001f628a693960380e37c2b58a1009da77d7e425Daniel Dunbar  HelpText<"Allow optimization to assume there are no infinities.">;
200c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef menable_no_nans : Flag<["-"], "menable-no-nans">,
201001f628a693960380e37c2b58a1009da77d7e425Daniel Dunbar  HelpText<"Allow optimization to assume there are no NaNs.">;
202c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef menable_unsafe_fp_math : Flag<["-"], "menable-unsafe-fp-math">,
203abf07a7fb669dcb74040eef948d61dfe3c59ff17Chandler Carruth  HelpText<"Allow unsafe floating-point math optimizations which may decrease "
204abf07a7fb669dcb74040eef948d61dfe3c59ff17Chandler Carruth           "precision">;
205c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mfloat_abi : Separate<["-"], "mfloat-abi">,
2063b315264d1a6fa303e20fe0caec306ccafc090deDaniel Dunbar  HelpText<"The float ABI to use">;
207c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mlimit_float_precision : Separate<["-"], "mlimit-float-precision">,
208f219e7c1529fac29e34483667f740b452e5ef9ccDaniel Dunbar  HelpText<"Limit float precision to the given value">;
2093105627bd76d6a0cc5ee305c99f4c96519bac9acEric Christopherdef split_stacks : Flag<["-"], "split-stacks">,
2103105627bd76d6a0cc5ee305c99f4c96519bac9acEric Christopher  HelpText<"Try to use a split stack if possible.">;
211c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mno_zero_initialized_in_bss : Flag<["-"], "mno-zero-initialized-in-bss">,
212f219e7c1529fac29e34483667f740b452e5ef9ccDaniel Dunbar  HelpText<"Do not put zero initialized data in the BSS">;
213c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef backend_option : Separate<["-"], "backend-option">,
2143c66d30d513106bb794990c5e4ba36a31ac19f15Daniel Dunbar  HelpText<"Additional arguments to forward to LLVM backend (during code gen)">;
215c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mregparm : Separate<["-"], "mregparm">,
21617d3fea677753e6e3e82ffe2cbdeccbf5f2e7497Daniel Dunbar  HelpText<"Limit the number of registers available for integer arguments">;
217c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mrelocation_model : Separate<["-"], "mrelocation-model">,
218f219e7c1529fac29e34483667f740b452e5ef9ccDaniel Dunbar  HelpText<"The relocation model to use">;
219c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef munwind_tables : Flag<["-"], "munwind-tables">,
220f219e7c1529fac29e34483667f740b452e5ef9ccDaniel Dunbar  HelpText<"Generate unwinding tables for all functions">;
221c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mconstructor_aliases : Flag<["-"], "mconstructor-aliases">,
222d46f98573ba104eda102dd3224b2dca69f1c6336John McCall  HelpText<"Emit complete constructors and destructors as aliases when possible">;
223c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mlink_bitcode_file : Separate<["-"], "mlink-bitcode-file">,
22422a7dfea585703d6755db69b83e29a0e6ee10369Peter Collingbourne  HelpText<"Link the given bitcode file before performing optimizations.">;
225fdf137b9073aa52423183fe886d072bc3b7d3889Nick Lewyckydef vectorize_loops : Flag<["-"], "vectorize-loops">,
226fdf137b9073aa52423183fe886d072bc3b7d3889Nick Lewycky  HelpText<"Run the Loop vectorization passes">;
227fdf137b9073aa52423183fe886d072bc3b7d3889Nick Lewyckydef vectorize_slp : Flag<["-"], "vectorize-slp">,
228fdf137b9073aa52423183fe886d072bc3b7d3889Nick Lewycky  HelpText<"Run the SLP vectorization passes">;
229fdf137b9073aa52423183fe886d072bc3b7d3889Nick Lewyckydef vectorize_slp_aggressive : Flag<["-"], "vectorize-slp-aggressive">,
230fdf137b9073aa52423183fe886d072bc3b7d3889Nick Lewycky  HelpText<"Run the BB vectorization passes">;
231b3574796d7cc0113e54b6516fc16e17ca09459fbHans Wennborgdef dependent_lib : Joined<["--"], "dependent-lib=">,
232b3574796d7cc0113e54b6516fc16e17ca09459fbHans Wennborg  HelpText<"Add dependent library">;
2331bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbar
23433a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
2351bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbar// Dependency Output Options
23633a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
23733a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
238c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef sys_header_deps : Flag<["-"], "sys-header-deps">,
2391bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbar  HelpText<"Include system headers in dependency output">;
240651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesdef module_file_deps : Flag<["-"], "module-file-deps">,
241651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  HelpText<"Include module files in dependency output">;
242c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef header_include_file : Separate<["-"], "header-include-file">,
243b34d69b9292534c1c574f168f0ac10aea652adcaDaniel Dunbar  HelpText<"Filename (or -) to write header include output to">;
244708002ede3938256a6223d153a0c040f7a40f5ccHans Wennborgdef show_includes : Flag<["--"], "show-includes">,
245ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Print cl.exe style /showIncludes to stdout">;
24621affc089773edc30be43ecb0022a48acdac7093Daniel Dunbar
24733a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
24821affc089773edc30be43ecb0022a48acdac7093Daniel Dunbar// Diagnostic Options
24933a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
25021affc089773edc30be43ecb0022a48acdac7093Daniel Dunbar
251c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef diagnostic_log_file : Separate<["-"], "diagnostic-log-file">,
25208c6695f6018fb6cb1a7c7d311a851aa5c233bc0Daniel Dunbar  HelpText<"Filename (or -) to log diagnostics to">;
253c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef diagnostic_serialized_file : Separate<["-"], "serialize-diagnostic-file">,
2547800212ef29be314d55814e8dcc568ff8beed106Ted Kremenek  MetaVarName<"<filename>">,
2557800212ef29be314d55814e8dcc568ff8beed106Ted Kremenek  HelpText<"File for serializing diagnostics in a binary format">;
256bfd7a525bcf372004787cb641b8c1566b9e8aba5James Molloy
257c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdiagnostics_format : Separate<["-"], "fdiagnostics-format">,
258c9471b0ff1815ed0149dbfcad0f385ed8648eeb0Douglas Gregor  HelpText<"Change diagnostic formatting to match IDE and command line tools">;
259c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdiagnostics_show_category : Separate<["-"], "fdiagnostics-show-category">,
2606fbe8398ba1680ffc5daa7395850ff8765b7905bChris Lattner  HelpText<"Print diagnostic category">;
26162221b17c90457df9ca0ff20bb54d634e8951defRichard Smithdef fno_diagnostics_use_presumed_location : Flag<["-"], "fno-diagnostics-use-presumed-location">,
26262221b17c90457df9ca0ff20bb54d634e8951defRichard Smith  HelpText<"Ignore #line directives when displaying diagnostic locations">;
263c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ftabstop : Separate<["-"], "ftabstop">, MetaVarName<"<N>">,
264124fca533d9fef2e3f6359283909bd342b5f5f26Chris Lattner  HelpText<"Set the tab stop distance.">;
265c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ferror_limit : Separate<["-"], "ferror-limit">, MetaVarName<"<N>">,
266c100214fdc41a7ea215f75d433eb1cb829fd4330Chris Lattner  HelpText<"Set the maximum number of errors to emit before stopping (0 = no limit).">;
267c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fmacro_backtrace_limit : Separate<["-"], "fmacro-backtrace-limit">, MetaVarName<"<N>">,
268b29a6108b164b183d32d8c14bf5b7492a483c7c9Chandler Carruth  HelpText<"Set the maximum number of entries to print in a macro expansion backtrace (0 = no limit).">;
269c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ftemplate_backtrace_limit : Separate<["-"], "ftemplate-backtrace-limit">, MetaVarName<"<N>">,
270575cf3791216c33770ba950430493cdd43099f8fDouglas Gregor  HelpText<"Set the maximum number of entries to print in a template instantiation backtrace (0 = no limit).">;
271c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fconstexpr_backtrace_limit : Separate<["-"], "fconstexpr-backtrace-limit">, MetaVarName<"<N>">,
27208d6e032a2a0a8656d12b3b7b93942987bb12eb7Richard Smith  HelpText<"Set the maximum number of entries to print in a constexpr evaluation backtrace (0 = no limit).">;
273c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fmessage_length : Separate<["-"], "fmessage-length">, MetaVarName<"<N>">,
27421affc089773edc30be43ecb0022a48acdac7093Daniel Dunbar  HelpText<"Format message diagnostics so that they fit within N columns or fewer, when possible.">;
275651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesdef verify : Flag<["-"], "verify">,
276651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  HelpText<"Verify diagnostic output using comment directives">;
277c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef Wno_rewrite_macros : Flag<["-"], "Wno-rewrite-macros">,
27821affc089773edc30be43ecb0022a48acdac7093Daniel Dunbar  HelpText<"Silence ObjC rewriting warnings">;
27933a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
28033a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
28133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar// Frontend Options
28233a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
28333a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
2848ff5b28d6efcffe2251e77634c7edf83a4763344Daniel Dunbar// This isn't normally used, it is just here so we can parse a
2858ff5b28d6efcffe2251e77634c7edf83a4763344Daniel Dunbar// CompilerInvocation out of a driver-derived argument vector.
286c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef cc1 : Flag<["-"], "cc1">;
287ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef cc1as : Flag<["-"], "cc1as">;
2888ff5b28d6efcffe2251e77634c7edf83a4763344Daniel Dunbar
289c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ast_merge : Separate<["-"], "ast-merge">,
2909bed8798964d9f07599c2c9199701f86fbc70e20Douglas Gregor  MetaVarName<"<ast file>">,
2919bed8798964d9f07599c2c9199701f86fbc70e20Douglas Gregor  HelpText<"Merge the given AST file into the translation unit being compiled.">;
292c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef code_completion_at : Separate<["-"], "code-completion-at">,
293b737fb12cbf9617edc5720fba8b6aed118c84771Daniel Dunbar  MetaVarName<"<file>:<line>:<column>">,
29433a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Dump code-completion information at a location">;
295c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef remap_file : Separate<["-"], "remap-file">,
296e14b5f5237d0740c2b21c50b2eb41a06e778d820Daniel Dunbar  MetaVarName<"<from>;<to>">,
297e14b5f5237d0740c2b21c50b2eb41a06e778d820Daniel Dunbar  HelpText<"Replace the contents of the <from> file with the contents of the <to> file">;
298c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef code_completion_at_EQ : Joined<["-"], "code-completion-at=">,
299ce6bf1ecdaca15450d8c0424724cc1558b847364Daniel Dunbar  Alias<code_completion_at>;
300c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef code_completion_macros : Flag<["-"], "code-completion-macros">,
30133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Include macros in code-completion results">;
302c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef code_completion_patterns : Flag<["-"], "code-completion-patterns">,
303d8e8a58ee35ab334ab9d0c2154dca029c1822e8aDouglas Gregor  HelpText<"Include code patterns in code-completion results">;
304c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef no_code_completion_globals : Flag<["-"], "no-code-completion-globals">,
3058071e4212ae08f8014e0c3ae6d18b7388003a5ccDouglas Gregor  HelpText<"Do not include global declarations in code-completion results.">;
306c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef code_completion_brief_comments : Flag<["-"], "code-completion-brief-comments">,
307d99ef536b241071b6f4c01db6525dc03242ac30bDmitri Gribenko  HelpText<"Include brief documentation comments in code-completion results.">;
308c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef disable_free : Flag<["-"], "disable-free">,
30933a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Disable freeing of memory on exit">;
310c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef load : Separate<["-"], "load">, MetaVarName<"<dsopath>">,
311efba227cc5459554eca466aafe786b5132dcb68cDaniel Dunbar  HelpText<"Load the named plugin (dynamic shared object)">;
312c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef plugin : Separate<["-"], "plugin">, MetaVarName<"<name>">,
3135aa74affa5d61d04c4b034b3722ca41aec0cba6eNico Weber  HelpText<"Use the named plugin action instead of the default action (use \"help\" to list available options)">;
314c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef plugin_arg : JoinedAndSeparate<["-"], "plugin-arg-">,
3153177aae51a21f61ab483c52f97124bdb707da7f1Daniel Dunbar    MetaVarName<"<name> <arg>">,
3163177aae51a21f61ab483c52f97124bdb707da7f1Daniel Dunbar    HelpText<"Pass <arg> to plugin <name>">;
317c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef add_plugin : Separate<["-"], "add-plugin">, MetaVarName<"<name>">,
3185aa74affa5d61d04c4b034b3722ca41aec0cba6eNico Weber  HelpText<"Use the named plugin action in addition to the default action">;
319c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ast_dump_filter : Separate<["-"], "ast-dump-filter">,
320e34a052d642ba7830174b1a51787251d7f704f80Alexander Kornienko  MetaVarName<"<dump_filter>">,
321e34a052d642ba7830174b1a51787251d7f704f80Alexander Kornienko  HelpText<"Use with -ast-dump or -ast-print to dump/print only AST declaration"
322171af64ef10ae816ed2a4f15f5d17aca1d71769fAlexander Kornienko           " nodes having a certain substring in a qualified name. Use"
323171af64ef10ae816ed2a4f15f5d17aca1d71769fAlexander Kornienko           " -ast-list to list all filterable declaration node names.">;
324ab297ccbcc51d5197d4ddb4e99b7bc8868d38314Richard Smithdef ast_dump_lookups : Flag<["-"], "ast-dump-lookups">,
325ab297ccbcc51d5197d4ddb4e99b7bc8868d38314Richard Smith  HelpText<"Include name lookup table dumps in AST dumps">;
32620c6f2eae500242d3aef5daaa55d440a0786a1fdDouglas Gregordef fno_modules_global_index : Flag<["-"], "fno-modules-global-index">,
32720c6f2eae500242d3aef5daaa55d440a0786a1fdDouglas Gregor  HelpText<"Do not automatically generate or update the global module index">;
3286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesdef fno_modules_error_recovery : Flag<["-"], "fno-modules-error-recovery">,
3296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  HelpText<"Do not automatically import modules for error recovery">;
33033a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
33133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbarlet Group = Action_Group in {
33233a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
333c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef Eonly : Flag<["-"], "Eonly">,
33433a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Just run preprocessor, no output (for timings)">;
335c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef dump_raw_tokens : Flag<["-"], "dump-raw-tokens">,
33633a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Lex file in raw mode and dump raw tokens">;
337c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef analyze : Flag<["-"], "analyze">,
33833a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Run static analysis engine">;
339c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef dump_tokens : Flag<["-"], "dump-tokens">,
34033a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Run preprocessor, dump internal rep of tokens">;
341c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef init_only : Flag<["-"], "init-only">,
3422758595023c5c7c0495f19260089f975022c50dcDaniel Dunbar  HelpText<"Only execute frontend initialization">;
343c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fixit : Flag<["-"], "fixit">,
34433a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Apply fix-it advice to the input source">;
345c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fixit_EQ : Joined<["-"], "fixit=">,
346ba5f6eced29937e4e4851a2c0980744768413d66Nick Lewycky  HelpText<"Apply fix-it advice creating a file with the given suffix">;
347c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef print_preamble : Flag<["-"], "print-preamble">,
348f033f1da4a34f8df6e95e9929dc04ff54bb8fb01Douglas Gregor  HelpText<"Print the \"preamble\" of a file, which is a candidate for implicit"
349f033f1da4a34f8df6e95e9929dc04ff54bb8fb01Douglas Gregor           " precompiled headers.">;
350c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef emit_html : Flag<["-"], "emit-html">,
35133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Output input source as HTML">;
352c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ast_print : Flag<["-"], "ast-print">,
35333a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Build ASTs and then pretty-print them">;
354c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ast_list : Flag<["-"], "ast-list">,
355171af64ef10ae816ed2a4f15f5d17aca1d71769fAlexander Kornienko  HelpText<"Build ASTs and print the list of declaration node qualified names">;
356c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ast_dump : Flag<["-"], "ast-dump">,
35733a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Build ASTs and then debug dump them">;
358c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ast_view : Flag<["-"], "ast-view">,
35933a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Build ASTs and view them with GraphViz">;
360c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef print_decl_contexts : Flag<["-"], "print-decl-contexts">,
36133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Print DeclContexts and their Decls">;
362c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef emit_module : Flag<["-"], "emit-module">,
3636649014b792f8a4b1bc1e8be8f844a72220af508Douglas Gregor  HelpText<"Generate pre-compiled module file from a module map">;
364c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef emit_pth : Flag<["-"], "emit-pth">,
36533a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Generate pre-tokenized header file">;
366c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef emit_pch : Flag<["-"], "emit-pch">,
36733a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Generate pre-compiled header file">;
368c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef emit_llvm_bc : Flag<["-"], "emit-llvm-bc">,
36933a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Build ASTs then convert to LLVM, emit .bc file">;
370c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef emit_llvm_only : Flag<["-"], "emit-llvm-only">,
37133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Build ASTs and convert to LLVM, discarding output">;
372c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef emit_codegen_only : Flag<["-"], "emit-codegen-only">,
37332148cef25570a4fbe3ad0ec497ce3ae2cf1b774Daniel Dunbar  HelpText<"Generate machine code, but discard output">;
374c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef emit_obj : Flag<["-"], "emit-obj">,
375da1573f95902a42aa4d11e8f45ab98ec7e27bc28Daniel Dunbar  HelpText<"Emit native object files">;
376c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef rewrite_test : Flag<["-"], "rewrite-test">,
37733a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Rewriter playground">;
378c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef rewrite_macros : Flag<["-"], "rewrite-macros">,
37933a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Expand macros without full preprocessing">;
380c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef migrate : Flag<["-"], "migrate">,
38130660a898545416f0fea2d717f16f75640001e38Ted Kremenek  HelpText<"Migrate source code">;
38233a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar}
38333a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
384c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef mt_migrate_directory : Separate<["-"], "mt-migrate-directory">,
38530660a898545416f0fea2d717f16f75640001e38Ted Kremenek  HelpText<"Directory for temporary files produced during ARC or ObjC migration">;
386c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef arcmt_check : Flag<["-"], "arcmt-check">,
387f85e193739c953358c865005855253af4f68a497John McCall  HelpText<"Check for ARC migration issues that need manual handling">;
388c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef arcmt_modify : Flag<["-"], "arcmt-modify">,
389f85e193739c953358c865005855253af4f68a497John McCall  HelpText<"Apply modifications to files to conform to ARC">;
390c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef arcmt_migrate : Flag<["-"], "arcmt-migrate">,
39169325d5b7cfecf1b3128745efc33612aedf1b8b4Argyrios Kyrtzidis  HelpText<"Apply modifications and produces temporary files that conform to ARC">;
392389db16c63eec6ecfa9b235155252d8da766e94eArgyrios Kyrtzidis
393c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef print_stats : Flag<["-"], "print-stats">,
39433a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Print performance metrics and statistics">;
395c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdump_record_layouts : Flag<["-"], "fdump-record-layouts">,
396b69eca5d2196c06870d3eeb62d689feebaaa8a4dDaniel Dunbar  HelpText<"Dump record layout information">;
397c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdump_record_layouts_simple : Flag<["-"], "fdump-record-layouts-simple">,
398453dbcbe30093fbf947a0bec2fbd46e9694eafe9Douglas Gregor  HelpText<"Dump record layout information in a simple form used for testing">;
399c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fix_what_you_can : Flag<["-"], "fix-what-you-can">,
4001450f265fcc84a7ca64dd9f3b8d4492c5bd55e23Nick Lewycky  HelpText<"Apply fix-it advice even in the presence of unfixable errors">;
401c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fix_only_warnings : Flag<["-"], "fix-only-warnings">,
40261d679ab2831b161c857cf3f974312fbd4ef1efdArgyrios Kyrtzidis  HelpText<"Apply fix-it advice only for warnings, not errors">;
403c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fixit_recompile : Flag<["-"], "fixit-recompile">,
40461d679ab2831b161c857cf3f974312fbd4ef1efdArgyrios Kyrtzidis  HelpText<"Apply fix-it changes and recompile">;
405c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fixit_to_temp : Flag<["-"], "fixit-to-temporary">,
40661d679ab2831b161c857cf3f974312fbd4ef1efdArgyrios Kyrtzidis  HelpText<"Apply fix-it changes to temporary files">;
407b69eca5d2196c06870d3eeb62d689feebaaa8a4dDaniel Dunbar
408c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef foverride_record_layout_EQ : Joined<["-"], "foverride-record-layout=">,
409453dbcbe30093fbf947a0bec2fbd46e9694eafe9Douglas Gregor  HelpText<"Override record layouts with those in the given file">;
410453dbcbe30093fbf947a0bec2fbd46e9694eafe9Douglas Gregor  
41133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
41233a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar// Language Options
41333a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
41433a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
415ef8225444452a1486bd721f3285301fe84643b00Stephen Hineslet Flags = [CC1Option, CC1AsOption, NoDriverOption] in {
416ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
417ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef version : Flag<["-"], "version">,
418ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Print the compiler version">;
419ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef main_file_name : Separate<["-"], "main-file-name">,
420ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Main file name to use for debug info">;
421ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
422ef8225444452a1486bd721f3285301fe84643b00Stephen Hines}
423ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
424c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fblocks_runtime_optional : Flag<["-"], "fblocks-runtime-optional">,
42513db5cfc4e5f03eb70efe0d227b53b8280f16161John McCall  HelpText<"Weakly link in the blocks runtime">;
426c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fsjlj_exceptions : Flag<["-"], "fsjlj-exceptions">,
42773482884560be041d86eccbd7dd5a6918677393bDaniel Dunbar  HelpText<"Use SjLj style exceptions">;
42880190399f5a062db72127869978699af65951b73Eric Christopherdef split_dwarf_file : Separate<["-"], "split-dwarf-file">,
42980190399f5a062db72127869978699af65951b73Eric Christopher  HelpText<"File name to use for split dwarf debug info output">;
430c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fno_wchar : Flag<["-"], "fno-wchar">,
4315b86ffd219bdee7720217d5755b772726668b242Abramo Bagnara  HelpText<"Disable C++ builtin type wchar_t">;
432c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fconstant_string_class : Separate<["-"], "fconstant-string-class">,
433b737fb12cbf9617edc5720fba8b6aed118c84771Daniel Dunbar  MetaVarName<"<class name>">,
43433a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Specify the class to use for constant Objective-C string objects.">;
435c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fobjc_arc_cxxlib_EQ : Joined<["-"], "fobjc-arc-cxxlib=">,
436f85e193739c953358c865005855253af4f68a497John McCall  HelpText<"Objective-C++ Automatic Reference Counting standard library kind">;
437c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fobjc_runtime_has_weak : Flag<["-"], "fobjc-runtime-has-weak">,
4389f084a3166b684573ba49df28fc5792bc37d92e1John McCall  HelpText<"The target Objective-C runtime supports ARC weak operations">;
439c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fobjc_dispatch_method_EQ : Joined<["-"], "fobjc-dispatch-method=">,
440f643b9b338b797a824447207d7eab5f1187f4f34Daniel Dunbar  HelpText<"Objective-C dispatch method to use">;
44114f9889b9b88f73a891688d7732bf01a127d9e7cRafael Espindoladef disable_objc_default_synthesize_properties : Flag<["-"], "disable-objc-default-synthesize-properties">,
4425cf3e358590939802f2e24075ed1c6088790f2beRafael Espindola  HelpText<"disable the default synthesis of Objective-C properties">;
4433d145f660a23d5bdabdd1ead83c51f3df1489b09Fariborz Jahaniandef fencode_extended_block_signature : Flag<["-"], "fencode-extended-block-signature">,
4443d145f660a23d5bdabdd1ead83c51f3df1489b09Fariborz Jahanian  HelpText<"enable extended encoding of block type signature">;
445c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef pic_level : Separate<["-"], "pic-level">,
446b737fb12cbf9617edc5720fba8b6aed118c84771Daniel Dunbar  HelpText<"Value for __PIC__">;
447c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef pie_level : Separate<["-"], "pie-level">,
4485e219cf7f896873c1c1e64b9e87a7dade99debbaChandler Carruth  HelpText<"Value for __PIE__">;
449c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fno_validate_pch : Flag<["-"], "fno-validate-pch">,
450fae3b2f4743dad616623c4df2fdb0f5128bd36d9Douglas Gregor  HelpText<"Disable validation of precompiled headers">;
451c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef dump_deserialized_pch_decls : Flag<["-"], "dump-deserialized-decls">,
452b972858068d2ea77f72a1e7b1812b196afd6be2eArgyrios Kyrtzidis  HelpText<"Dump declarations that are deserialized from PCH, for testing">;
453c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef error_on_deserialized_pch_decl : Separate<["-"], "error-on-deserialized-decl">,
4543e78593b1ced32b7e0a97da044213014ee0f6f7cArgyrios Kyrtzidis  HelpText<"Emit error if a specific declaration is deserialized from PCH, for testing">;
455c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef error_on_deserialized_pch_decl_EQ : Joined<["-"], "error-on-deserialized-decl=">,
4569a8cbc75052d641105e45d0eca2592743fa01e54Argyrios Kyrtzidis  Alias<error_on_deserialized_pch_decl>;
457c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef static_define : Flag<["-"], "static-define">,
45833a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Should __STATIC__ be defined">;
459c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef stack_protector : Separate<["-"], "stack-protector">,
46033a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Enable stack protectors">;
461c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef stack_protector_buffer_size : Separate<["-"], "stack-protector-buffer-size">,
462a7afeb040416c0eaac19b92db914913a788044f5Chad Rosier  HelpText<"Lower bound for a buffer to be considered for stack protection">;
463c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fvisibility : Separate<["-"], "fvisibility">,
464a880b19aa6ef1dc95936f5de052be7a7d6ee6814John McCall  HelpText<"Default type and symbol visibility">;
465a880b19aa6ef1dc95936f5de052be7a7d6ee6814John McCalldef ftype_visibility : Separate<["-"], "ftype-visibility">,
466a880b19aa6ef1dc95936f5de052be7a7d6ee6814John McCall  HelpText<"Default type visibility">;
467c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ftemplate_depth : Separate<["-"], "ftemplate-depth">,
46833a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Maximum depth of recursive template instantiation">;
469195dd7c8448893e13a0cd8e776520f14cba65b08Richard Smithdef foperator_arrow_depth : Separate<["-"], "foperator-arrow-depth">,
470195dd7c8448893e13a0cd8e776520f14cba65b08Richard Smith  HelpText<"Maximum number of 'operator->'s to call for a member access">;
471c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fconstexpr_depth : Separate<["-"], "fconstexpr-depth">,
472c18c42345636e2866fed75c7e434fb659d747672Richard Smith  HelpText<"Maximum depth of recursive constexpr function calls">;
473e7565635002ce0daaaf4b714cdb472507af462eeRichard Smithdef fconstexpr_steps : Separate<["-"], "fconstexpr-steps">,
474e7565635002ce0daaaf4b714cdb472507af462eeRichard Smith  HelpText<"Maximum number of steps in constexpr function evaluation">;
4759e738cc9d4b4655c44dadeb22f3a314daf43b995Richard Smithdef fbracket_depth : Separate<["-"], "fbracket-depth">,
4769e738cc9d4b4655c44dadeb22f3a314daf43b995Richard Smith  HelpText<"Maximum nesting level for parentheses, brackets, and braces">;
477c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fconst_strings : Flag<["-"], "fconst-strings">,
47850465d1d2f5f6dd3d8e18e2cf7bad4691e5ca6a8Chandler Carruth  HelpText<"Use a const qualified type for string literals in C and ObjC">;
479c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fno_const_strings : Flag<["-"], "fno-const-strings">,
48050465d1d2f5f6dd3d8e18e2cf7bad4691e5ca6a8Chandler Carruth  HelpText<"Don't use a const qualified type for string literals in C and ObjC">;
481c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fno_bitfield_type_align : Flag<["-"], "fno-bitfield-type-align">,
482fb937b8c5f1c5dc9cfd4223b5cae230cc42b0287Daniel Dunbar  HelpText<"Ignore bit-field types when aligning structures">;
483c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef ffake_address_space_map : Flag<["-"], "ffake-address-space-map">,
484207f4d8543529221932af82836016a2ef066c917Peter Collingbourne  HelpText<"Use a fake address space map; OpenCL testing purposes only">;
4851eef85246b411b55c493098266746d0d83c241eaDavid Tweeddef faddress_space_map_mangling_EQ : Joined<["-"], "faddress-space-map-mangling=">, MetaVarName<"<yes|no|target>">,
4861eef85246b411b55c493098266746d0d83c241eaDavid Tweed  HelpText<"Set the mode for address space map based mangling; OpenCL testing purposes only">;
487c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef funknown_anytype : Flag<["-"], "funknown-anytype">,
488a5fc472b353b88be3b4981da946fb01f5a5cc0c6John McCall  HelpText<"Enable parser support for the __unknown_anytype type; for testing purposes only">;
489c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdebugger_support : Flag<["-"], "fdebugger-support">,
49048218c60d6b53b7880917d1366ee716dec2145caJohn McCall  HelpText<"Enable special debugger support behavior">;
491c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdebugger_cast_result_to_id : Flag<["-"], "fdebugger-cast-result-to-id">,
49250a9a12d4f7387bcff3213d4b56e74bab9f4f5d2Sean Callanan  HelpText<"Enable casting unknown expression results to id">;
493c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdebugger_objc_literal : Flag<["-"], "fdebugger-objc-literal">,
494b13291aa59c4c074e70f2d0181f9721e38b494d4Jordan Rose  HelpText<"Enable special debugger support for Objective-C subscripting and literals">;
495c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdeprecated_macro : Flag<["-"], "fdeprecated-macro">,
496f8c247d247f9f7ab2bf4965677e6d056711c99d5Chandler Carruth  HelpText<"Defines the __DEPRECATED macro">;
497c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fno_deprecated_macro : Flag<["-"], "fno-deprecated-macro">,
498f8c247d247f9f7ab2bf4965677e6d056711c99d5Chandler Carruth  HelpText<"Undefines the __DEPRECATED macro">;
4994cb295d3b32cb04215f87948fbf944ee4c31de1bRichard Smithdef fsized_deallocation : Flag<["-"], "fsized-deallocation">,
5004cb295d3b32cb04215f87948fbf944ee4c31de1bRichard Smith  HelpText<"Enable C++1y sized global deallocation functions">;
501d9553e35e1e3af6fc4ca817b169dc796a5b54bcdFariborz Jahaniandef fobjc_subscripting_legacy_runtime : Flag<["-"], "fobjc-subscripting-legacy-runtime">,
502d9553e35e1e3af6fc4ca817b169dc796a5b54bcdFariborz Jahanian  HelpText<"Allow Objective-C array and dictionary subscripting in legacy runtime">;
503651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesdef vtordisp_mode_EQ : Joined<["-"], "vtordisp-mode=">,
504651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  HelpText<"Control vtordisp placement on win32 targets">;
505ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef fno_rtti_data : Flag<["-"], "fno-rtti-data">,
506ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Control emission of RTTI data">;
50733a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
50833a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
50933a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar// Header Search Options
51033a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
51133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
512c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef nostdsysteminc : Flag<["-"], "nostdsysteminc">,
513a268fc0f2229eb132ebc8501b140093aeb5516bfDaniel Dunbar  HelpText<"Disable standard system #include directories">;
514c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fdisable_module_hash : Flag<["-"], "fdisable-module-hash">,
5156e975c4517958bcc11c834336d340797356058dbDouglas Gregor  HelpText<"Disable the module hash">;
516c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef c_isystem : JoinedOrSeparate<["-"], "c-isystem">, MetaVarName<"<directory>">,
51747adebef0df6dce752fe9a45e9190e8005b5d07cBenjamin Kramer  HelpText<"Add directory to the C SYSTEM include search path">;
518c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef objc_isystem : JoinedOrSeparate<["-"], "objc-isystem">,
51947adebef0df6dce752fe9a45e9190e8005b5d07cBenjamin Kramer  MetaVarName<"<directory>">,
52047adebef0df6dce752fe9a45e9190e8005b5d07cBenjamin Kramer  HelpText<"Add directory to the ObjC SYSTEM include search path">;
521c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef objcxx_isystem : JoinedOrSeparate<["-"], "objcxx-isystem">,
52247adebef0df6dce752fe9a45e9190e8005b5d07cBenjamin Kramer  MetaVarName<"<directory>">,
52347adebef0df6dce752fe9a45e9190e8005b5d07cBenjamin Kramer  HelpText<"Add directory to the ObjC++ SYSTEM include search path">;
524c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef internal_isystem : JoinedOrSeparate<["-"], "internal-isystem">,
525ac2bc4d220a6263be96b943e9162f4a11149e26dChandler Carruth  MetaVarName<"<directory>">,
526ac2bc4d220a6263be96b943e9162f4a11149e26dChandler Carruth  HelpText<"Add directory to the internal system include search path; these "
527ac2bc4d220a6263be96b943e9162f4a11149e26dChandler Carruth           "are assumed to not be user-provided and are used to model system "
528ac2bc4d220a6263be96b943e9162f4a11149e26dChandler Carruth           "and standard headers' paths.">;
529c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef internal_externc_isystem : JoinedOrSeparate<["-"], "internal-externc-isystem">,
530ac2bc4d220a6263be96b943e9162f4a11149e26dChandler Carruth  MetaVarName<"<directory>">,
531ac2bc4d220a6263be96b943e9162f4a11149e26dChandler Carruth  HelpText<"Add directory to the internal system include search path with "
532ac2bc4d220a6263be96b943e9162f4a11149e26dChandler Carruth           "implicit extern \"C\" semantics; these are assumed to not be "
533ac2bc4d220a6263be96b943e9162f4a11149e26dChandler Carruth           "user-provided and are used to model system and standard headers' "
534ac2bc4d220a6263be96b943e9162f4a11149e26dChandler Carruth           "paths.">;
53533a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
53633a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
53733a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar// Preprocessor Options
53833a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar//===----------------------------------------------------------------------===//
53933a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar
540c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef include_pth : Separate<["-"], "include-pth">, MetaVarName<"<file>">,
54133a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Include file before parsing">;
542c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef chain_include : Separate<["-"], "chain-include">, MetaVarName<"<file>">,
543b0f4b9a558933b307073f7cd7753602f94354ae9Argyrios Kyrtzidis  HelpText<"Include and chain a header file after turning it into PCH">;
544c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef preamble_bytes_EQ : Joined<["-"], "preamble-bytes=">,
5453d398aa5c2be8919bbc0144bce611c48119bc861Douglas Gregor  HelpText<"Assume that the precompiled header is a precompiled preamble "
5463d398aa5c2be8919bbc0144bce611c48119bc861Douglas Gregor           "covering the first N bytes of the main file">;
547c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef token_cache : Separate<["-"], "token-cache">, MetaVarName<"<path>">,
54833a33d8abd7a3d49eacc05e40c00b00634bf1ee9Daniel Dunbar  HelpText<"Use specified token cache file">;
549c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef detailed_preprocessing_record : Flag<["-"], "detailed-preprocessing-record">,
55094dc8f640ebea52241412512ed48601626edbc58Douglas Gregor  HelpText<"include a detailed record of preprocessing actions">;
55161e07861dd3a70c31f658bad8c4b911994e4933bPeter Collingbourne
55261e07861dd3a70c31f658bad8c4b911994e4933bPeter Collingbourne//===----------------------------------------------------------------------===//
55361e07861dd3a70c31f658bad8c4b911994e4933bPeter Collingbourne// OpenCL Options
55461e07861dd3a70c31f658bad8c4b911994e4933bPeter Collingbourne//===----------------------------------------------------------------------===//
55561e07861dd3a70c31f658bad8c4b911994e4933bPeter Collingbourne
556c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef cl_opt_disable : Flag<["-"], "cl-opt-disable">,
55761e07861dd3a70c31f658bad8c4b911994e4933bPeter Collingbourne  HelpText<"OpenCL only. This option disables all optimizations. The default is optimizations are enabled.">;
558c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef cl_single_precision_constant : Flag<["-"], "cl-single-precision-constant">,
5590982136cb748f4a842141bf199d133126d6be882Peter Collingbourne  HelpText<"OpenCL only. Treat double precision floating-point constant as single precision constant.">;
560c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef cl_finite_math_only : Flag<["-"], "cl-finite-math-only">,
5615d729a3d8eeba59ed97119998f2135ad6d45e876Peter Collingbourne  HelpText<"OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.">;
562651f13cea278ec967336033dd032faef0e9fc2ecStephen Hinesdef cl_kernel_arg_info : Flag<["-"], "cl-kernel-arg-info">,
563651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines  HelpText<"OpenCL only. Generate kernel argument metadata.">;
564c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef cl_unsafe_math_optimizations : Flag<["-"], "cl-unsafe-math-optimizations">,
5655f67e13fcdc3c33e9cd5d027bfbb677b726c6f6aPeter Collingbourne  HelpText<"OpenCL only. Allow unsafe floating-point optimizations.  Also implies -cl-no-signed-zeros and -cl-mad-enable">;
566c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef cl_fast_relaxed_math : Flag<["-"], "cl-fast-relaxed-math">,
567f0840820b4e28fd0cc04d737382811d7372cb832Peter Collingbourne  HelpText<"OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__">;
568c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef cl_mad_enable : Flag<["-"], "cl-mad-enable">,
5694400cb8c548a90c472444b57690117563f4be195Peter Collingbourne  HelpText<"OpenCL only. Enable less precise MAD instructions to be generated.">;
570c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef cl_std_EQ : Joined<["-"], "cl-std=">,
57191252d115bdb6f937192a8dbc86c5abe00101436Peter Collingbourne  HelpText<"OpenCL language standard to compile for">;
572d51e43af0b3a6897b971f316c4de2035ec82d1f2Peter Collingbourne
573d51e43af0b3a6897b971f316c4de2035ec82d1f2Peter Collingbourne//===----------------------------------------------------------------------===//
574d51e43af0b3a6897b971f316c4de2035ec82d1f2Peter Collingbourne// CUDA Options
575d51e43af0b3a6897b971f316c4de2035ec82d1f2Peter Collingbourne//===----------------------------------------------------------------------===//
576d51e43af0b3a6897b971f316c4de2035ec82d1f2Peter Collingbourne
577c635710bcbb9598acd5a14647ba7ca28bee89a68Michael J. Spencerdef fcuda_is_device : Flag<["-"], "fcuda-is-device">,
578d51e43af0b3a6897b971f316c4de2035ec82d1f2Peter Collingbourne  HelpText<"Generate code for CUDA device">;
579bfd7a525bcf372004787cb641b8c1566b9e8aba5James Molloy
580bfd7a525bcf372004787cb641b8c1566b9e8aba5James Molloy} // let Flags = [CC1Option]
581ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
582ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
583ef8225444452a1486bd721f3285301fe84643b00Stephen Hines//===----------------------------------------------------------------------===//
584ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// cc1as-only Options
585ef8225444452a1486bd721f3285301fe84643b00Stephen Hines//===----------------------------------------------------------------------===//
586ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
587ef8225444452a1486bd721f3285301fe84643b00Stephen Hineslet Flags = [CC1AsOption, NoDriverOption] in {
588ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
589ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// Language Options
590ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef n : Flag<["-"], "n">,
591ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"Don't automatically start assembly file with a text section">;
592ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
593ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// Frontend Options
594ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef filetype : Separate<["-"], "filetype">,
595ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    HelpText<"Specify the output file type ('asm', 'null', or 'obj')">;
596ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
597ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// Transliterate Options
598ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef output_asm_variant : Separate<["-"], "output-asm-variant">,
599ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    HelpText<"Select the asm variant index to use for output">;
600ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef show_encoding : Flag<["-"], "show-encoding">,
601ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    HelpText<"Show instruction encoding information in transliterate mode">;
602ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef show_inst : Flag<["-"], "show-inst">,
603ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    HelpText<"Show internal instruction representation in transliterate mode">;
604ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
605ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// Assemble Options
606ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesdef dwarf_debug_producer : Separate<["-"], "dwarf-debug-producer">,
607ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  HelpText<"The string to embed in the Dwarf debug AT_producer record.">;
608ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
609ef8225444452a1486bd721f3285301fe84643b00Stephen Hines} // let Flags = [CC1AsOption]
610