X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=2af7e6ba212a6ddfd0beb7b6b38d5bdfa8dcd4c8;hb=8d056442962db9bd1037f3114f2d8e4b8ead2adf;hp=c40d0a168b0a0b7e4f9319d51895b5b3c3f2ee8e;hpb=ac0640e5d6abc7229a7f88c18c415f4c6bcb8764;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c40d0a168b0..2af7e6ba212 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1114 @@ +2010-06-18 Alan Modra + + * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty. + +2010-06-17 John David Anglin + + PR target/43740 + config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag for + SET source operand from SET destination operand. + +2010-06-17 Bernd Schmidt + + PR rtl-optimization/39871 + * reload1.c (init_eliminable_invariants): For flag_pic, disable + equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P. + (function_invariant_p): Rule out a plus of frame or arg pointer with + a SYMBOL_REF. + * ira.c (find_reg_equiv_invariant_const): Likewise. + +2010-06-17 Gunther Nikl + + * config/rs6000/rs6000.c (print_operand) <'K'>: Also use + print_operand_address and puts to output the operand for CONST. + +2010-06-17 Jakub Jelinek + + PR debug/44572 + * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue + hook. + +2010-06-17 Nathan Froyd + + * v850-protos.h (print_operand): Delete. + (print_operand_address): Delete. + * v850.h (PRINT_OPERAND): Delete. + (PRINT_OPERAND_PUNCT_VALID_P): Delete. + (PRINT_OPERAND_ADDRESS): Delete. + * v850.c (print_operand_address): Rename to... + (v850_print_operand_address): ...this. Make static. Call + v850_print_operand. + (print_operand): Rename to... + (v850_print_operand): ...this. Make static. Call + v850_print_operand_address. + (v850_print_operand_punct_valid_p): New function. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. + (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. + +2010-06-17 Nathan Froyd + + * config/sh/sh-protos.h (print_operand): Delete. + (print_operand_address): Delete. + * config/sh/sh.h (PRINT_OPERAND): Delete. + (PRINT_OPERAND_PUNCT_VALID_P): Delete. + (PRINT_OPERAND_ADDRESS): Delete. + * config/sh/sh.c (sh_print_operand_address): Make static. + (sh_print_operand): Make static. Call sh_print_operand_address + and sh_print_operand. + (sh_print_operand_punct_valid_p): New function. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. + (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. + +2010-06-17 Nathan Froyd + + * config/mcore/mcore-protos.h (mcore_print_operand): Delete. + (mcore_print_operand_address): Delete. + * config/mcore/mcore.h (PRINT_OPERAND): Delete. + (PRINT_OPERAND_PUNCT_VALID_P): Delete. + (PRINT_OPERAND_ADDRESS): Delete. + * config/mcore/mcore.c (mcore_print_operand_address): Make static. + (mcore_print_operand): Make static. + (mcore_print_operand_punct_valid_p): New function. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define + (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. + +2010-06-17 Nathan Froyd + + * config/m68hc11/m68hc11-protos.h (print_operand): Delete. + (print_operand_address): Delete. + * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete. + (PRINT_OPERAND_ADDRESS): Delete. + * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make + static. + (m68hc11_print_operand): Make static. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. + +2010-06-17 Nathan Froyd + + * config/m32r/m32r-protos.h (m32r_print_operand): Delete. + (m32r_print_operand_address): Delete. + * config/m32r/m32r.h (m32r_punct_chars): Delete. + (PRINT_OPERAND): Delete. + (PRINT_OPERAND_PUNCT_VALID_P): Delete. + (PRINT_OPERAND_ADDRESS): Delete. + * config/m32r/m32r.c (m32r_punct_chars): Make static. + (m32r_print_operand_address): Make static. + (m32r_print_operand): Make static. + (m32r_print_operand_punct_valid_p): New function. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): + (TARGET_PRINT_OPERAND_ADDRESS): Define. + +2010-06-17 Nathan Froyd + + * config/iq2000/iq2000-protos.h (print_operand): Delete. + (print_operand_address): Delete. + * config/iq2000/iq2000.h (PRINT_OPERAND): Delete. + (PRINT_OPERAND_PUNCT_VALID_P): Delete. + (PRINT_OPERAND_ADDRESS): Delete. + (iq2000_print_operand_punct): Delete. + * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static. + (iq2000_print_operand_address): Make static. + (iq2000_print_operand): Make static. + (iq2000_print_operand_punct_valid_p): New function. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): + (TARGET_PRINT_OPERAND_ADDRESS): Define. + +2010-06-17 Nathan Froyd + + * config/frv/frv-protos.h (frv_print_operand): Delete. + (frv_print_operand_address): Delete. + * config/frv/frv.h (PRINT_OPERAND): Delete. + (PRINT_OPERAND_PUNCT_VALID_P): Delete. + (PRINT_OPERAND_ADDRESS): Delete. + * config/frv/frv.c (frv_print_operand_address): Make static. + (frv_print_operand): Make static. + (frv_print_operand_punct_valid_p): New function. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): + (TARGET_PRINT_OPERAND_ADDRESS): Define. + +2010-06-17 Nathan Froyd + + * tree.h (vec_member): Declare. + * tree.c (vec_member): Define. + +2010-06-17 Richard Guenther + + * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove. + * tree-flow.h (array_ref_contains_indirect_ref): Likewise. + +2010-06-17 Richard Guenther + + * tree-inline.c (declare_return_variable): Remove bogus code. + +2010-06-17 Richard Guenther + + * gimplify.c (gimplify_bind_expr): Always promote complex + and vector variables to registers if possible. + +2010-06-17 Richard Guenther + + * expr.c (get_inner_reference): Use double_int for bit_offset + calculation. + +2010-06-16 DJ Delorie + + * common.opt (-fstrict-volatile-bitfields): new. + * doc/invoke.texi: Document it. + * fold-const.c (optimize_bit_field_compare): For volatile + bitfields, use the field's type to determine the mode, not the + field's size. + * expr.c (expand_assignment): Likewise. + (get_inner_reference): Likewise. + (expand_expr_real_1): Likewise. + * expmed.c (store_fixed_bit_field): Likewise. + (extract_bit_field_1): Likewise. + (extract_fixed_bit_field): Likewise. + +2010-06-16 Richard Guenther + + * tree-inline.c (remap_gimple_op_r): Recurse using + remap_gimple_op_r. + +2010-06-16 Douglas B Rupp + + * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove. + (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro. + * dbxout.c (gcc_debug_hooks): New entry begin_epilogue. + * debug.c: Likewise. + * sdbout.c: Likewise. + * vmsdbgout.c: Likewise. + * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare. + * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document. + * dwarf2asm.c (dw2_asm_output_vms_delta): New function. + (ASM_OUTPUT_DWARF_VMS_DELTA): Call it. + * dwarf2asm.h (dw2_asm_output_vms_delta): Declare. + * dwarf2out.c (dw_fde_struct): New fields + dw_fde_vms_{end,begin}_prologue. + (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros. + (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above. + (dwarf2out_vms_end_prologue): New function. + (dwarf2out_vms_begin_epilogue): New function. + (dw_val_struct): New value dw_val_class_vms_delta. + (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue, + begin_epilogue for VMS. + (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare + new static functions. + (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}. + (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New + static functions. + (print_die): New case dw_val_class_vms_delta. + (attr_checksum): Likewise. + (same_dw_val_p: Likewise. + (size_of_die): Likewise. + (value_format): Likewise. + (output_die): Likewise. + (gen_subprogram_die): Call add_AT_vms_delta on VMS. + (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue + * dwarf2out.h (dwarf2out_begin_epilogue): Rename to + dwarf2out_cfi_begin_epilogue + * final.c (final_scan_insn): Likewise. Call begin_epilogue. + +2010-06-16 Nathan Froyd + + * config/cris/cris-protos.h (cris_print_operand): Delete. + (cris_print_operand_address): Delete. + * config/cris/cris.h (PRINT_OPERAND): Delete. + (PRINT_OPERAND_PUNCT_VALID_P): Delete. + (PRINT_OPERAND_ADDRESS): Delete. + * config/cris/cris.c (cris_print_operand_address): Make static. + (cris_print_operand): Make static. + (cris_print_operand_punct_valid_p): New function. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): + (TARGET_PRINT_OPERAND_ADDRESS): Define. + +2010-06-16 Nathan Froyd + + * config/arm/arm-protos.h (arm_print_operand): Delete. + (arm_print_operand_address): Delete. + * config/arm/arm.h (PRINT_OPERAND): Delete. + (PRINT_OPERAND_PUNCT_VALID_P): Delete. + (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS): + (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to... + * config/arm/arm.c (arm_print_operand_address): ...here. New + function. + (arm_print_operand): Make static. + (arm_print_operand_punct_valid_p): New function. + (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): + (TARGET_PRINT_OPERAND_ADDRESS): Define. + +2010-06-16 Nick Clifton + + * config/rx/constraints.md (NEGint4): New constraint. + * config/rx/rx.md (attr cc): Add set_zsc. + (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been + initialised. + (cmpsf): Likewise. + (call_internal): Clobber the cc0 register. + (call_value_internal): Likewise. + (cstoresi4): Likewise. + (movsieq): Likewise. + (movsine): Likewise. + (addsi3): Add alternative to handle small negative constants. + (sunsi3): Likewise. + (addsi3): Do not set the O bit in the cc0 register. + (adddi3): Likewise. + (subsi3): Likewise. + (subdi3): Likewise. + (andsi3): Reorder alternatives to prefer shorter forms. + (mulsi3): Likewise. + (iorsi3): Likewise. + (negsi2): Note that the cc0 flags are set. + (rotlsi3): Note that only the Z and S bits are set in cc0. + (lshrsi3): Likewise. + (ashlsi3): Likewise. + (subsf3): Use %Q for the MEM operand. + (fix_truncsfsi2): Likewise. + (floatsisf2): Likewise. + (bitset): Remove early clobber from destination. + (bitset_in_memory): Likewise. + (lrintsf2): Clobber the cc0 register. + * config/rx/rx.c (rx_notice_update_cc): + Handle CC_SET_ZSC. + (rx_print_operand): Handle %N. + +2010-06-16 Jan Hubicka + + * df-core.c (df_compact_blocks): Free problem_temps vector. + +2010-06-16 Martin Jambor + + PR tree-optimization/43905 + * tree-sra.c: Include tree-inline.h. + (create_abstract_origin): Removed. + (modify_function): Version the call graph node instead of creating + abstract origins and dealing with same_body aliases. + * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the + function is versionable. + * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies. + +2010-06-16 Maxim Kuvyrkov + + * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define. + (CHOOSE_DYNAMIC_LINKER): Update. + +2010-06-15 Uros Bizjak + + * config/i386/i386.c (*prefetch_sse_): Macroize insn from + *prefetch_sse and *prefetch_sse_rex using P mode iterator. + (*prefetch_3dnow_): Ditto from *prefetch_3dnow and + *prefetch_3dnow_rex. + +2010-06-15 Anatoly Sokolov + + * target.h (struct asm_out):Add declare_constant_name field. + * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define. + (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME. + * output.h (default_asm_declare_constant_name): Declare. + (assemble_label): Update prototype. + * varasm.c (assemble_constant_contents): Use + targetm.asm_out.declare_constant_name target hook. + (assemble_label): Add 'file' argument. + (default_asm_declare_constant_name): New function. + * system.h (ASM_DECLARE_CONSTANT_NAME): Poison. + * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove. + (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it. + + * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare. + * config/darwin.c (darwin_asm_declare_constant_name): New function. + (machopic_output_indirection): Update assemble_label argument list. + * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove. + (TARGET_ASM_DECLARE_CONSTANT_NAME): Define. + +2010-06-15 Sebastian Pop + + PR middle-end/44391 + * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use + size_one_node for pointer types. Do not call gmp_cst_to_tree. + +2010-06-15 Richard Guenther + + * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants. + +2010-06-15 Paul Brook + + * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1 + hard-float ABI. + +2010-06-15 Alexandre Oliva + + * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we + don't get a vector type for output. + +2010-06-15 Jakub Jelinek + + PR fortran/44536 + * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl. + * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define. + (LANG_HOOKS_DECLS): Add it. + * gimplify.c (omp_notice_variable): Call + lang_hooks.decls.omp_report_decl. + +2010-06-15 Martin Jambor + + PR lto/44464 + * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name + on the newly dead SSA name. + +2010-06-15 Alan Modra + + * doc/invoke.texi: Add mcmodel to powerpc options. + * configure.ac: Add HAVE_LD_LARGE_TOC test. + * configure: Regenerate. + * config.in: Regenerate. + * config/rs6000/linux64.opt (mcmodel): New. + * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define. + (TARGET_CMODEL, SET_CMODEL): Define. + (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice, + select CMODEL_MEDIUM default. + * config/rs6000/rs6000.h (enum rs6000_cmodel): New. + (TARGET_CMODEL): Define default. + * config/rs6000/rs6000.c (cmodel): New variable. + (rs6000_explicit_options): Add cmodel field. + (rs6000_handle_option): Handle -mcmodel. + (create_TOC_reference): Add largetoc_reg param. Generate high, + lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers. + (rs6000_delegitimize_address): Recognise new toc reference rtl + and minimal-toc rtl. + (rs6000_legitimize_reload_address): Handle new toc references. + (print_operand_address): Handle legitimate_constant_pool_address_p + match before lo_sum. + (rs6000_eliminate_indexed_memrefs): Tidy. + (rs6000_emit_move): Tweak threshold for inlining constants. + Keep rs6000_emit_allocate_stack large stack frame offsets + loaded into r0 inline. + (rs6000_generate_compare ): One more clobber. + (tocrel_base, tocrel_offset): New variables. + (toc_relative_expr_p): Set them here. + (print_operand_address): Skip over any offset on constant pool address. + (rs6000_output_addr_const_extra): Print tocrel_offset before @toc. + (rs6000_mode_dependent_address ): False for new toc refs. + (offsettable_ok_by_alignment): New function. + (rs6000_emit_move): Address suitably aligned local symbol_refs + relative to the toc pointer for -mcmodel=medium. + (legitimate_constant_pool_address_p): Make param const_rtx. Add + strict param. Allow lo_sum version of addressing. Verify reg + used for -mminimal-toc and -mcmodel != small. Update all callers. + * config/rs6000/constraints.md: Update for above change. + * config/rs6000/predicates.md: Likewise. + * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large + code. + (tls_gd): Split for -mcmodel=medium/large. + (tls_gd_high, tls_gd_low): New. + (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly. + (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly. + (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly. + (largetoc_high, largetoc_low): New. + (cmptf_internal2): Add clobber. + * config/rs6000/rs6000-protos.h: Update. + +2010-06-14 Changpeng Fang + + * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return + true if no prefetch is going to be generated for a given group. + (estimate_prefetch_count): Use prefetch_mod and unroll_factor to + estimate the prefetch_count. + (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the + prefetch count by considering the unroll_factor and prefetch_mod + for is_loop_prefetching_profitable. + +2010-06-14 Andreas Schwab + + * config/m68k/m68k.c (m68k_delegitimize_address): Don't do + anything if the argument is not a MEM. + +2010-06-14 Alexandre Oliva + + PR debug/43650 + PR debug/44181 + PR debug/44247 + * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip + debug stmts. + (canonicalize_loop_ivs): Likewise. + +2010-06-14 Alexandre Oliva + + PR debug/43656 + * haifa-sched.c (setup_insn_reg_pressure_info, + update_register_pressure): Reject debug insns. + (ready_sort): Don't setup reg pressure for debug insns. + (schedule_insn): Don't update reg pressure for debug insns. + +2010-06-14 Richard Guenther + + * lto-streamer.c (cached_bp): Remove. + (bitpack_delete): Likewise. + (bitpack_create): Likewise. + (bp_get_next_word): Likewise. + (bp_pack_value, bp_unpack_value): Move ... + * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here. + Re-implement. + (struct bitpack_d): Likewise. + (bitpack_create, lto_output_bitpack, lto_input_bitpack): + New inline functions. + * lto-streamer-out.c (lto_output_bitpack): Remove. + (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking. + (pack_value_fields): Adjust. + (lto_write_tree): Likewise. + (output_gimple_stmt): Likewise. + (output_function): Likewise. + * lto-streamer-in.c (input_gimple_stmt): Adjust. + (input_function): Likewise. + (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking. + (lto_input_bitpack): Remove. + (lto_materialize_tree): Adjust. + * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency. + * lto-cgraph.c (lto_output_edge): Adjust. + (lto_output_node): Likewise. + (lto_output_varpool_node): Likewise. + (lto_output_ref): Likewise. + (input_node): Likewise. + (input_varpool_node): Likewise. + (input_ref): Likewise. + (input_edge): Likewise. + (output_node_opt_summary): Likewise. + (input_node_opt_summary): Likewise. + * ipa-pure-const.c (pure_const_write_summary): Likewise. + (pure_const_read_summary): Likewise. + * ipa-prop.c (ipa_write_indirect_edge_info): Likewise. + (ipa_read_indirect_edge_info): Likewise. + (ipa_write_node_info): Likewise. + (ipa_read_node_info): Likewise. + +2010-06-14 H.J. Lu + + PR target/44534 + * config/i386/sse.md (vec_extract_lo_): Replace 0x1 with 0x0. + (vec_extract_lo_v16hi): Likewise. + (vec_extract_lo_v32qi): Likewise. + +2010-06-14 Jakub Jelinek + + PR bootstrap/44426 + * tree.h (build_call_expr): Don't define as vararg macro, instead + add a prototype. + * builtins.c (build_call_nofold): Remove. + (expand_builtin_int_roundingfn, expand_builtin_pow, + expand_builtin_mempcpy_args, expand_builtin_stpcpy, + expand_builtin_memset_args, expand_builtin_strcmp, + expand_builtin_strncmp, expand_builtin_memory_chk): Use + build_call_nofold_loc instead of build_call_nofold. + (build_call_expr): New function. + + PR tree-optimization/44508 + * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument. + * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE, + don't eliminate trivially dead stmts. + * tree-vrp.c (vrp_finalize): Pass false as last argument + to substitute_and_fold. + * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument + to substitute_and_fold. + * tree-ssa-ccp.c (ccp_finalize): Likewise. + + PR bootstrap/44509 + * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c. + * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h. + (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers. + (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use + ggc_strdup instead of xstrdup. + +2010-06-14 Ira Rosen + + PR tree-optimization/44507 + * tree-vect-loop.c (get_initial_def_for_reduction): Use -1 + to build initial vector for BIT_AND_EXPR. + * tree-vect-slp.c (vect_get_constant_vectors): Likewise. + +2010-06-14 Jakub Jelinek + + * config/s390/s390.md (*mov_64 DD_DF, mov): Properly + adjust z10prop set_attr. + +2010-06-13 Jan Hubicka + + * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl, + bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior, + bitmap_ior_into, bitmap_xor, bitmap_xor_into, + bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal + datastructure checks into checking asserts. + * rtlanal.c (find_reg_note): Use gcc_checking_assert. + * tree-ssa-sccvn.c (VN_INFO): Likewise. + * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref, + df_ref_create_structure): Likewise. + * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc, + pool_free): Use gcc_checking_assert. + * alias.c (get_alias_set): Likewise. + * var-tracking.c (variable_htab_free, shared_hash_copy, + canonicalize_values_mark, variable_merge_over_cur): Likewise. + * lto-streamer.c (bp_unpack_value): Likewise. + +2010-06-13 Richard Guenther + + * lto-streamer-in.c (lto_input_ts_type_tree_pointers): + Do not stream but initialize TYPE_CANONICAL to NULL. + (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL. + * gimple.c (gimple_types_compatible_p): Disregard + TYPE_STRUCTURAL_EQUALITY_P. + (gimple_register_type): Use TYPE_CANONICAL as cache. + * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL + before registering common types. + * config/i386/i386.c (ix86_function_arg_boundary): Do not + use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT. + * tree.h (TYPE_CANONICAL): Clarify documentation. + +2010-06-13 Anatoly Sokolov + + * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE, + LIBCALL_VALUE): Remove macros. + * config/ia64/ia64-protos.h (ia64_function_value): Remove. + * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, + TARGET_FUNCTION_VALUE_REGNO_P): Define. + (ia64_libcall_value, ia64_function_value_regno_p): New functions. + (ia64_function_value): Make static. Handle receiving the function + type in 'fn_decl_or_type' argunent. Add 'outgoing' argument. + +2010-06-12 Jan Hubicka + + * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p + at correct place. + +2010-06-12 Bernd Schmidt + + * config/arm/arm.c (thumb2_reorg): Fix errors in previous change. + +2010-06-12 Jan Hubicka + + * df-core.c (df_clear_bb_info): New function. + (df_set_blocks): bb_info is always allocated. + (df_get_bb_info): Use block_info_elt_size. + (df_set_bb_info): Likewise. + (df_compact_blocks): Update for new block_info. + (grow_bb_info): New function. + * df-problems.c (df_grow_bb_info): Move to df-core.c + (df_rd_set_bb_info): Remove. + (df_rd_free_bb_info): Do not free block pool. + (df_rd_alloc): Do not create pool, use check for + obstack presence instead of NULL pointer for new blocks. + (df_rd_free): DO not free alloc pool; clear block_info. + (problem_RD): Add size of block info structure. + (df_lr_set_bb_info): Remove. + (df_lr_free_bb_info): Do not free block pool. + (df_lr_alloc): Do not create pool, use check for + obstack presence instead of NULL pointer for new blocks. + (df_lr_free): DO not free alloc pool; clear block_info. + (problem_LR): Add size of block info structure. + (df_live_set_bb_info): Remove. + (df_live_free_bb_info): Do not free block pool. + (df_live_alloc): Do not create pool, use check for + obstack presence instead of NULL pointer for new blocks. + (df_live_free): DO not free alloc pool; clear block_info. + (problem_LIVE): Add size of block info structure. + (problem_CHAIN): Add size of block info structure. + (df_byte_lr_set_bb_info): Remove. + (df_byte_lr_free_bb_info): Do not free block pool. + (df_byte_lr_alloc): Do not create pool, use check for + obstack presence instead of NULL pointer for new blocks. + (df_byte_lr_free): DO not free alloc pool; clear block_info. + (problem_BYTE_LR): Add size of block info structure. + (problem_NOTE): Add size of block info structure. + (df_byte_MD_set_bb_info): Remove. + (df_byte_MD_free_bb_info): Do not free block pool. + (df_byte_MD_alloc): Do not create pool, use check for + obstack presence instead of NULL pointer for new blocks. + (df_byte_MD_free): DO not free alloc pool; clear block_info. + (problem_BD): Add size of block info structure. + * df-scan.c (df_scan_free_internal): Free block pool. + (df_scan_set_bb_info): Remove. + (df_scan_free_bb_info): Check for artificial_defs instead + of bb_info being non-NULL. + (df_scan_alloc): DO not create df_scan_block pool. + (problem_SCAN): Set size of block info. + (df_bb_refs_record): Do not allocate bb_info. + * df.h (df_problem): Add block_info_elt_size. + (struct dataflow): Change block_info to void *. + (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info, + df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return + in-line structures. + +2010-06-12 Jan Hubicka + + PR tree-optimize/44485 + * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks + containing use of return value of noreturn function. + +2010-06-12 Anatoly Sokolov + + * targhooks.c (default_function_value): Don't use + FUNCTION_OUTGOING_VALUE. + * system.h (FUNCTION_OUTGOING_VALUE): Poison. + * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed. + +2010-06-12 Kazu Hirata + + * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*): + Add crtfastmath.o to extra_parts. + * config/mips/crtfastmath.c: New. + * config/mips/linux.h (ENDFILE_SPEC): New. + +2010-06-12 Sebastian Pop + + * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass + old_type in parameter. + (gcc_type_for_value): Update call to gcc_type_for_interval. + (compute_type_for_level_1): Renamed compute_type_for_level. + Update call to gcc_type_for_interval. + +2010-06-11 Joseph Myers + + * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=, + flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative. + +2010-06-11 Joseph Myers + + * opts-common.c: Include options.h. + (integral_argument): Move from opts.c. + (decode_cmdline_option): New. Based on read_cmdline_option. + * opts.c (integral_argument): Move to opts-common.c. + (read_cmdline_option): Move most contents to + decode_cmdline_option. Use %qs in diagnostics. + * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG, + CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument, + decode_cmdline_option): New. + +2010-06-11 Uros Bizjak + + PR target/44481 + * config/i386/i386.md (UNSPEC_PARITY): New unspec. + (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX. + (partiysi2_cmp): Ditto. + (*partiyhi2_cmp): Ditto. + (*parityqi2_cmp): Remove. + +2010-06-11 Jan Hubicka + + * bitmap.h (bmp_iter_next_bit): New. + (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it. + +2010-06-11 Sandra Loosemore + Eric Botcazou + + * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the + computed cost. + +2010-06-11 Uros Bizjak + + * config/i386/i386.md (unspec): New define_c_enum. + (unspecv): Ditto. + +2010-06-10 Jakub Jelinek + + * c-family/c-cppbuiltin.c: Include cpp-id-data.h. + (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables. + (lazy_hex_fp_value): New function. + (builtin_define_with_hex_fp_value): Provide definitions lazily. + * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H). + +2010-06-11 Sebastian Pop + + PR middle-end/44483 + * tree-if-conv.c (bb_predicate_s): New struct. + (bb_predicate_p): New. + (bb_has_predicate): New. + (bb_predicate): New. + (set_bb_predicate): New. + (bb_predicate_gimplified_stmts): New. + (set_bb_predicate_gimplified_stmts): New. + (add_bb_predicate_gimplified_stmts): New. + (init_bb_predicate): New. + (free_bb_predicate): New. + (is_predicated): Use bb_predicate. + (add_to_predicate_list): Use bb_predicate and set_bb_predicate. + (predicate_bbs): Same. Gimplify the condition of the basic blocks + before processing their successors. + (clean_predicate_lists): Removed. + (find_phi_replacement_condition): Use bb_predicate. + (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless + computations. + (insert_gimplified_predicates): New. + (combine_blocks): Call insert_gimplified_predicates. + (tree_if_conversion): Call free_bb_predicate instead of + clean_predicate_lists. + +2010-10-11 Paul Brook + + * doc/invoke.texi: Document ARM -mcpu=cortex-m4. + * config/arm/arm.c (all_architectures): Change v7e-m default to + cortexm4. + * config/arm/arm-cores.def: Add cortex-m4. + * config/arm/arm-tune.md: Regenerate. + +2010-06-11 Jan Hubicka + + * ipa-pure-const.c (special_builtlin_state): New function. + (check_call): Use it instead of special casign BUILT_IN_RETURN. + (propagate_pure_const): Use it. + +2010-06-11 Jan Hubicka + + * df-problems.c (df_live_scratch): Convert to bitmap_head. + (df_live_alloc): Initialize df_live_scratch when initializing + problem_data. + (df_live_transfer_function): Update uses of df_live_scratch. + (df_live_free): Free problem_data; clear df_live_scratch before + releasing the obstack. + (df_md_free): Free problem data. + +2010-06-11 Jan Hubicka + + * doc/invoke.texi (Wsuggest-attribute): Document. + (Wmissing-noreturn): Remove. + * ipa-pure-const.c (warn_function_noreturn): New function. + * opts.c (decode_options): Set warn_suggest_attribute_noreturn on + warn_missing_noreturn. + * common.opt (Wsuggest-attribute=noreturn): New. + * tree-flow.h (warn_function_noreturn): Declare. + * tree-cfg.c (execute_warn_function_noreturn): Use + warn_function_noreturn. + (gate_warn_function_noreturn): New. + (pass_warn_function_noreturn): Update. + +2010-06-11 Manuel López-Ibáñez + + * c-typeck.c (handle_warn_cast_qual): Add loc + parameter. Improve warning message. + (build_c_cast): Pass location to handle_warn_cast_qual. + +2010-06-11 Uros Bizjak + + * config/i386/i386.md (pro_epilogue_adjust_stack_1) : Assert + that operand 0 == operand 1. Use x86_maybe_negate_const_int to output + insn mnemonic. + (pro_epilogue_adjust_stack_rex64) : Ditto. + +2010-06-10 Dodji Seketeli + + Fix bootstap on mips + * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot + be naming typedefs. + +2010-06-11 Kai Tietz + + * system.h (helper_const_non_const_cast): New inline for + gcc version <= 4.0. + (CONST_CAST2): For gcc version <= 4.0 use + new helper to do const/non-const casting. + +2010-06-10 Richard Sandiford + + * 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. + +2010-06-10 Richard Sandiford + + * 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. + +2010-06-10 Richard Sandiford + + * 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): Move 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): Move 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". + +2010-06-10 Richard Sandiford + + * 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. + +2010-06-10 Richard Sandiford + + * 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. + +2010-06-10 Richard Sandiford + + * 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. + +2010-06-10 Richard Sandiford + + * 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. + 2010-06-10 Richard Sandiford * Makefile.in (READ_MD_H): Add $(HASHTAB_H). @@ -153,8 +1264,7 @@ * 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. + (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c. * read-md.h, read-md.c: New files. 2010-06-10 Anatoly Sokolov @@ -217,6 +1327,7 @@ 2010-06-10 Jan Beulich + PR bootstrap/37304 * configure.ac: Replace $() with ${} when intending to expand variables rather than invoking commands. * configure: Re-generate. @@ -224,8 +1335,8 @@ 2010-06-10 Jan Hubicka PR rtl-optimization/44460 - * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove TYPE_NEEDS_CONSTRUCTING - sanity check. + * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove + TYPE_NEEDS_CONSTRUCTING sanity check. 2010-06-10 Gerald Pfeifer @@ -259,9 +1370,9 @@ 2010-06-09 Changpeng Fang - * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) : - Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from - 8 to 4. Minor change of the related comments. + * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) : + Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from + 8 to 4. Minor change of the related comments. 2010-06-09 Sebastian Pop @@ -317,11 +1428,12 @@ * tree-vectorizer.h (vinfo_for_stmt): Remove check. (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change gcc_assert to gcc_checking_assert. - * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use, phi_nodes - set_phi_nodes, phi_arg_index_from_use, op_iter_next_use, + * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use, + phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use, - op_iter_init_phiuse, op_iter_init_phidef, array_ref_contains_indirect_ref, - ref_contains_array_ref): Use gcc_checking_assert. + op_iter_init_phiuse, op_iter_init_phidef, + array_ref_contains_indirect_ref, ref_contains_array_ref): Use + gcc_checking_assert. * emit-rtl.h (set_first_insn, set_last_insn): Likewise. * tree-ssa-live.h (var_to_partition, var_to_partition_to_var, partition_is_global, live_on_entry, live_on_exit, @@ -336,24 +1448,26 @@ 2010-06-09 Jan Hubicka * gimple.h (gcc_gimple_checking_assert): New macro. - (gimple_set_def_ops, gimple_set_use_ops, - gimple_set_vuse, gimple_set_vdef, - gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op, - gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block, - gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op, - gimple_asm_output_op, gimple_asm_output_op_ptr, - gimple_asm_set_output_op, gimple_asm_clobber_op, - gimple_asm_set_clobber_op, gimple_asm_label_op, - gimple_asm_set_label_op, gimple_try_set_kind, gimple_try_catch_is_cleanup - gimple_try_set_catch_is_cleanup, gimple_phi_arg, - gimple_switch_num_labels, gimple_switch_set_index, gimple_switch_label, - gimple_switch_set_label, gimple_omp_for_index, gimple_omp_for_index_ptr, - gimple_omp_for_set_index, gimple_omp_for_initial, gimple_omp_for_initial_ptr, - gimple_omp_for_set_initial, gimple_omp_for_final, gimple_omp_for_final_ptr, - gimple_omp_for_set_final, gimple_omp_for_incr, gimple_omp_for_incr_ptr, - gimple_omp_for_set_incr, gimple_omp_for_set_cond, gimple_omp_for_cond): Make - checking conditional with ENABLE_GIMPLE_CHECKING. - (gimple_phi_set_arg): Likewise; replace memcpy by assignment. + (gimple_set_def_ops, gimple_set_use_ops, + gimple_set_vuse, gimple_set_vdef, + gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op, + gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block, + gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op, + gimple_asm_output_op, gimple_asm_output_op_ptr, + gimple_asm_set_output_op, gimple_asm_clobber_op, + gimple_asm_set_clobber_op, gimple_asm_label_op, + gimple_asm_set_label_op, gimple_try_set_kind, + gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup, + gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index, + gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index, + gimple_omp_for_index_ptr, gimple_omp_for_set_index, + gimple_omp_for_initial, gimple_omp_for_initial_ptr, + gimple_omp_for_set_initial, gimple_omp_for_final, + gimple_omp_for_final_ptr, gimple_omp_for_set_final, + gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr, + gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking + conditional with ENABLE_GIMPLE_CHECKING. + (gimple_phi_set_arg): Likewise; replace memcpy by assignment. 2010-06-09 Sandra Loosemore @@ -610,8 +1724,7 @@ * tree-cfg.c (create_bb): Update comment to not reference ggc_alloc_cleared. - * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is - value. + * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value. * varpool.c (varpool_node): Use typed GC allocation. (varpool_extra_name_alias): Likewise. @@ -840,7 +1953,7 @@ (init_alias_analysis): Likewise. 2010-06-08 Shujing Zhao - + * fold-const.c (fold_comparison): Remove redundant parenthesis. * tree-inline.c (expand_call_inline): Pass translated return value of cgraph_inline_failed_string to diagnostic function. @@ -913,8 +2026,7 @@ toplev.c. * flags.h (flag_signed_char, flag_short_enums, flag_pcc_struct_return, flag_ira_verbose, - flag_detailed_statistics, flag_remove_unreachable_functions): - Remove. + flag_detailed_statistics, flag_remove_unreachable_functions): Remove. * toplev.c (flag_detailed_statistics, flag_signed_char, flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove. (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h. @@ -959,7 +2071,7 @@ PR rtl-optimization/44404 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead - of count_occurrences to see if it's safe to modify mem_insn.insn. + of count_occurrences to see if it's safe to modify mem_insn. 2010-06-07 Richard Guenther @@ -1140,8 +2252,7 @@ * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads for dominance frontiers. - (rewrite_into_ssa): Update for bitmap heads in dominance - frontiers. + (rewrite_into_ssa): Update for bitmap heads in dominance frontiers. (insert_updated_phi_nodes_for): Likewise. (update_ssa): Likewise. * cfganal.c (compute_dominance_frontiers_1): Likewise. @@ -2427,10 +3538,10 @@ 2010-05-29 Steven Bosscher - * c-lex.c: Do not include c-tree.h. - * c-pretty-print.c: Likewise. - * c-opts.c: Likewise. - * c-gimplify.c: Likewise. + * c-lex.c: Do not include c-tree.h. + * c-pretty-print.c: Likewise. + * c-opts.c: Likewise. + * c-gimplify.c: Likewise. * c-common.c: Likewise. * c-dump.c: Likewise. Include c-common.h. @@ -7855,7 +8966,7 @@ (next_operand_entry_id): New static variable. (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs. (add_to_ops_vec): Assigned unique ID to operand entry. - (struct oecount_s): New field ID. + (struct oecount_s): New field ID. (oecount_cmp): Stabilize qsort comparotor by using unique IDs. (undistribute_ops_list): Assign unique IDs to oecounts. (init_reassoc): reset next_operand_entry_id.