CC1Options.td revision e2814d89025b847ad7363b21e3e053bbae180b54
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//
108adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//  This file defines the options accepted by clang -cc1.
118adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//
128adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar//===----------------------------------------------------------------------===//
138adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar
148adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar// Include the common option parsing interfaces.
158adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbarinclude "OptParser.td"
168adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar
178adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar// Target Options
188adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar
198adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbardef target_abi : Separate<"-target-abi">,
208adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar  HelpText<"Target a particular ABI type">;
2131db76cb2dde031ab3262808ac233889daf7d720Daniel Dunbardef mcpu : Separate<"-mcpu">,
22a31100e62f83933432df9092a04e48f9e5561a14Daniel Dunbar  HelpText<"Target a specific cpu type ('-mcpu help' for details)">;
2331db76cb2dde031ab3262808ac233889daf7d720Daniel Dunbardef target_feature : Separate<"-target-feature">,
248adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar  HelpText<"Target specific attributes">;
2531db76cb2dde031ab3262808ac233889daf7d720Daniel Dunbardef triple : Separate<"-triple">,
268adfcff02334455b6f95bc4e1f347204f7c0dd3eDaniel Dunbar  HelpText<"Specify target triple (e.g. i686-apple-darwin9)">;
2750a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar
28e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar// Analyzer Options
29e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
30e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_CFGDump : Flag<"-cfg-dump">,
31e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Display Control-Flow Graphs">;
32e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_CFGView : Flag<"-cfg-view">,
33e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"View Control-Flow Graphs using GraphViz">;
34e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_DisplayLiveVariables : Flag<"-dump-live-variables">,
35e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Print results of live variable analysis">;
36e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_SecuritySyntacticChecks : Flag<"-warn-security-syntactic">,
37e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Perform quick security checks that require no data flow">;
38e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_WarnDeadStores : Flag<"-warn-dead-stores">,
39e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Warn about stores to dead variables">;
40e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_WarnUninitVals : Flag<"-warn-uninit-values">,
41e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Warn about uses of uninitialized variables">;
42e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_WarnObjCMethSigs : Flag<"-warn-objc-methodsigs">,
43e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Warn about Objective-C method signatures with type incompatibilities">;
44e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_WarnObjCDealloc : Flag<"-warn-objc-missing-dealloc">,
45e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Warn about Objective-C classes that lack a correct implementation of -dealloc">;
46e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_WarnObjCUnusedIvars : Flag<"-warn-objc-unused-ivars">,
47e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Warn about private ivars that are never used">;
48e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_CheckerCFRef : Flag<"-checker-cfref">,
49e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Run the [Core] Foundation reference count checker">;
50e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_WarnSizeofPointer : Flag<"-warn-sizeof-pointer">,
51e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Warn about unintended use of sizeof() on pointer expressions">;
52e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analysis_InlineCall : Flag<"-inline-call">,
53e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Experimental transfer function inling callees when its definition is available.">;
54e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
55e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_store : Separate<"-analyzer-store">,
56e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Source Code Analysis - Abstract Memory Store Models">;
57e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_store_EQ : Joined<"-analyzer-store=">, Alias<analyzer_store>;
58e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
59e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_constraints : Separate<"-analyzer-constraints">,
60e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Source Code Analysis - Symbolic Constraint Engines">;
61e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_constraints_EQ : Joined<"-analyzer-constraints=">,
62e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  Alias<analyzer_constraints>;
63e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
64e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_output : Separate<"-analyzer-output">,
65e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Source Code Analysis - Output Options">;
66e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_output_EQ : Joined<"-analyzer-output=">,
67e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  Alias<analyzer_output>;
68e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
69e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_opt_analyze_headers : Flag<"-analyzer-opt-analyze-headers">,
70e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Force the static analyzer to analyze functions defined in header files">;
71e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_display_progress : Flag<"-analyzer-display-progress">,
72e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Emit verbose output about the analyzer's progress">;
73e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_experimental_checks : Flag<"-analyzer-experimental-checks">,
74e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Use experimental path-sensitive checks">;
75e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_experimental_internal_checks :
76e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  Flag<"-analyzer-experimental-internal-checks">,
77e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Use new default path-sensitive checks currently in testing">;
78e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyze_function : Separate<"-analyze-function">,
79e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Run analysis on specific function">;
80e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyze_function_EQ : Joined<"-analyze-function=">, Alias<analyze_function>;
81e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_eagerly_assume : Flag<"-analyzer-eagerly-assume">,
82e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Eagerly assume the truth/falseness of some symbolic constraints">;
83e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_no_purge_dead : Flag<"-analyzer-no-purge-dead">,
84e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Don't remove dead symbols, bindings, and constraints before processing a statement">;
85e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef trim_egraph : Flag<"-trim-egraph">,
86e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Only show error-related paths in the analysis graph">;
87e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_viz_egraph_graphviz : Flag<"-analyzer-viz-egraph-graphviz">,
88e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Display exploded graph using GraphViz">;
89e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbardef analyzer_viz_egraph_ubigraph : Flag<"-analyzer-viz-egraph-ubigraph">,
90e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar  HelpText<"Display exploded graph using Ubigraph">;
91e2814d89025b847ad7363b21e3e053bbae180b54Daniel Dunbar
9250a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar// CodeGen Options
9350a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar
9450a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbardef disable_llvm_optzns : Flag<"-disable-llvm-optzns">,
9550a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar  HelpText<"Don't run LLVM optimization passes">;
9650a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbardef disable_red_zone : Flag<"-disable-red-zone">,
9750a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar  HelpText<"Do not emit code that uses the red zone.">;
9850a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbardef g : Flag<"-g">, HelpText<"Generate source level debug information">;
9950a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbardef fno_common : Flag<"-fno-common">,
10050a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar  HelpText<"Compile common globals like normal definitions">;
10150a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbardef no_implicit_float : Flag<"-no-implicit-float">,
10250a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar  HelpText<"Don't generate implicit floating point instructions (x86-only)">;
10350a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbardef fno_merge_all_constants : Flag<"-fno-merge-all-constants">,
10450a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbar  HelpText<"Disallow merging of constants.">;
10550a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbardef O : Joined<"-O">, HelpText<"Optimization level">;
10650a4487683a7e09fb93e8b506181e034241a0ffeDaniel Dunbardef Os : Flag<"-Os">, HelpText<"Optimize for size">;
1071bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbar
1081bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbar// Dependency Output Options
1091bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbardef dependency_file : Separate<"-dependency-file">,
1101bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbar  HelpText<"Filename (or -) to write dependency output to">;
1111bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbardef sys_header_deps : Flag<"-sys-header-deps">,
1121bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbar  HelpText<"Include system headers in dependency output">;
1131bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbardef MT : Separate<"-MT">, HelpText<"Specify target for dependency">;
1141bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbardef MP : Flag<"-MP">,
1151bed0c3a555d9e32de9dead55658b4a28a4d6e03Daniel Dunbar  HelpText<"Create phony target for each dependency (other than main file)">;
116