1. 11 Jun, 2010 9 commits
  2. 10 Jun, 2010 31 commits
    • configure.ac: Set SYSTEMSPEC so that -allow_stack_execute is not passed to the linker for... · f8328d1d
      * configure.ac: Set SYSTEMSPEC so that -allow_stack_execute is not
      passed to the linker for -dynamiclib or -bundle on darwin.
      * configure: Regenerate.
      
      From-SVN: r160583
      Peter O'Gorman committed
    • md.texi: Document the "unspec" and "unspecv" enum names. · 0fe60a1b
      gcc/
      	* doc/md.texi: Document the "unspec" and "unspecv" enum names.
      	* Makefile.in (OBJS-common): Include insn-enums.o.
      	(insn-enums.o): New rule.
      	(simple_generated_c): Add insn-enums.c.
      	(build/genenums.o): New rule.
      	(genprogmd): Add "enums".
      	* genconstants.c (print_enum_type): Declare a C string array
      	for each enum.
      	* genenums.c: New file.
      	* print-rtl.c (print_rtx): If defined, use the "unspecv" enum
      	for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
      	UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
      
      From-SVN: r160582
      Richard Sandiford committed
    • md.texi (define_enum_attr): Document. · 8f4fe86c
      gcc/
      	* doc/md.texi (define_enum_attr): Document.
      	* rtl.def (DEFINE_ENUM_ATTR): New rtx.
      	* read-md.h (lookup_enum_type): Declare.
      	* read-md.c (lookup_enum_type): New function.
      	* genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
      	* genattrtab.c (attr_desc): Add an enum_name field.
      	(evaluate_eq_attr): Take the associated attribute as argument.
      	Get the enum prefix from the enum_name field, if defined.
      	Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
      	(simplify_test_exp): Pass attr to evaluate_eq_attr.
      	(add_attr_value): New function, split out from...
      	(gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
      	(write_test_expr): Pass attr to evaluate_eq_attr.
      	(write_attr_get): Use the enum_name as the enum tag, if defined.
      	(write_attr_valueq): Use the enum_name as a prefix, if defined.
      	(find_attr): Initialize enum_name.
      	(main): Handle DEFINE_ENUM_ATTR.
      	* gensupport.c (process_rtx): Likewise.
      	* config/mips/mips.h (mips_tune_attr): Delete.
      	* config/mips/mips.md (cpu): Use define_attr_enum.
      
      From-SVN: r160581
      Richard Sandiford committed
    • md.texi (define_c_enum, [...]): Document. · 24609606
      gcc/
      	* doc/md.texi (define_c_enum, define_enum): Document.
      	* read-md.h (md_constant): Add a parent_enum field.
      	(enum_value, enum_type): New structures.
      	(upcase_string, traverse_enum_types): Declare.
      	* read-md.c (enum_types): New variable.
      	(upcase_string, add_constant): New functions.
      	(handle_constants): Don't create the hash table here.
      	Use add_constant.
      	(traverse_md_constants): Don't check for a null md_constants.
      	(decimal_string, handle_enum, traverse_enum_types): New functions.
      	(read_md_files): Initialize md_constants and md_enums.
      	* genconstants.c (print_md_constant): Ignore info argument.
      	Only print constants that belong to no enum.
      	(print_enum_type): New function.
      	(main): Don't pass stdout to print_md_constant.  Call print_enum_type
      	for each defined enum type.
      	* config/mips/mips.md (processor): New define_enum.
      	(unspec): New define_c_enum.
      	(UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
      	(UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
      	(UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
      	(UNSPEC_MEMORY_BARRIER): Moved to sync.md.
      	(UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
      	(UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
      	(UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
      	(UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
      	(UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
      	(UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
      	(UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
      	(UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
      	(UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
      	(UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
      	(UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
      	(UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
      	(UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
      	(UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
      	(UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
      	(UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
      	(UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
      	(UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
      	(UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
      	(UNSPEC_RDDSP): Move to mips-dsp.md.
      	(UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
      	(UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
      	(UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
      	(UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
      	(UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
      	(UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
      	(UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
      	(UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
      	(UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
      	(UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
      	(UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
      	(UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
      	(UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
      	Moved to mips-dspr2.md.
      	(UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
      	(UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
      	(UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
      	(UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Moved from mips-ps-3d.md.
      	(UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
      	(UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
      	(UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
      	(UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
      	(UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
      	(UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
      	(UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
      	(UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
      	(UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
      	(UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
      	(UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
      	(UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
      	(UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
      	(UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved to mips-loongson2ef.md.
      	(cpu): Update comment.
      	* config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
      	(UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
      	(UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
      	(UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
      	* config/mips/loongson.md (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ)
      	(UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
      	(UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
      	(UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
      	(UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
      	(UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
      	(UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
      	(UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
      	(UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
      	(UNSPEC_LOONGSON_PSUBD): Moved from mips.md
      	* config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
      	(UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
      	(UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
      	(UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
      	* config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
      	(UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
      	(UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
      	(UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
      	(UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
      	(UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
      	(UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
      	(UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
      	(UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
      	(UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
      	(UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
      	(UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
      	(UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
      	(UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
      	(UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
      	(UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
      	(UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
      	(UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
      	(UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
      	(UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
      	(UNSPEC_RDDSP): Moved from mips.md.
      	* config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
      	(UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
      	(UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
      	(UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
      	(UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
      	(UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
      	(UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
      	(UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
      	(UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
      	(UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
      	(UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
      	(UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
      	(UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
      	(UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
      	* config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
      	(UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
      	(UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
      	(UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
      	(UNSPEC_SCC): Moved from mips.md.
      	* config/mips/mips.c (mips_arch, mips_tune): Change enum from
      	"processor_type" to "processor".
      	(mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
      	* config/mips/mips.h (processor_type): Delete.
      	(mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
      	"processor_type" to "processor".
      
      From-SVN: r160580
      Richard Sandiford committed
    • configure.ac (tm_include_list): Add insn-constants.h. · c513ce77
      gcc/
      	* configure.ac (tm_include_list): Add insn-constants.h.
      	* configure: Regenerate.
      	* Makefile.in (GTM_H): Move insn-constants.h here from...
      	(TM_H): ...here.
      	* mkconfig.sh: Remove special handling for insn-constants.h.
      
      From-SVN: r160579
      Richard Sandiford committed
    • Makefile.in (BUILD_RTL): Move build/read-md.o to... · 9b68b6ea
      gcc/
      	* Makefile.in (BUILD_RTL): Move build/read-md.o to...
      	(BUILD_MD): ...this new variable.
      	(simple_generated_rtl_h, simple_generated_rtl_c): New variables
      	that include the old contents of simple_generated_h and
      	simple_generated_c.
      	(simple_generated_h, simple_generated_c): Include them.  Add
      	insn-constants.h.
      	(s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
      	and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
      	Remove these dependencies from the main rule and include
      	insn-conditions.md in the command line only if it appears
      	in the dependency list.
      	(insn-constants.h, s-constants): Delete.
      	(build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
      	or gensupport.h.
      	(build/genmddeps.o): Likewise.
      	(genprogrtl): New variable that contains everything from genprogmd
      	except mddeps and constants.
      	(genprogmd): Redefine in terms of genprogrtl.  Make these programs
      	depend on $(BUILD_MD)
      	(genprog): New variable.  Make these programs depend on
      	$(BUILD_ERRORS).
      	* genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
      	(main): Use read_md_files instead of init_rtx_reader_args.
      	* genconstants.c: As for genmddeps.c.
      	* read-md.h (read_skip_construct): Declare.
      	* read-md.c (read_skip_construct): New function.
      	(handle_file): Allow a null handle_directive, skipping the
      	construct if so.
      	(parse_include): Update the comment accordingly.
      
      From-SVN: r160578
      Richard Sandiford committed
    • Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H). · 600ab3fc
      gcc/
      	* Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
      	* genmddeps.c: Include read-md.h.
      	(main): Call init_rtx_reader_args instead of init_md_reader_args.
      	* genattr.c (main): Likewise.
      	* genattrtab.c (main): Likewise.
      	* genautomata.c (main): Likewise.
      	* gencodes.c (main): Likewise.
      	* genconditions.c (main): Likewise.
      	* genconfig.c (main): Likewise.
      	* genconstants.c (main): Likewise.
      	* genemit.c (main): Likewise.
      	* genextract.c (main): Likewise.
      	* genflags.c (main): Likewise.
      	* genopinit.c (main): Likewise.
      	* genoutput.c (main): Likewise.
      	* genpeep.c (main): Likewise.
      	* genrecog.c (main): Likewise.
      	* genpreds.c (main): Likewise.
      	* gensupport.h (in_fname): Move to read-md.h.
      	(init_md_reader_args_cb): Rename to...
      	(init_rtx_reader_args_cb): ...this and return a bool.
      	(init_md_reader_args): Rename to...
      	(init_rtx_reader_args): ...this and return a bool.
      	(include_callback): Move to read-md.h.
      	* gensupport.c (in_fname, include_callback, base_dir, max_include_len)
      	(file_name_list, first_dir_md_include): Move to read-md.c
      	(first_bracket_include): Delete unused variable.
      	(last_dir_md_include): Move to read-md.c.
      	(process_include): Delete, moving code to read-md.c:handle_include.
      	(process_rtx): Don't handle INCLUDE.
      	(save_string): Delete.
      	(rtx_handle_directive): New function.
      	(init_md_reader_args_cb): Rename to...
      	(init_rtx_reader_args_cb): ...this and return a boolean success value.
      	Use read_md_args.
      	(init_md_reader_args): Rename to...
      	(init_rtx_reader_args): ...this and return a boolean success value.
      	* rtl.def (INCLUDE): Delete.
      	* rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
      	argument.
      	* read-rtl.c (read_conditions): Don't gobble ')' here.
      	(read_mapping): Likewise.
      	(read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
      	Handle top-level non-rtx constructs here rather than in read_rtx_1.
      	Store the whole queue in *X.  Remove call to init_md_reader.
      	(read_rtx_1): Rename to...
      	(read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
      	Don't handle top-level non-rtx constructs here.  Don't handle (nil)
      	here.
      	(read_nested_rtx): New function.  Handle (nil) here rather than
      	in read_rtx_code.
      	(read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
      	gobble ')' here.
      	* read-md.h (directive_handler_t): New type.
      	(in_fname, include_callback): Moved from read-md.h.
      	(read_constants, init_md_reader): Delete.
      	(read_md_files): Declare.
      	* read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
      	(last_dir_md_include_ptr, include_callback, max_include_len): Moved
      	from gensupport.c.
      	(read_constants): Rename to...
      	(handle_constants): ...this.  Don't gobble ')' here.
      	(handle_include, handle_file, handle_toplevel_file)
      	(parse_include): New functions, mostly taken from gensupport.c.
      	(init_md_reader): Subsume into...
      	(read_md_files): ...this new function.
      
      From-SVN: r160577
      Richard Sandiford committed
    • read-md.h (read_char): Increment read_md_lineno after reading '\n'. · 7f7c467f
      gcc/
      	* read-md.h (read_char): Increment read_md_lineno after reading '\n'.
      	(unread_char): Decrement read_md_lineno after putting back '\n'.
      	* read-md.c (fatal_with_file_and_line): Push back any characters
      	that we decide not to add to the context.
      	(read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
      	fatal_expected_char in cases where '/' ends a line (for example).
      	(read_name): Don't increment read_md_lineno here.
      	(read_escape): Likewise.
      	(read_quoted_string): Likewise.
      	(read_braced_string): Likewise.
      
      From-SVN: r160576
      Richard Sandiford committed
    • Makefile.in (READ_MD_H): Add $(HASHTAB_H). · 9f418533
      gcc/
      	* Makefile.in (READ_MD_H): Add $(HASHTAB_H).
      	(build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
      	* genconstants.c: Include read-md.h.
      	* read-rtl.c (md_constants): Move to read-md.c.
      	(md_name): Move to read-md.h.
      	(initialize_iterators): Use leading_string_hash instead of def_hash
      	and leading_string_eq_p instead of def_name_eq_p.
      	(read_name): Move to read-md.c.
      	(def_hash, def_name_eq_p): Delete.
      	(read_constants, traverse_md_constants): Move to read-md.c.
      	* rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
      	* read-md.h: Include hashtab.h.
      	(md_name): Moved from read-rtl.c.
      	(md_constant): Moved from read-md.h.
      	(leading_string_hash, leading_string_eq_p, read_name)
      	(read_constants, traverse_md_constants): Declare.
      	* read-md.c (md_constants): Moved from read-rtl.c.
      	(leading_string_hash, leading_string_eq_p): New functions.
      	(read_name, read_constants, traverse_md_constants): Moved from
      	read-rtl.c.
      
      From-SVN: r160575
      Richard Sandiford committed
    • read-rtl.c (md_name): New structure. · 82f8e3fd
      gcc/
      	* read-rtl.c (md_name): New structure.
      	(read_name): Take an md_name instead of a buffer pointer.
      	Use the "string" field instead of strcpy when expanding constants.
      	(read_constants): Remove the tmp_char argument.  Update the calls
      	to read_name, using two local name buffers instead of the tmp_char
      	argument.  Merge the constant-creation code.
      	(read_conditions): Remove the tmp_char argument.  Update the calls
      	to read_name, using a local name buffer instead of the tmp_char
      	argument.
      	(read_mapping): Replace tmp_char variable with a local name buffer.
      	Update the calls to read_name.
      	(read_rtx_1): Likewise.  Update the calls to read_constants and
      	read_conditions.
      
      From-SVN: r160574
      Richard Sandiford committed
    • Makefile.in (build/read-md.o): Depend on errors.h. · bb933490
      gcc/
      	* Makefile.in (build/read-md.o): Depend on errors.h.
      	* read-md.h (error_with_line): Declare.
      	* read-md.c: Include errors.h.
      	(message_with_line_1): New function, extracted from...
      	(message_with_line): ...here.
      	(error_with_line): New function.
      	* genattrtab.c: If a call to message_with_line is followed by
      	"have_error = 1;", replace both statements with a call to
      	error_with_line.
      	* genoutput.c: Likewise.
      	* genpreds.c: Likewise.
      	* genrecog.c: If a call to message_with_line is followed by
      	"error_count++;", replace both statements with a call to
      	error_with_line.
      	(errorcount): Delete.
      	(main): Don't check it.
      	* gensupport.c: If a call to message_with_line is followed by
      	"errors = 1;", replace both statements with a call to error_with_line.
      	(errors): Delete.
      	(process_define_cond_exec): Check have_error instead of errors.
      	(init_md_reader_args_cb): Likewise.  Don't set errors.
      
      From-SVN: r160573
      Richard Sandiford committed
    • read-md.h (read_md_file): Declare. · c5e88b39
      gcc/
      	* read-md.h (read_md_file): Declare.
      	(read_char, unread_char): New functions.
      	(fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
      	(read_quoted_string, read_string): Remove FILE * argument.
      	* read-md.c (read_md_file): New variable.
      	(read_md_filename, read_md_lineno): Update comments and remove
      	unnecessary initialization.
      	(fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
      	(read_escape, read_quoted_string, read_braced_string, read_string):
      	Remove FILE * argument.  Update calls accordingly, using read_char
      	and unread_char instead of getc and ungetc.
      	* rtl.h (read_rtx): Remove FILE * argument.
      	* read-rtl.c (iterator_group): Remove FILE * argument from
      	"find_builtin".
      	(iterator_traverse_data): Remove "infile" field.
      	(find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
      	(add_mapping, read_name, read_constants, read_conditions)
      	(validate_const_int, find_iterator, read_mapping, check_code_iterator)
      	(read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
      	Remove file arguments from all calls, using read_char and unread_char
      	instead of getc and ungetc.
      	* gensupport.c (process_include): Preserve read_md_file around
      	the include.  Set read_md_file to the handle of the included file.
      	Update call to read_rtx.
      	(init_md_reader_args_cb): Set read_md_file to the handle of the file
      	and remove local FILE *.  Update calls to read_rtx.
      
      From-SVN: r160572
      Richard Sandiford committed
    • read-md.h (read_rtx_lineno): Rename to... · d2a3ce4e
      gcc/
      	* read-md.h (read_rtx_lineno): Rename to...
      	(read_md_lineno): ...this.
      	(read_rtx_filename): Rename to...
      	(read_md_filename): ...this.
      	(copy_rtx_ptr_loc): Rename to...
      	(copy_md_ptr_loc): ...this.
      	(print_rtx_ptr_loc): Rename to...
      	(print_md_ptr_loc): ...this.
      	* read-md.c: Likewise.  Update references after renaming.
      	(string_obstack): Replace RTL with MD in comment.
      	(set_rtx_ptr_loc): Rename to...
      	(set_md_ptr_loc): ...this.
      	(get_rtx_ptr_loc): Rename to...
      	(get_md_ptr_loc): ...this.
      	* genconditions.c: Update references after renaming.
      	* genemit.c: Likewise.
      	* genoutput.c: Likewise.
      	* genpreds.c: Likewise.
      	* gensupport.c: Likewise.
      	* read-rtl.c: Likewise.
      
      From-SVN: r160571
      Richard Sandiford committed
    • Makefile.in (READ_MD_H): New variable. · 10692477
      gcc/
      	* Makefile.in (READ_MD_H): New variable.
      	(BUILD_RTL): Add build/read-md.o.
      	(lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
      	(build/gensupport.o, build/read-rtl.o, build/genattr.o)
      	(build/genattrtab.o, build/genconditions.o build/genemit.o)
      	(build/genextract.o, build/genflags.o, build/genoutput.o)
      	(build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
      	(build/read-md.o): New rule.
      	* defaults.h (obstack_chunk_alloc, obstack_chunk_free)
      	(OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
      	* coretypes.h: ...here.
      	* lto-wrapper.c: Include coretypes.h instead of defaults.h.
      	* pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
      	* genattr.c: Include read-md.h.
      	* genattrtab.c: Likewise.
      	* genconditions.c: Likewise.
      	* genemit.c: Likewise.
      	* genextract.c: Likewise.
      	* genflags.c: Likewise.
      	* genoutput.c: Likewise.
      	* genpreds.c: Likewise.
      	* genrecog.c: Likewise.
      	* rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
      	(join_c_conditions, print_c_condition, read_rtx_filename)
      	(read_rtx_lineno): Move to read-md.h.
      	* read-rtl.c: Include read-md.h.
      	(ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
      	(joined_conditions, joined_conditions_obstack, read_rtx_lineno)
      	(read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
      	(leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
      	(copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
      	(print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
      	(read_braced_string, read_string): Move to read-md.c.
      	(read_rtx): Move some initialization to init_md_reader and call
      	init_md_reader here.
      	* gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
      	Move to read-md.h.
      	* gensupport.c: Include read-md.h.
      	(message_with_line, n_comma_elts, scan_comma_elt): Move to
      	read-md.c.
      	* read-md.h, read-md.c: New files.
      
      From-SVN: r160570
      Richard Sandiford committed
    • re PR fortran/38273 (Cray pointers: Document that pointers cannot be function return values) · f14b9067
      	PR fortran/38273
      	* gfortran.texi: Document that Cray pointers cannot be function
      	results.
      
      	PR fortran/36234
      	* gfortran.texi: Document lack of support for syntax
      	"complex FUNCTION name*16()", and existence of alternative
      	legacy syntax "complex*16 FUNCTION name()".
      
      From-SVN: r160569
      Francois-Xavier Coudert committed
    • re PR fortran/43032 (FLUSH: Document that it does not call fsync() but fflush()) · da12c997
      	PR fortran/43032
      	* intrinsic.texi (FLUSH): Note the difference between FLUSH and
      	POSIX's fsync(), and how to call the latter from Fortran code.
      
      From-SVN: r160568
      Francois-Xavier Coudert committed
    • re PR fortran/44457 (Missing ASYNCHRONOUS constraint check) · 84efddb2
      gcc/fortran/:
      2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/44457
      	* interface.c (compare_actual_formal): Reject actual arguments with
      	array subscript passed to ASYNCHRONOUS dummys.
      
      gcc/testsuite/:
      2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
      
      	PR fortran/44457
      	* gfortran.dg/asynchronous_3.f03
      
      From-SVN: r160567
      Daniel Franke committed
    • Fix PR44185: prefetch test failures. · da604ebd
      2010-06-10  Changpeng Fang  <changpeng.fang@amd.com>
      
      	PR middle-end/44185
      	* gcc.dg/tree-ssa/prefetch-7.c: take the loops that will generate
      	non-temporal stores out of the tests to form new test cases.  As a
      	result, no non-temporal store should be generated in this case.
      
      	* gcc.dg/tree-ssa/prefetch-8.c: New.  Test from original
      	prefetch-7.c that generate one non-temporal store.
      
      	* gcc.dg/tree-ssa/prefetch-9.c: New.  Test from original
      	prefetch-7.c that generate one non-temporal store and one
      	one-temporal prefetch.
      
      From-SVN: r160566
      Changpeng Fang committed
    • moxie.h (FUNCTION_VALUE, [...]): Remove macros. · feab9982
      	* config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
      	LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
      	* config/moxie/moxie-protos.h (moxie_function_value): Remove.
      	* config/moxie/moxie.c (moxie_function_value): Make static.
      	(moxie_libcall_value, moxie_function_value_regno_p): New functions.
      	(TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
      
      From-SVN: r160565
      Anatoly Sokolov committed
    • Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies. · 567a4beb
      2010-06-10  Martin Jambor  <mjambor@suse.cz>
      
      	* Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
      	* dbgcnt.def (tree_sra): New counter.
      	* tree-sra.c: Include dbgcnt.h.
      	(gate_intra_sra): Check tree_sra debug counter.
      
      From-SVN: r160562
      Martin Jambor committed
    • re PR tree-optimization/44258 (possible SRA wrong-code generation.) · 591d4f4a
      2010-06-10  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/44258
      	* tree-sra.c (build_access_subtree): Return false iff there is a
      	partial overlap.
      	(build_access_trees): Likewise.
      	(analyze_all_variable_accesses): Disqualify candidates if
      	build_access_trees returns true for them.
      
      	* testsuite/gcc.dg/tree-ssa/pr44258.c: New test.
      
      From-SVN: r160561
      Martin Jambor committed
    • Makefile.def (configure-gcc): Depend on all-libelf. · c63a4676
      * Makefile.def (configure-gcc): Depend on all-libelf.
      * Makefile.in: Rebuild.
      
      From-SVN: r160560
      Alexandre Oliva committed
    • re PR debug/41371 (var-tracking is slow and memory hungry) · b933b33a
      PR debug/41371
      * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
      tail-recurse into canonical node.  Fast-forward over
      non-canonical VALUEs.
      
      From-SVN: r160559
      Alexandre Oliva committed
    • override.m4: Remove obsolete (<2.64) definitions. · 0c179631
      2010-06-10  Paolo Bonzini  <bonzini@gnu.org>
      
      	* override.m4: Remove obsolete (<2.64) definitions.
      
      From-SVN: r160558
      Paolo Bonzini committed
    • Revert the part of r160394 to fix bootstap with --with-arch=atom. · ff534e89
      2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR boostrap/44470
      	* config/i386/i386.md (*add<mode>_1): Revert revision 160394.
      	(*addsi_1_zext) <TYPE_LEA>: Likewise.
      	(add lea splitter): Likewise.
      	(add_zext lea splitter): Likewise.
      
      From-SVN: r160557
      H.J. Lu committed
    • re PR other/43838 (Incorrect output from abi::__cxa_demangle) · 9c4d7e52
      	PR other/43838
      	* cp-demangle.c (struct d_print_info): Add flush_count field.
      	(d_print_init): Initialize it to 0.
      	(d_print_flush): Increment it.
      	(d_print_comp): If needed flush before appending ", ".  Only
      	decrement dpi->len if no flushes happened during the recursive
      	call.
      	* testsuite/demangle-expected: Add a test for this.
      
      From-SVN: r160554
      Jakub Jelinek committed
    • common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++. · 1cb42611
      gcc:
      	* common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
      
      gcc/c-family:
      	* c-opts.c (c_common_handle_option): Don't handle
      	OPT_fshow_column.
      
      libcpp:
      	* include/cpplib.h (struct cpp_options): Remove show_column.
      	* init.c (cpp_create_reader, post_options): Don't set show_column.
      
      From-SVN: r160553
      Joseph Myers committed
    • re PR libstdc++/43918 (gcc 4.5.0 is failing for i586-pc-msdosdjgpp) · a51d1999
      2010-06-10  Suresh Gumpula  <suresh.gumpula@amd.com>
      
      	PR libstdc++/43918
      	* config/os/djgpp/error_constants.h: New.
      	* configure.host: Use it.
      
      From-SVN: r160551
      Suresh Gumpula committed
    • re PR fortran/38936 ([F03] ASSOCIATE construct / improved SELECT TYPE (a=>expr)) · 03af1e4c
      2010-06-10  Daniel Kraft  <d@domob.eu>
      
      	PR fortran/38936
      	* gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
      	(struct gfc_symbol): New field `assoc'.
      	(struct gfc_association_list): New struct.
      	(struct gfc_code): New struct `block' in union, move `ns' there
      	and add association list.
      	(gfc_free_association_list): New method.
      	(gfc_has_vector_subscript): Made public;
      	* match.h (gfc_match_associate): New method.
      	* parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
      	* decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
      	* interface.c (gfc_has_vector_subscript): Made public.
      	(compare_actual_formal): Rename `has_vector_subscript' accordingly.
      	* match.c (gfc_match_associate): New method.
      	(gfc_match_select_type): Change reference to gfc_code's `ns' field.
      	* primary.c (match_variable): Don't allow names associated to expr here.
      	* parse.c (decode_statement): Try matching ASSOCIATE statement.
      	(case_exec_markers, case_end): Add ASSOCIATE statement.
      	(gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
      	(parse_associate): New method.
      	(parse_executable): Handle ST_ASSOCIATE.
      	(parse_block_construct): Change reference to gfc_code's `ns' field.
      	* resolve.c (resolve_select_type): Ditto.
      	(resolve_code): Ditto.
      	(resolve_block_construct): Ditto and add comment.
      	(resolve_select_type): Set association list in generated BLOCK to NULL.
      	(resolve_symbol): Resolve associate names.
      	* st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
      	and free association list.
      	(gfc_free_association_list): New method.
      	* symbol.c (gfc_new_symbol): NULL new field `assoc'.
      	* trans-stmt.c (gfc_trans_block_construct): Change reference to
      	gfc_code's `ns' field.
      
      2010-06-10  Daniel Kraft  <d@domob.eu>
      
      	PR fortran/38936
      	* gfortran.dg/associate_1.f03: New test.
      	* gfortran.dg/associate_2.f95: New test.
      	* gfortran.dg/associate_3.f03: New test.
      	* gfortran.dg/associate_4.f08: New test.
      
      From-SVN: r160550
      Daniel Kraft committed
    • df-problems.c (df_live_problem_data): Add live_bitmaps. · 29aba2bb
      
      	* df-problems.c (df_live_problem_data): Add live_bitmaps.
      	(df_live_alloc): Initialize problem data and live_osbtacks.
      	(df_live_finalize): Remove obstack, problem data; do not
      	clear all bitmaps.
      	(df_live_top_dump, df_live_bottom_dump): Do not dump old
      	data when not allocated.
      	(df_live_verify_solution_start): Do not allocate problem data.
      	(df_live_verify_solution_end): Check if out is allocated.
      	(struct df_md_problem_data): New structure.
      	(df_md_alloc): Allocate problem data.
      	(df_md_free): Free problem data; do not clear bitmaps.
      
      From-SVN: r160549
      Jan Hubicka committed
    • tuple (tuple(const tuple&)): Define explicitly-defaulted. · d247d662
      2010-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/std/tuple (tuple(const tuple&)): Define explicitly-defaulted.
      	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Tweak dg-warning
      	line number.
      
      From-SVN: r160539
      Paolo Carlini committed