This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;
}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]