/* This file is auto-generated by opth-gen.awk.  */

#ifndef OPTIONS_H
#define OPTIONS_H

extern int target_flags;
extern int target_flags_explicit;

extern int extra_warnings;
extern int warn_abi;
extern int warn_address;
extern int warn_aggregate_return;
extern int warn_array_bounds;
extern int warn_assign_intercept;
extern int warn_attributes;
extern int warn_bad_function_cast;
extern int warn_cxx_compat;
extern int warn_cxx0x_compat;
extern int warn_cast_align;
extern int warn_cast_qual;
extern int warn_char_subscripts;
extern int warn_clobbered;
extern int warn_conversion;
extern int warn_conversion_null;
extern int warn_coverage_mismatch;
extern int warn_ctor_dtor_privacy;
extern int warn_declaration_after_statement;
extern int warn_deprecated;
extern int warn_deprecated_decl;
extern int warn_disabled_optimization;
extern int warn_div_by_zero;
extern int warn_ecpp;
extern int warn_empty_body;
extern int warn_enum_compare;
extern int warnings_are_errors;
extern int flag_extraneous_semicolon;
extern int flag_fatal_errors;
extern int warn_float_equal;
extern int warn_format_contains_nul;
extern int warn_format_extra_args;
extern int warn_format_nonliteral;
extern int warn_format_security;
extern int warn_format_y2k;
extern int warn_format_zero_length;
extern int warn_ignored_qualifiers;
extern int warn_implicit_function_declaration;
extern int warn_implicit_int;
extern int warn_init_self;
extern int warn_inline;
extern int warn_int_to_pointer_cast;
extern int warn_invalid_offsetof;
extern int warn_jump_misses_init;
extern int warn_logical_op;
extern int warn_long_long;
extern int warn_main;
extern int warn_missing_braces;
extern int warn_missing_declarations;
extern int warn_missing_field_initializers;
extern int warn_missing_format_attribute;
extern int warn_missing_noreturn;
extern int warn_missing_parameter_type;
extern int warn_missing_prototypes;
extern int warn_mudflap;
extern int warn_nested_externs;
extern int warn_nontemplate_friend;
extern int warn_nonvdtor;
extern int warn_nonnull;
extern int warn_old_style_cast;
extern int warn_old_style_declaration;
extern int warn_old_style_definition;
extern int flag_newer;
extern int warn_overflow;
extern int warn_overlength_strings;
extern int warn_overloaded_virtual;
extern int warn_override_init;
extern int warn_packed;
extern int warn_packed_bitfield_compat;
extern int warn_padded;
extern int warn_parentheses;
extern int warn_pedantic_ms_format;
extern int warn_pmf2ptr;
extern int warn_pointer_arith;
extern int warn_pointer_sign;
extern int warn_pointer_to_int_cast;
extern int warn_pragmas;
extern int warn_protocol;
extern int warn_psabi;
extern int warn_redundant_decls;
extern int flag_redundant;
extern int warn_reorder;
extern int warn_return_type;
extern int warn_selector;
extern int warn_sequence_point;
extern int warn_shadow;
extern int warn_sign_compare;
extern int warn_sign_conversion;
extern int warn_sign_promo;
extern int warn_stack_protect;
extern int warn_strict_aliasing;
extern int warn_strict_overflow;
extern int warn_strict_prototypes;
extern int warn_strict_selector_match;
extern int warn_switch;
extern int warn_switch_default;
extern int warn_switch_enum;
extern int warn_sync_nand;
extern int warn_synth;
extern int warn_system_headers;
extern int warn_traditional;
extern int warn_traditional_conversion;
extern int warn_type_limits;
extern int warn_undeclared_selector;
extern int warn_uninitialized;
extern int warn_unsafe_loop_optimizations;
extern int warn_unsuffixed_float_constants;
extern int warn_unused;
extern int warn_unused_function;
extern int warn_unused_label;
extern int warn_unused_parameter;
extern int warn_unused_result;
extern int warn_unused_value;
extern int warn_unused_variable;
extern int warn_vla;
extern int warn_volatile_register_var;
extern int warn_write_strings;
extern int flag_pic;
extern int flag_pie;
extern int flag_abi_version;
extern int align_functions;
extern int align_jumps;
extern int align_labels;
extern int align_loops;
extern int flag_argument_noalias;
extern int flag_assert;
extern int flag_associative_math;
extern int flag_asynchronous_unwind_tables;
extern int flag_auto_inc_dec;
extern int flag_bootstrap_classes;
extern int flag_bounds_check;
extern int flag_branch_on_count_reg;
extern int flag_branch_probabilities;
extern int flag_branch_target_load_optimize;
extern int flag_branch_target_load_optimize2;
extern int flag_btr_bb_exclusive;
extern int flag_caller_saves;
extern int flag_check_data_deps;
extern int flag_check_references;
extern int flag_no_common;
extern int flag_compare_debug;
extern const char *flag_compare_debug_opt;
extern int flag_conserve_stack;
extern int flag_cprop_registers;
extern int flag_crossjumping;
extern int flag_cse_follow_jumps;
extern int flag_cx_fortran_rules;
extern int flag_cx_limited_range;
extern int flag_data_sections;
extern int flag_dce;
extern int flag_deduce_init_list;
extern int flag_defer_pop;
extern int flag_delayed_branch;
extern int flag_delete_null_pointer_checks;
extern int flag_dse;
extern const char *flag_dump_final_insns;
extern int flag_dump_noaddr;
extern int flag_dump_unnumbered;
extern int flag_dump_unnumbered_links;
extern int flag_dwarf2_cfi_asm;
extern int flag_early_inlining;
extern int flag_eliminate_dwarf2_dups;
extern int flag_debug_only_used_symbols;
extern int flag_eliminate_unused_debug_types;
extern int flag_emit_class_debug_always;
extern int flag_emit_class_files;
extern int flag_enable_icf_debug;
extern int flag_exceptions;
extern int flag_expensive_optimizations;
extern int flag_filelist_file;
extern int flag_finite_math_only;
extern int flag_float_store;
extern int flag_force_classes_archive_check;
extern int flag_forward_propagate;
extern int flag_friend_injection;
extern int flag_no_function_cse;
extern int flag_function_sections;
extern int flag_gcse;
extern int flag_gcse_after_reload;
extern int flag_gcse_las;
extern int flag_gcse_lm;
extern int flag_gcse_sm;
extern int flag_gnu89_inline;
extern int flag_graphite;
extern int flag_graphite_identity;
extern int flag_guess_branch_prob;
extern int flag_hash_synchronization;
extern int help_flag;
extern int flag_no_ident;
extern int flag_if_conversion;
extern int flag_if_conversion2;
extern int flag_indirect_classes;
extern int flag_indirect_dispatch;
extern int flag_indirect_inlining;
extern int flag_inhibit_size_directive;
extern int flag_no_inline;
extern int flag_inline_functions;
extern int flag_inline_functions_called_once;
extern int flag_inline_small_functions;
extern int flag_instrument_function_entry_exit;
extern int flag_ipa_cp;
extern int flag_ipa_cp_clone;
extern int flag_ipa_matrix_reorg;
extern int flag_ipa_pta;
extern int flag_ipa_pure_const;
extern int flag_ipa_reference;
extern int flag_ipa_sra;
extern int flag_ipa_struct_reorg;
extern int flag_ipa_type_escape;
extern int flag_ira_coalesce;
extern int flag_ira_loop_pressure;
extern int flag_ira_share_save_slots;
extern int flag_ira_share_spill_slots;
extern int flag_ivopts;
extern int flag_jni;
extern int flag_jump_tables;
extern int flag_keep_inline_functions;
extern int flag_keep_static_consts;
extern int flag_leading_underscore;
extern int flag_loop_block;
extern int flag_loop_interchange;
extern int flag_loop_parallelize_all;
extern int flag_loop_strip_mine;
extern int flag_lto;
extern int flag_lto_compression_level;
extern int flag_lto_report;
extern int flag_ltrans;
extern const char *ltrans_output_list;
extern int flag_errno_math;
extern int mem_report;
extern int flag_merge_constants;
extern int flag_merge_debug_strings;
extern int flag_modulo_sched;
extern int flag_modulo_sched_allow_regmoves;
extern int flag_move_loop_invariants;
extern int flag_mudflap;
extern int flag_mudflap_ignore_reads;
extern int flag_non_call_exceptions;
extern int flag_objc_call_cxx_cdtors;
extern int flag_objc_direct_dispatch;
extern int flag_objc_exceptions;
extern int flag_objc_gc;
extern int flag_objc_sjlj_exceptions;
extern int flag_omit_frame_pointer;
extern int flag_openmp;
extern int flag_regmove;
extern int flag_optimize_sibling_calls;
extern int flag_optimize_sci;
extern int flag_pack_struct;
extern int flag_pcc_struct_return;
extern int flag_peel_loops;
extern int flag_no_peephole;
extern int flag_peephole2;
extern int post_ipa_mem_report;
extern int pre_ipa_mem_report;
extern int flag_predictive_commoning;
extern int flag_prefetch_loop_arrays;
extern int profile_flag;
extern int profile_arc_flag;
extern int flag_profile_correction;
extern int flag_profile_use;
extern int flag_profile_values;
extern int flag_reciprocal_math;
extern int flag_record_gcc_switches;
extern int flag_reduced_reflection;
extern int flag_rename_registers;
extern int flag_reorder_blocks;
extern int flag_reorder_blocks_and_partition;
extern int flag_reorder_functions;
extern int flag_rerun_cse_after_loop;
extern int flag_resched_modulo_sched;
extern int flag_rounding_math;
extern int flag_sched_critical_path_heuristic;
extern int flag_sched_dep_count_heuristic;
extern int flag_sched_group_heuristic;
extern int flag_schedule_interblock;
extern int flag_sched_last_insn_heuristic;
extern int flag_sched_pressure;
extern int flag_sched_rank_heuristic;
extern int flag_schedule_speculative;
extern int flag_sched_spec_insn_heuristic;
extern int flag_schedule_speculative_load;
extern int flag_schedule_speculative_load_dangerous;
extern int flag_sched_stalled_insns;
extern int flag_sched_stalled_insns_dep;
extern int flag_sched2_use_superblocks;
extern int flag_schedule_insns;
extern int flag_schedule_insns_after_reload;
extern int flag_section_anchors;
extern int flag_sel_sched_pipelining;
extern int flag_sel_sched_pipelining_outer_loops;
extern int flag_sel_sched_reschedule_pipelined;
extern int flag_selective_scheduling;
extern int flag_selective_scheduling2;
extern int flag_setstackexecutable;
extern int flag_show_column;
extern int flag_signaling_nans;
extern int flag_signed_zeros;
extern int flag_single_precision_constant;
extern int flag_split_ivs_in_unroller;
extern int flag_split_wide_types;
extern int flag_stack_protect;
extern int flag_store_check;
extern int flag_strict_aliasing;
extern int flag_strict_overflow;
extern int flag_syntax_only;
extern int flag_test_coverage;
extern int flag_thread_jumps;
extern int time_report;
extern int flag_toplevel_reorder;
extern int flag_tracer;
extern int flag_trapping_math;
extern int flag_trapv;
extern int flag_tree_builtin_call_dce;
extern int flag_tree_ccp;
extern int flag_tree_ch;
extern int flag_tree_copy_prop;
extern int flag_tree_copyrename;
extern int flag_tree_cselim;
extern int flag_tree_dce;
extern int flag_tree_dom;
extern int flag_tree_dse;
extern int flag_tree_forwprop;
extern int flag_tree_fre;
extern int flag_tree_loop_distribution;
extern int flag_tree_loop_im;
extern int flag_tree_loop_ivcanon;
extern int flag_tree_loop_linear;
extern int flag_tree_loop_optimize;
extern int flag_tree_live_range_split;
extern int flag_tree_parallelize_loops;
extern int flag_tree_phiprop;
extern int flag_tree_pre;
extern int flag_tree_pta;
extern int flag_tree_reassoc;
extern int flag_tree_scev_cprop;
extern int flag_tree_sink;
extern int flag_tree_slp_vectorize;
extern int flag_tree_sra;
extern int flag_tree_switch_conversion;
extern int flag_tree_ter;
extern int flag_tree_vect_loop_version;
extern int flag_tree_vectorize;
extern int flag_tree_vrp;
extern int flag_unit_at_a_time;
extern int flag_unroll_all_loops;
extern int flag_unroll_loops;
extern int flag_unsafe_loop_optimizations;
extern int flag_unsafe_math_optimizations;
extern int flag_unswitch_loops;
extern int flag_unwind_tables;
extern int flag_use_atomic_builtins;
extern int flag_use_boehm_gc;
extern int flag_use_divide_subroutine;
extern int flag_var_tracking;
extern int flag_var_tracking_assignments;
extern int flag_var_tracking_assignments_toggle;
extern int flag_var_tracking_uninit;
extern int flag_variable_expansion_in_unroller;
extern int flag_vect_cost_model;
extern int flag_verbose_asm;
extern int flag_visibility_ms_compat;
extern int flag_value_profile_transformations;
extern int flag_web;
extern int flag_whole_program;
extern int flag_whopr;
extern int flag_wpa;
extern int flag_wrapv;
extern int flag_zero_initialized_in_bss;
extern int dwarf_version;
extern int dwarf_strict;
extern int flag_gtoggle;
extern int ix86_isa_flags;
extern const char *ix86_abi_string;
extern const char *ix86_align_funcs_string;
extern const char *ix86_align_jumps_string;
extern const char *ix86_align_loops_string;
extern const char *ix86_arch_string;
extern const char *ix86_asm_string;
extern const char *ix86_branch_cost_string;
extern const char *ix86_cmodel_string;
extern int ix86_force_drap;
extern const char *ix86_fpmath_string;
extern const char *ix86_incoming_stack_boundary_string;
extern const char *ix86_section_threshold_string;
extern int TARGET_NOP_FUN_DLLIMPORT;
extern const char *ix87_precision_string;
extern int use_pe_aligned_common;
extern const char *ix86_preferred_stack_boundary_string;
extern const char *ix86_regparm_string;
extern int ix86_sse2avx;
extern int ix86_force_align_arg_pointer;
extern const char *ix86_stringop_string;
extern const char *ix86_tls_dialect_string;
extern const char *ix86_tune_string;
extern const char *ix86_veclibabi_string;
extern int pedantic;
extern int quiet_flag;
extern int version_flag;
extern int inhibit_warnings;

