This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Cleaning up expand optabs code
Andreas Krebbel schrieb:
> On 03/22/2011 06:48 PM, Richard Henderson wrote:
>
>> Ok. Watch out for other target problems this week.
libgcc fails to build for avr (SVN 171446)
../../../../../gcc.gnu.org/trunk/libgcc/../gcc/libgcc2.c: In function
'__negdi2':
../../../../../gcc.gnu.org/trunk/libgcc/../gcc/libgcc2.c:68:17:
internal compiler error: in maybe_gen_insn, at optabs.c:7123
Target: avr
Configured with: ../../gcc.gnu.org/trunk/configure --target=avr
--prefix=/local/gnu/install/gcc-4.6 --enable-languages=c,c++
--disable-libssp --disable-libada --disable-nls --disable-shared
Attached the source where it crashes; compile with -S -Os
Building last 4.7 snapshot + avr backend from HEAD works fine.
Johann
typedef int ptrdiff_t;
typedef unsigned int size_t;
typedef int wchar_t;
extern void *malloc (size_t);
extern void free (void *);
extern int atexit (void (*)(void));
extern void abort (void) __attribute__ ((__noreturn__));
extern size_t strlen (const char *);
extern void *memcpy (void *, const void *, size_t);
extern void *memset (void *, int, size_t);
extern int filename_cmp (const char *s1, const char *s2);
extern int filename_ncmp (const char *s1, const char *s2,
size_t n);
struct _dont_use_rtx_here_;
struct _dont_use_rtvec_here_;
union _dont_use_tree_here_;
enum debug_info_type
{
NO_DEBUG,
DBX_DEBUG,
SDB_DEBUG,
DWARF2_DEBUG,
XCOFF_DEBUG,
VMS_DEBUG,
VMS_AND_DWARF2_DEBUG
};
enum debug_info_levels
{
DINFO_LEVEL_NONE,
DINFO_LEVEL_TERSE,
DINFO_LEVEL_NORMAL,
DINFO_LEVEL_VERBOSE
};
enum debug_info_usage
{
DINFO_USAGE_DFN,
DINFO_USAGE_DIR_USE,
DINFO_USAGE_IND_USE,
DINFO_USAGE_NUM_ENUMS
};
enum debug_struct_file
{
DINFO_STRUCT_FILE_NONE,
DINFO_STRUCT_FILE_BASE,
DINFO_STRUCT_FILE_SYS,
DINFO_STRUCT_FILE_ANY
};
enum symbol_visibility
{
VISIBILITY_DEFAULT,
VISIBILITY_PROTECTED,
VISIBILITY_HIDDEN,
VISIBILITY_INTERNAL
};
enum ira_algorithm
{
IRA_ALGORITHM_CB,
IRA_ALGORITHM_PRIORITY
};
enum ira_region
{
IRA_REGION_ONE,
IRA_REGION_ALL,
IRA_REGION_MIXED
};
enum excess_precision
{
EXCESS_PRECISION_DEFAULT,
EXCESS_PRECISION_FAST,
EXCESS_PRECISION_STANDARD
};
enum graph_dump_types
{
no_graph = 0,
vcg
};
enum stack_check_type
{
NO_STACK_CHECK = 0,
GENERIC_STACK_CHECK,
STATIC_BUILTIN_STACK_CHECK,
FULL_BUILTIN_STACK_CHECK
};
enum warn_strict_overflow_code
{
WARN_STRICT_OVERFLOW_ALL = 1,
WARN_STRICT_OVERFLOW_CONDITIONAL = 2,
WARN_STRICT_OVERFLOW_COMPARISON = 3,
WARN_STRICT_OVERFLOW_MISC = 4,
WARN_STRICT_OVERFLOW_MAGNITUDE = 5
};
enum fp_contract_mode {
FP_CONTRACT_OFF = 0,
FP_CONTRACT_ON = 1,
FP_CONTRACT_FAST = 2
};
enum vect_verbosity_levels {
REPORT_NONE,
REPORT_VECTORIZED_LOCATIONS,
REPORT_UNVECTORIZED_LOCATIONS,
REPORT_COST,
REPORT_ALIGNMENT,
REPORT_DR_DETAILS,
REPORT_BAD_FORM_LOOPS,
REPORT_OUTER_LOOPS,
REPORT_SLP,
REPORT_DETAILS,
MAX_VERBOSITY_LEVEL
};
enum opt_code
{
OPT____ = 0,
OPT__help = 27,
OPT__help_ = 28,
OPT__output_pch_ = 58,
OPT__param = 60,
OPT__sysroot_ = 90,
OPT__target_help = 91,
OPT__version = 101,
OPT_A = 104,
OPT_B = 105,
OPT_C = 106,
OPT_CC = 107,
OPT_D = 108,
OPT_E = 109,
OPT_F = 110,
OPT_H = 111,
OPT_I = 112,
OPT_J = 113,
OPT_L = 114,
OPT_M = 115,
OPT_MD = 116,
OPT_MF = 117,
OPT_MG = 118,
OPT_MM = 119,
OPT_MMD = 120,
OPT_MP = 121,
OPT_MQ = 122,
OPT_MT = 123,
OPT_N = 124,
OPT_O = 125,
OPT_Ofast = 126,
OPT_Os = 127,
OPT_P = 128,
OPT_Q = 129,
OPT_Qn = 130,
OPT_Qy = 131,
OPT_R = 132,
OPT_S = 133,
OPT_T = 134,
OPT_Tbss = 135,
OPT_Tdata = 136,
OPT_Ttext = 137,
OPT_U = 138,
OPT_Wa_ = 140,
OPT_Wabi = 141,
OPT_Waddress = 142,
OPT_Waggregate_return = 143,
OPT_Waliasing = 144,
OPT_Walign_commons = 145,
OPT_Wall = 146,
OPT_Wampersand = 147,
OPT_Warray_bounds = 148,
OPT_Warray_temporaries = 149,
OPT_Wassign_intercept = 150,
OPT_Wattributes = 151,
OPT_Wbad_function_cast = 152,
OPT_Wbuiltin_macro_redefined = 153,
OPT_Wc___compat = 154,
OPT_Wc__0x_compat = 155,
OPT_Wcast_align = 156,
OPT_Wcast_qual = 157,
OPT_Wchar_subscripts = 158,
OPT_Wcharacter_truncation = 159,
OPT_Wclobbered = 160,
OPT_Wcomment = 161,
OPT_Wconversion = 163,
OPT_Wconversion_extra = 164,
OPT_Wconversion_null = 165,
OPT_Wcoverage_mismatch = 166,
OPT_Wcpp = 167,
OPT_Wctor_dtor_privacy = 168,
OPT_Wdeclaration_after_statement = 169,
OPT_Wdeprecated = 170,
OPT_Wdeprecated_declarations = 171,
OPT_Wdisabled_optimization = 172,
OPT_Wdiv_by_zero = 173,
OPT_Wdouble_promotion = 174,
OPT_Weffc__ = 175,
OPT_Wempty_body = 176,
OPT_Wendif_labels = 177,
OPT_Wenum_compare = 178,
OPT_Werror = 179,
OPT_Werror_ = 181,
OPT_Wextra = 182,
OPT_Wfatal_errors = 183,
OPT_Wfloat_equal = 184,
OPT_Wformat = 185,
OPT_Wformat_contains_nul = 186,
OPT_Wformat_extra_args = 187,
OPT_Wformat_nonliteral = 188,
OPT_Wformat_security = 189,
OPT_Wformat_y2k = 190,
OPT_Wformat_zero_length = 191,
OPT_Wformat_ = 192,
OPT_Wframe_larger_than_ = 193,
OPT_Wignored_qualifiers = 194,
OPT_Wimplicit = 195,
OPT_Wimplicit_function_declaration = 196,
OPT_Wimplicit_int = 197,
OPT_Wimplicit_interface = 198,
OPT_Wimplicit_procedure = 199,
OPT_Winit_self = 201,
OPT_Winline = 202,
OPT_Wint_to_pointer_cast = 203,
OPT_Wintrinsic_shadow = 204,
OPT_Wintrinsics_std = 205,
OPT_Winvalid_offsetof = 206,
OPT_Winvalid_pch = 207,
OPT_Wjump_misses_init = 208,
OPT_Wl_ = 209,
OPT_Wlarger_than_ = 211,
OPT_Wline_truncation = 212,
OPT_Wlogical_op = 213,
OPT_Wlong_long = 214,
OPT_Wmain = 215,
OPT_Wmissing_braces = 216,
OPT_Wmissing_declarations = 217,
OPT_Wmissing_field_initializers = 218,
OPT_Wmissing_format_attribute = 219,
OPT_Wmissing_include_dirs = 220,
OPT_Wmissing_noreturn = 221,
OPT_Wmissing_parameter_type = 222,
OPT_Wmissing_prototypes = 223,
OPT_Wmudflap = 224,
OPT_Wmultichar = 225,
OPT_Wnested_externs = 226,
OPT_Wnoexcept = 227,
OPT_Wnon_template_friend = 228,
OPT_Wnon_virtual_dtor = 229,
OPT_Wnonnull = 230,
OPT_Wnormalized_ = 231,
OPT_Wold_style_cast = 232,
OPT_Wold_style_declaration = 233,
OPT_Wold_style_definition = 234,
OPT_Woverflow = 235,
OPT_Woverlength_strings = 236,
OPT_Woverloaded_virtual = 237,
OPT_Woverride_init = 238,
OPT_Wp_ = 239,
OPT_Wpacked = 240,
OPT_Wpacked_bitfield_compat = 241,
OPT_Wpadded = 242,
OPT_Wparentheses = 243,
OPT_Wpmf_conversions = 244,
OPT_Wpointer_arith = 245,
OPT_Wpointer_sign = 246,
OPT_Wpointer_to_int_cast = 247,
OPT_Wpragmas = 248,
OPT_Wproperty_assign_default = 249,
OPT_Wprotocol = 250,
OPT_Wpsabi = 251,
OPT_Wredundant_decls = 252,
OPT_Wreorder = 253,
OPT_Wreturn_type = 254,
OPT_Wselector = 255,
OPT_Wsequence_point = 256,
OPT_Wshadow = 257,
OPT_Wsign_compare = 258,
OPT_Wsign_conversion = 259,
OPT_Wsign_promo = 260,
OPT_Wstack_protector = 261,
OPT_Wstrict_aliasing = 262,
OPT_Wstrict_aliasing_ = 263,
OPT_Wstrict_null_sentinel = 264,
OPT_Wstrict_overflow = 265,
OPT_Wstrict_overflow_ = 266,
OPT_Wstrict_prototypes = 267,
OPT_Wstrict_selector_match = 268,
OPT_Wsuggest_attribute_const = 269,
OPT_Wsuggest_attribute_noreturn = 270,
OPT_Wsuggest_attribute_pure = 271,
OPT_Wsurprising = 272,
OPT_Wswitch = 273,
OPT_Wswitch_default = 274,
OPT_Wswitch_enum = 275,
OPT_Wsync_nand = 276,
OPT_Wsynth = 277,
OPT_Wsystem_headers = 278,
OPT_Wtabs = 279,
OPT_Wtraditional = 280,
OPT_Wtraditional_conversion = 281,
OPT_Wtrampolines = 282,
OPT_Wtrigraphs = 283,
OPT_Wtype_limits = 284,
OPT_Wundeclared_selector = 285,
OPT_Wundef = 286,
OPT_Wunderflow = 287,
OPT_Wuninitialized = 288,
OPT_Wunknown_pragmas = 289,
OPT_Wunsafe_loop_optimizations = 291,
OPT_Wunsuffixed_float_constants = 292,
OPT_Wunused = 293,
OPT_Wunused_but_set_parameter = 294,
OPT_Wunused_but_set_variable = 295,
OPT_Wunused_dummy_argument = 296,
OPT_Wunused_function = 297,
OPT_Wunused_label = 298,
OPT_Wunused_macros = 299,
OPT_Wunused_parameter = 300,
OPT_Wunused_result = 301,
OPT_Wunused_value = 302,
OPT_Wunused_variable = 303,
OPT_Wvariadic_macros = 304,
OPT_Wvla = 305,
OPT_Wvolatile_register_var = 306,
OPT_Wwrite_strings = 307,
OPT_Xassembler = 308,
OPT_Xlinker = 309,
OPT_Xpreprocessor = 310,
OPT_Z = 311,
OPT_ansi = 312,
OPT_aux_info = 313,
OPT_auxbase = 315,
OPT_auxbase_strip = 316,
OPT_c = 317,
OPT_coverage = 318,
OPT_cpp = 319,
OPT_cpp_ = 320,
OPT_d = 321,
OPT_dumpbase = 322,
OPT_dumpdir = 323,
OPT_dumpmachine = 324,
OPT_dumpspecs = 325,
OPT_dumpversion = 326,
OPT_e = 327,
OPT_export_dynamic = 328,
OPT_fPIC = 329,
OPT_fPIE = 330,
OPT_fabi_version_ = 331,
OPT_faccess_control = 332,
OPT_faggressive_function_elimination = 333,
OPT_falign_commons = 334,
OPT_falign_functions = 335,
OPT_falign_functions_ = 336,
OPT_falign_jumps = 337,
OPT_falign_jumps_ = 338,
OPT_falign_labels = 339,
OPT_falign_labels_ = 340,
OPT_falign_loops = 341,
OPT_falign_loops_ = 342,
OPT_fall_intrinsics = 343,
OPT_fallow_leading_underscore = 345,
OPT_fasm = 351,
OPT_fassociative_math = 352,
OPT_fasynchronous_unwind_tables = 353,
OPT_fauto_inc_dec = 354,
OPT_fautomatic = 355,
OPT_fbackslash = 356,
OPT_fbacktrace = 357,
OPT_fblas_matmul_limit_ = 358,
OPT_fbounds_check = 359,
OPT_fbranch_count_reg = 360,
OPT_fbranch_probabilities = 361,
OPT_fbranch_target_load_optimize = 362,
OPT_fbranch_target_load_optimize2 = 363,
OPT_fbtr_bb_exclusive = 364,
OPT_fbuiltin = 365,
OPT_fbuiltin_ = 366,
OPT_fcall_saved_ = 367,
OPT_fcall_used_ = 368,
OPT_fcaller_saves = 369,
OPT_fcheck_array_temporaries = 370,
OPT_fcheck_data_deps = 371,
OPT_fcheck_new = 372,
OPT_fcheck_ = 373,
OPT_fcoarray_ = 374,
OPT_fcombine_stack_adjustments = 375,
OPT_fcommon = 376,
OPT_fcompare_debug = 377,
OPT_fcompare_debug_second = 378,
OPT_fcompare_debug_ = 379,
OPT_fcompare_elim = 380,
OPT_fcond_mismatch = 381,
OPT_fconserve_space = 382,
OPT_fconserve_stack = 383,
OPT_fconstant_string_class_ = 384,
OPT_fconstexpr_depth_ = 385,
OPT_fconvert_big_endian = 386,
OPT_fconvert_little_endian = 387,
OPT_fconvert_native = 388,
OPT_fconvert_swap = 389,
OPT_fcprop_registers = 390,
OPT_fcray_pointer = 391,
OPT_fcrossjumping = 392,
OPT_fcse_follow_jumps = 393,
OPT_fcx_fortran_rules = 395,
OPT_fcx_limited_range = 396,
OPT_fd_lines_as_code = 397,
OPT_fd_lines_as_comments = 398,
OPT_fdata_sections = 399,
OPT_fdbg_cnt_list = 400,
OPT_fdbg_cnt_ = 401,
OPT_fdce = 402,
OPT_fdebug_prefix_map_ = 403,
OPT_fdeduce_init_list = 404,
OPT_fdefault_double_8 = 405,
OPT_fdefault_integer_8 = 407,
OPT_fdefault_real_8 = 408,
OPT_fdefer_pop = 409,
OPT_fdelayed_branch = 410,
OPT_fdelete_null_pointer_checks = 411,
OPT_fdevirtualize = 412,
OPT_fdiagnostics_show_location_ = 413,
OPT_fdiagnostics_show_option = 414,
OPT_fdirectives_only = 415,
OPT_fdollar_ok = 416,
OPT_fdollars_in_identifiers = 417,
OPT_fdse = 418,
OPT_fdump_ = 419,
OPT_fdump_core = 420,
OPT_fdump_final_insns = 421,
OPT_fdump_final_insns_ = 422,
OPT_fdump_fortran_optimized = 423,
OPT_fdump_fortran_original = 424,
OPT_fdump_go_spec_ = 425,
OPT_fdump_noaddr = 426,
OPT_fdump_parse_tree = 427,
OPT_fdump_unnumbered = 428,
OPT_fdump_unnumbered_links = 429,
OPT_fdwarf2_cfi_asm = 430,
OPT_fearly_inlining = 431,
OPT_felide_constructors = 432,
OPT_feliminate_dwarf2_dups = 433,
OPT_feliminate_unused_debug_symbols = 434,
OPT_feliminate_unused_debug_types = 435,
OPT_femit_class_debug_always = 436,
OPT_femit_struct_debug_baseonly = 437,
OPT_femit_struct_debug_detailed_ = 438,
OPT_femit_struct_debug_reduced = 439,
OPT_fenforce_eh_specs = 440,
OPT_fexceptions = 442,
OPT_fexcess_precision_ = 443,
OPT_fexec_charset_ = 444,
OPT_fexpensive_optimizations = 445,
OPT_fextended_identifiers = 446,
OPT_fexternal_blas = 447,
OPT_ff2c = 449,
OPT_ffast_math = 450,
OPT_ffinite_math_only = 451,
OPT_ffixed_ = 452,
OPT_ffixed_form = 453,
OPT_ffixed_line_length_ = 454,
OPT_ffixed_line_length_none = 455,
OPT_ffloat_store = 456,
OPT_ffor_scope = 457,
OPT_fforward_propagate = 459,
OPT_ffp_contract_ = 460,
OPT_ffpe_trap_ = 461,
OPT_ffree_form = 462,
OPT_ffree_line_length_ = 463,
OPT_ffree_line_length_none = 464,
OPT_ffreestanding = 465,
OPT_ffriend_injection = 466,
OPT_ffunction_cse = 467,
OPT_ffunction_sections = 468,
OPT_fgcse = 469,
OPT_fgcse_after_reload = 470,
OPT_fgcse_las = 471,
OPT_fgcse_lm = 472,
OPT_fgcse_sm = 473,
OPT_fgnu_keywords = 474,
OPT_fgnu_runtime = 475,
OPT_fgnu89_inline = 476,
OPT_fgraphite = 477,
OPT_fgraphite_identity = 478,
OPT_fguess_branch_probability = 479,
OPT_fhosted = 485,
OPT_fident = 487,
OPT_fif_conversion = 488,
OPT_fif_conversion2 = 489,
OPT_fimplement_inlines = 490,
OPT_fimplicit_inline_templates = 491,
OPT_fimplicit_none = 492,
OPT_fimplicit_templates = 493,
OPT_findirect_inlining = 494,
OPT_finhibit_size_directive = 495,
OPT_finit_character_ = 496,
OPT_finit_integer_ = 497,
OPT_finit_local_zero = 498,
OPT_finit_logical_ = 499,
OPT_finit_real_ = 500,
OPT_finline = 501,
OPT_finline_functions = 502,
OPT_finline_functions_called_once = 503,
OPT_finline_limit_ = 505,
OPT_finline_small_functions = 506,
OPT_finput_charset_ = 507,
OPT_finstrument_functions = 508,
OPT_finstrument_functions_exclude_file_list_ = 509,
OPT_finstrument_functions_exclude_function_list_ = 510,
OPT_fintrinsic_modules_path = 511,
OPT_fipa_cp = 512,
OPT_fipa_cp_clone = 513,
OPT_fipa_matrix_reorg = 514,
OPT_fipa_profile = 515,
OPT_fipa_pta = 516,
OPT_fipa_pure_const = 517,
OPT_fipa_reference = 518,
OPT_fipa_sra = 519,
OPT_fira_algorithm_ = 521,
OPT_fira_loop_pressure = 522,
OPT_fira_region_ = 523,
OPT_fira_share_save_slots = 524,
OPT_fira_share_spill_slots = 525,
OPT_fira_verbose_ = 526,
OPT_fivopts = 527,
OPT_fjump_tables = 528,
OPT_fkeep_inline_dllexport = 529,
OPT_fkeep_inline_functions = 530,
OPT_fkeep_static_consts = 531,
OPT_flax_vector_conversions = 533,
OPT_fleading_underscore = 534,
OPT_floop_block = 535,
OPT_floop_flatten = 536,
OPT_floop_interchange = 537,
OPT_floop_parallelize_all = 539,
OPT_floop_strip_mine = 540,
OPT_flto = 541,
OPT_flto_compression_level_ = 542,
OPT_flto_partition_1to1 = 543,
OPT_flto_partition_balanced = 544,
OPT_flto_partition_none = 545,
OPT_flto_report = 546,
OPT_flto_ = 547,
OPT_fltrans = 548,
OPT_fltrans_output_list_ = 549,
OPT_fmath_errno = 550,
OPT_fmax_array_constructor_ = 551,
OPT_fmax_errors_ = 552,
OPT_fmax_identifier_length_ = 553,
OPT_fmax_stack_var_size_ = 554,
OPT_fmax_subrecord_length_ = 555,
OPT_fmem_report = 556,
OPT_fmerge_all_constants = 557,
OPT_fmerge_constants = 558,
OPT_fmerge_debug_strings = 559,
OPT_fmessage_length_ = 560,
OPT_fmodule_private = 561,
OPT_fmodulo_sched = 562,
OPT_fmodulo_sched_allow_regmoves = 563,
OPT_fmove_loop_invariants = 564,
OPT_fms_extensions = 565,
OPT_fmudflap = 566,
OPT_fmudflapir = 567,
OPT_fmudflapth = 568,
OPT_fnext_runtime = 571,
OPT_fnil_receivers = 572,
OPT_fnon_call_exceptions = 573,
OPT_fnonansi_builtins = 574,
OPT_fnothrow_opt = 576,
OPT_fobjc_abi_version_ = 577,
OPT_fobjc_call_cxx_cdtors = 578,
OPT_fobjc_direct_dispatch = 579,
OPT_fobjc_exceptions = 580,
OPT_fobjc_gc = 581,
OPT_fobjc_nilcheck = 582,
OPT_fobjc_sjlj_exceptions = 583,
OPT_fobjc_std_objc1 = 584,
OPT_fomit_frame_pointer = 585,
OPT_fopenmp = 586,
OPT_foperator_names = 587,
OPT_foptimize_register_move = 588,
OPT_foptimize_sibling_calls = 589,
OPT_fpack_derived = 591,
OPT_fpack_struct = 592,
OPT_fpack_struct_ = 593,
OPT_fpartial_inlining = 594,
OPT_fpcc_struct_return = 595,
OPT_fpch_deps = 596,
OPT_fpch_preprocess = 597,
OPT_fpeel_loops = 598,
OPT_fpeephole = 599,
OPT_fpeephole2 = 600,
OPT_fpermissive = 601,
OPT_fpic = 602,
OPT_fpie = 603,
OPT_fplan9_extensions = 604,
OPT_fplugin_arg_ = 605,
OPT_fplugin_ = 606,
OPT_fpost_ipa_mem_report = 607,
OPT_fpre_ipa_mem_report = 608,
OPT_fpredictive_commoning = 609,
OPT_fprefetch_loop_arrays = 610,
OPT_fpreprocessed = 611,
OPT_fpretty_templates = 612,
OPT_fprofile = 613,
OPT_fprofile_arcs = 614,
OPT_fprofile_correction = 615,
OPT_fprofile_dir_ = 616,
OPT_fprofile_generate = 617,
OPT_fprofile_generate_ = 618,
OPT_fprofile_use = 619,
OPT_fprofile_use_ = 620,
OPT_fprofile_values = 621,
OPT_fprotect_parens = 622,
OPT_frandom_seed = 623,
OPT_frandom_seed_ = 624,
OPT_frange_check = 625,
OPT_frealloc_lhs = 626,
OPT_freciprocal_math = 627,
OPT_frecord_gcc_switches = 628,
OPT_frecord_marker_4 = 629,
OPT_frecord_marker_8 = 630,
OPT_frecursive = 631,
OPT_freg_struct_return = 632,
OPT_fregmove = 633,
OPT_frename_registers = 634,
OPT_freorder_blocks = 635,
OPT_freorder_blocks_and_partition = 636,
OPT_freorder_functions = 637,
OPT_frepack_arrays = 638,
OPT_freplace_objc_classes = 639,
OPT_frepo = 640,
OPT_frerun_cse_after_loop = 641,
OPT_freschedule_modulo_scheduled_loops = 643,
OPT_fresolution_ = 644,
OPT_frounding_math = 645,
OPT_frtti = 646,
OPT_fsched_critical_path_heuristic = 647,
OPT_fsched_dep_count_heuristic = 648,
OPT_fsched_group_heuristic = 649,
OPT_fsched_interblock = 650,
OPT_fsched_last_insn_heuristic = 651,
OPT_fsched_pressure = 652,
OPT_fsched_rank_heuristic = 653,
OPT_fsched_spec = 654,
OPT_fsched_spec_insn_heuristic = 655,
OPT_fsched_spec_load = 656,
OPT_fsched_spec_load_dangerous = 657,
OPT_fsched_stalled_insns = 658,
OPT_fsched_stalled_insns_dep = 659,
OPT_fsched_stalled_insns_dep_ = 660,
OPT_fsched_stalled_insns_ = 661,
OPT_fsched_verbose_ = 662,
OPT_fsched2_use_superblocks = 663,
OPT_fschedule_insns = 665,
OPT_fschedule_insns2 = 666,
OPT_fsecond_underscore = 667,
OPT_fsection_anchors = 668,
OPT_fsel_sched_pipelining = 670,
OPT_fsel_sched_pipelining_outer_loops = 671,
OPT_fsel_sched_reschedule_pipelined = 672,
OPT_fselective_scheduling = 673,
OPT_fselective_scheduling2 = 674,
OPT_fshort_double = 675,
OPT_fshort_enums = 676,
OPT_fshort_wchar = 677,
OPT_fshow_column = 678,
OPT_fsign_zero = 679,
OPT_fsignaling_nans = 680,
OPT_fsigned_bitfields = 681,
OPT_fsigned_char = 682,
OPT_fsigned_zeros = 683,
OPT_fsingle_precision_constant = 684,
OPT_fsplit_ivs_in_unroller = 685,
OPT_fsplit_stack = 686,
OPT_fsplit_wide_types = 687,
OPT_fstack_check_ = 690,
OPT_fstack_limit = 691,
OPT_fstack_limit_register_ = 692,
OPT_fstack_limit_symbol_ = 693,
OPT_fstack_protector = 694,
OPT_fstack_protector_all = 695,
OPT_fstack_usage = 696,
OPT_fstats = 697,
OPT_fstrict_aliasing = 699,
OPT_fstrict_enums = 700,
OPT_fstrict_overflow = 701,
OPT_fstrict_volatile_bitfields = 703,
OPT_fsyntax_only = 704,
OPT_ftabstop_ = 705,
OPT_ftemplate_depth_ = 708,
OPT_ftest_coverage = 709,
OPT_fthread_jumps = 711,
OPT_fthreadsafe_statics = 712,
OPT_ftime_report = 713,
OPT_ftls_model_ = 714,
OPT_ftoplevel_reorder = 715,
OPT_ftracer = 716,
OPT_ftrapping_math = 717,
OPT_ftrapv = 718,
OPT_ftree_bit_ccp = 719,
OPT_ftree_builtin_call_dce = 720,
OPT_ftree_ccp = 721,
OPT_ftree_ch = 722,
OPT_ftree_copy_prop = 723,
OPT_ftree_copyrename = 724,
OPT_ftree_cselim = 725,
OPT_ftree_dce = 726,
OPT_ftree_dominator_opts = 727,
OPT_ftree_dse = 728,
OPT_ftree_forwprop = 729,
OPT_ftree_fre = 730,
OPT_ftree_loop_distribute_patterns = 731,
OPT_ftree_loop_distribution = 732,
OPT_ftree_loop_if_convert = 733,
OPT_ftree_loop_if_convert_stores = 734,
OPT_ftree_loop_im = 735,
OPT_ftree_loop_ivcanon = 736,
OPT_ftree_loop_optimize = 738,
OPT_ftree_lrs = 739,
OPT_ftree_parallelize_loops_ = 740,
OPT_ftree_phiprop = 741,
OPT_ftree_pre = 742,
OPT_ftree_pta = 743,
OPT_ftree_reassoc = 744,
OPT_ftree_scev_cprop = 746,
OPT_ftree_sink = 747,
OPT_ftree_slp_vectorize = 748,
OPT_ftree_sra = 749,
OPT_ftree_switch_conversion = 752,
OPT_ftree_ter = 753,
OPT_ftree_vect_loop_version = 754,
OPT_ftree_vectorize = 755,
OPT_ftree_vectorizer_verbose_ = 756,
OPT_ftree_vrp = 757,
OPT_funderscoring = 758,
OPT_funit_at_a_time = 759,
OPT_funroll_all_loops = 760,
OPT_funroll_loops = 761,
OPT_funsafe_loop_optimizations = 762,
OPT_funsafe_math_optimizations = 763,
OPT_funsigned_bitfields = 764,
OPT_funsigned_char = 765,
OPT_funswitch_loops = 766,
OPT_funwind_tables = 767,
OPT_fuse_cxa_atexit = 768,
OPT_fuse_cxa_get_exception_ptr = 769,
OPT_fuse_linker_plugin = 770,
OPT_fvar_tracking = 771,
OPT_fvar_tracking_assignments = 772,
OPT_fvar_tracking_assignments_toggle = 773,
OPT_fvar_tracking_uninit = 774,
OPT_fvariable_expansion_in_unroller = 775,
OPT_fvect_cost_model = 776,
OPT_fverbose_asm = 777,
OPT_fvisibility_inlines_hidden = 779,
OPT_fvisibility_ms_compat = 780,
OPT_fvisibility_ = 781,
OPT_fvpt = 782,
OPT_fweak = 785,
OPT_fweb = 786,
OPT_fwhole_file = 787,
OPT_fwhole_program = 788,
OPT_fwide_exec_charset_ = 789,
OPT_fworking_directory = 790,
OPT_fwpa = 791,
OPT_fwrapv = 792,
OPT_fzee = 794,
OPT_fzero_initialized_in_bss = 795,
OPT_fzero_link = 796,
OPT_g = 797,
OPT_gcoff = 798,
OPT_gdwarf_ = 799,
OPT_gen_decls = 800,
OPT_ggdb = 801,
OPT_gno_strict_dwarf = 802,
OPT_gstabs = 803,
OPT_gstabs_ = 804,
OPT_gstrict_dwarf = 805,
OPT_gtoggle = 806,
OPT_gvms = 807,
OPT_gxcoff = 808,
OPT_gxcoff_ = 809,
OPT_h = 810,
OPT_idirafter = 811,
OPT_imacros = 812,
OPT_imultilib = 813,
OPT_include = 814,
OPT_iplugindir_ = 815,
OPT_iprefix = 816,
OPT_iquote = 817,
OPT_isysroot = 818,
OPT_isystem = 819,
OPT_iwithprefix = 820,
OPT_iwithprefixbefore = 821,
OPT_l = 822,
OPT_lang_asm = 823,
OPT_mcall_prologues = 824,
OPT_mdeb = 825,
OPT_mint8 = 826,
OPT_mmcu_ = 827,
OPT_mno_interrupts = 828,
OPT_morder1 = 829,
OPT_morder2 = 830,
OPT_mpmem_wrap_around = 831,
OPT_mrelax = 832,
OPT_mshort_calls = 833,
OPT_mtiny_stack = 834,
OPT_n = 835,
OPT_no_canonical_prefixes = 836,
OPT_no_integrated_cpp = 837,
OPT_nocpp = 838,
OPT_nodefaultlibs = 839,
OPT_nostartfiles = 840,
OPT_nostdinc = 841,
OPT_nostdinc__ = 842,
OPT_nostdlib = 843,
OPT_o = 844,
OPT_p = 845,
OPT_pass_exit_codes = 846,
OPT_pedantic = 847,
OPT_pedantic_errors = 848,
OPT_pg = 849,
OPT_pie = 850,
OPT_pipe = 851,
OPT_print_file_name_ = 852,
OPT_print_libgcc_file_name = 853,
OPT_print_multi_directory = 854,
OPT_print_multi_lib = 855,
OPT_print_multi_os_directory = 856,
OPT_print_objc_runtime_info = 857,
OPT_print_prog_name_ = 858,
OPT_print_search_dirs = 859,
OPT_print_sysroot = 860,
OPT_print_sysroot_headers_suffix = 861,
OPT_quiet = 862,
OPT_r = 863,
OPT_remap = 864,
OPT_s = 865,
OPT_save_temps = 866,
OPT_save_temps_ = 867,
OPT_shared = 868,
OPT_shared_libgcc = 869,
OPT_specs_ = 871,
OPT_static = 872,
OPT_static_libgcc = 873,
OPT_static_libgfortran = 874,
OPT_static_libgo = 875,
OPT_static_libstdc__ = 876,
OPT_std_c__0x = 877,
OPT_std_c__98 = 878,
OPT_std_c1x = 879,
OPT_std_c90 = 881,
OPT_std_c99 = 882,
OPT_std_f2003 = 884,
OPT_std_f2008 = 885,
OPT_std_f95 = 886,
OPT_std_gnu = 887,
OPT_std_gnu__0x = 888,
OPT_std_gnu__98 = 889,
OPT_std_gnu1x = 890,
OPT_std_gnu90 = 892,
OPT_std_gnu99 = 893,
OPT_std_iso9899_199409 = 896,
OPT_std_legacy = 899,
OPT_symbolic = 900,
OPT_t = 901,
OPT_time = 902,
OPT_time_ = 903,
OPT_traditional = 904,
OPT_traditional_cpp = 905,
OPT_trigraphs = 906,
OPT_u = 907,
OPT_undef = 908,
OPT_v = 909,
OPT_version = 910,
OPT_w = 911,
OPT_wrapper = 912,
OPT_x = 913,
OPT_z = 914,
N_OPTS,
OPT_SPECIAL_unknown,
OPT_SPECIAL_ignore,
OPT_SPECIAL_program_name,
OPT_SPECIAL_input_file
};
struct base_arch_s {
int asm_only;
int have_mul;
int have_jmp_call;
int have_movw_lpmx;
int have_elpm;
int have_elpmx;
int have_eijmp_eicall;
int reserved;
int reserved2;
int default_data_section_start;
const char *const macro;
const char *const arch_name;
};
enum avr_arch
{
ARCH_UNKNOWN,
ARCH_AVR1,
ARCH_AVR2,
ARCH_AVR25,
ARCH_AVR3,
ARCH_AVR31,
ARCH_AVR35,
ARCH_AVR4,
ARCH_AVR5,
ARCH_AVR51,
ARCH_AVR6
};
struct mcu_type_s {
const char *const name;
int arch;
const char *const macro;
int short_sp;
int data_section_start;
const char *const library_name;
};
extern const char *avr_extra_arch_macro;
extern const struct base_arch_s *avr_current_arch;
extern const struct mcu_type_s *avr_current_device;
extern const struct mcu_type_s avr_mcu_types[];
extern const struct base_arch_s avr_arch_types[];
enum reg_class {
NO_REGS,
R0_REG,
POINTER_X_REGS,
POINTER_Y_REGS,
POINTER_Z_REGS,
STACK_REG,
BASE_POINTER_REGS,
POINTER_REGS,
ADDW_REGS,
SIMPLE_LD_REGS,
LD_REGS,
NO_LD_REGS,
GENERAL_REGS,
ALL_REGS, LIM_REG_CLASSES
};
typedef struct avr_args {
int nregs;
int regno;
} CUMULATIVE_ARGS;
extern int avr_reg_order[];
extern const char *avr_device_to_arch (int argc, const char **argv);
extern const char *avr_device_to_data_start (int argc, const char **argv);
extern const char *avr_device_to_startfiles (int argc, const char **argv);
extern const char *avr_device_to_devicelib (int argc, const char **argv);
struct machine_function
{
int is_naked;
int is_interrupt;
int is_signal;
int is_OS_task;
int is_OS_main;
int stack_usage;
int sibcall_fails;
};
extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
extern void __clear_cache (char *, char *);
extern void __eprintf (const char *, const char *, unsigned int, const char *)
__attribute__ ((__noreturn__));
typedef int QItype __attribute__ ((mode (QI)));
typedef unsigned int UQItype __attribute__ ((mode (QI)));
typedef int HItype __attribute__ ((mode (HI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));
typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));
typedef int DItype __attribute__ ((mode (DI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));
typedef float SFtype __attribute__ ((mode (SF)));
typedef _Complex float SCtype __attribute__ ((mode (SC)));
typedef int cmp_return_type __attribute__((mode (__libgcc_cmp_return__)));
typedef int shift_count_type __attribute__((mode (__libgcc_shift_count__)));
extern DItype __muldi3 (DItype, DItype);
extern DItype __divdi3 (DItype, DItype);
extern UDItype __udivdi3 (UDItype, UDItype);
extern UDItype __umoddi3 (UDItype, UDItype);
extern DItype __moddi3 (DItype, DItype);
extern UDItype __udivmoddi4 (UDItype, UDItype, UDItype *);
extern DItype __negdi2 (DItype);
extern DItype __lshrdi3 (DItype, shift_count_type);
extern DItype __ashldi3 (DItype, shift_count_type);
extern DItype __ashrdi3 (DItype, shift_count_type);
extern USItype __udiv_w_sdiv (USItype *, USItype, USItype, USItype);
extern cmp_return_type __cmpdi2 (DItype, DItype);
extern cmp_return_type __ucmpdi2 (DItype, DItype);
extern SItype __bswapsi2 (SItype);
extern DItype __bswapdi2 (DItype);
extern SItype __absvsi2 (SItype);
extern SItype __addvsi3 (SItype, SItype);
extern SItype __subvsi3 (SItype, SItype);
extern SItype __mulvsi3 (SItype, SItype);
extern SItype __negvsi2 (SItype);
extern DItype __absvdi2 (DItype);
extern DItype __addvdi3 (DItype, DItype);
extern DItype __subvdi3 (DItype, DItype);
extern DItype __mulvdi3 (DItype, DItype);
extern DItype __negvdi2 (DItype);
extern DItype __fixsfdi (SFtype);
extern SFtype __floatdisf (DItype);
extern SFtype __floatundisf (UDItype);
extern USItype __fixunssfsi (SFtype);
extern UDItype __fixunssfdi (SFtype);
extern SFtype __powisf2 (SFtype, int);
extern SCtype __divsc3 (SFtype, SFtype, SFtype, SFtype);
extern SCtype __mulsc3 (SFtype, SFtype, SFtype, SFtype);
struct DWstruct {SItype low, high;};
typedef union
{
struct DWstruct s;
DItype ll;
} DWunion;
extern const UQItype __popcount_tab[256];
extern const UQItype __clz_tab[256];
extern const UQItype __clz_tab[256] ;
extern int __clzdi2 (UDItype);
extern int __clzsi2 (USItype);
extern int __ctzsi2 (USItype);
extern int __ffssi2 (USItype);
extern int __ffsdi2 (DItype);
extern int __ctzdi2 (UDItype);
extern int __popcountsi2 (USItype);
extern int __popcountdi2 (UDItype);
extern int __paritysi2 (USItype);
extern int __paritydi2 (UDItype);
extern void __enable_execute_stack (void *);
DItype
__negdi2 (DItype u)
{
const DWunion uu = {.ll = u};
const DWunion w = { {.low = -uu.s.low,
.high = -uu.s.high - ((USItype) -uu.s.low > 0) } };
return w.ll;
}