#if !defined(GCC_DRIVER) && !defined(IN_LIBGCC2) && !defined(IN_TARGET_LIBS)

/* Structure to save/restore optimization and target specific options.  */
struct GTY(()) cl_optimization
{
  int align_functions;
  int align_jumps;
  int align_labels;
  int align_loops;
  int flag_sched_stalled_insns;
  int flag_sched_stalled_insns_dep;
  unsigned char optimize;
  unsigned char optimize_size;
  signed char flag_argument_noalias;
  signed char flag_asynchronous_unwind_tables;
  signed char flag_branch_on_count_reg;
  signed char flag_branch_probabilities;
  signed char flag_branch_target_load_optimize;
  signed char flag_branch_target_load_optimize2;
  signed char flag_btr_bb_exclusive;
  signed char flag_caller_saves;
  signed char flag_no_common;
  signed char flag_conserve_stack;
  signed char flag_cprop_registers;
  signed char flag_crossjumping;
  signed char flag_cse_follow_jumps;
  signed char flag_cx_fortran_rules;
  signed char flag_cx_limited_range;
  signed char flag_data_sections;
  signed char flag_dce;
  signed char flag_defer_pop;
  signed char flag_delayed_branch;
  signed char flag_delete_null_pointer_checks;
  signed char flag_dse;
  signed char flag_early_inlining;
  signed char flag_exceptions;
  signed char flag_expensive_optimizations;
  signed char flag_finite_math_only;
  signed char flag_float_store;
  signed char flag_forward_propagate;
  signed char flag_gcse;
  signed char flag_gcse_after_reload;
  signed char flag_gcse_las;
  signed char flag_gcse_lm;
  signed char flag_gcse_sm;
  signed char flag_graphite_identity;
  signed char flag_guess_branch_prob;
  signed char flag_if_conversion;
  signed char flag_if_conversion2;
  signed char flag_inline_functions;
  signed char flag_inline_functions_called_once;
  signed char flag_inline_small_functions;
  signed char flag_ipa_cp;
  signed char flag_ipa_cp_clone;
  signed char flag_ipa_matrix_reorg;
  signed char flag_ipa_pta;
  signed char flag_ipa_pure_const;
  signed char flag_ipa_reference;
  signed char flag_ipa_sra;
  signed char flag_ipa_type_escape;
  signed char flag_ivopts;
  signed char flag_jump_tables;
  signed char flag_loop_block;
  signed char flag_loop_interchange;
  signed char flag_loop_parallelize_all;
  signed char flag_loop_strip_mine;
  signed char flag_lto_report;
  signed char flag_ltrans;
  signed char flag_errno_math;
  signed char flag_merge_constants;
  signed char flag_modulo_sched;
  signed char flag_move_loop_invariants;
  signed char flag_non_call_exceptions;
  signed char flag_omit_frame_pointer;
  signed char flag_regmove;
  signed char flag_optimize_sibling_calls;
  signed char flag_pack_struct;
  signed char flag_peel_loops;
  signed char flag_no_peephole;
  signed char flag_peephole2;
  signed char flag_predictive_commoning;
  signed char flag_prefetch_loop_arrays;
  signed char flag_pcc_struct_return;
  signed char flag_rename_registers;
  signed char flag_reorder_blocks;
  signed char flag_reorder_blocks_and_partition;
  signed char flag_reorder_functions;
  signed char flag_rerun_cse_after_loop;
  signed char flag_resched_modulo_sched;
  signed char flag_rounding_math;
  signed char flag_sched_critical_path_heuristic;
  signed char flag_sched_dep_count_heuristic;
  signed char flag_sched_group_heuristic;
  signed char flag_schedule_interblock;
  signed char flag_sched_last_insn_heuristic;
  signed char flag_sched_pressure;
  signed char flag_sched_rank_heuristic;
  signed char flag_schedule_speculative;
  signed char flag_sched_spec_insn_heuristic;
  signed char flag_schedule_speculative_load;
  signed char flag_schedule_speculative_load_dangerous;
  signed char flag_sched2_use_superblocks;
  signed char flag_schedule_insns;
  signed char flag_schedule_insns_after_reload;
  signed char flag_section_anchors;
  signed char flag_sel_sched_pipelining;
  signed char flag_sel_sched_pipelining_outer_loops;
  signed char flag_sel_sched_reschedule_pipelined;
  signed char flag_selective_scheduling;
  signed char flag_selective_scheduling2;
  signed char flag_setstackexecutable;
  signed char flag_signaling_nans;
  signed char flag_signed_zeros;
  signed char flag_single_precision_constant;
  signed char flag_split_ivs_in_unroller;
  signed char flag_split_wide_types;
  signed char flag_strict_aliasing;
  signed char flag_thread_jumps;
  signed char flag_toplevel_reorder;
  signed char flag_trapping_math;
  signed char flag_trapv;
  signed char flag_tree_builtin_call_dce;
  signed char flag_tree_ccp;
  signed char flag_tree_ch;
  signed char flag_tree_copy_prop;
  signed char flag_tree_copyrename;
  signed char flag_tree_cselim;
  signed char flag_tree_dce;
  signed char flag_tree_dom;
  signed char flag_tree_dse;
  signed char flag_tree_forwprop;
  signed char flag_tree_fre;
  signed char flag_tree_loop_distribution;
  signed char flag_tree_loop_im;
  signed char flag_tree_loop_ivcanon;
  signed char flag_tree_loop_linear;
  signed char flag_tree_loop_optimize;
  signed char flag_tree_live_range_split;
  signed char flag_tree_phiprop;
  signed char flag_tree_pre;
  signed char flag_tree_pta;
  signed char flag_tree_reassoc;
  signed char flag_tree_scev_cprop;
  signed char flag_tree_sink;
  signed char flag_tree_slp_vectorize;
  signed char flag_tree_sra;
  signed char flag_tree_switch_conversion;
  signed char flag_tree_ter;
  signed char flag_tree_vect_loop_version;
  signed char flag_tree_vectorize;
  signed char flag_tree_vrp;
  signed char flag_unit_at_a_time;
  signed char flag_unroll_all_loops;
  signed char flag_unroll_loops;
  signed char flag_unsafe_loop_optimizations;
  signed char flag_unsafe_math_optimizations;
  signed char flag_unswitch_loops;
  signed char flag_unwind_tables;
  signed char flag_var_tracking;
  signed char flag_var_tracking_assignments;
  signed char flag_var_tracking_assignments_toggle;
  signed char flag_var_tracking_uninit;
  signed char flag_variable_expansion_in_unroller;
  signed char flag_vect_cost_model;
  signed char flag_value_profile_transformations;
  signed char flag_web;
  signed char flag_whole_program;
  signed char flag_wpa;
  signed char flag_wrapv;
};

/* Structure to save/restore selected target specific options.  */
struct GTY(()) cl_target_option
{
  int ix86_isa_flags_explicit;
  int target_flags_explicit;
  int target_flags;
  int ix86_isa_flags;
  unsigned char arch;
  unsigned char arch_specified;
  unsigned char branch_cost;
  unsigned char fpmath;
  unsigned char schedule;
  unsigned char tune;
  unsigned char tune_defaulted;
};


/* Save optimization variables into a structure.  */
extern void cl_optimization_save (struct cl_optimization *);

/* Restore optimization variables from a structure.  */
extern void cl_optimization_restore (struct cl_optimization *);

/* Print optimization variables from a structure.  */
extern void cl_optimization_print (FILE *, int, struct cl_optimization *);

/* Save selected option variables into a structure.  */
extern void cl_target_option_save (struct cl_target_option *);

/* Restore selected option variables from a structure.  */
extern void cl_target_option_restore (struct cl_target_option *);

/* Print target option variables from a structure.  */
extern void cl_target_option_print (FILE *, int, struct cl_target_option *);
#endif

#define MASK_128BIT_LONG_DOUBLE (1 << 0)
#define OPTION_MASK_ISA_3DNOW (1 << 0)
#define OPTION_MASK_ISA_3DNOW_A (1 << 1)
#define OPTION_MASK_ISA_64BIT (1 << 2)
#define MASK_80387 (1 << 1)
#define OPTION_MASK_ISA_ABM (1 << 3)
#define MASK_ACCUMULATE_OUTGOING_ARGS (1 << 2)
#define OPTION_MASK_ISA_AES (1 << 4)
#define MASK_ALIGN_DOUBLE (1 << 3)
#define OPTION_MASK_ISA_AVX (1 << 5)
#define MASK_CLD (1 << 4)
#define OPTION_MASK_ISA_CRC32 (1 << 6)
#define OPTION_MASK_ISA_CX16 (1 << 7)
#define OPTION_MASK_ISA_FMA (1 << 8)
#define OPTION_MASK_ISA_FMA4 (1 << 9)
#define MASK_FLOAT_RETURNS (1 << 5)
#define MASK_FUSED_MADD (1 << 6)
#define MASK_IEEE_FP (1 << 7)
#define MASK_INLINE_ALL_STRINGOPS (1 << 8)
#define MASK_INLINE_STRINGOPS_DYNAMICALLY (1 << 9)
#define OPTION_MASK_ISA_LWP (1 << 10)
#define OPTION_MASK_ISA_MMX (1 << 11)
#define OPTION_MASK_ISA_MOVBE (1 << 12)
#define MASK_MS_BITFIELD_LAYOUT (1 << 10)
#define MASK_NO_ALIGN_STRINGOPS (1 << 11)
#define MASK_NO_FANCY_MATH_387 (1 << 12)
#define MASK_NO_PUSH_ARGS (1 << 13)
#define MASK_NO_RED_ZONE (1 << 14)
#define MASK_OMIT_LEAF_FRAME_POINTER (1 << 15)
#define OPTION_MASK_ISA_PCLMUL (1 << 13)
#define OPTION_MASK_ISA_POPCNT (1 << 14)
#define MASK_RECIP (1 << 16)
#define MASK_RTD (1 << 17)
#define OPTION_MASK_ISA_SAHF (1 << 15)
#define OPTION_MASK_ISA_SSE (1 << 16)
#define OPTION_MASK_ISA_SSE2 (1 << 17)
#define OPTION_MASK_ISA_SSE3 (1 << 18)
#define OPTION_MASK_ISA_SSE4_1 (1 << 19)
#define OPTION_MASK_ISA_SSE4_2 (1 << 20)
#define OPTION_MASK_ISA_SSE4A (1 << 21)
#define MASK_SSEREGPARM (1 << 18)
#define OPTION_MASK_ISA_SSSE3 (1 << 22)
#define MASK_STACK_PROBE (1 << 19)
#define MASK_TLS_DIRECT_SEG_REFS (1 << 20)
#define OPTION_MASK_ISA_XOP (1 << 23)

#define TARGET_128BIT_LONG_DOUBLE ((target_flags & MASK_128BIT_LONG_DOUBLE) != 0)
#define OPTION_ISA_3DNOW ((ix86_isa_flags & OPTION_MASK_ISA_3DNOW) != 0)
#define OPTION_ISA_3DNOW_A ((ix86_isa_flags & OPTION_MASK_ISA_3DNOW_A) != 0)
#define OPTION_ISA_64BIT ((ix86_isa_flags & OPTION_MASK_ISA_64BIT) != 0)
#define TARGET_80387 ((target_flags & MASK_80387) != 0)
#define OPTION_ISA_ABM ((ix86_isa_flags & OPTION_MASK_ISA_ABM) != 0)
#define TARGET_ACCUMULATE_OUTGOING_ARGS ((target_flags & MASK_ACCUMULATE_OUTGOING_ARGS) != 0)
#define OPTION_ISA_AES ((ix86_isa_flags & OPTION_MASK_ISA_AES) != 0)
#define TARGET_ALIGN_DOUBLE ((target_flags & MASK_ALIGN_DOUBLE) != 0)
#define OPTION_ISA_AVX ((ix86_isa_flags & OPTION_MASK_ISA_AVX) != 0)
#define TARGET_CLD ((target_flags & MASK_CLD) != 0)
#define OPTION_ISA_CRC32 ((ix86_isa_flags & OPTION_MASK_ISA_CRC32) != 0)
#define OPTION_ISA_CX16 ((ix86_isa_flags & OPTION_MASK_ISA_CX16) != 0)
#define OPTION_ISA_FMA ((ix86_isa_flags & OPTION_MASK_ISA_FMA) != 0)
#define OPTION_ISA_FMA4 ((ix86_isa_flags & OPTION_MASK_ISA_FMA4) != 0)
#define TARGET_FLOAT_RETURNS ((target_flags & MASK_FLOAT_RETURNS) != 0)
#define TARGET_FUSED_MADD ((target_flags & MASK_FUSED_MADD) != 0)
#define TARGET_IEEE_FP ((target_flags & MASK_IEEE_FP) != 0)
#define TARGET_INLINE_ALL_STRINGOPS ((target_flags & MASK_INLINE_ALL_STRINGOPS) != 0)
#define TARGET_INLINE_STRINGOPS_DYNAMICALLY ((target_flags & MASK_INLINE_STRINGOPS_DYNAMICALLY) != 0)
#define OPTION_ISA_LWP ((ix86_isa_flags & OPTION_MASK_ISA_LWP) != 0)
#define OPTION_ISA_MMX ((ix86_isa_flags & OPTION_MASK_ISA_MMX) != 0)
#define OPTION_ISA_MOVBE ((ix86_isa_flags & OPTION_MASK_ISA_MOVBE) != 0)
#define TARGET_MS_BITFIELD_LAYOUT ((target_flags & MASK_MS_BITFIELD_LAYOUT) != 0)
#define TARGET_NO_ALIGN_STRINGOPS ((target_flags & MASK_NO_ALIGN_STRINGOPS) != 0)
#define TARGET_NO_FANCY_MATH_387 ((target_flags & MASK_NO_FANCY_MATH_387) != 0)
#define TARGET_NO_PUSH_ARGS ((target_flags & MASK_NO_PUSH_ARGS) != 0)
#define TARGET_NO_RED_ZONE ((target_flags & MASK_NO_RED_ZONE) != 0)
#define TARGET_OMIT_LEAF_FRAME_POINTER ((target_flags & MASK_OMIT_LEAF_FRAME_POINTER) != 0)
#define OPTION_ISA_PCLMUL ((ix86_isa_flags & OPTION_MASK_ISA_PCLMUL) != 0)
#define OPTION_ISA_POPCNT ((ix86_isa_flags & OPTION_MASK_ISA_POPCNT) != 0)
#define TARGET_RECIP ((target_flags & MASK_RECIP) != 0)
#define TARGET_RTD ((target_flags & MASK_RTD) != 0)
#define OPTION_ISA_SAHF ((ix86_isa_flags & OPTION_MASK_ISA_SAHF) != 0)
#define OPTION_ISA_SSE ((ix86_isa_flags & OPTION_MASK_ISA_SSE) != 0)
#define OPTION_ISA_SSE2 ((ix86_isa_flags & OPTION_MASK_ISA_SSE2) != 0)
#define OPTION_ISA_SSE3 ((ix86_isa_flags & OPTION_MASK_ISA_SSE3) != 0)
#define OPTION_ISA_SSE4_1 ((ix86_isa_flags & OPTION_MASK_ISA_SSE4_1) != 0)
#define OPTION_ISA_SSE4_2 ((ix86_isa_flags & OPTION_MASK_ISA_SSE4_2) != 0)
#define OPTION_ISA_SSE4A ((ix86_isa_flags & OPTION_MASK_ISA_SSE4A) != 0)
#define TARGET_SSEREGPARM ((target_flags & MASK_SSEREGPARM) != 0)
#define OPTION_ISA_SSSE3 ((ix86_isa_flags & OPTION_MASK_ISA_SSSE3) != 0)
#define TARGET_STACK_PROBE ((target_flags & MASK_STACK_PROBE) != 0)
#define TARGET_TLS_DIRECT_SEG_REFS ((target_flags & MASK_TLS_DIRECT_SEG_REFS) != 0)
#define OPTION_ISA_XOP ((ix86_isa_flags & OPTION_MASK_ISA_XOP) != 0)

#define TARGET_ALIGN_STRINGOPS ((target_flags & MASK_NO_ALIGN_STRINGOPS) == 0)
#define TARGET_USE_FANCY_MATH_387 ((target_flags & MASK_NO_FANCY_MATH_387) == 0)
#define TARGET_PUSH_ARGS ((target_flags & MASK_NO_PUSH_ARGS) == 0)
#define TARGET_RED_ZONE ((target_flags & MASK_NO_RED_ZONE) == 0)

#define CL_Ada        (1 << 0)
#define CL_C          (1 << 1)
#define CL_CXX        (1 << 2)
#define CL_Fortran    (1 << 3)
#define CL_Java       (1 << 4)
#define CL_LTO        (1 << 5)
#define CL_ObjC       (1 << 6)
#define CL_ObjCXX     (1 << 7)
#define CL_LANG_ALL   ((1 << 8) - 1)

enum opt_code
{
  OPT__help,                                 /* --help */
  OPT__help_,                                /* --help= */
  OPT__output_pch_,                          /* --output-pch= */
  OPT__param,                                /* --param */
  OPT__target_help,                          /* --target-help */
  OPT__version,                              /* --version */
  OPT_A,                                     /* -A */
  OPT_C,                                     /* -C */
  OPT_CC,                                    /* -CC */
  OPT_D,                                     /* -D */
  OPT_E,                                     /* -E */
  OPT_F,                                     /* -F */
  OPT_G,                                     /* -G */
  OPT_H,                                     /* -H */
  OPT_I,                                     /* -I */
  OPT_J,                                     /* -J */
  OPT_M,                                     /* -M */
  OPT_MD,                                    /* -MD */
  OPT_MD_,                                   /* -MD_ */
  OPT_MF,                                    /* -MF */
  OPT_MG,                                    /* -MG */
  OPT_MM,                                    /* -MM */
  OPT_MMD,                                   /* -MMD */
  OPT_MMD_,                                  /* -MMD_ */
  OPT_MP,                                    /* -MP */
  OPT_MQ,                                    /* -MQ */
  OPT_MT,                                    /* -MT */
  OPT_O,                                     /* -O */
  OPT_Os,                                    /* -Os */
  OPT_P,                                     /* -P */
  OPT_U,                                     /* -U */
  OPT_W,                                     /* -W */
  OPT_Wabi,                                  /* -Wabi */
  OPT_Waddress,                              /* -Waddress */
  OPT_Waggregate_return,                     /* -Waggregate-return */
  OPT_Waliasing,                             /* -Waliasing */
  OPT_Walign_commons,                        /* -Walign-commons */
  OPT_Wall,                                  /* -Wall */
  OPT_Wall_deprecation,                      /* -Wall-deprecation */
  OPT_Wall_javadoc,                          /* -Wall-javadoc */
  OPT_Wampersand,                            /* -Wampersand */
  OPT_Warray_bounds,                         /* -Warray-bounds */
  OPT_Warray_temporaries,                    /* -Warray-temporaries */
  OPT_Wassert_identifier,                    /* -Wassert-identifier */
  OPT_Wassign_intercept,                     /* -Wassign-intercept */
  OPT_Wattributes,                           /* -Wattributes */
  OPT_Wbad_function_cast,                    /* -Wbad-function-cast */
  OPT_Wboxing,                               /* -Wboxing */
  OPT_Wbuiltin_macro_redefined,              /* -Wbuiltin-macro-redefined */
  OPT_Wc___compat,                           /* -Wc++-compat */
  OPT_Wc__0x_compat,                         /* -Wc++0x-compat */
  OPT_Wcast_align,                           /* -Wcast-align */
  OPT_Wcast_qual,                            /* -Wcast-qual */
  OPT_Wchar_concat,                          /* -Wchar-concat */
  OPT_Wchar_subscripts,                      /* -Wchar-subscripts */
  OPT_Wcharacter_truncation,                 /* -Wcharacter-truncation */
  OPT_Wclobbered,                            /* -Wclobbered */
  OPT_Wcomment,                              /* -Wcomment */
  OPT_Wcomments,                             /* -Wcomments */
  OPT_Wcondition_assign,                     /* -Wcondition-assign */
  OPT_Wconstructor_name,                     /* -Wconstructor-name */
  OPT_Wconversion,                           /* -Wconversion */
  OPT_Wconversion_null,                      /* -Wconversion-null */
  OPT_Wcoverage_mismatch,                    /* -Wcoverage-mismatch */
  OPT_Wctor_dtor_privacy,                    /* -Wctor-dtor-privacy */
  OPT_Wdeclaration_after_statement,          /* -Wdeclaration-after-statement */
  OPT_Wdep_ann,                              /* -Wdep-ann */
  OPT_Wdeprecated,                           /* -Wdeprecated */
  OPT_Wdeprecated_declarations,              /* -Wdeprecated-declarations */
  OPT_Wdisabled_optimization,                /* -Wdisabled-optimization */
  OPT_Wdiscouraged,                          /* -Wdiscouraged */
  OPT_Wdiv_by_zero,                          /* -Wdiv-by-zero */
  OPT_Weffc__,                               /* -Weffc++ */
  OPT_Wempty_block,                          /* -Wempty-block */
  OPT_Wempty_body,                           /* -Wempty-body */
  OPT_Wendif_labels,                         /* -Wendif-labels */
  OPT_Wenum_compare,                         /* -Wenum-compare */
  OPT_Wenum_identifier,                      /* -Wenum-identifier */
  OPT_Wenum_switch,                          /* -Wenum-switch */
  OPT_Werror,                                /* -Werror */
  OPT_Werror_implicit_function_declaration,  /* -Werror-implicit-function-declaration */
  OPT_Werror_,                               /* -Werror= */
  OPT_Wextra,                                /* -Wextra */
  OPT_Wextraneous_semicolon,                 /* -Wextraneous-semicolon */
  OPT_Wfallthrough,                          /* -Wfallthrough */
  OPT_Wfatal_errors,                         /* -Wfatal-errors */
  OPT_Wfield_hiding,                         /* -Wfield-hiding */
  OPT_Wfinal_bound,                          /* -Wfinal-bound */
  OPT_Wfinally,                              /* -Wfinally */
  OPT_Wfloat_equal,                          /* -Wfloat-equal */
  OPT_Wforbidden,                            /* -Wforbidden */
  OPT_Wformat,                               /* -Wformat */
  OPT_Wformat_contains_nul,                  /* -Wformat-contains-nul */
  OPT_Wformat_extra_args,                    /* -Wformat-extra-args */
  OPT_Wformat_nonliteral,                    /* -Wformat-nonliteral */
  OPT_Wformat_security,                      /* -Wformat-security */
  OPT_Wformat_y2k,                           /* -Wformat-y2k */
  OPT_Wformat_zero_length,                   /* -Wformat-zero-length */
  OPT_Wformat_,                              /* -Wformat= */
  OPT_Wframe_larger_than_,                   /* -Wframe-larger-than= */
  OPT_Whiding,                               /* -Whiding */
  OPT_Wignored_qualifiers,                   /* -Wignored-qualifiers */
  OPT_Wimplicit,                             /* -Wimplicit */
  OPT_Wimplicit_function_declaration,        /* -Wimplicit-function-declaration */
  OPT_Wimplicit_int,                         /* -Wimplicit-int */
  OPT_Wimplicit_interface,                   /* -Wimplicit-interface */
  OPT_Wimplicit_procedure,                   /* -Wimplicit-procedure */
  OPT_Wimport,                               /* -Wimport */
  OPT_Windirect_static,                      /* -Windirect-static */
  OPT_Winit_self,                            /* -Winit-self */
  OPT_Winline,                               /* -Winline */
  OPT_Wint_to_pointer_cast,                  /* -Wint-to-pointer-cast */
  OPT_Wintf_annotation,                      /* -Wintf-annotation */
  OPT_Wintf_non_inherited,                   /* -Wintf-non-inherited */
  OPT_Wintrinsic_shadow,                     /* -Wintrinsic-shadow */
  OPT_Wintrinsics_std,                       /* -Wintrinsics-std */
  OPT_Winvalid_offsetof,                     /* -Winvalid-offsetof */
  OPT_Winvalid_pch,                          /* -Winvalid-pch */
  OPT_Wjavadoc,                              /* -Wjavadoc */
  OPT_Wjump_misses_init,                     /* -Wjump-misses-init */
  OPT_Wlarger_than_,                         /* -Wlarger-than- */
  OPT_Wlarger_than_eq,                       /* -Wlarger-than= */
  OPT_Wline_truncation,                      /* -Wline-truncation */
  OPT_Wlocal_hiding,                         /* -Wlocal-hiding */
  OPT_Wlogical_op,                           /* -Wlogical-op */
  OPT_Wlong_long,                            /* -Wlong-long */
  OPT_Wmain,                                 /* -Wmain */
  OPT_Wmasked_catch_block,                   /* -Wmasked-catch-block */
  OPT_Wmissing_braces,                       /* -Wmissing-braces */
  OPT_Wmissing_declarations,                 /* -Wmissing-declarations */
  OPT_Wmissing_field_initializers,           /* -Wmissing-field-initializers */
  OPT_Wmissing_format_attribute,             /* -Wmissing-format-attribute */
  OPT_Wmissing_include_dirs,                 /* -Wmissing-include-dirs */
  OPT_Wmissing_noreturn,                     /* -Wmissing-noreturn */
  OPT_Wmissing_parameter_type,               /* -Wmissing-parameter-type */
  OPT_Wmissing_prototypes,                   /* -Wmissing-prototypes */
  OPT_Wmudflap,                              /* -Wmudflap */
  OPT_Wmultichar,                            /* -Wmultichar */
  OPT_Wnested_externs,                       /* -Wnested-externs */
  OPT_Wnls,                                  /* -Wnls */
  OPT_Wno_effect_assign,                     /* -Wno-effect-assign */
  OPT_Wnon_template_friend,                  /* -Wnon-template-friend */
  OPT_Wnon_virtual_dtor,                     /* -Wnon-virtual-dtor */
  OPT_Wnonnull,                              /* -Wnonnull */
  OPT_Wnormalized_,                          /* -Wnormalized= */
  OPT_Wnull,                                 /* -Wnull */
  OPT_Wold_style_cast,                       /* -Wold-style-cast */
  OPT_Wold_style_declaration,                /* -Wold-style-declaration */
  OPT_Wold_style_definition,                 /* -Wold-style-definition */
  OPT_Wout_of_date,                          /* -Wout-of-date */
  OPT_Wover_ann,                             /* -Wover-ann */
  OPT_Woverflow,                             /* -Woverflow */
  OPT_Woverlength_strings,                   /* -Woverlength-strings */
  OPT_Woverloaded_virtual,                   /* -Woverloaded-virtual */
  OPT_Woverride_init,                        /* -Woverride-init */
  OPT_Wpacked,                               /* -Wpacked */
  OPT_Wpacked_bitfield_compat,               /* -Wpacked-bitfield-compat */
  OPT_Wpadded,                               /* -Wpadded */
  OPT_Wparam_assign,                         /* -Wparam-assign */
  OPT_Wparentheses,                          /* -Wparentheses */
  OPT_Wpedantic_ms_format,                   /* -Wpedantic-ms-format */
  OPT_Wpkg_default_method,                   /* -Wpkg-default-method */
  OPT_Wpmf_conversions,                      /* -Wpmf-conversions */
  OPT_Wpointer_arith,                        /* -Wpointer-arith */
  OPT_Wpointer_sign,                         /* -Wpointer-sign */
  OPT_Wpointer_to_int_cast,                  /* -Wpointer-to-int-cast */
  OPT_Wpragmas,                              /* -Wpragmas */
  OPT_Wprotocol,                             /* -Wprotocol */
  OPT_Wpsabi,                                /* -Wpsabi */
  OPT_Wraw,                                  /* -Wraw */
  OPT_Wredundant_decls,                      /* -Wredundant-decls */
  OPT_Wredundant_modifiers,                  /* -Wredundant-modifiers */
  OPT_Wreorder,                              /* -Wreorder */
  OPT_Wreturn_type,                          /* -Wreturn-type */
  OPT_Wselector,                             /* -Wselector */
  OPT_Wsequence_point,                       /* -Wsequence-point */
  OPT_Wserial,                               /* -Wserial */
  OPT_Wshadow,                               /* -Wshadow */
  OPT_Wsign_compare,                         /* -Wsign-compare */
  OPT_Wsign_conversion,                      /* -Wsign-conversion */
  OPT_Wsign_promo,                           /* -Wsign-promo */
  OPT_Wspecial_param_hiding,                 /* -Wspecial-param-hiding */
  OPT_Wstack_protector,                      /* -Wstack-protector */
  OPT_Wstatic_access,                        /* -Wstatic-access */
  OPT_Wstatic_receiver,                      /* -Wstatic-receiver */
  OPT_Wstrict_aliasing,                      /* -Wstrict-aliasing */
  OPT_Wstrict_aliasing_,                     /* -Wstrict-aliasing= */
  OPT_Wstrict_null_sentinel,                 /* -Wstrict-null-sentinel */
  OPT_Wstrict_overflow,                      /* -Wstrict-overflow */
  OPT_Wstrict_overflow_,                     /* -Wstrict-overflow= */
  OPT_Wstrict_prototypes,                    /* -Wstrict-prototypes */
  OPT_Wstrict_selector_match,                /* -Wstrict-selector-match */
  OPT_Wsuppress,                             /* -Wsuppress */
  OPT_Wsurprising,                           /* -Wsurprising */
  OPT_Wswitch,                               /* -Wswitch */
  OPT_Wswitch_default,                       /* -Wswitch-default */
  OPT_Wswitch_enum,                          /* -Wswitch-enum */
  OPT_Wsync_nand,                            /* -Wsync-nand */
  OPT_Wsynth,                                /* -Wsynth */
  OPT_Wsynthetic_access,                     /* -Wsynthetic-access */
  OPT_Wsystem_headers,                       /* -Wsystem-headers */
  OPT_Wtabs,                                 /* -Wtabs */
  OPT_Wtasks,                                /* -Wtasks */
  OPT_Wtraditional,                          /* -Wtraditional */
  OPT_Wtraditional_conversion,               /* -Wtraditional-conversion */
  OPT_Wtrigraphs,                            /* -Wtrigraphs */
  OPT_Wtype_hiding,                          /* -Wtype-hiding */
  OPT_Wtype_limits,                          /* -Wtype-limits */
  OPT_Wuncheck,                              /* -Wuncheck */
  OPT_Wundeclared_selector,                  /* -Wundeclared-selector */
  OPT_Wundef,                                /* -Wundef */
  OPT_Wunderflow,                            /* -Wunderflow */
  OPT_Wuninitialized,                        /* -Wuninitialized */
  OPT_Wunknown_pragmas,                      /* -Wunknown-pragmas */
  OPT_Wunnecessary_else,                     /* -Wunnecessary-else */
  OPT_Wunqualified_field,                    /* -Wunqualified-field */
  OPT_Wunreachable_code,                     /* -Wunreachable-code */
  OPT_Wunsafe_loop_optimizations,            /* -Wunsafe-loop-optimizations */
  OPT_Wunsuffixed_float_constants,           /* -Wunsuffixed-float-constants */
  OPT_Wunused,                               /* -Wunused */
  OPT_Wunused_argument,                      /* -Wunused-argument */
  OPT_Wunused_function,                      /* -Wunused-function */
  OPT_Wunused_import,                        /* -Wunused-import */
  OPT_Wunused_label,                         /* -Wunused-label */
  OPT_Wunused_local,                         /* -Wunused-local */
  OPT_Wunused_macros,                        /* -Wunused-macros */
  OPT_Wunused_parameter,                     /* -Wunused-parameter */
  OPT_Wunused_private,                       /* -Wunused-private */
  OPT_Wunused_result,                        /* -Wunused-result */
  OPT_Wunused_thrown,                        /* -Wunused-thrown */
  OPT_Wunused_value,                         /* -Wunused-value */
  OPT_Wunused_variable,                      /* -Wunused-variable */
  OPT_Wuseless_type_check,                   /* -Wuseless-type-check */
  OPT_Wvarargs_cast,                         /* -Wvarargs-cast */
  OPT_Wvariadic_macros,                      /* -Wvariadic-macros */
  OPT_Wvla,                                  /* -Wvla */
  OPT_Wvolatile_register_var,                /* -Wvolatile-register-var */
  OPT_Wwarning_token,                        /* -Wwarning-token */
  OPT_Wwrite_strings,                        /* -Wwrite-strings */
  OPT_ansi,                                  /* -ansi */
  OPT_aux_info,                              /* -aux-info */
  OPT_aux_info_,                             /* -aux-info= */
  OPT_auxbase,                               /* -auxbase */
  OPT_auxbase_strip,                         /* -auxbase-strip */
  OPT_cpp,                                   /* -cpp */
  OPT_d,                                     /* -d */
  OPT_dumpbase,                              /* -dumpbase */
  OPT_dumpdir,                               /* -dumpdir */
  OPT_fCLASSPATH_,                           /* -fCLASSPATH= */
  OPT_fPIC,                                  /* -fPIC */
  OPT_fPIE,                                  /* -fPIE */
  OPT_fRTS_,                                 /* -fRTS= */
  OPT_fabi_version_,                         /* -fabi-version= */
  OPT_faccess_control,                       /* -faccess-control */
  OPT_falign_commons,                        /* -falign-commons */
  OPT_falign_functions,                      /* -falign-functions */
  OPT_falign_functions_,                     /* -falign-functions= */
  OPT_falign_jumps,                          /* -falign-jumps */
  OPT_falign_jumps_,                         /* -falign-jumps= */
  OPT_falign_labels,                         /* -falign-labels */
  OPT_falign_labels_,                        /* -falign-labels= */
  OPT_falign_loops,                          /* -falign-loops */
  OPT_falign_loops_,                         /* -falign-loops= */
  OPT_fall_intrinsics,                       /* -fall-intrinsics */
  OPT_fall_virtual,                          /* -fall-virtual */
  OPT_fallow_leading_underscore,             /* -fallow-leading-underscore */
  OPT_falt_external_templates,               /* -falt-external-templates */
  OPT_fargument_alias,                       /* -fargument-alias */
  OPT_fargument_noalias,                     /* -fargument-noalias */
  OPT_fargument_noalias_anything,            /* -fargument-noalias-anything */
  OPT_fargument_noalias_global,              /* -fargument-noalias-global */
  OPT_fasm,                                  /* -fasm */
  OPT_fassert,                               /* -fassert */
  OPT_fassociative_math,                     /* -fassociative-math */
  OPT_fassume_compiled,                      /* -fassume-compiled */
  OPT_fassume_compiled_,                     /* -fassume-compiled= */
  OPT_fasynchronous_unwind_tables,           /* -fasynchronous-unwind-tables */
  OPT_fauto_inc_dec,                         /* -fauto-inc-dec */
  OPT_fautomatic,                            /* -fautomatic */
  OPT_faux_classpath,                        /* -faux-classpath */
  OPT_fbackslash,                            /* -fbackslash */
  OPT_fbacktrace,                            /* -fbacktrace */
  OPT_fblas_matmul_limit_,                   /* -fblas-matmul-limit= */
  OPT_fbootclasspath_,                       /* -fbootclasspath= */
  OPT_fbootstrap_classes,                    /* -fbootstrap-classes */
  OPT_fbounds_check,                         /* -fbounds-check */
  OPT_fbranch_count_reg,                     /* -fbranch-count-reg */
  OPT_fbranch_probabilities,                 /* -fbranch-probabilities */
  OPT_fbranch_target_load_optimize,          /* -fbranch-target-load-optimize */
  OPT_fbranch_target_load_optimize2,         /* -fbranch-target-load-optimize2 */
  OPT_fbtr_bb_exclusive,                     /* -fbtr-bb-exclusive */
  OPT_fbuiltin,                              /* -fbuiltin */
  OPT_fbuiltin_,                             /* -fbuiltin- */
  OPT_fcall_saved_,                          /* -fcall-saved- */
  OPT_fcall_used_,                           /* -fcall-used- */
  OPT_fcaller_saves,                         /* -fcaller-saves */
  OPT_fcheck_array_temporaries,              /* -fcheck-array-temporaries */
  OPT_fcheck_data_deps,                      /* -fcheck-data-deps */
  OPT_fcheck_new,                            /* -fcheck-new */
  OPT_fcheck_references,                     /* -fcheck-references */
  OPT_fcheck_,                               /* -fcheck= */
  OPT_fclasspath_,                           /* -fclasspath= */
  OPT_fcommon,                               /* -fcommon */
  OPT_fcompare_debug_second,                 /* -fcompare-debug-second */
  OPT_fcompare_debug_,                       /* -fcompare-debug= */
  OPT_fcompile_resource_,                    /* -fcompile-resource= */
  OPT_fcond_mismatch,                        /* -fcond-mismatch */
  OPT_fconserve_space,                       /* -fconserve-space */
  OPT_fconserve_stack,                       /* -fconserve-stack */
  OPT_fconstant_string_class_,               /* -fconstant-string-class= */
  OPT_fconvert_big_endian,                   /* -fconvert=big-endian */
  OPT_fconvert_little_endian,                /* -fconvert=little-endian */
  OPT_fconvert_native,                       /* -fconvert=native */
  OPT_fconvert_swap,                         /* -fconvert=swap */
  OPT_fcprop_registers,                      /* -fcprop-registers */
  OPT_fcray_pointer,                         /* -fcray-pointer */
  OPT_fcrossjumping,                         /* -fcrossjumping */
  OPT_fcse_follow_jumps,                     /* -fcse-follow-jumps */
  OPT_fcse_skip_blocks,                      /* -fcse-skip-blocks */
  OPT_fcx_fortran_rules,                     /* -fcx-fortran-rules */
  OPT_fcx_limited_range,                     /* -fcx-limited-range */
  OPT_fd_lines_as_code,                      /* -fd-lines-as-code */
  OPT_fd_lines_as_comments,                  /* -fd-lines-as-comments */
  OPT_fdata_sections,                        /* -fdata-sections */
  OPT_fdbg_cnt_list,                         /* -fdbg-cnt-list */
  OPT_fdbg_cnt_,                             /* -fdbg-cnt= */
  OPT_fdce,                                  /* -fdce */
  OPT_fdebug_prefix_map_,                    /* -fdebug-prefix-map= */
  OPT_fdeduce_init_list,                     /* -fdeduce-init-list */
  OPT_fdefault_double_8,                     /* -fdefault-double-8 */
  OPT_fdefault_inline,                       /* -fdefault-inline */
  OPT_fdefault_integer_8,                    /* -fdefault-integer-8 */
  OPT_fdefault_real_8,                       /* -fdefault-real-8 */
  OPT_fdefer_pop,                            /* -fdefer-pop */
  OPT_fdelayed_branch,                       /* -fdelayed-branch */
  OPT_fdelete_null_pointer_checks,           /* -fdelete-null-pointer-checks */
  OPT_fdiagnostics_show_location_,           /* -fdiagnostics-show-location= */
  OPT_fdiagnostics_show_option,              /* -fdiagnostics-show-option */
  OPT_fdirectives_only,                      /* -fdirectives-only */
  OPT_fdisable_assertions,                   /* -fdisable-assertions */
  OPT_fdisable_assertions_,                  /* -fdisable-assertions= */
  OPT_fdollar_ok,                            /* -fdollar-ok */
  OPT_fdollars_in_identifiers,               /* -fdollars-in-identifiers */
  OPT_fdse,                                  /* -fdse */
  OPT_fdump_,                                /* -fdump- */
  OPT_fdump_core,                            /* -fdump-core */
  OPT_fdump_final_insns_,                    /* -fdump-final-insns= */
  OPT_fdump_noaddr,                          /* -fdump-noaddr */
  OPT_fdump_parse_tree,                      /* -fdump-parse-tree */
  OPT_fdump_unnumbered,                      /* -fdump-unnumbered */
  OPT_fdump_unnumbered_links,                /* -fdump-unnumbered-links */
  OPT_fdwarf2_cfi_asm,                       /* -fdwarf2-cfi-asm */
  OPT_fearly_inlining,                       /* -fearly-inlining */
  OPT_felide_constructors,                   /* -felide-constructors */
  OPT_feliminate_dwarf2_dups,                /* -feliminate-dwarf2-dups */
  OPT_feliminate_unused_debug_symbols,       /* -feliminate-unused-debug-symbols */
  OPT_feliminate_unused_debug_types,         /* -feliminate-unused-debug-types */
  OPT_femit_class_debug_always,              /* -femit-class-debug-always */
  OPT_femit_class_file,                      /* -femit-class-file */
  OPT_femit_class_files,                     /* -femit-class-files */
  OPT_femit_struct_debug_baseonly,           /* -femit-struct-debug-baseonly */
  OPT_femit_struct_debug_detailed_,          /* -femit-struct-debug-detailed= */
  OPT_femit_struct_debug_reduced,            /* -femit-struct-debug-reduced */
  OPT_fenable_assertions,                    /* -fenable-assertions */
  OPT_fenable_assertions_,                   /* -fenable-assertions= */
  OPT_fenable_icf_debug,                     /* -fenable-icf-debug */
  OPT_fencoding_,                            /* -fencoding= */
  OPT_fenforce_eh_specs,                     /* -fenforce-eh-specs */
  OPT_fenum_int_equiv,                       /* -fenum-int-equiv */
  OPT_fexceptions,                           /* -fexceptions */
  OPT_fexcess_precision_,                    /* -fexcess-precision= */
  OPT_fexec_charset_,                        /* -fexec-charset= */
  OPT_fexpensive_optimizations,              /* -fexpensive-optimizations */
  OPT_fextdirs_,                             /* -fextdirs= */
  OPT_fextended_identifiers,                 /* -fextended-identifiers */
  OPT_fexternal_blas,                        /* -fexternal-blas */
  OPT_fexternal_templates,                   /* -fexternal-templates */
  OPT_ff2c,                                  /* -ff2c */
  OPT_ffast_math,                            /* -ffast-math */
  OPT_ffilelist_file,                        /* -ffilelist-file */
  OPT_ffinite_math_only,                     /* -ffinite-math-only */
  OPT_ffixed_,                               /* -ffixed- */
  OPT_ffixed_form,                           /* -ffixed-form */
  OPT_ffixed_line_length_,                   /* -ffixed-line-length- */
  OPT_ffixed_line_length_none,               /* -ffixed-line-length-none */
  OPT_ffloat_store,                          /* -ffloat-store */
  OPT_ffor_scope,                            /* -ffor-scope */
  OPT_fforce_addr,                           /* -fforce-addr */
  OPT_fforce_classes_archive_check,          /* -fforce-classes-archive-check */
  OPT_fforward_propagate,                    /* -fforward-propagate */
  OPT_ffpe_trap_,                            /* -ffpe-trap= */
  OPT_ffree_form,                            /* -ffree-form */
  OPT_ffree_line_length_,                    /* -ffree-line-length- */
  OPT_ffree_line_length_none,                /* -ffree-line-length-none */
  OPT_ffreestanding,                         /* -ffreestanding */
  OPT_ffriend_injection,                     /* -ffriend-injection */
  OPT_ffunction_cse,                         /* -ffunction-cse */
  OPT_ffunction_sections,                    /* -ffunction-sections */
  OPT_fgcse,                                 /* -fgcse */
  OPT_fgcse_after_reload,                    /* -fgcse-after-reload */
  OPT_fgcse_las,                             /* -fgcse-las */
  OPT_fgcse_lm,                              /* -fgcse-lm */
  OPT_fgcse_sm,                              /* -fgcse-sm */
  OPT_fgnu_keywords,                         /* -fgnu-keywords */
  OPT_fgnu_runtime,                          /* -fgnu-runtime */
  OPT_fgnu89_inline,                         /* -fgnu89-inline */
  OPT_fgraphite,                             /* -fgraphite */
  OPT_fgraphite_identity,                    /* -fgraphite-identity */
  OPT_fguess_branch_probability,             /* -fguess-branch-probability */
  OPT_fguiding_decls,                        /* -fguiding-decls */
  OPT_fhandle_exceptions,                    /* -fhandle-exceptions */
  OPT_fhash_synchronization,                 /* -fhash-synchronization */
  OPT_fhelp,                                 /* -fhelp */
  OPT_fhelp_,                                /* -fhelp= */
  OPT_fhonor_std,                            /* -fhonor-std */
  OPT_fhosted,                               /* -fhosted */
  OPT_fhuge_objects,                         /* -fhuge-objects */
  OPT_fident,                                /* -fident */
  OPT_fif_conversion,                        /* -fif-conversion */
  OPT_fif_conversion2,                       /* -fif-conversion2 */
  OPT_fimplement_inlines,                    /* -fimplement-inlines */
  OPT_fimplicit_inline_templates,            /* -fimplicit-inline-templates */
  OPT_fimplicit_none,                        /* -fimplicit-none */
  OPT_fimplicit_templates,                   /* -fimplicit-templates */
  OPT_findirect_classes,                     /* -findirect-classes */
  OPT_findirect_dispatch,                    /* -findirect-dispatch */
  OPT_findirect_inlining,                    /* -findirect-inlining */
  OPT_finhibit_size_directive,               /* -finhibit-size-directive */
  OPT_finit_character_,                      /* -finit-character= */
  OPT_finit_integer_,                        /* -finit-integer= */
  OPT_finit_local_zero,                      /* -finit-local-zero */
  OPT_finit_logical_,                        /* -finit-logical= */
  OPT_finit_real_,                           /* -finit-real= */
  OPT_finline,                               /* -finline */
  OPT_finline_functions,                     /* -finline-functions */
  OPT_finline_functions_called_once,         /* -finline-functions-called-once */
  OPT_finline_limit_,                        /* -finline-limit- */
  OPT_finline_limit_eq,                      /* -finline-limit= */
  OPT_finline_small_functions,               /* -finline-small-functions */
  OPT_finput_charset_,                       /* -finput-charset= */
  OPT_finstrument_functions,                 /* -finstrument-functions */
  OPT_finstrument_functions_exclude_file_list_,/* -finstrument-functions-exclude-file-list= */
  OPT_finstrument_functions_exclude_function_list_,/* -finstrument-functions-exclude-function-list= */
  OPT_fintrinsic_modules_path,               /* -fintrinsic-modules-path */
  OPT_fipa_cp,                               /* -fipa-cp */
  OPT_fipa_cp_clone,                         /* -fipa-cp-clone */
  OPT_fipa_matrix_reorg,                     /* -fipa-matrix-reorg */
  OPT_fipa_pta,                              /* -fipa-pta */
  OPT_fipa_pure_const,                       /* -fipa-pure-const */
  OPT_fipa_reference,                        /* -fipa-reference */
  OPT_fipa_sra,                              /* -fipa-sra */
  OPT_fipa_struct_reorg,                     /* -fipa-struct-reorg */
  OPT_fipa_type_escape,                      /* -fipa-type-escape */
  OPT_fira_algorithm_,                       /* -fira-algorithm= */
  OPT_fira_coalesce,                         /* -fira-coalesce */
  OPT_fira_loop_pressure,                    /* -fira-loop-pressure */
  OPT_fira_region_,                          /* -fira-region= */
  OPT_fira_share_save_slots,                 /* -fira-share-save-slots */
  OPT_fira_share_spill_slots,                /* -fira-share-spill-slots */
  OPT_fira_verbose_,                         /* -fira-verbose= */
  OPT_fivopts,                               /* -fivopts */
  OPT_fjni,                                  /* -fjni */
  OPT_fjump_tables,                          /* -fjump-tables */
  OPT_fkeep_inline_functions,                /* -fkeep-inline-functions */
  OPT_fkeep_static_consts,                   /* -fkeep-static-consts */
  OPT_flabels_ok,                            /* -flabels-ok */
  OPT_flax_vector_conversions,               /* -flax-vector-conversions */
  OPT_fleading_underscore,                   /* -fleading-underscore */
  OPT_floop_block,                           /* -floop-block */
  OPT_floop_interchange,                     /* -floop-interchange */
  OPT_floop_optimize,                        /* -floop-optimize */
  OPT_floop_parallelize_all,                 /* -floop-parallelize-all */
  OPT_floop_strip_mine,                      /* -floop-strip-mine */
  OPT_flto,                                  /* -flto */
  OPT_flto_compression_level_,               /* -flto-compression-level= */
  OPT_flto_report,                           /* -flto-report */
  OPT_fltrans,                               /* -fltrans */
  OPT_fltrans_output_list_,                  /* -fltrans-output-list= */
  OPT_fmath_errno,                           /* -fmath-errno */
  OPT_fmax_array_constructor_,               /* -fmax-array-constructor= */
  OPT_fmax_errors_,                          /* -fmax-errors= */
  OPT_fmax_identifier_length_,               /* -fmax-identifier-length= */
  OPT_fmax_stack_var_size_,                  /* -fmax-stack-var-size= */
  OPT_fmax_subrecord_length_,                /* -fmax-subrecord-length= */
  OPT_fmem_report,                           /* -fmem-report */
  OPT_fmerge_all_constants,                  /* -fmerge-all-constants */
  OPT_fmerge_constants,                      /* -fmerge-constants */
  OPT_fmerge_debug_strings,                  /* -fmerge-debug-strings */
  OPT_fmessage_length_,                      /* -fmessage-length= */
  OPT_fmodule_private,                       /* -fmodule-private */
  OPT_fmodulo_sched,                         /* -fmodulo-sched */
  OPT_fmodulo_sched_allow_regmoves,          /* -fmodulo-sched-allow-regmoves */
  OPT_fmove_loop_invariants,                 /* -fmove-loop-invariants */
  OPT_fms_extensions,                        /* -fms-extensions */
  OPT_fmudflap,                              /* -fmudflap */
  OPT_fmudflapir,                            /* -fmudflapir */
  OPT_fmudflapth,                            /* -fmudflapth */
  OPT_fname_mangling_version_,               /* -fname-mangling-version- */
  OPT_fnew_abi,                              /* -fnew-abi */
  OPT_fnext_runtime,                         /* -fnext-runtime */
  OPT_fnil_receivers,                        /* -fnil-receivers */
  OPT_fnon_call_exceptions,                  /* -fnon-call-exceptions */
  OPT_fnonansi_builtins,                     /* -fnonansi-builtins */
  OPT_fnonnull_objects,                      /* -fnonnull-objects */
  OPT_fobjc_call_cxx_cdtors,                 /* -fobjc-call-cxx-cdtors */
  OPT_fobjc_direct_dispatch,                 /* -fobjc-direct-dispatch */
  OPT_fobjc_exceptions,                      /* -fobjc-exceptions */
  OPT_fobjc_gc,                              /* -fobjc-gc */
  OPT_fobjc_sjlj_exceptions,                 /* -fobjc-sjlj-exceptions */
  OPT_fomit_frame_pointer,                   /* -fomit-frame-pointer */
  OPT_fopenmp,                               /* -fopenmp */
  OPT_foperator_names,                       /* -foperator-names */
  OPT_foptimize_register_move,               /* -foptimize-register-move */
  OPT_foptimize_sibling_calls,               /* -foptimize-sibling-calls */
  OPT_foptimize_static_class_initialization, /* -foptimize-static-class-initialization */
  OPT_foptional_diags,                       /* -foptional-diags */
  OPT_foutput_class_dir_,                    /* -foutput-class-dir= */
  OPT_fpack_derived,                         /* -fpack-derived */
  OPT_fpack_struct,                          /* -fpack-struct */
  OPT_fpack_struct_,                         /* -fpack-struct= */
  OPT_fpcc_struct_return,                    /* -fpcc-struct-return */
  OPT_fpch_deps,                             /* -fpch-deps */
  OPT_fpch_preprocess,                       /* -fpch-preprocess */
  OPT_fpeel_loops,                           /* -fpeel-loops */
  OPT_fpeephole,                             /* -fpeephole */
  OPT_fpeephole2,                            /* -fpeephole2 */
  OPT_fpermissive,                           /* -fpermissive */
  OPT_fpic,                                  /* -fpic */
  OPT_fpie,                                  /* -fpie */
  OPT_fplugin_arg_,                          /* -fplugin-arg- */
  OPT_fplugin_,                              /* -fplugin= */
  OPT_fpost_ipa_mem_report,                  /* -fpost-ipa-mem-report */
  OPT_fpre_ipa_mem_report,                   /* -fpre-ipa-mem-report */
  OPT_fpredictive_commoning,                 /* -fpredictive-commoning */
  OPT_fprefetch_loop_arrays,                 /* -fprefetch-loop-arrays */
  OPT_fpreprocessed,                         /* -fpreprocessed */
  OPT_fpretty_templates,                     /* -fpretty-templates */
  OPT_fprofile,                              /* -fprofile */
  OPT_fprofile_arcs,                         /* -fprofile-arcs */
  OPT_fprofile_correction,                   /* -fprofile-correction */
  OPT_fprofile_dir_,                         /* -fprofile-dir= */
  OPT_fprofile_generate,                     /* -fprofile-generate */
  OPT_fprofile_generate_,                    /* -fprofile-generate= */
  OPT_fprofile_use,                          /* -fprofile-use */
  OPT_fprofile_use_,                         /* -fprofile-use= */
  OPT_fprofile_values,                       /* -fprofile-values */
  OPT_fprotect_parens,                       /* -fprotect-parens */
  OPT_frandom_seed,                          /* -frandom-seed */
  OPT_frandom_seed_,                         /* -frandom-seed= */
  OPT_frange_check,                          /* -frange-check */
  OPT_freciprocal_math,                      /* -freciprocal-math */
  OPT_frecord_gcc_switches,                  /* -frecord-gcc-switches */
  OPT_frecord_marker_4,                      /* -frecord-marker=4 */
  OPT_frecord_marker_8,                      /* -frecord-marker=8 */
  OPT_frecursive,                            /* -frecursive */
  OPT_freduced_reflection,                   /* -freduced-reflection */
  OPT_freg_struct_return,                    /* -freg-struct-return */
  OPT_fregmove,                              /* -fregmove */
  OPT_frename_registers,                     /* -frename-registers */
  OPT_freorder_blocks,                       /* -freorder-blocks */
  OPT_freorder_blocks_and_partition,         /* -freorder-blocks-and-partition */
  OPT_freorder_functions,                    /* -freorder-functions */
  OPT_frepack_arrays,                        /* -frepack-arrays */
  OPT_freplace_objc_classes,                 /* -freplace-objc-classes */
  OPT_frepo,                                 /* -frepo */
  OPT_frerun_cse_after_loop,                 /* -frerun-cse-after-loop */
  OPT_frerun_loop_opt,                       /* -frerun-loop-opt */
  OPT_freschedule_modulo_scheduled_loops,    /* -freschedule-modulo-scheduled-loops */
  OPT_fresolution,                           /* -fresolution */
  OPT_frounding_math,                        /* -frounding-math */
  OPT_frtti,                                 /* -frtti */
  OPT_fsaw_java_file,                        /* -fsaw-java-file */
  OPT_fsched_critical_path_heuristic,        /* -fsched-critical-path-heuristic */
  OPT_fsched_dep_count_heuristic,            /* -fsched-dep-count-heuristic */
  OPT_fsched_group_heuristic,                /* -fsched-group-heuristic */
  OPT_fsched_interblock,                     /* -fsched-interblock */
  OPT_fsched_last_insn_heuristic,            /* -fsched-last-insn-heuristic */
  OPT_fsched_pressure,                       /* -fsched-pressure */
  OPT_fsched_rank_heuristic,                 /* -fsched-rank-heuristic */
  OPT_fsched_spec,                           /* -fsched-spec */
  OPT_fsched_spec_insn_heuristic,            /* -fsched-spec-insn-heuristic */
  OPT_fsched_spec_load,                      /* -fsched-spec-load */
  OPT_fsched_spec_load_dangerous,            /* -fsched-spec-load-dangerous */
  OPT_fsched_stalled_insns,                  /* -fsched-stalled-insns */
  OPT_fsched_stalled_insns_dep,              /* -fsched-stalled-insns-dep */
  OPT_fsched_stalled_insns_dep_,             /* -fsched-stalled-insns-dep= */
  OPT_fsched_stalled_insns_,                 /* -fsched-stalled-insns= */
  OPT_fsched_verbose_,                       /* -fsched-verbose= */
  OPT_fsched2_use_superblocks,               /* -fsched2-use-superblocks */
  OPT_fsched2_use_traces,                    /* -fsched2-use-traces */
  OPT_fschedule_insns,                       /* -fschedule-insns */
  OPT_fschedule_insns2,                      /* -fschedule-insns2 */
  OPT_fsecond_underscore,                    /* -fsecond-underscore */
  OPT_fsection_anchors,                      /* -fsection-anchors */
  OPT_fsee,                                  /* -fsee */
  OPT_fsel_sched_pipelining,                 /* -fsel-sched-pipelining */
  OPT_fsel_sched_pipelining_outer_loops,     /* -fsel-sched-pipelining-outer-loops */
  OPT_fsel_sched_reschedule_pipelined,       /* -fsel-sched-reschedule-pipelined */
  OPT_fselective_scheduling,                 /* -fselective-scheduling */
  OPT_fselective_scheduling2,                /* -fselective-scheduling2 */
  OPT_fset_stack_executable,                 /* -fset-stack-executable */
  OPT_fshort_double,                         /* -fshort-double */
  OPT_fshort_enums,                          /* -fshort-enums */
  OPT_fshort_wchar,                          /* -fshort-wchar */
  OPT_fshow_column,                          /* -fshow-column */
  OPT_fsign_zero,                            /* -fsign-zero */
  OPT_fsignaling_nans,                       /* -fsignaling-nans */
  OPT_fsigned_bitfields,                     /* -fsigned-bitfields */
  OPT_fsigned_char,                          /* -fsigned-char */
  OPT_fsigned_zeros,                         /* -fsigned-zeros */
  OPT_fsingle_precision_constant,            /* -fsingle-precision-constant */
  OPT_fsource_filename_,                     /* -fsource-filename= */
  OPT_fsource_,                              /* -fsource= */
  OPT_fsplit_ivs_in_unroller,                /* -fsplit-ivs-in-unroller */
  OPT_fsplit_wide_types,                     /* -fsplit-wide-types */
  OPT_fsquangle,                             /* -fsquangle */
  OPT_fstack_check,                          /* -fstack-check */
  OPT_fstack_check_,                         /* -fstack-check= */
  OPT_fstack_limit,                          /* -fstack-limit */
  OPT_fstack_limit_register_,                /* -fstack-limit-register= */
  OPT_fstack_limit_symbol_,                  /* -fstack-limit-symbol= */
  OPT_fstack_protector,                      /* -fstack-protector */
  OPT_fstack_protector_all,                  /* -fstack-protector-all */
  OPT_fstats,                                /* -fstats */
  OPT_fstore_check,                          /* -fstore-check */
  OPT_fstrength_reduce,                      /* -fstrength-reduce */
  OPT_fstrict_aliasing,                      /* -fstrict-aliasing */
  OPT_fstrict_overflow,                      /* -fstrict-overflow */
  OPT_fstrict_prototype,                     /* -fstrict-prototype */
  OPT_fsyntax_only,                          /* -fsyntax-only */
  OPT_ftabstop_,                             /* -ftabstop= */
  OPT_ftarget_help,                          /* -ftarget-help */
  OPT_ftarget_,                              /* -ftarget= */
  OPT_ftemplate_depth_,                      /* -ftemplate-depth- */
  OPT_ftemplate_depth_eq,                    /* -ftemplate-depth= */
  OPT_ftest_coverage,                        /* -ftest-coverage */
  OPT_fthis_is_variable,                     /* -fthis-is-variable */
  OPT_fthread_jumps,                         /* -fthread-jumps */
  OPT_fthreadsafe_statics,                   /* -fthreadsafe-statics */
  OPT_ftime_report,                          /* -ftime-report */
  OPT_ftls_model_,                           /* -ftls-model= */
  OPT_ftoplevel_reorder,                     /* -ftoplevel-reorder */
  OPT_ftracer,                               /* -ftracer */
  OPT_ftrapping_math,                        /* -ftrapping-math */
  OPT_ftrapv,                                /* -ftrapv */
  OPT_ftree_builtin_call_dce,                /* -ftree-builtin-call-dce */
  OPT_ftree_ccp,                             /* -ftree-ccp */
  OPT_ftree_ch,                              /* -ftree-ch */
  OPT_ftree_copy_prop,                       /* -ftree-copy-prop */
  OPT_ftree_copyrename,                      /* -ftree-copyrename */
  OPT_ftree_cselim,                          /* -ftree-cselim */
  OPT_ftree_dce,                             /* -ftree-dce */
  OPT_ftree_dominator_opts,                  /* -ftree-dominator-opts */
  OPT_ftree_dse,                             /* -ftree-dse */
  OPT_ftree_forwprop,                        /* -ftree-forwprop */
  OPT_ftree_fre,                             /* -ftree-fre */
  OPT_ftree_loop_distribution,               /* -ftree-loop-distribution */
  OPT_ftree_loop_im,                         /* -ftree-loop-im */
  OPT_ftree_loop_ivcanon,                    /* -ftree-loop-ivcanon */
  OPT_ftree_loop_linear,                     /* -ftree-loop-linear */
  OPT_ftree_loop_optimize,                   /* -ftree-loop-optimize */
  OPT_ftree_lrs,                             /* -ftree-lrs */
  OPT_ftree_parallelize_loops_,              /* -ftree-parallelize-loops= */
  OPT_ftree_phiprop,                         /* -ftree-phiprop */
  OPT_ftree_pre,                             /* -ftree-pre */
  OPT_ftree_pta,                             /* -ftree-pta */
  OPT_ftree_reassoc,                         /* -ftree-reassoc */
  OPT_ftree_salias,                          /* -ftree-salias */
  OPT_ftree_scev_cprop,                      /* -ftree-scev-cprop */
  OPT_ftree_sink,                            /* -ftree-sink */
  OPT_ftree_slp_vectorize,                   /* -ftree-slp-vectorize */
  OPT_ftree_sra,                             /* -ftree-sra */
  OPT_ftree_store_ccp,                       /* -ftree-store-ccp */
  OPT_ftree_store_copy_prop,                 /* -ftree-store-copy-prop */
  OPT_ftree_switch_conversion,               /* -ftree-switch-conversion */
  OPT_ftree_ter,                             /* -ftree-ter */
  OPT_ftree_vect_loop_version,               /* -ftree-vect-loop-version */
  OPT_ftree_vectorize,                       /* -ftree-vectorize */
  OPT_ftree_vectorizer_verbose_,             /* -ftree-vectorizer-verbose= */
  OPT_ftree_vrp,                             /* -ftree-vrp */
  OPT_funderscoring,                         /* -funderscoring */
  OPT_funit_at_a_time,                       /* -funit-at-a-time */
  OPT_funroll_all_loops,                     /* -funroll-all-loops */
  OPT_funroll_loops,                         /* -funroll-loops */
  OPT_funsafe_loop_optimizations,            /* -funsafe-loop-optimizations */
  OPT_funsafe_math_optimizations,            /* -funsafe-math-optimizations */
  OPT_funsigned_bitfields,                   /* -funsigned-bitfields */
  OPT_funsigned_char,                        /* -funsigned-char */
  OPT_funswitch_loops,                       /* -funswitch-loops */
  OPT_funwind_tables,                        /* -funwind-tables */
  OPT_fuse_atomic_builtins,                  /* -fuse-atomic-builtins */
  OPT_fuse_boehm_gc,                         /* -fuse-boehm-gc */
  OPT_fuse_cxa_atexit,                       /* -fuse-cxa-atexit */
  OPT_fuse_cxa_get_exception_ptr,            /* -fuse-cxa-get-exception-ptr */
  OPT_fuse_divide_subroutine,                /* -fuse-divide-subroutine */
  OPT_fuse_linker_plugin,                    /* -fuse-linker-plugin */
  OPT_fvar_tracking,                         /* -fvar-tracking */
  OPT_fvar_tracking_assignments,             /* -fvar-tracking-assignments */
  OPT_fvar_tracking_assignments_toggle,      /* -fvar-tracking-assignments-toggle */
  OPT_fvar_tracking_uninit,                  /* -fvar-tracking-uninit */
  OPT_fvariable_expansion_in_unroller,       /* -fvariable-expansion-in-unroller */
  OPT_fvect_cost_model,                      /* -fvect-cost-model */
  OPT_fverbose_asm,                          /* -fverbose-asm */
  OPT_fversion,                              /* -fversion */
  OPT_fvisibility_inlines_hidden,            /* -fvisibility-inlines-hidden */
  OPT_fvisibility_ms_compat,                 /* -fvisibility-ms-compat */
  OPT_fvisibility_,                          /* -fvisibility= */
  OPT_fvpt,                                  /* -fvpt */
  OPT_fvtable_gc,                            /* -fvtable-gc */
  OPT_fvtable_thunks,                        /* -fvtable-thunks */
  OPT_fweak,                                 /* -fweak */
  OPT_fweb,                                  /* -fweb */
  OPT_fwhole_file,                           /* -fwhole-file */
  OPT_fwhole_program,                        /* -fwhole-program */
  OPT_fwhopr,                                /* -fwhopr */
  OPT_fwide_exec_charset_,                   /* -fwide-exec-charset= */
  OPT_fworking_directory,                    /* -fworking-directory */
  OPT_fwpa,                                  /* -fwpa */
  OPT_fwrapv,                                /* -fwrapv */
  OPT_fxref,                                 /* -fxref */
  OPT_fzero_initialized_in_bss,              /* -fzero-initialized-in-bss */
  OPT_fzero_link,                            /* -fzero-link */
  OPT_g,                                     /* -g */
  OPT_gant,                                  /* -gant */
  OPT_gcoff,                                 /* -gcoff */
  OPT_gdwarfplus,                            /* -gdwarf+ */
  OPT_gdwarf_,                               /* -gdwarf- */
  OPT_gen_decls,                             /* -gen-decls */
  OPT_ggdb,                                  /* -ggdb */
  OPT_gnat,                                  /* -gnat */
  OPT_gnatO,                                 /* -gnatO */
  OPT_gno_strict_dwarf,                      /* -gno-strict-dwarf */
  OPT_gstabs,                                /* -gstabs */
  OPT_gstabs_,                               /* -gstabs+ */
  OPT_gstrict_dwarf,                         /* -gstrict-dwarf */
  OPT_gtoggle,                               /* -gtoggle */
  OPT_gvms,                                  /* -gvms */
  OPT_gxcoff,                                /* -gxcoff */
  OPT_gxcoff_,                               /* -gxcoff+ */
  OPT_idirafter,                             /* -idirafter */
  OPT_imacros,                               /* -imacros */
  OPT_imultilib,                             /* -imultilib */
  OPT_include,                               /* -include */
  OPT_iprefix,                               /* -iprefix */
  OPT_iquote,                                /* -iquote */
  OPT_isysroot,                              /* -isysroot */
  OPT_isystem,                               /* -isystem */
  OPT_iwithprefix,                           /* -iwithprefix */
  OPT_iwithprefixbefore,                     /* -iwithprefixbefore */
  OPT_lang_asm,                              /* -lang-asm */
  OPT_lang_objc,                             /* -lang-objc */
  OPT_m128bit_long_double,                   /* -m128bit-long-double */
  OPT_m32,                                   /* -m32 */
  OPT_m3dnow,                                /* -m3dnow */
  OPT_m3dnowa,                               /* -m3dnowa */
  OPT_m64,                                   /* -m64 */
  OPT_m80387,                                /* -m80387 */
  OPT_m96bit_long_double,                    /* -m96bit-long-double */
  OPT_mabi_,                                 /* -mabi= */
  OPT_mabm,                                  /* -mabm */
  OPT_maccumulate_outgoing_args,             /* -maccumulate-outgoing-args */
  OPT_maes,                                  /* -maes */
  OPT_malign_double,                         /* -malign-double */
  OPT_malign_functions_,                     /* -malign-functions= */
  OPT_malign_jumps_,                         /* -malign-jumps= */
  OPT_malign_loops_,                         /* -malign-loops= */
  OPT_malign_stringops,                      /* -malign-stringops */
  OPT_march_,                                /* -march= */
  OPT_masm_,                                 /* -masm= */
  OPT_mavx,                                  /* -mavx */
  OPT_mbranch_cost_,                         /* -mbranch-cost= */
  OPT_mcld,                                  /* -mcld */
  OPT_mcmodel_,                              /* -mcmodel= */
  OPT_mconsole,                              /* -mconsole */
  OPT_mcrc32,                                /* -mcrc32 */
  OPT_mcx16,                                 /* -mcx16 */
  OPT_mcygwin,                               /* -mcygwin */
  OPT_mdll,                                  /* -mdll */
  OPT_mfancy_math_387,                       /* -mfancy-math-387 */
  OPT_mfma,                                  /* -mfma */
  OPT_mfma4,                                 /* -mfma4 */
  OPT_mforce_drap,                           /* -mforce-drap */
  OPT_mfp_ret_in_387,                        /* -mfp-ret-in-387 */
  OPT_mfpmath_,                              /* -mfpmath= */
  OPT_mfused_madd,                           /* -mfused-madd */
  OPT_mhard_float,                           /* -mhard-float */
  OPT_mieee_fp,                              /* -mieee-fp */
  OPT_mincoming_stack_boundary_,             /* -mincoming-stack-boundary= */
  OPT_minline_all_stringops,                 /* -minline-all-stringops */
  OPT_minline_stringops_dynamically,         /* -minline-stringops-dynamically */
  OPT_mintel_syntax,                         /* -mintel-syntax */
  OPT_mlarge_data_threshold_,                /* -mlarge-data-threshold= */
  OPT_mlwp,                                  /* -mlwp */
  OPT_mmmx,                                  /* -mmmx */
  OPT_mmovbe,                                /* -mmovbe */
  OPT_mms_bitfields,                         /* -mms-bitfields */
  OPT_mno_align_stringops,                   /* -mno-align-stringops */
  OPT_mno_fancy_math_387,                    /* -mno-fancy-math-387 */
  OPT_mno_push_args,                         /* -mno-push-args */
  OPT_mno_red_zone,                          /* -mno-red-zone */
  OPT_mno_sse4,                              /* -mno-sse4 */
  OPT_mnop_fun_dllimport,                    /* -mnop-fun-dllimport */
  OPT_momit_leaf_frame_pointer,              /* -momit-leaf-frame-pointer */
  OPT_mpc,                                   /* -mpc */
  OPT_mpclmul,                               /* -mpclmul */
  OPT_mpe_aligned_commons,                   /* -mpe-aligned-commons */
  OPT_mpopcnt,                               /* -mpopcnt */
  OPT_mpreferred_stack_boundary_,            /* -mpreferred-stack-boundary= */
  OPT_mpush_args,                            /* -mpush-args */
  OPT_mrecip,                                /* -mrecip */
  OPT_mred_zone,                             /* -mred-zone */
  OPT_mregparm_,                             /* -mregparm= */
  OPT_mrtd,                                  /* -mrtd */
  OPT_msahf,                                 /* -msahf */
  OPT_msoft_float,                           /* -msoft-float */
  OPT_msse,                                  /* -msse */
  OPT_msse2,                                 /* -msse2 */
  OPT_msse2avx,                              /* -msse2avx */
  OPT_msse3,                                 /* -msse3 */
  OPT_msse4,                                 /* -msse4 */
  OPT_msse4_1,                               /* -msse4.1 */
  OPT_msse4_2,                               /* -msse4.2 */
  OPT_msse4a,                                /* -msse4a */
  OPT_msseregparm,                           /* -msseregparm */
  OPT_mssse3,                                /* -mssse3 */
  OPT_mstack_arg_probe,                      /* -mstack-arg-probe */
  OPT_mstackrealign,                         /* -mstackrealign */
  OPT_mstringop_strategy_,                   /* -mstringop-strategy= */
  OPT_mthreads,                              /* -mthreads */
  OPT_mtls_dialect_,                         /* -mtls-dialect= */
  OPT_mtls_direct_seg_refs,                  /* -mtls-direct-seg-refs */
  OPT_mtune_,                                /* -mtune= */
  OPT_municode,                              /* -municode */
  OPT_muse_libstdc_wrappers,                 /* -muse-libstdc-wrappers */
  OPT_mveclibabi_,                           /* -mveclibabi= */
  OPT_mwin32,                                /* -mwin32 */
  OPT_mwindows,                              /* -mwindows */
  OPT_mxop,                                  /* -mxop */
  OPT_nocpp,                                 /* -nocpp */
  OPT_nostdinc,                              /* -nostdinc */
  OPT_nostdinc__,                            /* -nostdinc++ */
  OPT_nostdlib,                              /* -nostdlib */
  OPT_o,                                     /* -o */
  OPT_p,                                     /* -p */
  OPT_pedantic,                              /* -pedantic */
  OPT_pedantic_errors,                       /* -pedantic-errors */
  OPT_pie,                                   /* -pie */
  OPT_print_objc_runtime_info,               /* -print-objc-runtime-info */
  OPT_print_pch_checksum,                    /* -print-pch-checksum */
  OPT_quiet,                                 /* -quiet */
  OPT_remap,                                 /* -remap */
  OPT_shared,                                /* -shared */
  OPT_static_libgfortran,                    /* -static-libgfortran */
  OPT_std_c__0x,                             /* -std=c++0x */
  OPT_std_c__98,                             /* -std=c++98 */
  OPT_std_c89,                               /* -std=c89 */
  OPT_std_c90,                               /* -std=c90 */
  OPT_std_c99,                               /* -std=c99 */
  OPT_std_c9x,                               /* -std=c9x */
  OPT_std_f2003,                             /* -std=f2003 */
  OPT_std_f2008,                             /* -std=f2008 */
  OPT_std_f95,                               /* -std=f95 */
  OPT_std_gnu,                               /* -std=gnu */
  OPT_std_gnu__0x,                           /* -std=gnu++0x */
  OPT_std_gnu__98,                           /* -std=gnu++98 */
  OPT_std_gnu89,                             /* -std=gnu89 */
  OPT_std_gnu90,                             /* -std=gnu90 */
  OPT_std_gnu99,                             /* -std=gnu99 */
  OPT_std_gnu9x,                             /* -std=gnu9x */
  OPT_std_iso9899_1990,                      /* -std=iso9899:1990 */
  OPT_std_iso9899_199409,                    /* -std=iso9899:199409 */
  OPT_std_iso9899_1999,                      /* -std=iso9899:1999 */
  OPT_std_iso9899_199x,                      /* -std=iso9899:199x */
  OPT_std_legacy,                            /* -std=legacy */
  OPT_traditional_cpp,                       /* -traditional-cpp */
  OPT_trigraphs,                             /* -trigraphs */
  OPT_undef,                                 /* -undef */
  OPT_v,                                     /* -v */
  OPT_version,                               /* -version */
  OPT_w,                                     /* -w */
  N_OPTS
};

#endif /* OPTIONS_H */
