| 2011-12-31 Alexandre Oliva <aoliva@redhat.com> |
| |
| * cselib.h (cselib_add_permanent_equiv): Declare. |
| (canonical_cselib_val): New. |
| * cselib.c (new_elt_loc_list): Rework to support value |
| equivalences. Adjust all callers. |
| (preserve_only_constants): Retain value equivalences. |
| (references_value_p): Retain preserved values. |
| (rtx_equal_for_cselib_1): Handle value equivalences. |
| (cselib_invalidate_regno): Use canonical value. |
| (cselib_add_permanent_equiv): New. |
| * alias.c (find_base_term): Reset locs lists while recursing. |
| * var-tracking.c (val_bind): New. Don't add equivalences |
| present in cselib table, compared with code moved from... |
| (val_store): ... here. |
| (val_resolve): Use val_bind. |
| (VAL_EXPR_HAS_REVERSE): Drop. |
| (add_uses): Do not create MOps for addresses. Do not mark |
| non-REG non-MEM expressions as requiring resolution. |
| (reverse_op): Record reverse as a cselib equivalence. |
| (add_stores): Use it. Do not create MOps for addresses. |
| Do not require resolution for non-REG non-MEM expressions. |
| Simplify support for reverse operations. |
| (compute_bb_dataflow): Drop reverse support. |
| (emit_notes_in_bb): Likewise. |
| (create_entry_value): Rename to... |
| (record_entry_value): ... this. Use cselib equivalences. |
| (vt_add_function_parameter): Adjust. |
| |
| 2011-12-30 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_inner_target_options): Fix thinko |
| in setting options via target #pragma or attribute. |
| |
| 2011-12-30 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/bfin/bfin.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. |
| * config/bfin/bfin-protos.h (bfin_register_move_cost, |
| bfin_memory_move_cost): Remove. |
| * config/bfin/bfin.c (bfin_register_move_cost, |
| bfin_memory_move_cost): Make static. Change arguments type from |
| enum reg_class to reg_class_t and from int to bool. |
| (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. |
| |
| 2011-12-30 Nathan Sidwell <nathan@acm.org> |
| |
| * gcov.c (total_lines, total_executed): New global vars. |
| (generate_results): Call executed_summary. |
| (executed_summary): New function, broken out of ... |
| (function_summary): ... here. Call it. |
| * coverage.c (coverage_finish): Also check for local_tick == -1. |
| * gcov-dump (tag_function): Correct labelling typo. |
| |
| 2011-12-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/51623 |
| * config/rs6000/rs6000.c (rs6000_assemble_integer): Delete check |
| for an initialized pointer being in a text section with |
| -mrelocatable, since it should never happen. |
| |
| 2011-12-29 Michael Eager <eager@eagercon.com> |
| |
| * config/microblaze/microblaze.md: Add expander for simple_return, |
| return, add return_internal and simple_return_internal insns. |
| |
| 2011-12-29 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * config/sh/sh.h (BRANCH_COST): Use sh_branch_cost variable. |
| * config/sh/sh.c (sh_option_override): Simplify sh_branch_cost |
| expression. |
| |
| 2011-12-28 Ian Lance Taylor <iant@google.com> |
| |
| * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Go for Go. |
| |
| 2011-12-28 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/51623 |
| * config/rs6000/rs6000.c (rs6000_assemble_integer): Don't call |
| unlikely_text_section_p. Instead check for being in a code section. |
| |
| 2011-12-28 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/51684 |
| * tree-vect-slp.c (vect_schedule_slp_instance): Get gsi of original |
| statement in case of a pattern. |
| (vect_schedule_slp): Likewise. |
| |
| 2011-12-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/51667 |
| * ree.c (insn_merge_code): Delete. |
| (is_insn_merge_attempted): Likewise. |
| (get_insn_status): Likewise. |
| (set_insn_status): Likewise. |
| (struct ext_cand): Add CODE and MODE fields. |
| (combine_set_extend): Rename to... |
| (combine_set_extension): ...this. Use above fields and tidy up. |
| (transform_ifelse): Likewise. |
| (get_defs): Return the chain of definitions. |
| (is_this_a_cmove): Merge into... |
| (is_cond_copy_insn): ...this. Return bool. |
| (make_defs_and_copies_lists): Adjust calls to get_defs and simplify. |
| (merge_def_and_ext): Adjust call to combine_set_extend. |
| (combine_reaching_defs): Remove calls to {g|s}et_insn_status. |
| (struct extend_info): Rename to... |
| (struct re_info): ...this. Add DEF_MAP field. |
| (add_ext_candidate): Merge into... |
| (add_removable_extension): ...this. Adjust calls to get_defs. Ensure |
| reaching definitions are associated with only one kind of extension. |
| (find_removable_extensions): Create and destroy the definition map. |
| (find_and_remove_re): Return void. Change 'long' variables to 'int'. |
| Do not deal with is_insn_merge_attempted. |
| |
| 2011-12-25 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/48641 |
| * tree-ssa-threadupdate.c (redirect_edges): Watch for overflow. |
| |
| 2011-12-26 Oleg Endo <oleg.endo@t-online.de> |
| |
| * config/sh/sync.md: Add soft atomics ABI description. |
| (fetchop_name): Use 'or' instead of 'ior'. |
| (fetchop_insn): Remove. |
| (atomic_compare_and_swap<mode>_soft): |
| Don't insert aligning nop after the write-back instruction. Fix |
| multi-line asm output formatting style. |
| (atomic_fetch_<fetchop_name><mode>_soft): Likewise. |
| (atomic_fetch_nand<mode>_soft): Likewise. |
| (atomic_<fetchop_name>_fetch<mode>_soft): Likewise. |
| (atomic_nand_fetch<mode>_soft): Likewise. |
| |
| 2011-12-23 Richard Henderson <rth@redhat.com> |
| |
| * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR): Remove. |
| * cfgexpand.c (expand_debug_expr): Don't handle them. |
| * expr.c (expand_expr_real_2): Likewise. |
| * fold-const.c (fold_binary_loc): Likewise. |
| * gimple-pretty-print.c (dump_binary_rhs): Likewise. |
| * tree-cfg.c (verify_gimple_assign_binary): Likewise. |
| * tree-inline.c (estimate_operator_cost): Likewise. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| * tree-vect-generic.c (expand_vector_operations_1): Likewise. |
| * optabs.c (optab_for_tree_code): Likewise. |
| (can_vec_perm_for_code_p): Remove. |
| (expand_binop): Don't try it. |
| (init_optabs): Don't init vec_extract_even/odd_optab. |
| * genopinit.c (optabs): Likewise. |
| * optabs.h (OTI_vec_extract_even, OTI_vec_extract_odd): Remove. |
| (vec_extract_even_optab, vec_extract_odd_optab): Remove. |
| * tree-vect-data-refs.c (vect_strided_store_supported): Tidy code. |
| (vect_permute_store_chain): Use TYPE_VECTOR_SUBPARTS instead of |
| GET_MODE_NUNITS; check vect_gen_perm_mask return value instead of |
| asserting vect_strided_store_supported. |
| (vect_strided_load_supported): Use can_vec_perm_p. |
| (vect_permute_load_chain): Use VEC_PERM_EXPR. |
| |
| * doc/generic.texi (VEC_EXTRACT_EVEN_EXPR): Remove. |
| (VEC_EXTRACT_ODD_EXPR): Remove. |
| * doc/md.texi (vec_extract_even, vec_extract_odd): Remove. |
| |
| 2011-12-23 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/score/score.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. |
| * config/score/score-protos.h (score_register_move_cost): Remove. |
| * config/score/score.c (TARGET_REGISTER_MOVE_COST): Define. |
| (score_register_move_cost): Make static. Change arguments type from |
| enum reg_class to reg_class_t. |
| |
| 2011-12-23 Jakub Jelinek <jakub@redhat.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * tree.def (VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): Remove. |
| * gimple-pretty-print.c (dump_binary_rhs): Don't handle |
| VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR. |
| * expr.c (expand_expr_real_2): Likewise. |
| * tree-cfg.c (verify_gimple_assign_binary): Likewise. |
| * cfgexpand.c (expand_debug_expr): Likewise. |
| * tree-inline.c (estimate_operator_cost): Likewise. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| * tree-vect-generic.c (expand_vector_operations_1): Likewise. |
| * fold-const.c (fold_binary_loc): Likewise. |
| * doc/generic.texi (VEC_INTERLEAVE_HIGH_EXPR, |
| VEC_INTERLEAVE_LOW_EXPR): Remove documentation. |
| * optabs.c (optab_for_tree_code): Don't handle |
| VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR. |
| (expand_binop, init_optabs): Remove vec_interleave_high_optab |
| and vec_interleave_low_optab. |
| * genopinit.c (optabs): Likewise. |
| * optabs.h (OTI_vec_interleave_high, OTI_vec_interleave_low): Remove. |
| (vec_interleave_high_optab, vec_interleave_low_optab): Remove. |
| * doc/md.texi (vec_interleave_high, vec_interleave_low): Remove |
| documentation. |
| * tree-vect-stmts.c (gen_perm_mask): Renamed to... |
| (vect_gen_perm_mask): ... this. No longer static. |
| (perm_mask_for_reverse, vectorizable_load): Adjust callers. |
| * tree-vectorizer.h (vect_gen_perm_mask): New prototype. |
| * tree-vect-data-refs.c (vect_strided_store_supported): Don't try |
| VEC_INTERLEAVE_*_EXPR, use can_vec_perm_p instead of |
| can_vec_perm_for_code_p. |
| (vect_permute_store_chain): Generate VEC_PERM_EXPR with interleaving |
| masks instead of VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR. |
| * config/i386/i386.c (expand_vec_perm_interleave2): If |
| expand_vec_perm_interleave3 would handle it, return false. |
| (expand_vec_perm_broadcast_1): Don't use vec_interleave_*_optab. |
| |
| 2011-12-23 Richard Henderson <rth@redhat.com> |
| |
| * config/mips/loongson.md (UNSPEC_LOONGSON_PINSR_0, |
| UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2, |
| UNSPEC_LOONGSON_PINSR_3): Replace with... |
| (UNSPEC_LOONGSON_PINSRH): ... this. |
| (UNSPEC_LOONGSON_VINIT): New. |
| (UNSPEC_LOONGSON_DSLL, UNSPEC_LOONGSON_DSRL): New. |
| (VWB): New mode iterator. |
| (V_inner): New mode attribute. |
| (loongson_vec_init1_<VHB>): New. |
| (*vec_concatv2si): New. |
| (and<VWHB>3, ior<VWHB>3, xor<VWHB>3, one_cmpl<VWHB>2): New. |
| (*loongson_nor): New. |
| (loongson_pextrh): Un-macro-ify. |
| (loongson_pmaddhw): Likewise. |
| (smaxv4hi3, umaxv8qi3, sminv4hi3, uminv8qi3): Likewise. |
| (loongson_pinsrh_0): Represent with vec_select+vec_concat. |
| (loongson_pinsrh_1, loongson_pinsrh_2, loongson_pinsrh_3): Likewise. |
| (*vec_setv4hi, vec_setv4hi): New. |
| (sdot_prodv4hi): New. |
| (smax<VWB>3, smin<VWB>3): New. |
| (reduc_uplus_v8qi): New. |
| (loongson_pshufh): Remove destination matching input. |
| (ashl<VWH>3, ashr<VWH>3, lshr<VWH>3): Fix type attribute. |
| (vec_interleave_high<VWHB>, vec_interleave_low<VWHB>): Remove. |
| (loongson_punpckhbh, loongson_punpckhhw, loongson_punpckhhw_qi, |
| loongson_punpckhwd, loongson_punpckhwd_qi, loongson_punpckhwd_hi, |
| loongson_punpcklbh, loongson_punpcklhw, loongson_punpcklhw_qi, |
| loongson_punpcklwd, loongson_punpcklwd_qi, loongson_punpcklwd_hi, |
| vec_perm_const<VWHB>, vec_unpacks_lo_<VHB>, vec_unpacks_hi_<VHB>, |
| vec_unpacku_lo_<VHB>, vec_unpacku_hi_<VHB>, vec_shl_<VWHBDI>, |
| vec_shr_<VWHBDI>, reduc_uplus_<VWH>, reduc_splus_<VWHB>, |
| reduc_smax_<VWHB>, reduc_smin_<VWHB>, reduc_umax_<VWHB>, |
| reduc_umin_<VB>): New. |
| * config/mips/mips-ps-3d.md (vec_perm_const_ps): New. |
| (mips_pul_ps, mips_puu_ps, mips_pll_ps, mips_plu_ps): Expand in |
| terms of vec_perm_const_ps. |
| (vec_perm_constv2sf): New. |
| (vec_initv2sf): Use mips_expand_vector_init. |
| (vec_concatv2sf): Rename from vec_initv2sf_internal. |
| (vec_setv2sf): Use vec_perm_const_ps. |
| (reduc_splus_v2sf, reduc_smin_v2sf, reduc_smax_v2sf): New. |
| * config/mips/loongson.h (pshufh_u, pshufh_s): Don't pass dest to |
| the builtin. |
| * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V4SF): New modes. |
| * config/mips/mips-protos.h: Update. |
| * config/mips/mips.c (mips_get_arg_info): Match V2SFmode, not all |
| MODE_VECTOR_FLOAT. |
| (mips_return_mode_in_fpr_p): Likewise. |
| (mips_cannot_change_mode_class): Allow 8-byte integral mode changes. |
| (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw, |
| CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh, |
| CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): Remove. |
| (mips_builtins): Remove first operand for loongson pshufh builtins. |
| (MAX_VECT_LEN, struct expand_vec_perm_d): New. |
| (mips_expand_vselect, mips_expand_vselect_vconcat, |
| mips_expand_vpc_loongson_even_odd, mips_expand_vpc_loongson_pshufh, |
| mips_expand_vpc_loongson_bcast, mips_expand_vec_perm_const_1, |
| mips_expand_vec_perm_const, mips_vectorize_vec_perm_const_ok, |
| mips_expand_vec_unpack, mips_constant_elt_p, mips_expand_vi_broadcast, |
| mips_expand_vi_constant, mips_expand_vi_loongson_one_pinsrh, |
| mips_expand_vi_general, mips_expand_vec_reduc, mips_expand_vec_minmax, |
| TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. |
| (mips_expand_vector_init): Rewrite. |
| * config/mips/predicates.md (const_2_or_3_operand): New. |
| (const_0_to_3_operand): New. |
| |
| 2011-12-23 Dmitry Plotnikov <dplotnikov@ispras.ru> |
| |
| * config/arm/neon.md (float<mode><V_cvtto>2): New. |
| (floatuns<mode><V_cvtto>2): New. |
| (fix_trunc<mode><V_cvtto>2): New. |
| (fix_truncuns<mode><V_cvtto>2): New. |
| * config/arm/iterators.md (V_cvtto): New iterator. |
| |
| 2011-12-23 Richard Guenther <rguenther@suse.de> |
| |
| PR rtl-optimization/50396 |
| * simplify-rtx.c (simplify_binary_operation_1): Properly |
| guard code that only works for integers. |
| |
| 2011-12-23 Tristan Gingold <gingold@adacore.com> |
| |
| * config/vms/vms-crtlmap.map (log10): Fix typo. |
| |
| 2011-12-23 Tristan Gingold <gingold@adacore.com> |
| |
| * config/ia64/vms.h (SUPPORTS_ONE_ONLY): Define. |
| |
| 2011-12-22 Bin Cheng <bin.cheng@arm.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/43491 |
| * tree-ssa-pre.c (eliminate): Don't replace global register |
| variable when it is the RHS of a single assign. |
| |
| 2011-12-22 Joey Ye <joey.ye@arm.com> |
| |
| * toplev.c (process_options): Fix typo. |
| |
| 2011-12-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/51252 |
| * config/pa/pa.c (pa_som_tm_clone_table_section): New function. |
| (som_tm_clone_table_section): Declare. |
| (pa_file_start_space): Create $TM_CLONE_TABLE$ subspace. |
| (pa_som_asm_init_sections): Init som_tm_clone_table_section. |
| * config/pa/som.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define. |
| |
| 2011-12-22 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * doc/tm.texi.in (TARGET_PREPARE_PCH_SAVE): New hook. |
| * doc/tm.texi: Regenerate. |
| * target.def (prepare_pch_save): New hook. |
| * c-family/c-pch.c (c_common_write_pch): Call it. |
| * config/mips/mips.c (was_mips16_pch_p): Delete. |
| (mips_set_mips16_mode): Don't refer to was_mips16_pch_p. |
| (mips_prepare_pch_save): New function. |
| (TARGET_PREPARE_PCH_SAVE): Define. |
| |
| 2011-12-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/51212 |
| * opts.c (finish_options): Call sorry on -fgnu-tm and |
| -fnon-call-exceptions combination. |
| |
| 2011-12-22 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| * doc/invoke.texi (C++ Dialect Options): Add missing options and |
| move -Wzero-as-null-pointer-constant to ... |
| (Warning Options): ... here. |
| |
| 2011-12-22 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| PR target/47643 |
| * doc/invoke.texi (i386 and x86-64 Options): Fix description of |
| -mtune without -march. |
| |
| 2011-12-21 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/51643 |
| * arm.c (arm_function_ok_for_sibcall): Use DECL_WEAK in previous |
| change. |
| |
| 2011-12-22 Tristan Gingold <gingold@adacore.com> |
| |
| * config/ia64/ia64.c (ia64_promote_function_mode): Remove. |
| (TARGET_PROMOTE_FUNCTION_MODE): Remove. |
| (ia64_function_value): Call promote_function_mode instead of |
| ia64_promote_function_mode. |
| * config/ia64/vms.h (PROMOTE_MODE): Define. |
| (TARGET_PROMOTE_FUNCTION_MODE): Define. |
| |
| 2011-12-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/27468 |
| * common/config/alpha/alpha-common.c (alpha_option_optimization_table): |
| Enable flag_ree at -O2 or higher. |
| |
| 2011-12-22 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/51650 |
| * lto.c (uniquify_nodes): Register TYPE_DECLs with the |
| debuginfo machinery. |
| |
| 2011-12-22 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * tree-pass.h (pass_reload): Declare. |
| * ira.c (overall_cost_before, saved_flag_ira_share_spill_slots): |
| New global variables, moved out of ira. |
| (do_reload): New static function, split off from the second half |
| of ... |
| (ira): ... here. |
| (gate_ira): Remove. |
| (pass_ira): Use TV_IRA, set gate to NULL, and set flags to |
| TODO_dump_func. |
| (rest_of_handle_reload): New static function. |
| (pass_reload): New. |
| |
| 2011-12-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| * common/config/i386/i386-common.c (ix86_option_optimization_table): |
| Move OPT_free processing from ... |
| * config/i386/i386.c (ix86_option_override_internal): ... here. |
| |
| 2011-12-21 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/51643 |
| * arm.c (arm_function_ok_for_sibcall): Don't try to tailcall a |
| weak function on bare-metal EABI targets. |
| |
| 2011-12-21 Jonathan Wakely <jwakely.gcc@gmail.com> |
| Jim Avera <james_avera@yahoo.com> |
| |
| * doc/extend.texi (__builtin_expect): Improve example. |
| |
| 2011-12-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Enable flag_ree |
| also for 32bit targets. |
| |
| 2011-12-21 Richard Henderson <rth@redhat.com> |
| |
| PR target/51552 |
| * dwarf2cfi.c (dwarf2out_frame_debug): Move any_cfis_emitted code... |
| (scan_trace): ... here. |
| |
| 2011-12-21 Jason Merrill <jason@redhat.com> |
| |
| * doc/standards.texi (C++ language): Update for C++11. |
| |
| 2011-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-patterns.c (vect_operation_fits_smaller_type): Initialize |
| *op0 and *op1 to NULL_TREE first to avoid warnings. |
| * calls.c (initialize_argument_information): Initialize base to avoid |
| warnings. |
| |
| PR middle-end/51644 |
| PR middle-end/51647 |
| * tree-eh.c (decide_copy_try_finally): At -O0, return true |
| even when ndests is not 1, if there are only gimple_clobber_p |
| (or debug) stmts in the finally sequence. |
| * tree-inline.c (estimate_num_insns): Return 0 for gimple_clobber_p |
| stmts. |
| |
| 2011-12-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/51472 |
| * trans-mem.c (tm_log_add): Use create_tmp_var_reg. |
| |
| 2011-12-21 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-into-ssa.c (rewrite_update_stmt): Do not dump extra newlines. |
| (rewrite_update_enter_block): Likewise. |
| (dump_update_ssa): Likewise. |
| (update_ssa): Likewise but also dump a newline at the beginning. |
| |
| 2011-12-21 Enkovich Ilya <ilya.enkovich@intel.com> |
| |
| PR target/50038 |
| * implicit-zee.c: Delete. |
| * ree.c: New file. |
| * Makefile.in: Replace implicit-zee.c with ree.c. |
| * config/i386/i386.c (ix86_option_override_internal): Rename |
| flag_zee to flag_ree. |
| * common.opt (fzee): Ignored. |
| (free): New. |
| * passes.c (init_optimization_passes): Replace pass_implicit_zee |
| with pass_ree. |
| * tree-pass.h (pass_implicit_zee): Delete. |
| (pass_ree): New. |
| * timevar.def (TV_ZEE): Delete. |
| (TV_REE): New. |
| * doc/invoke.texi: Add -free description. |
| |
| 2011-12-21 Tristan Gingold <gingold@adacore.com> |
| |
| * config/vms/vms-protos.h (vms_function_section): New prototype. |
| * config/vms/vms.c (vms_function_section): New function. |
| * config/vms/vms.h (TARGET_ASM_FUNCTION_SECTION): Define. |
| |
| 2011-12-21 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/41159 |
| * tree-outof-ssa.c (insert_value_copy_on_edge): Use the |
| mode of the pseudo as destination mode. Only assert that |
| is equal to the promoted mode of the decl if it is a REG. |
| |
| 2011-12-21 Tristan Gingold <gingold@adacore.com> |
| |
| * config/vms/xm-vms.h (STANDARD_EXEC_PREFIX): Remove define. |
| |
| 2011-12-20 Richard Henderson <rth@redhat.com> |
| |
| * config/ia64/ia64.c (MAX_VECT_LEN): New. |
| (struct expand_vec_perm_d): New. |
| (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. |
| (ia64_unpack_assemble): Use ia64_expand_vec_perm_const_1. |
| (expand_vselect, expand_vselect_vconcat): New. |
| (expand_vec_perm_identity, expand_vec_perm_shrp): New. |
| (expand_vec_perm_1, expand_vec_perm_broadcast): New. |
| (expand_vec_perm_interleave_2, expand_vec_perm_v4hi_5): New. |
| (ia64_expand_vec_perm_const_1, ia64_expand_vec_perm_const): New. |
| (ia64_vectorize_vec_perm_const_ok): New. |
| (ia64_expand_vec_setv2sf, ia64_expand_vec_perm_even_odd): New. |
| * config/ia64/ia64-protos.h: Update. |
| * config/ia64/vect.md (VEC): New mode iterator. |
| (vecint): New mode attribute. |
| (vec_interleave_lowv8qi, vec_interleave_highv8qi): Privatize with '*'. |
| (vec_interleave_lowv4hi, vec_interleave_highv4hi): Likewise. |
| (vec_interleave_lowv2si, vec_interleave_highv2si): Likewise. |
| (vec_interleave_lowv2sf, vec_interleave_highv2sf): Likewise. |
| (mix1_even, mix1_odd, mux1_alt): Likewise. |
| (mux1_brcst_qi): Remove '*' from name. |
| (vec_extract_evenv8qi, vec_extract_oddv8qi): Remove. |
| (vec_extract_evenv4hi, vec_extract_oddv4hi): Remove. |
| (vec_extract_evenv2si, vec_extract_oddv2si): Remove. |
| (vec_extract_evenv2sf, vec_extract_oddv2sf): Remove. |
| (vec_extract_evenodd_helper): Remove. |
| (vec_setv2sf): Use ia64_expand_vec_setv2sf. |
| (vec_pack_trunc_v4hi): Use ia64_expand_vec_perm_even_odd. |
| (vec_pack_trunc_v2si): Likewise. |
| (vec_perm_const<VEC>): New. |
| |
| 2011-12-20 Richard Henderson <rth@redhat.com> |
| |
| * tree-vect-generic.c (expand_vector_operations_1): Correct tests |
| for vector types -- use the type not the mode. Fix optab selection |
| for vector shifts by a scalar. Handle over-large integer modes |
| like BLKmode. |
| |
| 2011-12-20 Richard Henderson <rth@redhat.com> |
| |
| * config/arm/arm.md (*arm_xorsi3): Match iorsi3 and perform |
| post-reload splitting. |
| |
| * config/arm/arm.md (*arm_cmpdi_unsigned): Enable for thumb2. |
| * config/arm/arm.c (arm_select_cc_mode): Use it. |
| |
| 2011-12-20 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict |
| handling of signedness differences to integer types. Only build |
| a new optype if type1 isn't correct. |
| |
| 2011-12-20 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/49865 |
| * ira-costs.c (find_costs_and_classes): Prefer registers even |
| if the memory cost is the same. |
| |
| 2011-12-20 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield) |
| (finish_struct): Refer to C11 in comments. Use flag_isoc11. |
| * c-parser.c (c_parser_static_assert_declaration) |
| (c_parser_static_assert_declaration_no_semi, c_parser_declspecs) |
| (c_parser_alignas_specifier, c_parser_alignof_expression): Refer |
| to C11 in comments. Use flag_isoc11. |
| * c-typeck.c (comptypes_check_different_types): Refer to C11 in |
| comment. |
| * doc/cpp.texi (Overview): Refer to -std=c11 instead of -std=c1x. |
| * doc/cppopts.texi (-std=c11, -std=gnu11): Document in preference |
| to -std=c1x and -std=gnu1x. |
| * doc/extend.texi (Inline, Alternate Keywords, Other Builtins) |
| (__builtin_complex, Unnamed Fields): Refer to -std=c11 and C11 |
| instead of -std=c1x and C1X. |
| * doc/invoke.texi (-std=c11, -std=iso9899:2011): Document in |
| preference to -std=c1x. |
| (-std=gnu11): Document in preference to -std=gnu1x. |
| * doc/standards.texi: Document C11 instead of C1X. Document C11 |
| as actual standard. Document headers required from freestanding |
| C11 implementations. |
| * ginclude/float.h, ginclude/stddef.h: Test __STDC_VERSION__ >= |
| 201112L for C11. Update comments to refer to C11. |
| |
| 2011-12-20 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * configure: Regenerate. |
| |
| 2011-12-20 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR middle-end/51200 |
| * expr.c (store_field): Avoid a direct store if the mode is larger |
| than the size of the bit field. |
| * stor-layout.c (layout_decl): If flag_strict_volatile_bitfields, |
| treat non-volatile bit fields like volatile ones. |
| * toplev.c (process_options): Disallow combination of |
| -fstrict-volatile-bitfields and ABI versions less than 2. |
| * config/arm/arm.c (arm_option_override): Don't enable |
| flag_strict_volatile_bitfields if the ABI version is less than 2. |
| * config/h8300/h8300.c (h8300_option_override): Likewise. |
| * config/rx/rx.c (rx_option_override): Likewise. |
| * config/m32c/m32c.c (m32c_option_override): Likewise. |
| * config/sh/sh.c (sh_option_override): Likewise. |
| |
| 2011-12-20 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/46796 |
| * dwarf2out.c (modified_type_die): When the type variant |
| chain is corrupt use the types name, if available, instead |
| of __unknown__. |
| |
| 2011-12-20 Tristan Gingold <gingold@adacore.com> |
| |
| * config/alpha/alpha.c (alpha_start_function): Adjust condition to |
| create VMS trampoline entry point. |
| |
| 2011-12-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/42839 |
| * fwprop.c (forward_propagate_subreg): Skip the SIGN/ZERO_EXTEND |
| optimization if the source register is already extended. |
| |
| 2011-12-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * lower-subreg.c (can_decompose_p): Check every word of a hard |
| register. |
| |
| 2011-12-19 Sandra Loosemore <sandra@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| |
| PR rtl-opt/50380 |
| * cse.c (find_comparison_args): Detect fixed point and |
| bail early. |
| |
| 2011-12-19 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/51411 |
| * trans-mem.c (ipa_tm_create_version): Unset DECL_WEAK. |
| |
| 2011-12-19 Quentin Neill <quentin.neill@amd.com> |
| |
| PR target/48743 |
| * config/i386/driver-i386.c (host_detect_local_cpu): Also check |
| family to distinguish PROCESSOR_ATHLON. |
| |
| 2011-12-19 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/51573 |
| * streamer-hooks.h (struct streamer_hooks): Add second |
| ref_p parameter to write_tree. |
| (stream_write_tree): Adjust. |
| (stream_write_tree_shallow_non_ref): New define. |
| * lto-streamer.h (lto_output_tree): Adjust. |
| * lto-streamer-out.c (lto_output_tree): Likewise. |
| * tree-streamer-out.c (streamer_write_chain): Only |
| force the immediate tree to be streamed as non-reference. |
| |
| 2011-12-19 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/51583 |
| * tree-sra.c (load_assign_lhs_subreplacements): Call |
| force_gimple_operand_gsi when necessary also in case of no |
| corresponding replacement on the RHS. |
| |
| 2011-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple.h (gimplify_seq_add_stmt): Rename to... |
| (gimple_seq_add_stmt_without_update): ... this. |
| * gimplify.c (gimplify_seq_add_stmt): Rename to... |
| (gimple_seq_add_stmt_without_update): ... this. |
| (gimplify_seq_add_stmt): New inline wrapper for it. |
| * tree-vect-patterns.c (append_pattern_def_seq): Use |
| gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt. |
| |
| PR tree-optimization/51596 |
| * tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges |
| when needed. |
| |
| PR middle-end/51590 |
| PR tree-optimization/51606 |
| * tree-vect-patterns.c (append_pattern_def_seq, new_pattern_def_seq): |
| New inline functions. |
| (vect_recog_over_widening_pattern, |
| vect_recog_vector_vector_shift_pattern, |
| vect_recog_sdivmod_pow2_pattern, vect_recog_mixed_size_cond_pattern, |
| adjust_bool_pattern_cast, vect_recog_bool_pattern): Use them. |
| |
| 2011-12-19 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/51572 |
| * tree.c (free_lang_data_in_type): Do not unlink TYPE_DECL |
| from TYPE_FIELDS. |
| (find_decls_types_r): Walk TYPE_DECLs in TYPE_FIELDS. |
| * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Do |
| not stream TREE_CHAIN. |
| (write_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS |
| using streamer_write_chain. |
| * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): |
| Do not stream TREE_CHAIN. |
| (lto_input_ts_type_non_common_tree_pointers): Stream TYPE_FIELDS |
| using streamer_read_chain. |
| * gimple-streamer-in.c (input_gimple_stmt): Skip non-FIELD_DECLs. |
| * gimple.c (gimple_canonical_types_compatible_p): Properly |
| handle trailing non-FIELD_DECLs in TYPE_FIELDS. |
| |
| 2011-12-19 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * configure: Regenerate. |
| |
| 2011-12-19 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx[3] for |
| partial integer modes. |
| |
| 2011-12-19 Andreas Schwab <schwab@linux-m68k.org> |
| |
| PR target/51532 |
| * config/m68k/m68k.h (FL_CAS, TARGET_CAS): Define. |
| * config/m68k/m68k.c (FL_FOR_isa_20): Add FL_CAS. |
| * config/m68k/sync.md: Use TARGET_CAS instead of (TARGET_68020 || |
| TARGET_68040). |
| |
| 2011-12-18 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/ia64/ia64.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, |
| LEGITIMATE_ADDRESS_REG, LEGITIMATE_ADDRESS_DISP, |
| GO_IF_LEGITIMATE_ADDRESS): Remove macros. |
| * config/ia64/ia64.c (TARGET_LEGITIMATE_ADDRESS_P): Define. |
| (ia64_reg_ok_for_base_p, ia64_legitimate_address_reg, |
| ia64_legitimate_address_disp, ia64_legitimate_address_p): New |
| functions. |
| |
| 2011-12-17 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/51491 |
| * tree-ssa-ccp.c (insert_clobber_before_stack_restore) |
| (gsi_prev_dom_bb_nondebug, insert_clobbers_for_var): New function. |
| (ccp_fold_stmt): Use insert_clobbers_for_var after a successful |
| fold_builtin_alloca_with_align. |
| (ccp_visit_stmt): Calculate and free dominator info. |
| |
| 2011-12-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (UNSPEC_FRAME_BLOCKAGE): New constant. |
| (frame_blockage): New expander. |
| (frame_blockage<P:mode>): New instruction. |
| * config/sparc/sparc.c (sparc_expand_prologue): When the sequence of |
| instructions establishing the frame isn't atomic, emit frame blockage. |
| |
| 2011-12-16 Tristan Gingold <gingold@adacore.com> |
| |
| * config/alpha/vms.h (USE_TM_CLONE_REGISTRY): Define. |
| |
| 2011-12-16 Tristan Gingold <gingold@adacore.com> |
| |
| * config/alpha/alpha.c (alpha_use_linkage): Follow transparent alias. |
| (alpha_write_one_linkage): Use assemble_name to emit linkage name. |
| |
| 2011-12-16 Tristan Gingold <gingold@adacore.com> |
| |
| * config/vms/t-vms (vms.o, vms-c.o): Force output filename. |
| |
| 2011-12-16 Tristan Gingold <gingold@adacore.com> |
| |
| * config/vms/vms.c (VMS_CRTL_GLOBAL): Define. |
| (vms_patch_builtins): Handle. |
| * config/vms/vms-crtlmap.map: Add an entry for environ. |
| |
| 2011-12-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/51557 |
| * sel-sched-ir.c (create_copy_of_insn_rtx): Copy all notes |
| other than REG_EQUAL, REG_EQUIV and REG_LABEL_OPERAND. |
| |
| PR tree-optimization/51576 |
| * tree-cfg.c (replace_uses_by): Call maybe_clean_or_replace_eh_stmt |
| even if fold_stmt didn't change anything. |
| |
| 2011-12-16 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/51572 |
| * dwarf2out.c (gen_type_die_with_usage): Use the context of |
| the TYPE_DECL as well if it is file-scope. |
| |
| 2011-12-15 DJ Delorie <dj@redhat.com> |
| |
| * config/rl78/rl78.md (return): Rename to rl78_return. |
| * config/rl78/rl78.c (rl78_expand_epilogue): Use new name. |
| (rl78_expand_eh_epilogue): Use new name. |
| (rl78_calculate_death_notes): Likewise. |
| |
| 2011-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vectorizer.h (struct _stmt_vec_info): Remove pattern_def_stmt |
| field, add pattern_def_seq. |
| (STMT_VINFO_PATTERN_DEF_STMT): Remove. |
| (STMT_VINFO_PATTERN_DEF_SEQ): Define. |
| (NUM_PATTERNS): Bump to 10. |
| * tree-vect-loop.c (vect_determine_vectorization_factor, |
| vect_transform_loop): Adjust for pattern def changing from a single |
| gimple stmt to gimple_seq. |
| * tree-vect-stmts.c (vect_analyze_stmt, new_stmt_vec_info, |
| free_stmt_vec_info): Likewise. |
| * tree-vect-patterns.c (vect_recog_over_widening_pattern, |
| vect_recog_vector_vector_shift_pattern, |
| vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast, |
| adjust_bool_pattern, vect_mark_pattern_stmts): Likewise. |
| (vect_recog_sdivmod_pow2_pattern): New function. |
| (vect_vect_recog_func_ptrs): Add it. |
| |
| * config/i386/sse.md (vcond<V_256:mode><VI_256:mode>, |
| vcond<V_128:mode><VI124_128:mode>, vcond<VI8F_128:mode>v2di): |
| Use general_operand instead of nonimmediate_operand for |
| operand 5 and no predicate for operands 1 and 2. |
| * config/i386/i386.c (ix86_expand_int_vcond): Optimize |
| x < 0 ? -1 : 0 and x < 0 ? 1 : 0 into vector arithmetic |
| resp. logical shift. |
| |
| 2011-12-15 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (print_operand): Remove. |
| (print_operand_address): Remove. |
| * config/avr/avr.h (PRINT_OPERAND): Remove. |
| (PRINT_OPERAND_ADDRESS): Remove. |
| (PRINT_OPERAND_PUNCT_VALID_P): Remove. |
| * config/avr/avr.c (TARGET_PRINT_OPERAND): New hook define. |
| (TARGET_PRINT_OPERAND_ADDRESS): New hook define. |
| (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define. |
| (print_operand_address): Rename to... |
| (avr_print_operand_address): ...this and make static. |
| (print_operand): Rename to... |
| (avr_print_operand): ...this and make static. |
| (avr_print_operand_punct_valid_p): New static function. |
| |
| 2011-12-15 Andreas Tobler <andreast@fgznet.ch> |
| |
| * config/i386/freebsd.h (TARGET_ASM_FILE_END): Define. |
| |
| 2011-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/51360 |
| * c-parser.c (c_parser_omp_clause_num_threads, |
| c_parser_omp_clause_schedule): Call mark_exp_read. |
| |
| 2011-12-15 Romain Geissler <romain.geissler@gmail.com> |
| |
| * builtins.def (BUILT_IN_STPNCPY_CHK): New definition. |
| * builtins.c (expand_builtin, fold_builtin_4, maybe_emit_chk_warning): |
| Add BUILT_IN_STPNCPY_CHK case. |
| * gimple-fold.c (gimple_fold_builtin): Likewise. |
| * tree-object-size.c (pass_through_call): Likewise. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, |
| call_may_clobber_ref_p_1): Likewise. |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call, |
| find_func_clobbers): Likewise. |
| * tree.h (fold_builtin_strncpy_chk): Rename to fold_builtin_stxncpy_chk |
| * builtins.c (fold_builtin_strncpy_chk): Likewise. |
| Rewrite stpncpy_chk calls to strncpy_chk calls if returned value is |
| ignored. |
| |
| 2011-12-15 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/51567 |
| * gimple.c (compare_type_names_p): Also compare the TREE_CODE. |
| (iterative_hash_name): Also hash the TREE_CODE. |
| (gimple_types_compatible_p_1): For types with a TYPE_DECL |
| name and a type DECL_CONTEXT recurse to that type. |
| (iterative_hash_gimple_type): Likewise. |
| |
| 2011-12-15 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Move update of |
| VRSave mask to save_world() when that is in use. |
| |
| 2011-12-15 Richard Guenther <rguenther@suse.de> |
| |
| * lto-wrapper.c (run_gcc): In non-parallel mode remove |
| ltrans inputs immediately after processing them. In parallel |
| mode truncate the ltrans inputs in the make rule that processes |
| them if temporary files are not to be preserved. |
| |
| 2011-12-15 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/arm/arm.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. |
| * config/arm/arm.c (arm_memory_move_cost, arm_register_move_cost): |
| New functions. |
| (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. |
| |
| 2011-12-15 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/51564 |
| * tree.h (REGISTER_DEFS_IN_THIS_STMT, NECESSARY, |
| STMT_IN_SSA_EDGE_WORKLIST): Remove no longer existing flag |
| uses documentation. |
| (TREE_ASM_WRITTEN): Update documentation to mention its use |
| on TYPE_DECLs from debug info generation. |
| * tree-streamer-out.c (pack_ts_base_value_fields): Stream |
| TREE_ASM_WRITTEN as always zero for TYPE_DECLs, similar to |
| all other types. |
| |
| 2011-12-15 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/51050 |
| * config/avr/avr.c (expand_epilogue): Don't build SUBREG of fp. |
| (avr_prologue_setup_frame): Ditto. |
| |
| 2011-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/51517 |
| * tree-ssa-coalesce.c (coalesce_ssa_name): For !optimize, test |
| !DECL_IGNORED_P instead of !DECL_ARTIFICIAL. |
| |
| 2012-12-15 Richard Guenther <rguenther@suse.de> |
| |
| Revert |
| PR lto/48437 |
| * lto-streamer-out.c (tree_is_indexable): Exclude block-local |
| extern declarations. |
| |
| PR lto/48508 |
| PR lto/48437 |
| * tree-streamer-out.c (streamer_write_chain): Stream DECL_EXTERNAL |
| VAR_DECLs and FUNCTION_DECLs locally. |
| |
| 2011-12-14 Richard Henderson <rth@redhat.com> |
| |
| * config/arm/arm.md (*addsi3_compare0_scratch): Set predicable. |
| (*compare_negsi_si, *compare_addsi2_op0): Likewise. |
| (*compare_addsi2_op1, *zeroextractsi_compare0_scratch): Likewise. |
| (*compareqi_eq0, *arm_cmpsi_insn, *arm_cmpsi_negshiftsi_si): Likewise. |
| |
| 2011-12-14 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (replace_uses_by): Fixup TREE_CONSTANT for |
| propagating all kinds of constants. |
| |
| 2011-12-14 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/51497 |
| * lto-streamer-in.c (lto_read_body): Fixup local types |
| TYPE_CANONICAL and variant chain. |
| |
| 2011-12-14 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (free_lang_data_in_type): Do not clear fields |
| dependent on debuginfo level setting. |
| (find_decls_types_r): Use TYPE_STUB_DECL rathern than TREE_CHAIN. |
| * tree.h (TYPE_STUB_DECL): Properly check that we access a type. |
| |
| 2011-12-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50931 |
| * config/avr/avr.md (mulpsi3): New expander. |
| (*umulqihipsi3, *umulhiqipsi3): New insns. |
| (*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns. |
| (mulsqipsi3, *mulpsi3): New insn-and-splits. |
| (ashlpsi3): Turn to expander. Move insn code to... |
| (*ashlpsi3): ...this new insn. |
| |
| 2011-12-14 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (replace_uses_by): Only mark blocks altered |
| that will make a difference. Only recompute ADDR_EXPR |
| invariantness if it could possibly have changed. Do so |
| before folding the statement. |
| |
| 2011-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * lto-streamer-out.c (write_symbol): Use proper 64-bit host type. |
| * lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets. |
| * lto-streamer-in.c (lto_read_body): Likewise. |
| (lto_input_toplevel_asms): Likewise. |
| * lto-section-in.c (lto_create_simple_input_block): Likewise. |
| * ipa-inline-analysis.c (inline_read_section): Likewise. |
| * ipa-prop.c (ipa_prop_read_section): Likewise. |
| |
| * df.h (DF_NOTE): Fix typo in comment. |
| |
| 2011-12-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * trans-mem.c (ipa_tm_create_version_alias): Set DECL_CONTEXT and |
| DECL_LANG_SPECIFIC. |
| |
| 2011-12-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * regmove.c (fixup_match_2): Only access call_used_regs with hard regs. |
| |
| 2011-12-13 Andrew Pinski <apinski@cavium.com> |
| Adam Nemet <anemet@caviumnetworks.com> |
| |
| * config/mips/mips-cpus.def: Add Octeon2. |
| * config/mips/mips-tables.opt: Regenerate. |
| * config/mips/mips.md (define_attr "cpu"): Add Octeon2. |
| * config/mips/driver-native.c (host_detect_local_cpu): Support Octeon2. |
| * config/mips/octeon.md (octeon_arith): Add Octeon2. |
| (octeon_condmove): Likewise. |
| (octeon_load): Rename to .. |
| (octeon_load_o1): this. |
| (octeon_load_o2): New reserve. |
| (octeon_cop_o2): New reserve. |
| (octeon_store): Match Octeon2 also. |
| (octeon_brj): Rename to .. |
| (octeon_brj_o1): this. |
| (octeon_brj_o2): New reserve. |
| (octeon_imul3): Rename to ... |
| (octeon_imul3_o1): this. |
| (octeon_imul3_o2): New reserve. |
| (octeon_imul): Rename to ... |
| (octeon_imul_o1): this. |
| (octeon_imul_o2): New reserve. |
| (octeon_mfhilo): Rename to ... |
| (octeon_mfhilo_o1): This. |
| (octeon_mfhilo_o2): New reserve. |
| (octeon_imadd): Rename to ... |
| (octeon_imadd_o1): this. |
| (octeon_imadd_o2): New reserve. |
| (octeon_idiv): Rename to .. |
| (octeon_idiv_o1): This. |
| (octeon_idiv_o2_si): New reserve. |
| (octeon_idiv_o2_di): Likewise. |
| (octeon_unknown): Match Octeon2 also. |
| * config/mips/mips.c (mips_rtx_cost_data): Add Octeon2 cost data. |
| (mips_issue_rate): Octeon2 can issue 2 at a time. |
| * config/mips/mips.h (TARGET_OCTEON): Match Octeon2 also. |
| (TARGET_OCTEON2): New define. |
| (TUNE_OCTEON): Match Octeon2 also. |
| |
| 2011-12-13 Richard Henderson <rth@redhat.com> |
| |
| * config/sparc/tso.h: New file. |
| * config.gcc (sparc-*-linux*, sparc*-*-solaris2*): Use it. |
| * config/sparc/sparc.c (sparc_option_override): Honor |
| SUBTARGET_DEFAULT_MEMORY_MODEL. |
| * config/sparc/sparc.h (SUBTARGET_DEFAULT_MEMORY_MODEL): New. |
| |
| 2011-12-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/51443 |
| * trans-mem.c (struct diagnose_tm): Remove saw_unsafe. |
| (diagnose_tm_1): Same. |
| (ipa_tm_execute): Do not test tm_may_enter_irr before we set it. |
| (ipa_tm_scan_irr_function): Return gracefully when no |
| DECL_STRUCT_FUNCTION. |
| (ipa_tm_scan_irr_block): Believe the user on TM attributes. |
| |
| 2011-12-13 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/50628 |
| * tree-sra.c (propagate_subaccesses_across_link): Do not propagate |
| sub-accesses of scalar accesses. |
| |
| 2011-12-13 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/51362 |
| * ipa-cp.c (estimate_local_effects): When estimated size of a |
| specialized clone is zero, bump it to one. |
| |
| 2011-12-13 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48354 |
| * tree.c (find_decls_types_r): Also walk DECL_ORIGINAL_TYPE. |
| * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers): |
| Stream DECL_ORIGINAL_TYPE. |
| * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): |
| Likewise. |
| |
| 2011-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| Revert |
| 2011-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51481 |
| * gimple-fold.c (gimple_fold_call): Call |
| maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH |
| edges, but gimple_fold_builtin result can't throw. |
| |
| 2011-12-13 Jakub Jelinek <jakub@redhat.com> |
| Michael Matz <matz@suse.de> |
| |
| PR tree-optimization/51117 |
| * tree-eh.c (sink_clobbers): New function. |
| (execute_lower_eh_dispatch): Call it for BBs ending with |
| internally throwing RESX. |
| * cfgexpand.c (add_scope_conflicts_1): Add all conflicts only |
| at the first real instruction. |
| |
| 2011-12-13 Tristan Gingold <gingold@adacore.com> |
| |
| * final.c (final_scan_insn): Guard the call to begin_epilogue |
| debug hook. |
| |
| 2011-12-13 Tristan Gingold <gingold@adacore.com> |
| |
| * vmsdbgout.c (vmsdbgout_write_source_line): New function. |
| (vmsdbgout_end_prologue): Call vmsdbgout_write_source_line. |
| (vmsdbgout_begin_epilogue): Likewise. |
| (vmsdbgout_end_epilogue): Likewise. |
| (vmsdbgout_source_line): Move code to vmsdbgout_write_source_line. |
| |
| 2011-12-13 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/51481 |
| * tree-cfg.c (replace_uses_by): Pass proper arguments to |
| maybe_clean_or_replace_eh_stmt. |
| |
| 2011-12-13 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51519 |
| * ipa-inline.c (edge_badness): Use edge growth in non-guessed |
| branch probability case as well. |
| |
| 2011-12-13 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (mark_loop_unsched): Free bbs. |
| |
| 2011-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/51495 |
| * function.c (thread_prologue_and_epilogue_insns): Don't add |
| to bb_tail basic blocks that have EDGE_COMPLEX predecessor edges |
| from basic blocks not needing prologue. |
| |
| PR tree-optimization/51481 |
| * gimple-fold.c (gimple_fold_call): Call |
| maybe_clean_or_replace_eh_stmt. Avoid optimization if stmt has EH |
| edges, but gimple_fold_builtin result can't throw. |
| |
| 2011-12-12 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/21617 |
| * ira-color.c (bucket_allocno_compare_func): Don't compare |
| allocno classes. Compare number of hard registers needed. |
| |
| 2011-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/50569 |
| * tree-sra.c (build_ref_for_model): Replicate a chain of COMPONENT_REFs |
| in the expression of MODEL instead of just the last one. |
| |
| 2011-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/51510 |
| * calls.c (internal_arg_pointer_based_exp_scan): Don't use |
| VEC_safe_grow_cleared if idx is smaller than VEC_length. |
| |
| 2011-12-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR middle-end/50873 |
| * optabs.c (maybe_legitimize_operand_same_code): Use copy_to_mode_reg |
| instead of force_reg. Do nothing if the address is already a |
| non-virtual pseudo register. |
| |
| 2011-12-12 Torvald Riegel <triegel@redhat.com> |
| |
| * gimplify.c (voidify_wrapper_expr): Add default handling for |
| outermost wrapper. |
| |
| 2011-12-12 Torvald Riegel <triegel@redhat.com> |
| |
| * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction |
| commits as equal. |
| |
| 2011-12-12 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin-sections.def (zobj_const_data_section): Fix over- |
| length section name. |
| |
| 2011-12-11 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_interleave): Use |
| BYTES_BIG_ENDIAN, not TARGET_BIG_ENDIAN. |
| |
| 2011-12-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51485 |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Give up on |
| DRs in call stmts. |
| |
| 2011-12-11 Patrick Marlier <patrick.marlier@gmail.com> |
| |
| * trans-mem.c (ipa_tm_transform_calls_redirect): Do not remove edge. |
| |
| 2011-12-10 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/altivec.md (altivec_vmrghb): Rewrite pattern as |
| vec_select + vec_concat. |
| (altivec_vmrghh, altivec_vmrghw, altivec_vmrghsf, altivec_vmrglb, |
| altivec_vmrglh, altivec_vmrglw, altivec_vmrglsf): Likewise. |
| (vec_perm_constv16qi): New. |
| (vec_extract_evenv4si, vec_extract_evenv4sf, vpkuhum_nomode, |
| vpkuwum_nomode, vec_extract_oddv8hi, vec_extract_oddv16qi, |
| vec_interleave_high<VI>, vec_interleave_low<VI>): Remove. |
| * config/rs6000/paired.md (paired_merge00): Rewrite pattern as |
| vec_select + vec_concat. |
| (paired_merge10, paired_merge01, paired_merge11): Likewise. |
| (vec_perm_constv2sf): New. |
| (vec_interleave_highv2sf, vec_interleave_lowv2sf, |
| vec_extract_evenv2sf, vec_extract_oddv2sf): Remove. |
| * config/rs6000/spe.md (spe_evmergehi): Rewrite pattern as |
| vec_select + vec_concat. |
| (spe_evmergehilo, spe_evmergelo, spe_evmergelohi): New. |
| (vec_perm_constv2si): New. |
| * config/rs6000/vector.md (vec_interleave_highv4sf, |
| vec_interleave_lowv4sf, vec_interleave_high<VEC_64>, |
| vec_interleave_low<VEC_64>): Remove. |
| * config/rs6000/vsx.md (VS_double): New mode attribute. |
| (UNSPEC_VSX_XXPERMDI): Remove. |
| (vsx_xxpermdi_<VSX_L>_1): Rewrite pattern as vec_select + vec_concat. |
| (vsx_xxmrghw_<VSX_W>, vsx_xxmrglw_<VSX_W>): Likewise. |
| (vsx_xxpermdi_<VSX_L>): Change to expander. |
| (vec_perm_const<VSX_D>): New. |
| (vsx_mergel_<VSX_D>, vsx_mergeh_<VSX_D>): New. |
| * config/rs6000/predicates.md (const_0_to_1_operand): New. |
| (const_2_to_3_operand): New. |
| * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): New. |
| (altivec_expand_vec_perm_const): New. |
| (rs6000_expand_vec_perm_const_1, rs6000_expand_vec_perm_const): New. |
| (rs6000_vectorize_vec_perm_const_ok): New. |
| (rs6000_do_expand_vec_perm): New. |
| (rs6000_expand_extract_even, rs6000_expand_interleave): New. |
| * config/rs6000/rs6000-builtin.def (VEC_MERGE*): Update rtx codes. |
| * config/rs6000/rs6000-modes.def: Add double-wide vector modes. |
| * config/rs6000/rs6000-protos.h: Update. |
| |
| 2011-12-10 Richard Henderson <rth@redhat.com> |
| |
| * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Avoid passing a |
| CONST_INT to expand_vec_perm as the selector. |
| * optabs.c (expand_vec_perm): Assert the selector is of a proper mode. |
| |
| 2011-12-10 Richard Henderson <rth@redhat.com> |
| |
| * genmodes.c (struct mode_data): Remove wider_2x member. |
| (blank_mode): Adjust initializer. |
| (calc_wider_mode): Use XALLOCAVEC. |
| (emit_move_wider): Select double-width same-element vectors for |
| 2xwider vectors. |
| * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation. |
| * config/i386/i386.c (doublesize_vector_mode): Remove. |
| (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead. |
| |
| 2011-12-10 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define. |
| (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise. |
| (USE_STORE_POST_DECREMENT): Likewise. |
| |
| * config/epiphany/epiphany.h (EPIPHANY_RETURN_REGNO): New macro, |
| broken out of .. |
| (INCOMING_RETURN_ADDR_RTX) .. this. Use EPIPHANY_RETURN_REGNO. |
| (DWARF_FRAME_RETURN_COLUMN): New macro. |
| |
| * config/epiphany/epiphany-protos.h (epiphany_start_function): Declare. |
| * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute): |
| Split "timer" value into "timer0" and "timer1". |
| Handle page_miss, message and wand. Don't handle static_flag. |
| Adjust warning text. |
| (epiphany_start_function): New function. |
| (epiphany_compute_function_type): Split "timer" value into "timer0" |
| and "timer1". Handle page_miss, message and wand. |
| Don't handle static_flag. |
| (epiphany_expand_epilogue): Don't use frame_insn for status / iret |
| restore. |
| * config/epiphany/epiphany.h: ASM_DECLARE_FUNCTION_NAME: Define. |
| (enum epiphany_function_type): |
| Split EPIPHANY_FUNCTION_TIMER value into EPIPHANY_FUNCTION_TIMER0 |
| and EPIPHANY_FUNCTION_TIMER1. |
| Remove EPIPHANY_FUNCTION_ILINK1 and EPIPHANY_FUNCTION_ILINK2 values. |
| Add EPIPHANY_FUNCTION_PAGE_MISS and EPIPHANY_FUNCTION_MESSAGE values. |
| Rename EPIPHANY_FUNCTION_STATIC_FLAG to EPIPHANY_FUNCTION_WAND. |
| |
| 2011-12-10 Nathan Sidwell <nathan@acm.org> |
| |
| PR gcov-profile/51449 |
| * coverage.c (coverage_end_function): Always process the coverage |
| variables. |
| |
| 2011-12-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR/51291 |
| * tree.c (build_common_builtin_nodes): Do not use TM_PURE |
| attribute unless language has support for TM. |
| * config/i386/i386.c (ix86_init_tm_builtins): Exit gracefully in |
| the absence of TM builtins. |
| |
| 2011-12-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1) <GIMPLE_UNARY_RHS>: |
| Also check the TYPE_MODE to recognize useless pointer conversions. |
| |
| 2011-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51117 |
| * tree-eh.c (optimize_clobbers): Don't remove just one |
| clobber, but all consecutive clobbers before RESX. |
| Use gimple_clobber_p predicate. |
| |
| 2011-12-09 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (altivec_expand_builtin): Call |
| expand_call to return a valid funciton instead of return |
| cosnt0_rtx/NULL_RTX if there was an error with the builtin. |
| (altivec_expand_ld_builtin): Ditto. |
| (rs6000_inner_target_options): If VSX is selected as a target |
| attribute or pragma, enable ALTIVEC also. |
| (rs6000_pragma_target_parse): Call rs6000_option_override_internal |
| to do all of the standard processing when switching options, |
| including redefining appropriate macros. |
| |
| PR rtl-optimization/51469 |
| * varasm.c (default_binds_local_p_1): If the symbol is a gnu |
| indirect function, mark the symbol as non-local. |
| |
| 2011-12-09 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR bootstrap/51479 |
| * Makefile.in (errors.o): Restored. |
| |
| 2011-12-09 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48042 |
| * tree.c (free_lang_data_in_decl): Remove freeing conditional |
| on debuginfo level. |
| |
| 2011-12-09 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| PR middle-end/40154 |
| * emit-rtl.c (set_dst_reg_note): New function. |
| * rtl.h (set_dst_reg_note): Declare. |
| * optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note. |
| (emit_libcall_block, expand_fix): Likewise. |
| * function.c (assign_parm_setup_reg, expand_function_start): Likewise. |
| * expmed.c (expand_mult_const, expand_divmod): Likewise. |
| * reload1.c (gen_reload): Likewise. |
| |
| * dse.c (get_stored_val, get_call_args): Use gen_int_mode. |
| * expmed.c (expand_divmod): Likewise. |
| * combine.c (simplify_if_then_else): Likewise. |
| |
| 2011-12-09 Kai Tietz <ktietz@redhat.com> |
| |
| * ira-color.c (print_hard_regs_subforest): Use |
| HOST_WIDEST_INT_PRINT_DEC instead of %lld. |
| (allocno_hard_regs): Change type of cost member to HOST_WIDEST_INT. |
| (add_allocno_hard_regs): Change type of argument cost |
| to HOST_WIDEST_INT. |
| * ira-conflict.c (build_conflict_bit_table): Replace use |
| of long-long by HOST_WIDEST_INT. |
| |
| 2011-12-09 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/51425 |
| * config/avr/avr.md (config/avr/avr.md, *sbix_branch_tmp): Use |
| zero_extract:QIHI instead of zero_extract:HI. |
| |
| 2011-12-09 Jakub Jelinek <jakub@redhat.com> |
| Andrew Pinski <apinski@cavium.com> |
| |
| PR tree-optimization/51117 |
| * tree-eh.c (optimize_clobbers): New function. |
| (execute_lower_eh_dispatch): Call it. |
| |
| 2011-12-09 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51482 |
| * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): |
| Make sure to only create REAL_TYPE and INTEGER_TYPE component vectors. |
| |
| 2011-12-09 Kai Tietz <ktietz@redhat.com> |
| |
| * implicit-zee.c (num_realized): Change type to long. |
| (num_ze_opportunities): Likewise. |
| |
| 2011-12-08 Andrew Pinski <apinski@cavium.com> |
| |
| * config/mips/mips-cpus.def (octeon+): New CPU. |
| * config/mips/mips-tables.opt: Regenerate. |
| * config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'. |
| |
| 2011-12-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR middle-end/39976 |
| * tree-ssa-dom.c (enum expr_kind): Add EXPR_PHI. |
| (struct hashable_expr): Add struct phi field. |
| (initialize_hash_element): Handle phis; change to use XCNEWVEC. |
| (hashable_expr_equal_p): Handle phis. |
| (iterative_hash_hashable_expr): Likewise. |
| (print_expr_hash_elt): Likewise. |
| (free_expr_hash_elt): Likewise. |
| (dom_opt_enter_block): Create equivalences from redundant phis. |
| (eliminate_redundant_computations): Handle redundant phis. |
| (lookup_avail_expr): Handle phis. |
| |
| 2011-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51466 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also copy |
| TREE_SIDE_EFFECTS. |
| |
| 2011-12-08 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (add_stmt_operand): Do not mark stmts |
| volatile when processing operands of an ADDR_EXPR. |
| (get_indirect_ref_operands): Likewise. |
| (get_tmr_operands): Likewise. |
| (get_expr_operands): Likewise. |
| |
| 2011-12-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| PR target/50395 |
| * config/s390/s390.c (s390_mainpool_finish): Emit the jump over |
| the literal pool as jump insn. |
| |
| 2011-12-08 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49772 |
| * tree-inline.c (optimize_inline_calls): Remove bail out on errors. |
| |
| 2011-12-08 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/50747 |
| * lto-streamer-out.c (produce_symtab): Remove asserts. |
| |
| 2011-12-08 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/49945 |
| * lto-streamer-out.c (tree_is_indexable): Localize variably |
| modified types and their FIELD_DECLs. |
| |
| 2011-12-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/51315 |
| * tree.h (get_object_or_type_alignment): Declare. |
| * expr.c (get_object_or_type_alignment): Move to... |
| * builtins.c (get_object_or_type_alignment): ...here. Add assertion. |
| * tree-sra.c (tree_non_mode_aligned_mem_p): Rename to... |
| (tree_non_aligned_mem_p): ...this. Add ALIGN parameter. Look into |
| MEM_REFs and use get_object_or_type_alignment for them. |
| (build_accesses_from_assign): Adjust for above change. |
| (access_precludes_ipa_sra_p): Likewise. |
| |
| 2011-12-08 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48437 |
| * lto-streamer-out.c (tree_is_indexable): Exclude block-local |
| extern declarations. |
| |
| 2011-12-07 Andrew Pinski <apinski@cavium.com> |
| |
| PR middle-end/45416 |
| * expr.c (do_store_flag): Rewrite code that looks for BIT_AND_EXPR for |
| SSA-expand. |
| |
| 2011-12-07 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50823 |
| * ipa-inline.c (edge_badness): Do not account for the number of |
| remaining calls. |
| |
| 2011-12-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/50744 |
| * ipa-cp.c (good_cloning_opportunity_p): Assert size_cost is positive, |
| compute evaluation in HOST_WIDEST_INT. |
| (safe_add): New function |
| (propagate_effects): Use safe_add to accumulate effects. |
| |
| 2011-12-06 Joel Sherrill <joel.sherrill@oarcorp.com> |
| |
| * config/rs6000/rtems.h: Switch to using global_options_set |
| in SUBSUBTARGET_OVERRIDE_OPTIONS. |
| |
| 2011-12-06 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/visintrin.h: Add appropriate __VIS__ cpp protection. |
| |
| 2011-12-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_file_start): Fix missing , |
| |
| 2011-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/51354 |
| * config/i386/i386.c (ix86_emit_leave): Call ix86_add_cfa_restore_note |
| unconditionally. |
| |
| 2011-12-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| Forward-port from gcc-4_6-branch r181936 2011-12-02. |
| * config/avr/avr-mcus.def (avr_mcu_types): ATtiny4313 and |
| AT86RF401 have a 16-bit SP (their manual is bogus). |
| |
| 2011-12-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| Forward-port from gcc-4_6-branch r181936 2011-12-02. |
| |
| PR target/51002 |
| * config/avr/avr.md (movhi_sp_r): Set insn condition to |
| !AVR_HAVE_8BIT_SP. |
| * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in |
| %B0,__SP_H__" if AVR_HAVE_8BIT_SP. |
| (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP. |
| |
| 2011-12-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/51409 |
| PR target/49868 |
| * config/avr/avr.h (ADDR_SPACE_PGM, ADDR_SPACE_PGM1, |
| ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4, |
| ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): Write as enum. |
| (avr_addrspace_t): New typedef. |
| (avr_addrspace): New declaration. |
| * config/avr/avr-c.c (avr_toupper): New static function. |
| (avr_register_target_pragmas, avr_cpu_cpp_builtins): Use |
| avr_addrspace to get address space information. |
| * config/avr/avr.c (avr_addrspace): New variable. |
| (avr_out_lpm, avr_pgm_check_var_decl, avr_insert_attributes, |
| avr_asm_named_section, avr_section_type_flags, |
| avr_asm_select_section, avr_addr_space_address_mode, |
| avr_addr_space_convert, avr_emit_movmemhi): Use it. |
| (avr_addr_space_pointer_mode): Forward to avr_addr_space_address_mode. |
| (avr_pgm_segment): Remove. |
| |
| 2011-12-06 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50601 |
| * varasm.c (assemble_alias): Move DECL_EXTERNAL implementation |
| quirk adjustjment ... |
| * passes.c (rest_of_decl_compilation): ... here. |
| |
| 2011-12-06 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/51436 |
| * gimple-fold.c (gimplify_and_update_call_from_tree): Guard vdef check |
| for the fact we do not have virtual operands when not optimizing. |
| |
| 2011-12-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51245 |
| * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces): |
| New function. |
| (vn_reference_lookup_3): Use it. Properly valueize all refs we create. |
| |
| 2011-12-06 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize |
| rs6000_current_abi. |
| |
| 2011-12-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51363 |
| * gimple.c (gimple_rhs_has_side_effects): Remove. |
| * gimple.h (gimple_rhs_has_side_effects): Likewise. |
| * tree-ssa-dom.c (optimize_stmt): Simplify conditional. |
| |
| 2011-12-06 Alan Modra <amodra@gmail.com> |
| |
| PR target/50906 |
| * config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>): |
| Do not mark r11 setup as frame-related. Pass correct offset to |
| rs6000_emit_savres_rtx. Correct out-of-line rs6000_frame_related |
| arguments. Correct sp_offset. Remove "offset" fudge from |
| in-line rs6000_frame_related call. Rename misleading variable. |
| Fix comments and whitespace. Tidy some expressions. |
| (rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx |
| to r11 in out-of-line case. Correct sp_offset. Pass correct |
| offset to rs6000_emit_savres_rtx. Rename misleading variable. |
| Fix comments and whitespace. Tidy some expressions. |
| (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset |
| adjustment when !saving_GPRs_inline. Correct register mode |
| used in address calcs. |
| (rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when |
| !restoring_GPRs_inline. |
| |
| 2011-12-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/vfp.md (*combine_vcvt_f64_<FCVTI32typename>): Fix |
| formatting character for vmov.f64 case. |
| |
| 2011-12-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51396 |
| * tree-ssa-math-opts.c (convert_mult_to_fma): Don't optimize |
| if MUL_RESULT has zero uses. |
| |
| PR debug/51410 |
| * c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls |
| for debug info if scope is file_scope. |
| |
| PR c/51339 |
| * c-decl.c (c_finish_incomplete_decl, finish_decl): Call |
| relayout_decl instead of layout_decl. |
| |
| 2011-12-05 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK |
| if there is in epilogue. |
| |
| 2011-12-05 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * optabs.c (maybe_emit_sync_lock_test_and_set): Pass a null target |
| to emit_library_call_value. |
| (expand_atomic_compare_and_swap): Likewise. |
| |
| 2011-12-05 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR other/50775 |
| * ira-int.h (struct ira_object): Remove add_data. |
| (OBJECT_ADD_DATA): Remove. |
| |
| * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA |
| initialization. |
| |
| * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to |
| allocno_hard_regs_t, allocno_hard_regs. |
| (object_hard_regs_node_t, object_hard_regs_node): Rename to |
| allocno_hard_regs_node_t and allocno_hard_regs_node. |
| (struct allocno_color_data): Add new member last_process. Move |
| profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start |
| from object_color_data. |
| (object_color_data_t, object_color_data, OBJECT_COLOR_DATA): Remove. |
| (curr_allocno_process): New static variable. |
| (object_hard_regs_eq, object_hard_regs_htab): Rename to |
| allocno_hard_regs_eq and allocno_hard_regs_htab. |
| (init_object_hard_regs, finish_object_hard_regs): Rename to |
| init_allocno_hard_regs and finish_allocno_hard_regs. |
| (object_hard_regs_compare, object_hard_regs_node_t): Rename to |
| allocno_hard_regs_compare and allocno_hard_regs_node_t. |
| (create_new_object_hard_regs_node): Rename to |
| create_new_allocno_hard_regs_node. |
| (add_new_object_hard_regs_node_to_forest): Rename to |
| add_new_allocno_hard_regs_node_to_forest. |
| (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): |
| Rename to add_allocno_hard_regs_to_forest and |
| collect_allocno_hard_regs_cover. |
| (setup_object_hard_regs_nodes_parent): Rename to |
| setup_allocno_hard_regs_nodes_parent. |
| (remove_unused_object_hard_regs_nodes): Rename to |
| remove_unused_allocno_hard_regs_nodes. |
| (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num): |
| Rename to enumerate_allocno_hard_regs_nodes and |
| allocno_hard_regs_nodes_num. |
| (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to |
| allocno_hard_regs_nodes and allocno_hard_regs_subnode_t. |
| (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to |
| allocno_hard_regs_subnode and allocno_hard_regs_subnodes. |
| (object_hard_regs_subnode_index): Rename to |
| allocno_hard_regs_subnode_index. |
| (setup_object_hard_regs_subnode_index): Rename to |
| setup_allocno_hard_regs_subnode_index. |
| (get_object_hard_regs_subnodes_num): Rename to |
| get_allocno_hard_regs_subnodes_num. |
| (form_object_hard_regs_nodes_forest): Rename to |
| form_allocno_hard_regs_nodes_forest. |
| (finish_object_hard_regs_nodes_tree): Rename to |
| form_allocno_hard_regs_nodes_forest |
| (finish_object_hard_regs_nodes_forest): Rename to |
| finish_allocno_hard_regs_nodes_forest. |
| (setup_left_conflict_sizes_p): Use allocno data instead of object ones. |
| Process conflict allocnos once. |
| (update_left_conflict_sizes_p): Use allocno data instead of object |
| ones. Change prototype signature. |
| (empty_profitable_hard_regs): Use allocno data instead of object ones. |
| (setup_profitable_hard_regs): Ditto. |
| (get_conflict_profitable_regs): Rename to |
| get_conflict_and_start_profitable_regs. Use allocno data for |
| profitable regs calculation. |
| (check_hard_reg_p): Change prototype signature. Check profitable |
| regs for allocno not the objects. |
| (assign_hard_reg): Process conflict allocnos only once for |
| updating conflict costs. |
| (setup_allocno_available_regs_num): Use allocno data instead of |
| object ones. Modify debug output. |
| (color_pass): Remove initialization and finalization of object |
| color data. |
| |
| 2011-12-05 Kazu Hirata <kazu@codesourcery.com> |
| |
| PR target/51408 |
| * config/arm/arm.md (*minmax_arithsi): Always require the else |
| clause in the MINUS case. |
| |
| 2011-12-05 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50904 |
| * tree-ssa-loop-im.c (struct mem_ref): Remove vops member. |
| (MEM_ANALYZABLE): New. |
| (memory_references): Remove clobbered_vops and vop_ref_map |
| members, add all_refs_stored_in_loop member. |
| (memref_free): Adjust. |
| (mem_ref_alloc): Likewise. |
| (gather_mem_refs_stmt): Do not record clobbers, instead |
| record refs for unanalyzable stmts. |
| (gather_mem_refs_in_loops): Do not propagate clobbers. |
| (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free, |
| record_vop_access, get_vop_accesses, get_vop_stores, |
| add_vop_ref_mapping): Remove. |
| (create_vop_ref_mapping_loop): Adjust to simply record all stores. |
| (analyze_memory_references): Adjust. |
| (refs_independent_p): Check for not analyzable refs. |
| (can_sm_ref_p): Likewise. |
| (ref_indep_loop_p_1): Simplify. |
| (tree_ssa_lim_finalize): Adjust. |
| |
| * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE |
| rather than magic constants. Assign zero cost to PAREN_EXPR |
| and SSA_NAME copies. Assign cost proportional to the vector |
| size for vector constructors. |
| |
| 2011-12-05 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field. |
| * tree-ssa-alias.c (ao_ref_init): Initialize it. |
| (ao_ref_init_from_ptr_and_size): Likewise. |
| (refs_may_alias_p_1): Two volatile accesses conflict. |
| (ref_maybe_used_by_call_p_1): Likewise. |
| (call_may_clobber_ref_p_1): Likewise. |
| * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize |
| volatile_p field. |
| |
| 2011-12-05 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA |
| names. Remove SSA operand checking, call verify_ssa_operands. |
| * tree-ssa-operands.h (verify_ssa_operands): Declare. |
| * tree-ssa-operands.c (verify_ssa_operands): New function. |
| |
| 2011-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define. |
| * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare. |
| * config/arm/constraints.md ("Dt"): New constraint. |
| * config/arm/predicates.md |
| (const_double_vcvt_power_of_two_reciprocal): New. |
| * config/arm/vfp.md (FCVTI32typename): New. |
| (FCVT): New iterator. |
| (*combine_vcvt_f32_<FCVTI32typename>): New. |
| (*combine_vcvt_f64_<FCVTI32typename>): New. |
| |
| 2011-12-05 Richard Guenther <rguenther@suse.de> |
| |
| * cgraph.c (cgraph_create_edge_1): Initialize |
| call_stmt_cannot_inline_p from the stmt if possible. |
| (cgraph_make_edge_direct): Likewise. |
| * gimple-streamer-in.c (input_gimple_stmt): Do not |
| call gimple_call_set_cannot_inline. |
| * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift values. |
| (gimple_call_set_cannot_inline): Remove. |
| (gimple_call_cannot_inline_p): Likewise. |
| * ipa-inline-analysis.c (initialize_inline_failed): Look |
| at the edge call_stmt_cannot_inline_p flag. |
| * ipa-inline.c (can_inline_edge_p): Likewise. |
| (early_inliner): Only update the edge flag. |
| * ipa-prop.c (update_indirect_edges_after_inlining): Likewise. |
| (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline. |
| * cgraphunit.c (assemble_thunk): Likewise. |
| * gimple-fold.c (gimple_fold_call): Likewise. |
| |
| * tree.h (CALL_CANNOT_INLINE_P): Remove. |
| * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls. |
| * builtins.c (expand_builtin_alloca): With -fmudflap do not expand |
| alloca calls inline. |
| * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P. |
| * gimple.c (gimple_build_call_from_tree): Do not read |
| CALL_CANNOT_INLINE_P. |
| * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P. |
| |
| 2011-12-05 Jakub Jelinek <jakub@redhat.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/51323 |
| PR middle-end/50074 |
| * calls.c (internal_arg_pointer_exp_state): New variable. |
| (internal_arg_pointer_based_exp_1, |
| internal_arg_pointer_exp_scan): New functions. |
| (internal_arg_pointer_based_exp): New function. |
| (mem_overlaps_already_clobbered_arg_p): Use it. |
| (expand_call): Free internal_arg_pointer_exp_state.cache vector |
| and clear internal_arg_pointer_exp_state.scan_start. |
| |
| 2011-12-04 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC. |
| * config/sh/sync.md: New file. |
| * config/sh/sh.md: Include sync.md. |
| * config/sh/sh.opt (msoft-atomic): New option. |
| * doc/invoke.texi (SH Options): Document it. |
| |
| 2011-12-04 Nathan Sidwell <nathan@acm.org> |
| |
| * gcov-io.h (struct gcov_info): Replace trailing array with |
| pointer to array. |
| * profile.c (branch_prob): Only call renamed |
| coverage_begin_function once. |
| * coverage.h (coverage_begin_output): Rename to ... |
| (coverage_begin_function): ... here. |
| * coverage.c (struct function_list): Rename to ... |
| (struct coverage_data): ... this. Update all uses. |
| (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New globals. |
| (bbg_file_opened, bbg_function_announced): Remove. |
| (get_coverage_counts): Adjust message. |
| (coverage_begin_ouput): Rename to ... |
| (coverage_begin_function): ... here. Move file opening to |
| coverage_init. Adjust for being called only once. |
| (coverage_end_function): Remove bbg file and inhibit further |
| output here on error. |
| (build_info_type): Adjust for change to pointer to array. |
| (build_info): Receive array of function pointers and adjust. |
| (create_coverage): Break into ... |
| (coverage_obj_init, coverage_obj_fn, coverage_obj_finish): |
| ... these, and adjust. |
| (coverage_init): Open the notes file here. Tidy. |
| (coverage_finish): Call coverage_obj_init etc. |
| |
| 2011-12-04 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR middle-end/51285 |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit |
| phi nodes for outer loop in case of double reduction. |
| |
| 2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr> |
| |
| PR target/51393 |
| * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second |
| parameter as long long. |
| |
| 2011-12-04 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR middle-end/51351 |
| * optabs.c (init_sync_libfuncs): Use "or" rather than "ior" |
| in the external names. |
| |
| 2011-12-03 Jack Howarth <howarth@bromo.med.uc.edu> |
| |
| * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for |
| non-PIC code when targeting 10.7 or later. |
| |
| 2011-12-03 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when |
| Darwin >= 10. |
| (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10. |
| (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10. |
| |
| 2011-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR, |
| VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and |
| VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument. |
| (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR, |
| VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR |
| and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments. |
| |
| PR debug/50317 |
| * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type |
| vars that aren't referenced. |
| (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE |
| of unreferenced local vars. |
| * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also |
| TREE_ADDRESSABLE vars that satisfy target_for_debug_bind. |
| |
| 2011-12-03 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove. |
| * config/arm/arm-protos.h (aapcs_libcall_value): Remove. |
| * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define. |
| (arm_libcall_value_1, arm_function_value_regno_p): New function. |
| (arm_function_value, arm_libcall_value): Use arm_libcall_value_1. |
| (aapcs_libcall_value): Make static. |
| (arm_libcall_value): Add static qualifier. |
| |
| 2011-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/51387 |
| * config/i386/sse.md (mul<mode>3 with VI1_AVX2 iterator): For |
| V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 } |
| permutation instead of extract even permutation. |
| |
| 2011-12-02 Nathan Sidwell <nathan@acm.org> |
| |
| * gcov.c (struct arc_info): Add is_throw field. |
| (struct (block_info): Add exceptional field, reduce flags size to |
| account for it. |
| (struct function_info): Add has_catch field. |
| (struct line_info): Add unexceptional field. |
| (process_file): Call find_exception_blocks if necessary. |
| (read_graph_file): Adjust. Note if an exceptional edge is seen. |
| (find_exception_blocks): New. |
| (add_line_counts): Set line's unexceptional flag if not exceptional. |
| (output_branch_count): Note exceptional arcs, lines and blocks. |
| * gcov-dump.c (tag_arcs): Decode arc flags. |
| * doc/gcov.texi: Document '=====' lines. |
| |
| 2011-12-02 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, |
| PRINT_OPERAND_PUNCT_VALID_P): Remove macros. |
| * config/ia64/ia64-protos.h (ia64_print_operand, |
| ia64_print_operand_address): Remove. |
| * config/ia64/ia64.c (TARGET_PRINT_OPERAND, |
| TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P): |
| Define. |
| (ia64_print_operand_punct_valid_p): New function. |
| (ia64_print_operand, ia64_print_operand_address): Make static. |
| |
| 2011-12-02 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/51390 |
| * config/rs6000/rs6000.c (def_builtin): Use the correct field to |
| figure out the function's attributes. |
| (struct builtin_description): Mark mask field as const since we no |
| longer need to modify it for SPE and PAIRED builtins. |
| |
| 2011-12-02 Joseph Myers <joseph@codesourcery.com> |
| |
| Revert: |
| |
| 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR rtl-opt/37451 |
| * loop-doloop.c (doloop_modify): New argument zero_extend_p and |
| zero extend count after the correction to it is done. |
| (doloop_optimize): Update call to doloop_modify, don't zero extend |
| count before call. |
| |
| 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR rtl-opt/37782 |
| * loop-doloop.c (doloop_modify): Add from_mode argument that says what |
| mode count is in. |
| (doloop_optimize): Update call to doloop_modify. |
| |
| 2011-12-02 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/47259 |
| * ipa.c (varpool_externally_visible_p): Register variables |
| are always externally visible. |
| |
| 2011-12-02 Sameera Deshpande <sameera.deshpande@arm.com> |
| |
| * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if |
| non-NULL. |
| |
| 2011-12-02 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/50622 |
| * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand |
| if both lacc and racc are grp_partial_lhs. |
| |
| 2011-12-01 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/50814. |
| * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as |
| TARGET_SH3. |
| (shl_sext_kind): Likewise. |
| * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise. |
| * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove. |
| (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3. |
| (ashlsi3): Likewise. |
| (ashrsi3_d): Likewise. |
| (lshrsi3_d): Likewise. |
| (lshrsi3): Likewise. |
| |
| 2011-12-01 Diego Novillo <dnovillo@google.com> |
| |
| PR bootstrap/51346 |
| * ipa-inline.c (can_inline_edge_p): If the edge E has a statement, |
| use the statement's inline indicator instead of E's. |
| Remove consistency check. |
| |
| 2011-12-01 Diego Novillo <dnovillo@google.com> |
| |
| PR bootstrap/51346 |
| Revert |
| |
| 2011-11-29 Diego Novillo <dnovillo@google.com> |
| |
| * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h. |
| Update field call_stmt_cannot_inline_p from call |
| graph edge, if needed. |
| * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c. |
| |
| 2011-12-01 Nathan Sidwell <nathan@acm.org> |
| |
| PR gcov-profile/51113 |
| * coverage.c (build_var): Keep coverage variables static. |
| |
| 2011-12-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51356 |
| * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if |
| vectype doesn't have VECTOR_MODE_P. |
| |
| PR debug/50317 |
| * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing |
| as unnecessary a store to a variable with gimple reg type. |
| * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit |
| on local unreferenced variables. |
| * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs |
| for !target_for_debug_bind variables. |
| |
| 2011-12-01 Patrick Marlier <patrick.marlier@gmail.com> |
| |
| PR middle-end/51273 |
| * cgraph.h (cgraph_call_node_duplication_hooks): Declare. |
| * cgraph.c (cgraph_call_node_duplication_hooks): Make global. |
| * cgraphunit.c (cgraph_copy_node_for_versioning): Call it. |
| |
| 2011-12-01 Andrew Pinski <apinski@cavium.com> |
| |
| PR lto/51198 |
| * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's |
| DECL_INITIAL also. |
| |
| 2011-12-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51246 |
| * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs. |
| |
| PR rtl-optimization/51014 |
| * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs |
| both from bb and orig_bb. |
| |
| 2011-12-01 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| PR tree-optimization/50802 |
| * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test |
| considering what happens to ranges during sign changes and/or |
| intermediate narrowing conversions. |
| |
| 2011-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/50283 |
| * config/pa/pa.md (in_branch_delay): Disallow frame related insns. |
| (in_nullified_branch_delay): Likewise. |
| (in_call_delay): Likewise. |
| |
| 2011-11-30 Richard Henderson <rth@redhat.com> |
| |
| * predict.c (expr_expected_value_1): Assume compare-and-swap builtin |
| boolean return is true. |
| |
| 2011-11-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/51044 |
| * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction |
| rather than just insn body. |
| |
| PR target/50725 |
| * function.c (thread_prologue_and_epilogue_insns): If |
| stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE |
| regset. |
| |
| PR middle-end/51089 |
| * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to |
| avoid creating duplicate edges here. |
| (cleanup_empty_eh_unsplit): And remove it in the caller. |
| |
| 2011-11-30 Andrew Pinski <apinski@cavium.com> |
| |
| PR c/51321 |
| * c-parser.c (c_parser_postfix_expression): Check groktypename results |
| before looking at the main variant. |
| |
| 2011-11-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/48721 |
| * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set |
| reg_pending_barrier to TRUE_BARRIER. |
| |
| PR rtl-optimization/48721 |
| * sched-ebb.c (begin_move_insn): Insert empty unreachable |
| block after BARRIER if insn is followed by it. |
| |
| 2011-11-30 Richard Henderson <rth@redhat.com> |
| |
| * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New. |
| * config/sparc/sparc.opt (mmemory-model=): New option. |
| * doc/invoke.texi (Sparc Options): Document it. |
| * config/sparc/sparc.c (sparc_option_override): Provide default |
| for sparc_memory_model. |
| (sparc_emit_membar_for_model): Omit barrier combinations that are |
| implied by the memory model. |
| |
| 2011-11-30 Richard Henderson <rth@redhat.com> |
| |
| * config/sparc/sync.md (I124MODE): New mode iterator. |
| (memory_barrier): Remove. |
| (atomic_exchangesi): New. |
| (swapsi): Rename from *swapsi. |
| (atomic_test_and_set<I124MODE>): New. |
| (ldstubqi): Rename from *ldstubqi, merge with expander. |
| (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander. |
| (sync_lock_test_and_setsi): Remove. |
| (sync_lock_test_and_set<I12MODE>): Remove. |
| |
| 2011-11-30 Richard Henderson <rth@redhat.com> |
| |
| * config/sparc/constraints.md ("w"): New. |
| * config/sparc/predicates.md (mem_noofs_operand): New. |
| * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static. |
| Generate the boolean result of the atomic_compare_exchange. |
| (sparc_expand_compare_and_swap): New. |
| * config/sparc/sync.md (atomic_compare_and_swap<I>): New. |
| (atomic_compare_and_swap<I48MODE>_1): Rename from |
| *sync_compare_and_swap<I48MODE>, use mem_noofs_operand. |
| (*atomic_compare_and_swapdi_v8plus): Rename from |
| *sync_compare_and_swapdi_v8plus, use mem_noofs_operand. |
| (sync_compare_and_swap<I12MODE>): Remove. |
| (sync_compare_and_swap<I48MODE>): Remove. |
| |
| 2011-11-30 Richard Henderson <rth@redhat.com> |
| |
| * config/sparc/predicates.md (register_or_v9_zero_operand): New. |
| * config/sparc/sparc.md (UNSPEC_ATOMIC): New. |
| * config/sparc/sync.md (atomic_load<I>): New. |
| (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New. |
| |
| 2011-11-30 Richard Henderson <rth@redhat.com> |
| |
| * config/sparc/predicates.md (zero_or_v7_operand): New. |
| * config/sparc/sparc.c (sparc_emit_membar_for_model): New. |
| * config/sparc/sparc-protos.h: Update. |
| * config/sparc/sync.md (mem_thread_fence): New. |
| (memory_barrier): Use sparc_emit_membar_for_model. |
| (membar, *membar_empty, *membar_storestore, *membar_storeload): New. |
| (*membar_v8): Accept and ignore the membar mask. |
| (*membar): Accept and print the membar mask. |
| |
| 2011-11-30 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> |
| |
| * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue. |
| * config/arm/arm.md (mul64): New attribute. |
| (generic_sched): Cortex-A15 is not scheduled generically. |
| (cortex-a15.md): Include. |
| * config/arm/cortex-a15.md: New machine description. |
| * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md. |
| |
| 2011-11-30 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> |
| |
| * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed. |
| |
| 2011-11-30 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description. |
| * doc/tm.texi: Regenerate. |
| * flags.h (flag_next_runtime): Remove references. |
| * toplev.c: Likewise. |
| * defaults.h (NEXT_OBJC_RUNTIME): Provide default. |
| * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME. |
| * config/darwin.c (darwin_override_options): Provide default |
| Objective-C abi settings and target conflict checks. |
| * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused |
| code. Adjust indenting. |
| |
| 2011-11-29 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES) |
| (REG_CLASS_CONTENTS): Add NON_SP_REGS. |
| (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS. |
| * config/sh/constraints.md (u): New constraint. |
| |
| 2011-11-29 Oleg Endo <oleg.endo@t-online.de> |
| |
| PR target/51337 |
| * config/sh/sh.c (sh_secondary_reload): Add case when FPUL |
| register is being loaded from a pseudo in memory. |
| |
| 2011-11-29 DJ Delorie <dj@redhat.com> |
| |
| * config.gcc (rl78-*-elf): New case. |
| * doc/extend.texi: Add RL78 documentation. |
| * doc/invoke.texi: Likewise. |
| * doc/md.texi: Likewise. |
| * doc/contrib.texi: Add RL78. |
| * doc/install.texi: Add rl78-*-elf. |
| * config/rl78: New directory for the Renesas RL78. |
| |
| 2011-11-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51247 |
| * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision |
| types instead of adding 1 subtract -1 and instead of subtracting 1 |
| add -1 to avoid overflows. |
| |
| 2011-11-29 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR target/50123 |
| * optabs.c (maybe_optimize_fetch_op): New. Look for more optimal |
| instructions for a FECTH_OP or OP_FECTH sequence. |
| (expand_atomic_fetch_op): Call maybe_optimize_fetch_op. |
| |
| 2011-11-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs. |
| (movdi_via_fpu): Remove. |
| (loaddi_via_fpu): New insn pattern. |
| (storedi_via_fpu): Ditto. |
| (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu. |
| (atomic_storedi_fpu): Ditto. |
| * reg-stack.c (get_true_reg): Handle UNSPEC_LDA. |
| (subst_stack_regs_pat): Handle UNSPEC_STA. |
| |
| 2011-11-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not |
| allocate scratch memory for alternative 0. |
| |
| 2011-11-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-builtins.def: Completely rewrite builtin |
| handling to centralize more of the builtins in this file. Change |
| some builtin enumerations to be more consistant. Use a new mask |
| to hold the current builtins, including SPE and PAIRED builtins |
| which no longer are set via target_flags masks. Add |
| -mdebug=builtin debug support. For power machines, define all |
| Altivec and VSX buitins when the compiler starts, but don't allow |
| the use of a builtin unless the appropriate switch is used, or |
| #pragma GCC target is used to change the options. If the user |
| uses #pragma GCC target, update the appropriate hardware macros. |
| * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto. |
| * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto. |
| * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto. |
| (rs6000_define_or_undefine_macro): Ditto. |
| (rs6000_target_modify_macros): Ditto. |
| (rs6000_cpu_cpp_builtins): Ditto. |
| (altivec_overloaded_builtins): Ditto. |
| (altivec_build_resolved_builtin): Ditto. |
| * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto. |
| (rs6000_builtin_info): Ditto. |
| (def_builtin): Ditto. |
| (enable_mask_for_builtins): Ditto. |
| (DEBUG_FMT_X): Ditto. |
| (rs6000_debug_reg_global): Ditto. |
| (rs6000_builtin_mask_calculate): Ditto. |
| (rs6000_option_override_internal): Ditto. |
| (rs6000_builtin_conversion): Ditto. |
| (rs6000_builtin_vectorized_function): Ditto. |
| (bdesc_3arg): Ditto. |
| (bdesc_dst): Ditto. |
| (bdesc_2arg): Ditto. |
| (builtin_description_predicates): Ditto. |
| (bdesc_altivec_preds): Ditto. |
| (bdesc_spe_predicates): Ditto. |
| (bdesc_spe_evsel): Ditto. |
| (bdesc_paired_preds): Ditto. |
| (bdesc_abs): Ditto. |
| (bdesc_1arg): Ditto. |
| (rs6000_overloaded_builtin_p): Ditto. |
| (rs6000_expand_unop_builtin): Ditto. |
| (bdesc_2arg_spe): Ditto. |
| (spe_expand_builtin): Ditto. |
| (rs6000_invalid_builtin): Ditto. |
| (rs6000_expand_builtin): Ditto. |
| (rs6000_init_builtins): Ditto. |
| (spe_init_builtins): Ditto. |
| (paired_init_builtins): Ditto. |
| (altivec_init_builtins): Ditto. |
| (builtin_function_type): Ditto. |
| (rs6000_common_init_builtins): Ditto. |
| (rs6000_builtin_reciprocal): Ditto. |
| (rs6000_builtin_mask_names): Ditto. |
| (rs6000_pragma_target_parse): Ditto. |
| (rs6000_function_specific_print): Ditto. |
| * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto. |
| (MASK_DEBUG_ALL): Ditto. |
| (TARGET_DEBUG_BUILTIN): Ditto. |
| (TARGET_EXTRA_BUILTINS): Ditto. |
| (REGISTER_TARGET_PRAGMAS): Ditto. |
| (enum rs6000_btc): Ditto. |
| (RS6000_BTC_*): Ditto. |
| (RS6000_BTM_*): Ditto. |
| (enum rs6000_builtins): Ditto. |
| * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto. |
| (rs6000_target_modify_macros): Ditto. |
| (rs6000_target_modify_macros_ptr): Ditto. |
| |
| * config/rs6000/vector.md (unsfloat<VEC_int><mode>2): Use the |
| standard name for converting vector unsigned values to floating |
| point. Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which |
| is handled by machine independent code. |
| * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto. |
| (rs6000_builtin_conversion): Ditto. |
| |
| 2011-11-29 Dodji Seketeli <dodji@redhat.com> |
| |
| * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair. |
| (maybe_unwind_expanded_macro_loc): Adjust. |
| |
| 2011-11-29 David Edelsohn <dje.gcc@gmail.com> |
| Aldy Hernandez <aldyh@redhat.com> |
| |
| * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl |
| if DECL_ONE_ONLY. |
| (ipa_tm_create_version): Same. |
| |
| 2011-11-29 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c (recompute_todo_spec): Simplify and correct the |
| code checking for a clobber of a condition register when deciding |
| whether to predicate. |
| |
| 2011-11-29 Diego Novillo <dnovillo@google.com> |
| |
| * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h. |
| Update field call_stmt_cannot_inline_p from call graph edge, if needed. |
| * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c. |
| |
| 2011-11-29 Sameera Deshpande <sameera.deshpande@arm.com> |
| |
| * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE. |
| (movdf_soft_insn): Likewise. |
| * config/arm/fpa.md (thumb2_movdf_fpa): Likewise. |
| * config/arm/neon.md (neon_mov<mode>): Likewise. |
| * config/arm/vfp.md (movdi_vfp): Likewise. |
| (movdi_vfp_cortexa8): Likewise. |
| (movdf_vfp): Likewise. |
| |
| 2011-11-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/50074 |
| * expr.c (expand_expr_addr_expr_1): Don't call force_operand for |
| EXPAND_SUM modifier. |
| |
| 2011-11-29 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/51301 |
| * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that |
| the last statement doesn't convert to a bigger type than the original |
| type of the computation. |
| |
| 2011-11-28 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): |
| Handle overlap between retval and oldval. Always compute boolval |
| from CR0 EQ value. |
| |
| 2011-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/50317 |
| * tree-ssa.c (execute_update_addresses_taken): Remove |
| var ={v} {CLOBBER} stmts instead of rewriting them into |
| var_N ={v} {CLOBBER}. |
| |
| PR middle-end/50907 |
| * function.c (convert_jumps_to_returns): When redirecting an edge |
| succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag. |
| |
| PR tree-optimization/50078 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over |
| TREE_THIS_VOLATILE also from the old to new lhs resp. rhs. |
| |
| PR tree-optimization/50682 |
| * tree-eh.c (maybe_remove_unreachable_handlers): New function. |
| * tree-flow.h (maybe_remove_unreachable_handlers): New prototype. |
| * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it. |
| |
| 2011-11-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/extend.texi (AVR Built-in Functions): Add documentation for |
| __builtin_avr_map8 and __builtin_avr_map16. |
| |
| * config/avr/avr.md: Document new %t and %T asm output codes. |
| (define_c_enum "unspec"): Add UNSPEC_MAP_BITS. |
| (adjust_len): Add map_bits. |
| (map_bitsqi, map_bitshi): New insns. |
| * config/avr/avr-protos.h (avr_out_map_bits): New. |
| * config/avr/avr-protos.c (print_operand): Implement %t and %T. |
| (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS. |
| (avr_double_int_push_digit): New function. |
| (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions. |
| (avr_sig_map, avr_map_hamming_byte): New functions. |
| (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits, |
| avr_out_map_bits): New functions. |
| (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16. |
| (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16. |
| (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ... |
| (avr_expand_builtin): ...and expand them. |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines: |
| __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16. |
| |
| 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/51278 |
| * config/mips/mips.c (mips_rtx_costs): Handle baddu. |
| |
| 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode. |
| |
| 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips-protos.h (mips_emit_binary): Declare. |
| * config/mips/mips.c (mips_emit_binary): Make global. |
| (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode. |
| (mips_conditional_register_usage): Don't treat LO and HI as |
| register operands in MIPS16 mode. |
| (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16 |
| for MIPS16 code. |
| * config/mips/predicates.md (muldiv_target_operand): New predicate. |
| (move_operand): Allow hilo_operand. |
| * config/mips/mips.md (mul<mode>3): Explicitly specify LO as the |
| target of MIPS16 multiplies, then move it into the target register. |
| (mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand. |
| (<u>mulsidi3_32bit_mips16): New expander. |
| (<u>mulsidi3_32bit): Use muldiv_target_operand. |
| (<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP. |
| (<u>mulsidi3_64bit): Require !TARGET_MIPS16. Split into |
| <u>mulsidi3_64bit_split. |
| (<u>mulsidi3_64bit_mips16): New expander. |
| (<u>mulsidi3_64bit_split): Likewise, using expansions from |
| two previous define_splits. |
| (<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use |
| muldiv_target_operand. |
| (<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code. |
| (<su>mulsi3_highpart_internal): Require !TARGET_MIPS16. |
| Split into <su>mulsi3_highpart_split. |
| (<su>mulsi3_highpart_split): New expander. |
| (<su>muldi3_highpart): Turn into a define_expand. |
| Use <su>muldi3_highpart_split for MIPS16 code. |
| (<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart. |
| Require !TARGET_MIPS16. Split into <su>muldi3_highpart_split. |
| (<su>muldi3_highpart_split): New expander. |
| (<u>mulditi3): Explicitly specify LO as the target of MIPS16 |
| multiplies, then move it into the target register. |
| (<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand. |
| (divmod<mode>4, udivmod<mode>4): Turn into define_expands. |
| Use <u>divmod<mode>4_split for MIPS16 code, then explicitly |
| move LO into operand 0. |
| (divmod<mode>4_internal, udivmod<mode>4_internal): Renamed |
| from <u>divmod<mode>4. Use muldiv_target_operand. |
| Require !TARGET_MIPS16. Split into <u>divmod<mode>4_split. |
| (<u>divmod<mode>4_split): New expander. |
| (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand. |
| (mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand. |
| |
| 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set |
| and x_operand_reg_set. |
| (accessible_reg_set, operand_reg_set): New macros. |
| * reginfo.c (init_reg_sets): Initialize accessible_reg_set and |
| operand_reg_set. |
| (saved_accessible_reg_set, saved_operand_reg_set): New variables. |
| (save_register_info): Save them. |
| (restore_register_info): Restore them. |
| (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set. |
| Remove NO_REGS registers from operand_reg_set. Treat members |
| of operand_reg_set as fixed. |
| * recog.c (general_operand): Check operand_reg_set rather than NO_REGS. |
| (register_operand, nonmemory_operand): Likewise. |
| * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of |
| register variables. Check accessible_reg_set and operand_reg_set. |
| * config/mips/mips.c (mips_conditional_register_usage): Remove |
| inaccessible register from accessible_reg_set, rather than just |
| making them fixed. |
| |
| 2011-11-27 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * config/pa/pa-linux.h (TARGET_GAS): Remove comment. |
| |
| 2011-11-26 Richard Henderson <rth@redhat.com> |
| |
| * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs |
| for Linux. |
| |
| 2011-11-26 Richard Henderson <rth@redhat.com> |
| |
| * optabs.c (expand_atomic_fetch_op): Always return result. |
| |
| * optabs.c (init_sync_libfuncs_1): Include max in iteration. |
| |
| * omp-low.c (expand_omp_atomic): Assume anything aligned to |
| BIGGEST_ALIGNMENT is aligned. |
| |
| 2011-11-26 Richard Henderson <rth@redhat.com> |
| |
| * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New. |
| (UNSPECV_TAS_1, UNSPECV_TAS_2): New. |
| (I): New mode iterator. |
| (xz): New mode attribute. |
| * config/m68k/sync.md: New file. |
| |
| * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New. |
| * config/m68k/m68k.c (m68k_init_sync_libfuncs): New. |
| |
| 2011-11-26 Nathan Sidwell <nathan@acm.org> |
| |
| PR gcov-profile/51297 |
| * gcov.c (main): Allocate initial names and sources arrays. |
| (find_source): Don't check for null name or source arrays here. |
| |
| 2011-11-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/49912 |
| * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit |
| when counting n_branch. |
| |
| 2011-11-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes. |
| |
| 2011-11-26 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| PR middle-end/50074 |
| * calls.c (mem_overlaps_already_clobbered_arg_p): |
| Return false if no outgoing arguments have been stored so far. |
| |
| 2011-11-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT. |
| |
| 2011-11-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR other/51011 |
| * tree.h (is_builtin_name): No longer external. |
| * builtins.c (is_builtin_name): Make static. |
| * varasm.c (incorporeal_function_p): __sync and __atomic external calls |
| are not incorporeal and may need asm label processing. |
| |
| 2011-11-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50566 |
| * config/avr/avr-protos.h (avr_log_t): Add field .builtin. |
| * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it. |
| Don't bypass TARGET_ALL_DEBUG. Print self-info with ?. |
| (avr_log_vadump): Support %D and %X to print double_int. |
| (avr_double_int_pop_digit): New static function. |
| (avr_dump_double_int_hex): New static function. |
| |
| 2011-11-24 Enkovich Ilya <ilya.enkovich@intel.com> |
| |
| PR target/51287 |
| * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn |
| attr check. |
| |
| 2011-11-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| * optab.c (maybe_emit_atomic_exchange): New. Try to emit an |
| atomic_exchange pattern. |
| (maybe_emit_sync_lock_test_and_set): New. Try to emit an exchange |
| using __sync_lock_test_and_set. |
| (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an |
| exchange using a compare_and_swap loop. |
| (expand_sync_lock_test_and_set): New. Expand sync_lock_test_and_set. |
| (expand_atomic_test_and_set): New. Expand test_and_set operation. |
| (expand_atomic_exchange): Use new maybe_emit_* functions. |
| (expand_atomic_store): Use new maybe_emit_* functions. |
| * builtins.c (expand_builtin_sync_lock_test_and_set): Call |
| expand_sync_lock_test_and_set routine. |
| (expand_builtin_atomic_exchange): Remove parameter from call. |
| (expand_builtin_atomic_clear): Use atomic_clear pattern if present. |
| (expand_builtin_atomic_test_and_set): Add target and simply call |
| expand_atomic_test_and_set. |
| (expand_builtin): Add target to expand_builtin_atomic_test_and_set. |
| * expr.h (expand_atomic_exchange): Add parameter. |
| (expand_sync_lock_test_and_set): New prototype. |
| (expand_atomic_test_and_set, expand_atomic_clear): New prototypes. |
| |
| 2011-11-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/51134 |
| * config/i386/i386.h (processor_costs): Revert revision 181357. |
| * config/i386/i386.c (cost models): Likewise. |
| (core_cost): Likewise. |
| (promote_duplicated_reg): Likewise. |
| (promote_duplicated_reg_to_size): Likewise. |
| (processor_target): Likewise. |
| (expand_set_or_movmem_via_loop_with_iter): Likewise. |
| (expand_set_or_movmem_via_loop): Likewise. |
| (emit_strset): Likewise. |
| (expand_movmem_epilogue): Likewise. |
| (expand_setmem_epilogue): Likewise. |
| (expand_movmem_prologue): Likewise. |
| (expand_setmem_prologue): Likewise. |
| (expand_constant_movmem_prologue): Likewise. |
| (expand_constant_setmem_prologue): Likewise. |
| (decide_alg): Likewise. |
| (decide_alignment): Likewise. |
| (ix86_expand_movmem): Likewise. |
| (ix86_expand_setmem): Likewise. |
| (ix86_slow_unaligned_access): Likewise. |
| * config/i386/i386.md (strset): Likewise. |
| * config/i386/sse.md (vec_dupv4si): Likewise. |
| (vec_dupv2di): Likewise. |
| |
| 2011-11-24 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (*rotlhi2.15): Set length to 4. |
| |
| 2011-11-24 Razya Ladelsky <razya@il.ibm.com> |
| |
| * tree-data-ref.c (initialize_data_dependence_relation): Update |
| comment for the self dependence case. |
| (compute_self_dependence): Remove. |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to |
| compute_self_dependenc. |
| |
| 2011-11-24 Alan Modra <amodra@gmail.com> |
| |
| * c-decl.c (warn_if_shadowing): Don't warn if shadowed |
| identifier is from system header. |
| |
| 2011-11-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/51261 |
| * config/i386/i386.c (decide_alg): Initialize *dynamic_check |
| even if !optimize. |
| |
| 2011-11-23 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/48455 |
| * doc/invoke.texi (-fira-region): Document default values. |
| |
| * flags-types.h (enum ira_region): Add new value |
| IRA_REGION_AUTODETECT. |
| |
| * common.opt (fira-region): Set up initial value to |
| IRA_REGION_AUTODETECT. |
| |
| * toplev.c (process_options): Set up flag_ira_region depending on |
| -O options. |
| |
| * ira.c (ira.c): Remove optimize guard for ira_build. |
| |
| 2011-11-23 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| PR rtl-optimization/50496 |
| * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX |
| only after epilogue is created. Add comments. |
| |
| 2011-11-22 Richard Henderson <rth@redhat.com> |
| |
| * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter. |
| Generate the barrier required for the memory model. |
| (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL. |
| * config/ia64/ia64-protos.h: Update. |
| * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New. |
| (UNSPEC_CMPXCHG_REL): New. |
| * config/ia64/sync.md (mem_thread_fence): New. |
| (atomic_load<IMODE>, atomic_store<IMODE>): New. |
| (atomic_compare_and_swap<IMODE>): New. |
| (cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New. |
| (atomic_exchange<IMODE>): New. |
| (xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>. |
| (atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New. |
| (atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New. |
| (atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New. |
| (fetchadd_rel_<I48MODE>): New. |
| (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove. |
| (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove. |
| (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove. |
| (sync_compare_and_swap<IMODE>): Remove. |
| (sync_lock_release<IMODE>): Remove. |
| |
| * config/ia64/ia64.md: Use define_c_enum for UNSPEC_* |
| and UNSPECV_* constants. |
| |
| 2011-11-22 Tom de Vries <tom@codesourcery.com> |
| |
| PR rtl-optimization/50764 |
| * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are |
| not moved past preceding jump. |
| |
| 2011-11-22 Jeff Law <law@redhat.com> |
| |
| * doc/contrib.texi: Add entry for David Binderman. |
| |
| 2011-11-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * postreload.c (reload_combine): Mark reg_state as invalid at |
| volatile insns if there has been a use already. |
| |
| 2011-11-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * opts.c (finish_options): Do not fail for -fgnu-tm. |
| * gimple-streamer-out.c (output_gimple_stmt): Handle |
| GIMPLE_TRANSACTION. |
| * gimple-streamer-in.c (input_gimple_stmt): Same. |
| * lto-cgraph.c (input_overwrite_node): Read tm_clone bit. |
| (lto_output_node): Write tm_clone bit. |
| |
| 2011-11-22 Ian Lance Taylor <iant@google.com> |
| |
| * doc/install.texi (Configuration): Correct doc of |
| --enable-build-poststage1-with-cxx: it is not experimental. |
| |
| 2011-11-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51074 |
| * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR |
| handling for BYTES_BIG_ENDIAN. |
| * optabs.c (can_vec_perm_for_code_p): Likewise. |
| |
| 2011-11-22 Michael Matz <matz@suse.de> |
| |
| PR other/51125 |
| * trans-mem.c (expand_block_tm): Ignore clobbers. |
| |
| 2011-11-22 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin.h (ENDFILE_SPEC): New. |
| (DARWIN_CRT1_SPEC): Add crttms.o. |
| (STARTFILE_SPEC): Likewise for dynamic libs and bundles. |
| * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o. |
| |
| 2011-11-22 Michael Matz <matz@suse.de> |
| |
| PR c++/51264 |
| * tree.c (iterative_hash_expr): Remove break after return. |
| |
| 2011-11-22 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * target.def (tm_clone_table_section): New hook. |
| * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define. |
| * doc/tm.texi: Regenerate. |
| * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section. |
| * output.h (default_clone_table_section): New prototype. |
| * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New. |
| * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype. |
| * config/darwin.c (darwin_tm_clone_table_section): New. |
| |
| 2011-11-21 Torvald Riegel <triegel@redhat.com> |
| |
| * trans-mem.c (diagnose_tm_1): Print an expression instead of a |
| declaration in error messages for indirect calls. |
| |
| 2011-11-21 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (sparc_regmode_natural_size): New function |
| implementing REGMODE_NATURAL_SIZE taking into consideration vector |
| modes. |
| (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P. |
| * config/sparc/sparc-protos.h (sparc_regmode_natural_size, |
| sparc_modes_tieable_p): Declare. |
| * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE, |
| MODES_TIEABLE_P): Use new helper functions. |
| |
| Revert |
| 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| PR middle-end/50325 |
| * expmed.c (store_bit_field_1): Use extract_bit_field on big |
| endian targets if the source cannot be exactly covered by word |
| mode chunks. |
| |
| 2011-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/50827 |
| * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP |
| macro instead of XEXP. |
| |
| 2011-11-21 Andreas Tobler <andreast@fgznet.ch> |
| |
| * configure: Regenerate. |
| |
| 2011-11-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (output_reload_in_const): Loading a byte with 0 |
| must not affect cc0. |
| * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any |
| register does not change cc0. Same for any constant to ld-register. |
| |
| 2011-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP, |
| UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>: |
| Move from config/i386/i386.md |
| (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto. |
| * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU, |
| UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI, |
| UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV, |
| UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW, |
| UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR, |
| UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE, |
| UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST, |
| UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC, |
| UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL, |
| UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP, |
| UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF, |
| UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto. |
| (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH, |
| UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>: |
| Ditto. |
| * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE, |
| UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto. |
| (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3, |
| UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto. |
| (sse2_lfence): Move from config/i386/sse.md. |
| (*sse2_lfence): Ditto. |
| (sse_sfence): Ditto. |
| (*sse_sfence): Ditto. |
| (sse2_mfence): Ditto. |
| (mfence_sse2): Ditto. Rename from *sse2_mfence. Enable also |
| for TARGET_64BIT. |
| (mem_thread_fence): Use mfence_sse2. |
| |
| 2011-11-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.h (struct base_arch_s): Add field sfr_offset. |
| * config/avr/avr-devices.c: Ditto. And initialize it. |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define |
| __AVR_SFR_OFFSET__. |
| * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove. |
| (out_movhi_r_mr, out_movhi_mr_r): Remove. |
| (out_movsi_r_mr, out_movsi_mr_r): Remove. |
| * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20. |
| (*insv.io, *insv.not.io): Ditto. |
| * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static. |
| (print_operand): Implement "%i" to print address as I/O address. |
| (output_movqi): Clean up call of out_movqi_mr_r. |
| (output_movhi): Clean up call of out_movhi_mr_r. |
| (avr_file_start): Use avr_current_arch->sfr_offset instead of |
| magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1. |
| (avr_out_sbxx_branch): Use %i instead of %m-0x20. |
| (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static. |
| (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len. |
| (out_shift_with_cnt): Clean up code: Use avr_asm_len. |
| (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources. |
| (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources. |
| Clean up call of avr_out_store_psi. |
| (output_reload_in_const): Don't cut symbols longer than 2 bytes. |
| (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to |
| try if setting pre-cleared register is advantageous. |
| (avr_out_plus_1): Use gen_int_mode instead of GEN_INT. |
| |
| 2011-11-20 Joey Ye <joey.ye@arm.com> |
| |
| * expr.c (expand_expr_real_1): Correctly handle strict volatile |
| bitfield loads smaller than mode size. |
| |
| 2011-11-20 Richard Henderson <rth@redhat.com> |
| |
| * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs. |
| |
| 2011-11-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/51235 |
| * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP |
| patterns for supported mode only. |
| |
| PR target/51236 |
| * config/i386/i386.c (ix86_expand_builtin) |
| <IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di. |
| |
| 2011-11-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (UNSPEC_MOVNTI): Remove. |
| (UNSPEC_MOVNTQ): New unspec. |
| * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi. |
| Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT. |
| * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of |
| UNSPEC_MOVNTI. |
| (STORENT_MODE): Add DI and V4DI modes. |
| |
| 2011-11-20 Nathan Sidwell <nathan@acm.org> |
| |
| PR gcov-profile/51113 |
| * coverage.c (build_var): Propagate visibility for public |
| decls. Use make_decl_one_only for PIC correctness. |
| |
| testsuite/ |
| * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage |
| * gcc.misc-tests/gcov-16.c: New. |
| * gcc.misc-tests/gcov-17.c: New. |
| * g++.dg/gcov/gcov-8.C: New. |
| * g++.dg/gcov/gcov-9.C: New. |
| * g++.dg/gcov/gcov-10.C: New. |
| |
| 2011-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/51187 |
| * reorg.c (relax_delay_slots): Do not consider a jump useless if there |
| is a barrier between the jump and its target label. |
| |
| 2011-11-19 Patrick Marlier <patrick.marlier@gmail.com> |
| |
| PR middle-end/51211 |
| * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION. |
| |
| 2011-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * expmed.c (store_bit_field_1): Revert bogus formatting change. |
| |
| 2011-11-19 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/50493 |
| * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial |
| overlap of src and dest operands. |
| |
| 2011-11-19 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin.h (ASM_DEBUG_SPEC): New. |
| * config/darwin9.h (ASM_DEBUG_SPEC): New. |
| |
| 2011-11-18 Jan Hubicka <jh@suse.cz> |
| |
| * config/i386/i386.c (atom_cost): Disable SSE loop until alignment |
| issues are fixed. |
| |
| 2011-11-18 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/cris/cris.c (cris_function_value_regno_p): Make static. |
| (TARGET_FUNCTION_VALUE_REGNO_P): Define. |
| * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove. |
| * config/cris/cris-protos.h (cris_function_value_regno_p): Remove. |
| |
| 2011-11-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/33944 |
| * doc/extend.texi: Document __builtin_ia32_movnti64. |
| |
| * config/i386/emmintrin.h (_mm_stream_si64): New. |
| |
| * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG. |
| |
| * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64. |
| (bdesc_special_args): Update __builtin_ia32_movnti. Add |
| __builtin_ia32_movnti64. |
| (ix86_expand_special_args_builtin): Handle |
| VOID_FTYPE_PLONGLONG_LONGLONG. |
| |
| * config/i386/i386.md (UNSPEC_MOVNTI): New. |
| |
| * config/i386/sse.md (sse2_movntsi): Renamed to ... |
| (sse2_movnti<mode>): This. |
| |
| 2011-11-18 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49868 |
| * config/avr/avr.h (base_arch_s): Add field n_segments. |
| (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, |
| ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces. |
| (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines. |
| (INIT_EXPANDERS): New define. |
| * config/avr/avr-protos.h (avr_mem_pgmx_p): New. |
| (avr_init_expanders): New. |
| (avr_emit_movmemhi, avr_out_movmem): New. |
| (avr_xload_libgcc_p): New. |
| * config/avr/avr-c.c (avr_register_target_pragmas): Register |
| address spaces __pgm1, __pgm2, __pgm3, __pgm4 __pgm5, __pgmx. |
| (avr_cpu_cpp_builtins): Add built-in defines __PGM1, |
| __PGM2, __PGM3, __PGM4, __PGM5, __PGMX. |
| * config/avr/avr-devices.c (avr_arch_types): Set field n_segments. |
| |
| * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover |
| 3 bits instead of just 1. |
| (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables. |
| (progmem_section): Change from section to array of sections. |
| (progmem_section_prefix): New static variable. |
| (avr_file_start): Print set for __RAMPZ__ |
| (avr_option_override): Move initialization of RTXes from here... |
| (avr_init_expanders): ...to this new function. |
| (avr_pgm_segment): New static function. |
| (avr_decl_pgm_p): Handle error_mark_node. |
| (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions. |
| (avr_out_xload, avr_find_unused_d_reg): New static functions. |
| (expand_prologue, expand_epilogue): Use rampz_rtx. |
| (print_operand): Hande CONST_STRING. |
| (avr_xload_libgcc_p): New static function. |
| (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM. |
| (avr_progmem_p): Return 2 for 24-bit flash address space. |
| (avr_out_sbxx_branch): Clean-up code from ASn macros. |
| (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's |
| address and print symbolically. |
| (avr_asm_named_section, avr_section_type_flags, |
| avr_encode_section_info, avr_asm_select_section, |
| avr_addr_space_address_mode, avr_addr_space_pointer_mode, |
| avr_addr_space_legitimate_address_p, avr_addr_space_convert, |
| avr_addr_space_legitimize_address): Handle new address spaces. |
| (avr_output_progmem_section_asm_op): New static function. |
| (avr_asm_init_sections): Initialize progmem_section[]. |
| (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM. |
| (avr_const_address_lo16): New static function. |
| (avr_assemble_integer): Use it to handle 3-byte integers. |
| (avr_emit_movmemhi, avr_out_movmem): New functions. |
| |
| * config/avr/predicates.md (nox_general_operand): Handle new |
| address spaces. |
| * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM. |
| (adjust_len): Add xload, movmem. |
| (SP_ADDR): New define_constants. |
| (isa): Add "lpm", "lpmx", "elpm", "elpmx". |
| (enabled): Handle them. |
| (load<mode>_libgcc): New expander. |
| (*load.<mode>.libgcc): Rename to load_<mode>_libgcc. |
| (xload8_A, xload<mode>_A): New insn-and-splits. |
| (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns. |
| (mov<mode>): Handle new address spaces. |
| (movmemhi): Rewrite using avr_emit_movmemhi. |
| (MOVMEM_r_d): New mode attribute. |
| (movmem_<mode>, movmem_qi_elpm): New insns. |
| (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote |
| C-code. Use label instead of hard-coded instrunction lengths. |
| |
| 2011-11-18 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/50605 |
| * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs |
| of IPA invariant decls. |
| |
| 2011-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * tree-outof-ssa.c (insert_back_edge_copies): Add call to |
| mark_dfs_back_edges. |
| |
| 2011-11-18 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR target/49992 |
| * configure.ac: Remove ranlib special-casing for Darwin. |
| * configure: Regenerate. |
| |
| 2011-11-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/51118 |
| * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure |
| before using TREE_TYPE accessor on expr. |
| |
| 2011-11-17 Jan Hubicka <jh@suse.cz> |
| |
| PR bootstrap/51134 |
| * i386.c (atom_cost): Fix 32bit memset description. |
| (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check |
| for epilogue loops. |
| (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing |
| byte loop. |
| (decide_alg): sse_loop is not useable wthen SSE2 is disabled; |
| when not optimizing always use rep movsb or lincall; do not produce |
| word sized loops when optimizing memset for size (to avoid need |
| for large constants). |
| (ix86_expand_movmem): Get into sync with ix86_expand_setmem; |
| choose unroll factors better; always do 128bit moves when producing |
| SSE loops; do not produce loopy epilogue when size is too small. |
| (promote_duplicated_reg_to_size): Do not look into desired alignments |
| when doing vector expansion. |
| (ix86_expand_setmem): Track better when promoted value is available; |
| choose unroll factors more sanely. Output loopy epilogue only |
| when needed. |
| |
| 2011-11-17 Steve Ellcey <sje@cup.hp.com> |
| |
| PR middle-end/51144 |
| * output.h (fprint_w): Remove. |
| * final.c (fprint_w): Remove. |
| (output_addr_const): Change fprint_w back to fprintf. |
| |
| 2011-11-17 Andrew Pinski <apinski@cavium.com> |
| |
| * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS. |
| |
| 2011-11-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * builtins.c (expand_builtin): Remove 4th parameter representing |
| weak/strong mode when __atomic_compare_exchange becomes a library call. |
| |
| 2011-11-17 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get |
| new pseudo for target after convert_modes. |
| (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise. |
| |
| 2011-11-17 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get |
| new pseudo for target after convert_modes. |
| (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise. |
| |
| 2011-11-17 Richard Henderson <rth@redhat.com> |
| |
| * builtins.c (expand_builtin_mem_thread_fence): Remove. |
| (expand_builtin_mem_signal_fence): Remove. |
| (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence. |
| (expand_builtin_sync_synchronize): Likewise. |
| (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence. |
| * optabs.c (expand_asm_memory_barrier): Split out from |
| expand_builtin_mem_signal_fence. |
| (expand_mem_thread_fence): New, a combination of code from |
| expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize. |
| (expand_mem_signal_fence): Moved and renamed from |
| expand_builtin_mem_signal_fence. |
| (expand_atomic_exchange): Use expand_mem_thread_fence. |
| (expand_atomic_load, expand_atomic_store): Likewise. |
| * expr.h, optabs.h: Update decls. |
| |
| 2011-11-17 Bin Cheng <bin.cheng@arm.com> |
| |
| PR rtl-optimization/50663 |
| * cprop.c (implicit_set_indexes): New global variable. |
| (insert_set_in_table): Add additional parameter and record implicit |
| set information. |
| (hash_scan_set): Add additional parameter and pass it to above. |
| (hash_scan_insn): Pass false to hash_scan_set. |
| (compute_hash_table_work): Pass true to hash_scan_set. |
| (compute_cprop_data): Add implicit set to AVIN of block which the |
| implicit set is recorded for. |
| (one_cprop_pass): Handle implicit_set_indexes array. |
| |
| 2011-11-17 Michael Matz <matz@suse.de> |
| |
| PR middle-end/50644 |
| PR middle-end/50741 |
| * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of |
| current function. |
| (remove_unused_locals): Ditto. |
| |
| 2011-11-16 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy |
| ALIAS_SET_MEMORY_BARRIER when creating a new memory. |
| (alpha_split_atomic_exchange_12): Likewise. |
| * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise. |
| |
| 2011-11-16 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove. |
| |
| 2011-11-16 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): |
| Default to minimum alignment if decl is NULL. |
| |
| 2011-11-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode |
| sequence for AVX. |
| (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto. |
| |
| 2011-11-16 Venkataramanan Kumar <venkataramanan.kumar@amd.com> |
| |
| * doc/invoke.texi: Document AMD bdver1 and btver1. |
| |
| 2011-11-16 Richard Earnshaw <rearnsha@arm.com> |
| Bernd Schmidt <bernds@coudesourcery.com> |
| Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| PR target/49641 |
| * config/arm/arm.c (store_multiple_sequence): Avoid cases where |
| the base reg is stored iff compiling for Thumb1. |
| |
| 2011-11-16 Razya Ladelsky <razya@il.ibm.com> |
| |
| PR tree-optimization/49960 |
| * tree-data-ref.c (initialize_data_dependence_relation): Add |
| initializations. |
| Remove call to compute_self_dependence. |
| (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition. |
| (compute_self_dependence): Remove old code. Add call to |
| compute_affine_dependence. |
| (compute_all_dependences): Remove call to compute_self_dependence. |
| Add call to compute_affine_dependence. |
| |
| 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| PR middle-end/50325 |
| * expmed.c (store_bit_field_1): Use extract_bit_field on big |
| endian targets if the source cannot be exactly covered by word |
| mode chunks. |
| |
| 2011-11-15 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to |
| ELF_STRING_LIMIT. |
| |
| 2011-11-15 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (alpha_pre_atomic_barrier): New. |
| (alpha_post_atomic_barrier): New. |
| (alpha_split_atomic_op): New memmodel argument; honor it. |
| (alpha_split_compare_and_swap): Take array of operands. Honor |
| memmodel; always set bool output |
| (alpha_expand_compare_and_swap_12): Similarly. |
| (alpha_split_compare_and_swap_12): Similarly. |
| (alpha_split_atomic_exchange): Similarly. Rename from |
| alpha_split_lock_test_and_set. |
| (alpha_expand_atomic_exchange_12): Similarly. Rename from |
| alpha_expand_lock_test_and_set_12. |
| (alpha_split_atomic_exchange_12): Similarly. Rename from |
| alpha_split_lock_test_and_set_12. |
| * config/alpha/alpha-protos.h: Update. |
| * config/alpha/alpha.md (UNSPECV_CMPXCHG): New. |
| * config/alpha/constraints.md ("w"): New. |
| * config/alpha/predicates.md (mem_noofs_operand): New. |
| * config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from |
| sync_compare_and_swap<mode>; add the new parameters. |
| (atomic_exchange<mode>): Update from sync_test_and_set<mode>. |
| (atomic_fetch_<op><mode>): Update from sync_old_<op><mode>. |
| (atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>. |
| (atomic_<op><mode>): Update from sync_<op><mode>. |
| |
| 2011-11-16 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1. |
| |
| 2011-11-16 Alan Modra <amodra@gmail.com> |
| |
| PR rtl-optimization/51051 |
| PR bootstrap/51086 |
| * function.c (thread_prologue_and_epilogue_insns): Guard |
| emitting return with single_succ_p test. |
| |
| 2011-11-15 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * config/epiphany/epiphany.md (mov<mode>cc): Fix code to |
| get mode from CMP_OP1 if CMP_OP0 is VOIDmode. |
| |
| 2011-11-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX. |
| (vec_pack_sfix_trunc_v2df): Ditto. |
| (vec_pack_sfix_v2df): Ditto. |
| (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and |
| avx_vec_concatv8si patterns. |
| (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and |
| avx_vec_concatv8si patterns. |
| |
| 2011-11-15 Torvald Riegel <triegel@redhat.com> |
| |
| * c-parser.c (c_parser_transaction_expression): Require parentheses |
| when parsing transaction expressions. |
| |
| 2011-11-15 Tristan Gingold <gingold@adacore.com> |
| |
| * incpath.c (get_added_cpp_dirs): New function. |
| * incpath.h (get_added_cpp_dirs): Declare. |
| * config/vms/vms-c.c (vms_c_register_includes): New function. |
| (vms_std_modules): New variable. |
| * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define. |
| (vms_c_register_includes): Declare. |
| |
| 2011-11-15 Tristan Gingold <gingold@adacore.com> |
| |
| * c-family/c-pragma.h (pragma_extern_prefix): Declare. |
| * c-family/c-pragma.c (pragma_extern_prefix): Make it public. |
| * config/vms/vms-c.c (saved_extern_prefix): New variable. |
| (vms_pragma_extern_prefix): New function. |
| (vms_c_register_pragma): Register vms_pragma_extern_prefix. |
| |
| 2011-11-15 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49868 |
| * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces. |
| (REGISTER_TARGET_PRAGMAS): New define. |
| * config/avr/avr-protos.h (avr_mem_pgm_p): New. |
| (avr_load_libgcc_p): New. |
| (avr_register_target_pragmas): New. |
| (asm_output_external_libcall): Remove. |
| (avr_log_t): Add field "progmem". Order alphabetically. |
| * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem. |
| * config/avr/avr-c.c (langhooks.h): New include. |
| (avr_register_target_pragmas): New function. Register address |
| space __pgm. |
| (avr_cpu_cpp_builtins): Add built-in define __PGM. |
| |
| * config/avr/avr.c: Include "c-family/c-common.h". |
| (TARGET_LEGITIMATE_ADDRESS_P): Remove define. |
| (TARGET_LEGITIMIZE_ADDRESS): Remove define. |
| (TARGET_ADDR_SPACE_SUBSET_P): Define to... |
| (avr_addr_space_subset_p): ...this new static function. |
| (TARGET_ADDR_SPACE_CONVERT): Define to... |
| (avr_addr_space_convert): ...this new static function. |
| (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to... |
| (avr_addr_space_address_mode): ...this new static function. |
| (TARGET_ADDR_SPACE_POINTER_MODE): Define to... |
| (avr_addr_space_pointer_mode): ...this new static function. |
| (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to... |
| (avr_addr_space_legitimate_address_p): ...this new static function. |
| (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to... |
| (avr_addr_space_legitimize_address): ...this new static function. |
| (avr_mode_code_base_reg_class): Handle address spaces. |
| (avr_regno_mode_code_ok_for_base_p): Ditto. |
| (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables. |
| (avr_option_override): Initialize them. |
| (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop |
| variables. |
| (avr_pgm_segment): New static function. |
| (avr_decl_pgm_p, avr_mem_pgm_p): New static functions. |
| (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions. |
| (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call |
| avr_out_lpm to handle loads from progmem. |
| (avr_load_libgcc_p): New static function. |
| (avr_progmem_p): Test if decl is in flash. |
| (avr_pgm_pointer_const_p): New static function. |
| (avr_nonconst_pointer_addrspace): New static function. |
| (avr_pgm_check_var_decl): New static function. |
| (avr_insert_attributes): Use it. Change error message to report |
| cause (progmem or address space) when code wants to write to flash. |
| (avr_section_type_flags): Unset section flag SECTION_BSS for |
| data in progmem. |
| |
| * config/avr/predicates.md (nop_general_operand): New predicate. |
| (nox_general_operand): New predicate. |
| * config/avr/avr.md (LPM_REGNO): New define_constant. |
| (load<mode>_libgcc): New expander. |
| (*load.<mode>.libgcc): New insn. |
| (mov<mode>): Handle loads from non-generic AS. |
| (movmemhi): Ditto. Propagate address space information to newly |
| created MEM. |
| (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1 |
| to nox_general_operand. |
| (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to |
| nop_general_operand. |
| (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto. |
| (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto. |
| (split-lpmx): New split. |
| (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const, |
| *lshrhi3_const, *lshrsi3_const): Indent, unquote C. |
| |
| 2011-11-15 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * ipa-cp.c (ipa_value_from_jfunc): Make global. |
| (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead. |
| (get_indirect_edge_target): Rename, make global. |
| (devirtualization_time_bonus, estimate_local_effects,) |
| (ipcp_discover_new_direct_edges): Update. |
| * ipa-inline-analysis.c (evaluate_conditions_for_edge): |
| Generalize to also handle types. Rename to ... |
| (evaluate_properties_for_edge): Use instead of |
| evaluate_conditions_for_edge. |
| (estimate_edge_devirt_benefit): New function. |
| (estimate_calls_size_and_time): Use it. |
| (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,) |
| (inline_merge_summary): Update. |
| (do_estimate_edge_time, do_estimate_edge_growth): Update. Calculate |
| parameter information at the call site and pass it on to subroutines. |
| * tree-inline.c (estimate_num_insns): Distinguish between direct and |
| indirect calls. |
| (init_inline_once): Set size and time costs or indirect calls. |
| * tree-inline.h (eni_weights): Add indirect_call_cost. |
| |
| 2011-11-15 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/51005 |
| * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to |
| mark_basic_block_deleted. |
| (update_worklist): Inline purge_bbs. |
| (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry) |
| (delete_block_update_dominator_info): Remove. |
| (replace_block_by): Remove update_vops parameter. Partially evaluate |
| for update_vops == false. |
| (apply_clusters): Remove update_vops parameter. Remove update_vops |
| argument in replace_block_by call. |
| (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test. |
| (tail_merge_optimize): Remove update_vops argument to apply_clusters. |
| Remove call to purge_bbs. Add calls to calculate_dominance_info and |
| free_dominance_info. Add MAY_HAVE_DEBUG_STMTS before calling |
| update_debug_stmts. Mark vop var for renaming, if necessary. |
| |
| 2011-11-15 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/51051 |
| * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the |
| move would cause fallthrough into the exit block. |
| |
| 2011-11-14 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is |
| handled. |
| (emit_store_conditional): Likewise. |
| (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New. |
| (rs6000_adjust_atomic_subword): New. |
| (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New. |
| (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite |
| for pre-reload expansion. |
| (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi, |
| rs6000_expand_compare_and_swapqhi): Merge into ... |
| (rs6000_expand_atomic_compare_and_swap): ... here. New function. |
| rs6000_split_lock_test_and_set; expand immediately. Handle |
| QImode and HImode. |
| * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename |
| from UNSPECV_LWSYNC. |
| * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove. |
| (mem_thread_fence): New. |
| (hwsync): Rename from memory_barrier. |
| (*hwsync): Rename from *sync_internal. |
| (lwsync, *lwsync): Mirror hwsync implementation. |
| (isync): Don't reference memory. |
| (loadsync): New. |
| (atomic_load<INT>, atomic_store<INT>): New. |
| (ATOMIC): New mode iterator. |
| (load_locked<ATOMIC>): Rename from load_locked_<GPR>. |
| (store_conditional<ATOMIC>): Rename from store_conditional_<GPR>. |
| (sync_compare_and_swap<GPR>): Remove. |
| (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove. |
| (sync_compare_and_swapqhi_internal): Remove. |
| (sync_lock_test_and_set<GPR>): Remove. |
| (sync_<FETCHOP><INT1>): Remove. |
| (*sync_<FETCHOP>si_internal, *sync_<FETCHOP>di_internal): Remove. |
| (sync_nand<INT1>, *sync_nand<GPR>_internal): Remove. |
| (sync_old_<FETCHOP><GPR>): Remove. |
| (*sync_old_<FETCHOP>si_internal): Remove. |
| (*sync_old_<FETCHOP>di_internal): Remove. |
| (sync_old_nand<INT1>): Remove. |
| (*sync_old_nand<GPR>_internal): Remove. |
| (sync_new_<FETCHOP><GPR>): Remove. |
| (*sync_new_<FETCHOP>si_internal): Remove. |
| (*sync_new_<FETCHOP>di_internal): Remove. |
| (sync_new_nand<INT1>): Remove. |
| (*sync_new_nand<GPR>_internal): Remove. |
| (*atomic_andsi, *atomic_anddi): Remove. |
| (*sync_addshort_internal, *sync_subshort_internal): Remove. |
| (*sync_andsi_internal, *sync_boolsi_internal): Remove. |
| (*sync_boolcshort_internal): Remove. |
| (sync_lock_release<INT1>): Remove. |
| (atomic_compare_and_swap<INT1>): New. |
| (atomic_exchange<INT1>): New. |
| (atomic_<FETCHOP><INT1>, atomic_nand<INT1>): New. |
| (atomic_fetch_<FETCHOP><INT1>, atomic_fetch_nand<INT1>): New. |
| (atomic_<FETCHOP>_fetch<INT1>, atomic_nand_fetch<INT1>): New. |
| |
| 2011-11-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (round<mode>2): Use register_operand for |
| operand 1 predicate. |
| (round<mode>2_sfix): Ditto. |
| (round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2. |
| |
| 2011-11-14 Nathan Sidwell <nathan@acm.org> |
| |
| * gcov.c (canonicalize_name): Protect use of S_ISLNK. |
| |
| 2011-11-14 Jan Hubicka <jh@suse.cz> |
| |
| PR target/51126 |
| * config/i386/i386.c (core cost model): Correct pasto. |
| |
| 2011-11-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (round<mode>2_sfix): New expander. |
| (round<mode>2_vec_pack_sfix): Ditto. |
| (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto. |
| (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto. |
| * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND, |
| V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND, |
| V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types. |
| * config/i386/i386.c (ix86_builtins): Add |
| IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and |
| IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines. |
| (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256}, |
| __builtin_ia32_roundpd_az_vec_pack_sfix{,256}, |
| __builtin_ia32_{floorps,ceilps}_sfix{,256}and |
| __builtin_ia32_roundps_az_sfix{,256} descriptions. |
| (ix86_expand_sse_round_vec_pack_sfix): New. |
| (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND, |
| V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and |
| V8SI_FTYPE_V4DF_V4DF_ROUND types. Check last argument of |
| CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix, |
| CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256. |
| (ix86_builtin_vectorized_function): Handle |
| BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and |
| BUILT_IN_{I,L,LL}ROUND{,F} |
| |
| 2011-11-14 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/50598 |
| * cgraph.h (varpool_externally_visible_p): Declare. |
| (varpool_add_new_variable): Declare. |
| * tree-emultls.c (get_emutls_init_templ_addr, |
| new_emutls_decl): Use varpool_add_new_variable. |
| * ipa.c (varpool_externally_visible_p): Export. |
| * varpool.c (varpool_add_new_variable): New function. |
| |
| 2011-11-14 Michael Zolotukhin <michael.v.zolotukhin@gmail.com> |
| Jan Hubicka <jh@suse.cz> |
| |
| * config/i386/i386.h (processor_costs): Add second dimension to |
| stringop_algs array. |
| * config/i386/i386.c (cost models): Initialize second dimension of |
| stringop_algs arrays. |
| (core_cost): New costs based on generic64 costs with updated stringop |
| values. |
| (promote_duplicated_reg): Add support for vector modes, add |
| declaration. |
| (promote_duplicated_reg_to_size): Likewise. |
| (processor_target): Set core costs for core variants. |
| (expand_set_or_movmem_via_loop_with_iter): New function. |
| (expand_set_or_movmem_via_loop): Enable reuse of the same iters in |
| different loops, produced by this function. |
| (emit_strset): New function. |
| (expand_movmem_epilogue): Add epilogue generation for bigger sizes, |
| use SSE-moves where possible. |
| (expand_setmem_epilogue): Likewise. |
| (expand_movmem_prologue): Likewise for prologue. |
| (expand_setmem_prologue): Likewise. |
| (expand_constant_movmem_prologue): Likewise. |
| (expand_constant_setmem_prologue): Likewise. |
| (decide_alg): Add new argument align_unknown. Fix algorithm of |
| strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop |
| (decide_alignment): Update desired alignment according to chosen move |
| mode. |
| (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves. |
| (ix86_expand_setmem): Likewise. |
| (ix86_slow_unaligned_access): Implementation of new hook |
| slow_unaligned_access. |
| * config/i386/i386.md (strset): Enable half-SSE moves. |
| * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si. |
| (vec_dupv2di): Add expand for vec_dupv2di. |
| |
| 2011-11-14 Dimitrios Apostolou <jimis@gmx.net> |
| |
| PR bootstrap/51094 |
| PR middle-end/51116 |
| * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove. |
| * varasm.c (default_elf_internal_label): Remove. |
| |
| 2011-11-14 Kai Tietz <ktietz@redhat.com> |
| |
| * gcov.c (generate_results): Add missing semicolon and correct indent. |
| |
| 2011-11-14 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR bootstrap/51112 |
| * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype. |
| |
| 2011-11-14 Mingjie Xing <mingjie.xing@gmail.com> |
| |
| * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes} |
| to @pxref{Function Attributes}. |
| |
| 2011-11-13 Oleg Endo <oleg.endo@t-online.de> |
| |
| PR target/50694 |
| * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A): |
| New macros. |
| (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options |
| taking the default configuration into account. |
| |
| 2011-11-13 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| * doc/install.texi (Specific): Fix anchor for |
| x86_64-*-solaris2.1[0-9]*. |
| |
| 2011-11-13 Nathan Sidwell <nathan@acm.org> |
| |
| * gcov.c (source_prefix, source_length): New globals. |
| (flag_relative_only): Likewise. |
| (print_usage, options, process_args): Update. |
| (generate_results): Use coverage.name, check |
| flag_relative_only. Adjust messages. |
| (find_source): Check source_prefix. |
| (output_lines): Use coverage.name, adjust messages. |
| * doc/gcov.texi (Invoking Gcov): Document new options. |
| |
| 2011-11-12 Jason Merrill <jason@redhat.com> |
| |
| PR c++/51060 |
| * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup. |
| (gimplify_modify_expr): Don't try to simplify it. |
| |
| 2011-11-12 Dimitrios Apostolou <jimis@gmx.net> |
| |
| PR bootstrap/51094 |
| * config/elfos.h (STRING_ASM_OP): Define. |
| * varasm.c (default_elf_asm_output_limited_string): Use it. |
| |
| PR bootstrap/51094 |
| * gcc/configure.ac: Check for stpcpy declaration. |
| * system.h: Declare it if not. |
| * config.in, configure: Regenerate. |
| |
| 2011-11-12 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use |
| nonimmediate_operand for the destination. |
| (fixuns_trunc<SFDF>si2_stfiwx): Likewise. |
| |
| * builtins.c (expand_builtin_compare_and_swap): If target is const0, |
| don't pass the target to expand_atomic_compare_and_swap. |
| (expand_builtin_atomic_compare_exchange): Likewise. |
| |
| * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New. |
| * config/sh/sh.c (sh_init_sync_libfuncs): New. |
| |
| * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New. |
| * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default. |
| * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs. |
| |
| 2011-11-12 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR target/45233 |
| * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): |
| Only expand a symbol ref. into an access when the entity is defined |
| in the TU. |
| |
| 2011-11-12 Jan Hubicka <jh@suse.cz> |
| |
| PR bootstrap/50822 |
| * cgraphunit.c (output_weakrefs): Output really only weakrefs. |
| |
| 2011-11-12 Nathan Sidwell <nathan@acm.org> |
| |
| * gcov.c (struct name_map): New. |
| (names, n_names, a_names): New global vars. |
| (print_usage): Adjust usage. |
| (generate_results): Canonicalize main file name. |
| (release_structures): Adjust. |
| (name_search, name_sort): New callbacks. |
| (find_source): Look for and create a canonical name. |
| (canonicalize_name): New. |
| (make_gcov_file_name): Reimplement and fix mangling. |
| (mangle_name): New. |
| * doc/gcov.texi: Update documentation about path preservation. |
| |
| 2011-11-11 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete. |
| * config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete. |
| |
| 2011-11-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper): |
| New prototype. |
| * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New |
| function. |
| (ix86_expand_epilogue): Use it. |
| * config/i386/i386.md (return, simple_return): Call it in the |
| expanders. |
| |
| PR tree-optimization/51091 |
| * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P |
| rhs also in the va_list_simple_ptr case. |
| |
| PR tree-optimization/51058 |
| * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function. |
| (vect_schedule_slp): Call it. |
| * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL, |
| don't replace scalar calls with setting of their lhs to zero here. |
| |
| PR tree-optimization/51074 |
| * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions. |
| (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR, |
| VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and |
| VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands. |
| (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or |
| CONSTRUCTOR operands. |
| * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary |
| expressions. |
| * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements |
| to 0 .. 2 * elements - 1. |
| |
| 2011-11-11 Richard Henderson <rth@redhat.com> |
| |
| * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed. |
| (dump_gimple_omp_atomic_store): Likewise. |
| * optabs.c (can_atomic_exchange_p): New. |
| * optabs.h (can_atomic_exchange_p): Declare. |
| * omp-low.c (expand_omp_atomic_load): Implement. |
| (expand_omp_atomic_store): Likewise. |
| (expand_omp_atomic): Update for new arguments to load/store. |
| |
| 2011-11-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cprop.c: Adjust outdated comments throughout. |
| (hash_scan_set): Rename PAT parameter into SET. |
| (cprop_pavloc): Rename into... |
| (cprop_avloc): ...this. |
| (cprop_absaltered): Rename into... |
| (cprop_kill): ...this. |
| (alloc_cprop_mem): Adjust for above renaming. |
| (free_cprop_mem): Likewise. |
| (compute_cprop_data): Likewise. |
| (compute_local_properties): Rename TRANSP parameter into KILL and |
| adjust throughout. Rework comments. |
| (try_replace_reg): Fix long line. |
| (cprop_jump): Likewise. |
| (constprop_register): Fix prototype and take INSN last. |
| (cprop_insn): Adjust calls to above function. Fix long lines. |
| (bypass_block): Likewise. |
| (one_cprop_pass): Likewise. |
| |
| 2011-11-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES. |
| (ELF_STRING_LIMIT): Rename from STRING_LIMIT. |
| |
| 2011-11-11 Jason Merrill <jason@redhat.com> |
| |
| * varasm.c (default_elf_asm_output_limited_string): #ifdef |
| ELF_ASCII_ESCAPES. |
| (default_elf_asm_output_ascii): Likewise. |
| |
| 2011-11-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50762 |
| * config/i386/constraints.md (j): New address constraint. |
| * config/i386/predicates.md (lea_address_operand): Redefine as |
| special predicate. |
| * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1. |
| (*lea_4_zext): Ditto. |
| |
| 2011-11-11 David S. Miller <davem@davemloft.net> |
| |
| Revert |
| 2011-11-05 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec. |
| (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders. |
| (*zero_extend_v8qi_<P:mode>_insn, |
| *zero_extend_v4hi_<P:mode>_insn): New insns. |
| * config/sparc/sparc.c (vector_init_move_words, |
| vector_init_prepare_elts, sparc_expand_vector_init_vis2, |
| sparc_expand_vector_init_vis1): New functions. |
| (vector_init_bshuffle): Rewrite to handle more cases and make use |
| of locs[] array prepared by vector_init_prepare_elts. |
| (vector_init_fpmerge, vector_init_faligndata): Delete. |
| (sparc_expand_vector_init): Rewrite using new infrastructure. |
| |
| 2011-11-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * opts-common.c (generate_canonical_option): Free opt_text |
| it it has been allocated here and not stored anywhere. |
| |
| * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN |
| vector. |
| (vect_create_new_slp_node): Don't allocate node before checking stmt |
| type. |
| (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always |
| free def_stmts vectors and additionally free oprnd_info. |
| (vect_build_slp_tree): Adjust callers. Call it even if |
| stop_recursion. If vect_create_new_slp_node or |
| vect_build_slp_tree fails, properly handle freeing memory. |
| If it succeeded, clear def_stmts in oprnd_info. |
| |
| 2011-11-11 Dimitrios Apostolou <jimis@gmx.net> |
| |
| * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on |
| multiple lines for readability. |
| * output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare. |
| (ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf. |
| * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data, |
| dw2_asm_data_uleb128, dw2_asm_delta_uleb128, |
| dw2_asm_delta_sleb128): Convert fprintf calls to the new functions. |
| * dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of |
| fprintf. |
| * final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions |
| serving as fast replacements for fprintf integer to string conversions. |
| (sprint_ul_rev): Internal helper for the above. |
| (output_addr_const) <CONST_INT>: Don't use fprintf. |
| * varasm.c: Fix some whitespace inconsistencies. |
| (default_elf_asm_output_limited_string): New. |
| (default_elf_asm_output_ascii): Likewise. |
| (default_elf_internal_label): Likewise. |
| * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and |
| stpcpy instead of sprintf. |
| (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label. |
| (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and |
| STRING_LIMIT macros. |
| (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that |
| provide the same functionality. |
| * config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf. |
| |
| 2011-11-10 Andrew MacLeod <amacleod@redhat.com> |
| |
| * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear. |
| |
| 2011-11-10 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR middle-end/51038 |
| * builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear. |
| (expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set. |
| (expand_builtin): Add cases for test_and_set and clear. |
| * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New. |
| (BUILT_IN_ATOMIC_CLEAR): New. |
| |
| 2011-11-10 Roberto Agostino Vitillo <ravitillo@lbl.gov> |
| |
| PR debug/50983 |
| * dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt |
| value in the current line table. |
| |
| 2011-11-10 Nathan Sidwell <nathan@acm.org> |
| |
| * gcov.c (struct function_info): Make src an index, not a pointer. |
| (struct source_info): Remove index and next source fields. |
| (fn_end): New static var. |
| (sources_index): Remove. |
| (sources): Now a pointer to an array, not a list. |
| (n_sources, a_sources): New. |
| (process_file): Adjust for changes to read_graph_file. Insert |
| functions into source lists and check line numbers here. |
| (generate_results): Only allocate lines for sources with |
| contents. Adjust for source array. |
| (release_structures): Likewise. |
| (find_source): Return source index, adjust for source array. |
| (read_graph_file): Return function list. Don't insert into source |
| lists here. |
| (read_count_file): Take list of functions. |
| (solve_flow_graph): Reverse the arc lists here. |
| (add_line_counts): Adjust for source array. |
| |
| 2011-11-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/51077 |
| * tree-object-size.c (addr_object_size): Check TREE_CODE of |
| MEM_REF's operand rather than code of the MEM_REF itself. |
| |
| 2011-11-10 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR rtl-optimization/51040 |
| * optabs.c (expand_atomic_fetch_op): Patchup code for NAND should |
| be AND followed by NOT. |
| * builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND |
| should be AND followed by NOT. |
| |
| 2011-11-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * vec.h (VEC_BASE): If base is at offset 0 in the structure, |
| use &(P)->base even if P is NULL. |
| |
| PR rtl-optimization/51023 |
| * combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use |
| val_signbit_known_clear_p for signed comparison narrowing |
| optimization. Don't check for non-VOIDmode, use |
| HWI_COMPUTABLE_MODE_P macro. |
| <case ZERO_EXTEND>: Don't check for non-VOIDmode. |
| Optimize even when const_op is equal to GET_MODE_MASK (mode), |
| don't optimize if const_op is negative. |
| |
| 2011-11-10 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51042 |
| * tree-ssa-pre.c (phi_translate_1): Avoid recursing on |
| self-referential expressions. Refactor code to avoid duplication. |
| |
| 2011-11-10 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51070 |
| * tree-loop-distribution.c (generate_builtin): Do not replace |
| the loop with a builtin if the partition contains statements which |
| results are used outside of the loop. |
| (pass_loop_distribution): Verify and collect. |
| |
| 2011-11-10 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51030 |
| * tree-ssa-phiopt.c (jump_function_from_stmt): New function. |
| (value_replacement): Use it to handle trivial non-empty |
| intermediate blocks. |
| |
| 2011-11-10 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/51071 |
| * gimple.c (gimple_has_side_effects): Remove checking code |
| that doesn't belong here. |
| |
| 2011-11-10 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/51058 |
| * tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR. |
| |
| 2011-11-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/51000 |
| * tree-vect-patterns.c (vect_recog_bool_pattern): If adding |
| a pattern stmt for a bool store, adjust DR_STMT too. |
| Don't handle bool conversions to single bit precision lhs. |
| * tree-vect-stmts.c (vect_remove_stores): If next is a pattern |
| stmt, remove its related stmt and free its stmt_vinfo. |
| (free_stmt_vec_info): Free also pattern stmt's vinfo and |
| pattern def stmt's vinfo. |
| * tree-vect-loop.c (destroy_loop_vec_info): Don't try to |
| free pattern stmt's vinfo here. |
| (vect_transform_loop): When calling vect_remove_stores, |
| do gsi_next first and don't call gsi_remove. If not strided |
| store, free stmt vinfo for gsi_stmt (si) rather than stmt. |
| |
| 2011-11-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50911 |
| * config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is |
| V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode |
| to V4SFmode. |
| |
| * function.h (requires_stack_frame_p): New prototype. |
| * function.c (requires_stack_frame_p): No longer static. |
| * config/i386/i386.c (ix86_finalize_stack_realign_flags): If |
| stack_realign_fp was just a conservative guess for a function |
| which doesn't use sp/fp/argp at all, clear frame_pointer_needed |
| and stack realignment. |
| |
| 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR preprocessor/51061 |
| * incpath.c (merge_include_chains): Make sure to not pass null |
| pointers to free_path. |
| |
| 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * doc/invoke.texi ([Option Summary, C++ Language Options]): |
| Add -Wzero-as-null-pointer-constant. |
| |
| 2011-11-07 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> |
| |
| * config/arm/arm-cores.def: Add -mcpu=cortex-a7. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Likewise. |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7. |
| * doc/invoke.texi: Document -mcpu=cortex-a7. |
| |
| 2011-11-09 Richard Guenther <rguenther@suse.de> |
| |
| Revert |
| 2011-11-09 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (verify_gimple_call): Verify that |
| gimple_call_cannot_inline_p is returning a conservative |
| correct result according to gimple_check_call_matching_types. |
| |
| 2011-11-09 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51039 |
| * tree-cfg.c (verify_gimple_call): Verify that |
| gimple_call_cannot_inline_p is returning a conservative |
| correct result according to gimple_check_call_matching_types. |
| * ipa-inline-analysis.c (estimate_function_body_sizes): Remove |
| code dealing with un-inlinablility. |
| * gimple-streamer-in.c (input_gimple_stmt): Update the |
| non-inlinable flag. |
| |
| 2011-11-09 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51039 |
| * tree-inline.c (setup_one_parameter): Always perform a |
| valid gimple type change. |
| (declare_return_variable): Likewise. |
| |
| 2011-11-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf, |
| vconduv4sfv4si): New patterns. |
| * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle |
| different dest_mode from comparison mode. |
| |
| 2011-11-09 Richard Guenther <rguenther@suse.de> |
| |
| * gimple-fold.c (canonicalize_constructor_val): Mark |
| address-taken variables addressable. |
| |
| 2011-11-09 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/51015 |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Expect |
| vectype to be set for pattern def stmts. |
| |
| 2011-11-09 Alan Modra <amodra@gmail.com> |
| |
| * function.c (bb_active_p): Delete. |
| (dup_block_and_redirect, active_insn_between): New functions. |
| (convert_jumps_to_returns, emit_return_for_exit): New functions, |
| split out from.. |
| (thread_prologue_and_epilogue_insns): ..here. Delete |
| shadowing variables. Don't do prologue register clobber tests |
| when shrink wrapping already failed. Delete all last_bb_active |
| code. Instead compute tail block candidates for duplicating |
| exit path. Remove these from antic set. Duplicate tails when |
| reached from both blocks needing a prologue/epilogue and |
| blocks not needing such. |
| * ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and |
| HAVE_simple_return. |
| * bb-reorder.c (get_uncond_jump_length): Make global. |
| * bb-reorder.h (get_uncond_jump_length): Declare. |
| * cfgrtl.c (rtl_create_basic_block): Comment typo fix. |
| (rtl_split_edge): Likewise. Warning fix. |
| (rtl_duplicate_bb): New function. |
| (rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block. |
| * Makefile.in (function.o): Update dependencies. |
| |
| 2011-11-08 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space |
| argument. |
| (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. |
| * doc/tm.texi: Regenerate. |
| |
| * config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address |
| space argument. |
| (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. |
| * config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise. |
| (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. |
| * config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space |
| argument. |
| (REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto. |
| * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto. |
| (avr_regno_mode_code_ok_for_base_p): Ditto. |
| * config/avr/avr.c (avr_mode_code_base_reg_class): Ditto. |
| (avr_regno_mode_code_ok_for_base_p): Ditto. |
| (avr_reg_ok_for_addr_p): Pass AS down to |
| avr_regno_mode_code_ok_for_base_p. |
| |
| * addresses.h (base_reg_class): Add address space argument. |
| Pass to MODE_CODE_BASE_REG_CLASS. |
| (ok_for_base_p_1): Add address space argument. Pass to |
| REGNO_MODE_CODE_OK_FOR_BASE_P. |
| (regno_ok_for_base_p): Add address space argument. Pass to |
| ok_for_base_p_1. |
| |
| * regrename.c (scan_rtx_address): Add address space argument. |
| Pass address space to regno_ok_for_base_p and base_reg_class. |
| Update recursive calls. |
| (scan_rtx): Pass address space to scan_rtx_address. |
| (build_def_use): Likewise. |
| * regcprop.c (replace_oldest_value_addr): Add address space |
| argument. Pass to regno_ok_for_base_p and base_reg_class. |
| Update recursive calls. |
| (replace_oldest_value_mem): Pass address space to |
| replace_oldest_value_addr. |
| (copyprop_hardreg_forward_1): Likewise. |
| |
| * reload.c (find_reloads_address_1): Add address space argument. |
| Pass address space to base_reg_class and regno_ok_for_base_p. |
| Update recursive calls. |
| (find_reloads_address): Pass address space to base_reg_class, |
| regno_ok_for_base_p, and find_reloads_address_1. |
| (find_reloads): Pass address space to base_reg_class. |
| (find_reloads_subreg_address): Likewise. |
| |
| * ira-costs.c (record_reg_classes): Update calls to base_reg_class. |
| (ok_for_base_p_nonstrict): Add address space argument. Pass to |
| ok_for_base_p_1. |
| (record_address_regs): Add address space argument. Pass to |
| base_reg_class and ok_for_base_p_nonstrict. Update recursive calls. |
| (record_operand_costs): Pass address space to record_address_regs. |
| (scan_one_insn): Likewise. |
| |
| * caller-save.c (init_caller_save): Update call to base_reg_class. |
| * ira-conflicts.c (ira_build_conflicts): Likewise. |
| * reload1.c (maybe_fix_stack_asms): Likewise. |
| |
| 2011-11-08 Michael Matz <matz@suse.de> |
| |
| * gengtype.c (write_field_root): Avoid out-of-scope access of newv. |
| |
| * tree-stdarg.c (execute_optimize_stdarg): Accept clobbers. |
| |
| * tree.h (TREE_CLOBBER_P): New macro. |
| * gimple.h (gimple_clobber_p): New inline function. |
| * gimplify.c (gimplify_bind_expr): Add clobbers for all variables |
| that go out of scope and live in memory. |
| * tree-ssa-operands.c (get_expr_operands): Transfer volatility also |
| for constructors. |
| * cfgexpand.c (decl_to_stack_part): New static variable. |
| (add_stack_var): Allocate it, and remember mapping. |
| (fini_vars_expansion): Deallocate it. |
| (stack_var_conflict_p): Add early outs. |
| (visit_op, visit_conflict, add_scope_conflicts_1, |
| add_scope_conflicts): New static functions. |
| (expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy. |
| (expand_used_vars): Add scope conflicts. |
| (expand_gimple_stmt_1): Expand clobbers to nothing. |
| (expand_debug_expr): Ditto. |
| |
| * tree-pretty-print.c (dump_generic_node): Dump clobbers nicely. |
| * tree-ssa-live.c (remove_unused_locals): Remove clobbers that |
| refer to otherwise unused locals. |
| * tree-sra.c (build_accesses_from_assign): Ignore clobbers. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of |
| SSA names aren't necessary. |
| (propagate_necessity): Accept and ignore constructors on the rhs, tidy. |
| * gimple.c (walk_gimple_op): Accept constructors like mem_rhs. |
| * tree-ssa-structalias.c (find_func_aliases): Clobbers don't store |
| any known value. |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they |
| don't zero-initialize something. |
| * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore |
| clobber RHS, we don't want PHI nodes with those. |
| |
| 2011-11-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX |
| if not TARGET_PREFER_AVX128 return 32-byte integer vectors. |
| |
| 2011-11-08 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/51012 |
| * ipa-prop.c (update_indirect_edges_after_inlining): Fixup |
| non-inlinable state. |
| * cgraph.c (cgraph_make_edge_direct): Likewise. |
| |
| 2011-11-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/47698 |
| * ifcvt.c (noce_operand_ok): Move around comment. |
| |
| 2011-11-08 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/50999 |
| * lto-opts.c (append_to_collect_gcc_options): Split out from... |
| (lto_write_options): ... here. Prepend frontend specific flags. |
| |
| 2011-11-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask |
| 0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128. |
| |
| * tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument. |
| Handle vectorization of SLP calls. |
| (vect_analyze_stmt): Adjust caller, add call to it for SLP too. |
| (vect_transform_stmt): Adjust vectorizable_call caller, remove |
| assertion. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start |
| with op_idx 3. |
| (vect_build_slp_tree): Allow CALL_EXPR. |
| |
| 2011-11-08 Richard Guenther <rguenther@suse.de> |
| |
| * gimple-fold.c (canonicalize_constructor_val): Make sure |
| we have referenced vars setup before adding to them. |
| |
| 2011-11-07 Richard Henderson <rth@redhat.com> |
| Aldy Hernandez <aldyh@redhat.com> |
| Andrew MacLeod <amacleod@redhat.com> |
| Torvald Riegel <triegel@redhat.com> |
| |
| Merged from transactional-memory. |
| |
| * gtm-builtins.def: New file. |
| * trans-mem.c: New file. |
| * trans-mem.h: New file. |
| |
| * opts.c (finish_options): Error out when using -flto and -fgnu-tm. |
| |
| * config/i386/i386.c: Define TARGET_VECTORIZE* transactional variants. |
| (ix86_handle_tm_regparm_attribute, struct bdesc_tm, |
| ix86_builtin_tm_load, ix86_builtin_tm_store, |
| ix86_init_tm_builtins): New. |
| (ix86_init_builtins): Initialize TM builtins. |
| (struct ix86_attribute_table): Add "*tm regparm". |
| * config/i386/i386-builtin-types.def (PV2SI): Define. |
| (PCV2SI): Define. |
| Define V2SI_FTYPE_PCV2SI. |
| Define V4SF_FTYPE_PCV4SF. |
| Define V8SF_FTYPE_PCV8SF. |
| Define VOID_PV2SI_V2SI. |
| |
| * doc/invoke.texi (C Dialect Options): Document -fgnu-tm and |
| tm-max-aggregate-size. |
| * doc/tm.texi.in: Add TARGET_VECTORIZE_BUILTIN_TM_LOAD and |
| TARGET_VECTORIZE_BUILTIN_TM_STORE hooks. |
| * doc/tm.texi: Regenerate. |
| |
| * attribs.c (apply_tm_attr): New. |
| (init_attributes): Allow '*' prefix for overrides. |
| (register_attribute): Likewise. |
| * builtin-attrs.def (ATTR_TM_TMPURE, ATTR_TM_REGPARM): New. |
| (ATTR_TM_NOTHROW_LIST, ATTR_TM_TMPURE_NOTHROW_LIST, |
| ATTR_TM_PURE_TMPURE_NOTHROW_LIST, ATTR_TM_NORETURN_NOTHROW_LIST, |
| ATTR_TM_CONST_NOTHROW_LIST, ATTR_TMPURE_MALLOC_NOTHROW_LIST, |
| ATTR_TMPURE_NOTHROW_LIST): New. |
| * builtin-types.def (BT_FN_I[1248]_VPTR, BT_FN_FLOAT_VPTR, |
| BT_FN_DOUBLE_VPTR, BT_FN_LDOUBLE_VPTR, BT_FN_VOID_VPTR_I[1248], |
| BT_FN_VOID_VPTR_FLOAT, BT_FN_VOID_VPTR_DOUBLE, |
| BT_FN_VOID_VPTR_LDOUBLE, BT_FN_VOID_VPTR_SIZE): New. |
| * builtins.def: Include gtm-builtins.def. Add comments regarding |
| transactional memory synchronization. |
| (DEF_TM_BUILTIN): New. |
| * c-parser.c (struct c_parser): Add in_transaction. |
| (c_parser_transaction, c_parser_transaction_expression, |
| c_parser_transaction_cancel, c_parser_transaction_attributes): New. |
| (c_parser_attribute_any_word): Split out from c_parser_attributes. |
| (c_parser_statement_after_labels): Handle RID_TRANSACTION*. |
| (c_parser_unary_expression): Same. |
| * c-tree.h (c_finish_transaction): Declare. |
| * c-typeck.c (c_finish_transaction): New. |
| (build_function_call_vec): Call tm_malloc_replacement. |
| * calls.c (is_tm_builtin): New. |
| (flags_from_decl_or_type): Add ECF_TM_BUILTIN and ECF_TM_PURE. |
| * cfgbuild.c (make_edges): Add edges for REG_TM notes. |
| * cfgexpand.c (expand_call_stmt): Call |
| mark_transaction_restart_calls. |
| (gimple_expand_cfg): Free the tm_restart map. |
| (mark_transaction_restart_calls): New. |
| * cfgrtl.c (purge_dead_edges): Look for REG_TM notes. |
| * cgraph.c (dump_cgraph_node): Handle tm_clone. |
| * cgraph.h (struct cgraph_node): Add tm_clone field. |
| (decl_is_tm_clone): New. |
| (struct cgraph_local_info): Add tm_may_enter_irr. |
| (cgraph_copy_node_for_versioning): Declare. |
| * cgraphunit.c (cgraph_copy_node_for_versioning): Export; |
| copy analyzed from old version. |
| * combine.c (distribute_notes): Handle REG_TM notes. |
| * common.opt: Add -fgnu-tm. |
| * crtstuff.c (__TMC_LIST__, __TMC_END__): New. |
| (__do_global_dtors_aux): Deregister clone table. |
| (frame_dummy): Register clone table. |
| * emit-rtl.c (try_split): Handle REG_TM. Early return if no function |
| body. |
| * gimple-low.c (lower_stmt): Handle GIMPLE_EH_ELSE and |
| GIMPLE_TRANSACTION. |
| (gimple_stmt_may_fallthru): Handle GIMPLE_EH_ELSE. |
| * gimple-pretty-print.c: Include trans-mem.h. |
| (dump_gimple_fmt): Add %x. |
| (dump_gimple_call): Dump arguments for calls to _ITM_beginTransaction. |
| (dump_gimple_eh_else, dump_gimple_transaction): New. |
| (dump_gimple_stmt): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. |
| * gimple.c (gimple_build_eh_else, gimple_build_transaction): New. |
| (walk_gimple_seq): Honor removed_stmt. Document usage of removed_stmt |
| field. |
| (walk_gimple_op): Handle GIMPLE_TRANSACTION. |
| (walk_gimple_stmt): Initialize and honor removed_stmt. |
| Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. |
| (gimple_copy): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. |
| * gimple.def (GIMPLE_TRANSACTION, GIMPLE_EH_ELSE): New. |
| * gimple.h (struct gimple_statement_eh_else, |
| gimple_statement_transaction, GTMA_*): New. |
| (gimple_statement_d): Add gimple_statement_eh_else and |
| gimple_transaction. |
| (gimple_build_eh_else, gimple_build_transaction, |
| gimple_fold_call, diagnose_tm_safe_errors): Declare. |
| (get_call_expr_in): Remove prototype. |
| (gimple_has_substatements): Add GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. |
| (gimple_eh_else_n_body, gimple_eh_else_e_body, |
| gimple_eh_else_set_n_body, gimple_eh_else_set_e_body, |
| gimple_transaction_body, gimple_transaction_label, |
| gimple_transaction_label_ptr, gimple_transaction_subcode, |
| gimple_transaction_set_body, gimple_transaction_set_label, |
| gimple_transaction_set_subcode): New. |
| (struct walk_stmt_info): Use BOOL_BITFIELD; add removed_stmt. |
| * gimplify.c (create_tmp_var_name): Use clean_symbol_name. |
| (voidify_wrapper_expr): Handle TRANSACTION_EXPR. |
| (gimplify_transaction): New. |
| (gimplify_expr): Handle TRANSACTION_EXPR. |
| * gsstruct.def (GSS_EH_ELSE, GSS_TRANSACTION): New. |
| * ipa-inline.c (can_inline_edge_p): Do not inline TM safe calling |
| TM pure functions. |
| * Makefile.in: Add trans-mem.o and dependencies. |
| (BUILTINS_DEF): Add gtm-builtins.def. |
| (gimple-pretty-print.o): Depend on TRANS_MEM_H. |
| (GTFILES): Add trans-mem.c. |
| * omp-low.c (WALK_SUBSTMTS): Add GIMPLE_TRANSACTION. |
| * output.h (record_tm_clone_pair, finish_tm_clone_pairs, |
| get_tm_clone_pair): Declare. |
| * params.def (PARAM_TM_MAX_AGGREGATE_SIZE): New. |
| * passes.c (init_optimization_passes): Place transactional memory |
| passes. |
| * print-tree.c (print_node): Dump tm-clone. |
| * recog.c (peep2_attempt): Handle REG_TM. |
| * reg-notes.def (TM): New. |
| * rtlanal.c (alloc_reg_note): Handle REG_TM. |
| * target.def (builtin_tm_load, builtin_tm_store): New. |
| * targhooks.c (default_builtin_tm_load_store): New. |
| * targhooks.h (default_builtin_tm_load_store): Declare. |
| * timevar.def (TV_TRANS_MEM): New. |
| * toplev.c (compile_file): Call finish_tm_clone_pairs. |
| * tree-cfg.c (make_edges): Handle GIMPLE_TRANSACTION. |
| (cleanup_dead_labels): Handle GIMPLE_TRANSACTION. Avoid unnecessary |
| writes into the statements to update labels. |
| (is_ctrl_altering_stmt): Add TM ending statements. Handle |
| GIMPLE_TRANSACTION. |
| (verify_gimple_transaction): New. |
| (verify_gimple_stmt): Handle GIMPLE_TRANSACTION. |
| (verify_gimple_in_seq_2): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION. |
| (gimple_redirect_edge_and_branch): Handle TM_TRANSACTION. |
| (dump_function_to_file): Display [tm-clone] if applicable. |
| * tree-eh.c (struct_ptr_eq): Make inline and move to tree.h. |
| (struct_ptr_hash): Same. |
| (collect_finally_tree): Handle GIMPLE_EH_ELSE. |
| (replace_goto_queue_1): Likewise. |
| (get_eh_else): New. |
| (honor_protect_cleanup_actions): Handle GIMPLE_EH_ELSE. |
| (lower_try_finally_nofallthru): Likewise. |
| (lower_try_finally_onedest): Likewise. |
| (lower_try_finally_copy): Likewise. |
| (lower_try_finally_switch): Likewise. |
| (lower_try_finally): Likewise. |
| (decide_copy_try_finally): Likewise. |
| (lower_eh_constructs_2): Likewise. |
| (refactor_eh_r): Likewise. |
| * tree-flow.h (struct gimple_df): Add tm_restart field. |
| Define tm_restart_node. |
| * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_TRANSACTION. |
| (estimate_num_insns): Likewise. |
| (init_inline_once): Init tm_cost. |
| * tree-inline.h (struct eni_weights_d): Add tm_cost. |
| * tree-pass.h (pass_diagnose_tm_blocks, pass_lower_tm, pass_tm_init, |
| pass_tm_mark, pass_tm_memopt, pass_tm_edges, pass_ipa_tm): Declare. |
| * tree-pretty-print.c (dump_generic_node): Handle TRANSACTION_EXPR. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle |
| BUILT_IN_TM_MEMSET, BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE. |
| Add support for TM vector loads. Add support for TM logging builtins. |
| (call_may_clobber_ref_p_1): Add support for vector stores. |
| * tree-ssa-structalias.c (find_func_aliases): Add support for TM |
| vector stores and loads. Handle BUILT_IN_TM_MEMSET, |
| BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE. |
| * tree.c (strip_invariant_refs): Moved from gimple.c to here. |
| (local_define_builtin): Handle ECF_TM_PURE. |
| (build_common_builtin_nodes): Set __builtin_eh_pointer to ECF_TM_PURE. |
| * tree.def (TRANSACTION_EXPR): New. |
| * tree.h (strip_invariant_refs): Moved from gimple.h to here. |
| (TRANSACTION_EXPR_BODY, TRANSACTION_EXPR_CHECK, |
| TRANSACTION_EXPR_OUTER, TRANSACTION_EXPR_RELAXED, |
| BUILTIN_TM_LOAD_STORE_P, BUILTIN_TM_LOAD_P, BUILTIN_TM_STORE_P, |
| CASE_BUILT_IN_TM_LOAD, CASE_BUILT_IN_TM_STORE): New. |
| (ECF_TM_PURE, ECF_TM_BUILTIN): New. |
| (struct tree_function_decl): Add tm_clone_flag. |
| (struct_ptr_eq, struct_ptr_hash): New. |
| (apply_tm_attr): Declare. |
| (is_tm_safe_or_pure): New. |
| (build_tm_abort_call, is_tm_safe, is_tm_pure, |
| is_tm_may_cancel_outer, is_tm_ending_fndecl, record_tm_replacement, |
| tm_malloc_replacement): Declare. |
| * varasm.c (tm_clone_hash): New. |
| (record_tm_clone_pair, finish_tm_clone_pairs, get_tm_clone_pair, |
| dump_tm_clone_to_vec, dump_tm_clone_pairs, tm_alias_pair_cmp): New. |
| (struct tm_alias_pair): New. Declare VEC types for object. |
| |
| 2011-11-07 Richard Henderson <rth@redhat.com> |
| |
| * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set, |
| OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior, |
| OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand, |
| OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior, |
| OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and |
| rename from the direct_optab_index enum. |
| (sync_compare_and_swap_optab, sync_lock_test_and_set_optab, |
| sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab, |
| sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab, |
| sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab, |
| sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read |
| from the optab_table, not the direct_optab_table. |
| (init_sync_libfuncs): Declare. |
| (can_compare_and_swap_p): Update parameters. |
| * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New. |
| (can_compare_and_swap_p): Add allow_libcall parameter; if true, |
| test for the legacy compare-and-swap libcall. |
| (expand_atomic_exchange): Use the legacy test-and-set libcall. |
| (expand_atomic_compare_and_swap): Use the legacy CAS libcall. |
| (struct atomic_op_functions): Update for optab type changes. |
| (maybe_emit_op): Likewise. |
| (expand_atomic_fetch_op): Use the legacy fetch-op libcalls. |
| * builtins.c (fold_builtin_atomic_always_lock_free): Update call |
| to can_compare_and_swap_p. |
| * omp-low.c (expand_omp_atomic_fetch_op): Likewise. |
| (expand_omp_atomic_pipeline): Likewise. |
| * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab, |
| sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular |
| optabs. |
| * doc/md.texi (sync_compare_and_swap): Update docs for libcalls. |
| |
| 2011-11-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add. |
| * config/i386/i386.c (enum ix86_builtins): Add |
| IX86_BUILTIN_VEC_PACK_SFIX256. |
| (bdesc_args): Add __builtin_ia32_vec_pack_sfix256. |
| (ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF. |
| (ix86_builtin_vectorized_function): Also vectorize lrint using |
| 256-bit vectors for -mavx. |
| |
| 2011-11-07 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/cris/constraints.md: New file. |
| * config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN, |
| CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P, |
| CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT, |
| EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, |
| EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove. |
| * config/cris/cris.c: Incule "tm-constrs.h". |
| (cris_print_operand): Use satisfies_constraint_O. |
| (cris_normal_notice_update_cc, cris_rtx_costs): Use |
| satisfies_constraint_I. |
| (cris_address_cost): Use satisfies_constraint_L. |
| * config/cris/cris.md: Include "constraints.md". |
| (*mov_side<mode>, *mov_sidesisf, *mov_side<mode>_mem, |
| *mov_sidesisf_mem, *clear_side<mode>, *ext_sideqihi, |
| *ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, |
| *extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side, |
| *extop<mode>si_swap_side): Use satisfies_constraint_N and |
| satisfies_constraint_J. |
| (moversideqi movemsideqi mover2side peephole2): Use |
| satisfies_constraint_N and satisfies_constraint_J. |
| (andu peephole2): Use satisfies_constraint_I and |
| satisfies_constraint_O. |
| |
| 2011-11-07 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_builtin_vectorized_function): Handle |
| BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF. |
| |
| 2011-11-07 Andrew MacLeod <amacleod@redhat.com> |
| |
| * optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so |
| SWITCHABLE_TARGET can change the values during compilation. |
| (expand_atomic_fetch_op): Handle parameter change ripples for |
| get_atomic_op_for_code call. |
| |
| 2011-11-07 Andrew MacLeod <amacleod@redhat.com> |
| |
| * doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and |
| __atomic_store. |
| * optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set |
| only when originated from that builtin. |
| (expand_atomic_store): Expand to __sync_lock_release when originated |
| from that builtin. |
| * builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that |
| expand_atomic_exchange call originated from here. |
| (expand_builtin_sync_lock_release): Add flag that expand_atomic_store |
| call originated from here. |
| (expand_builtin_atomic_exchange): Add origination flag. |
| (expand_builtin_atomic_store): Add origination flag. |
| * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean |
| parameters to indicate implementation fall back options. |
| |
| 2011-11-07 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P |
| now, not only CONST_INT and CONST_DOUBLE. |
| (output_movqi): Use output_reload_in_const. |
| (output_reload_inhi): Ditto. |
| (output_reload_insisf): Move assertion to output_reload_in_const. |
| (avr_out_reload_inpsi): Ditto. |
| |
| 2011-11-07 Nathan Sidwell <nathan@acm.org> |
| |
| * gcov.c (object_summary): Replace with ... |
| (object_runs): ... this. |
| (process_file): Remove functions with no data. |
| (generate_results): Ignore files with no lines. |
| (release_function): New helper, broken out of ... |
| (release_structures): ... here. Use it. |
| (read_count_file): Adjust for new data file format. |
| (output_lines): Use object_runs. |
| * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete. |
| (struct gcov_ctr_info): Move definition. |
| (struct gcov_fn_info): Add key field, use gcov_ctr_info for |
| trailing array. |
| (struct gcov_info): Add merge function array, remove mask and |
| counts. Trailing array is array of pointers to function info. |
| * coverage.c (struct function_list): Replace counter numbers with |
| counter arrays. Add fndecl field. GTYify. |
| (counts_entry): Remove chain workspace. |
| (functions_head): GTYify. |
| (prg_n_ctrs): Remove. |
| (fn_v_ctrs): New. |
| (tree_ctr_tables): Remove. |
| (read_counts_file): Cope with blank entries and expect program |
| summaries before functions. Don't warn on missing entries. |
| (coverage_counter_alloc): Allocate individual function arrays. |
| (tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust |
| for individual function arrays. |
| (coverage_end_function): GTYify function list object. Finalize |
| function's counter arrays. |
| (build_var): New. Create a counter-related variable with |
| appropriate linkage. |
| (build_fn_info_type): Adjust for new runtime structure. |
| (build_fn_info_value): Rename to ... |
| (build_fn_info): ... here. Build new format data. |
| (build_ctr_info_type, build_ctr_info_value): Remove. |
| (build_info_type): New. Build new format data structure. |
| (build_info): Adjust for new format data. |
| (create_coverage): Likewise. |
| * gcov-dump.c (tag_function): Recognize placeholders. |
| |
| 2011-11-07 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/constraints.md (Cm2): New constraint for int -2. |
| * config/avr/avr.md (addqi3): Use it. New alternatives for +/-2. |
| (*negqihi2): New insn. |
| |
| 2011-11-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * dwarf2cfi.c (dwarf2out_frame_debug_expr): Check |
| HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx in Rule 18. |
| |
| 2011-11-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_expand_builtin): If gather mask |
| argument is known to have all high bits set, pass pc_rtx as |
| second argument to the expander instead of op0. |
| * config/i386/sse.md (*avx2_gathersi<mode>_2, |
| *avx2_gatherdi<mode>_2): New patterns. |
| * config/i386/avx2intrin.h (_mm256_i32gather_pd, |
| _mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using |
| _mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of |
| _mm256_set1_pd. |
| |
| PR tree-optimization/50789 |
| * tree-vect-stmts.c (process_use): Add force argument, avoid |
| exist_non_indexing_operands_for_use_p check if true. |
| (vect_mark_stmts_to_be_vectorized): Adjust callers. Handle |
| STMT_VINFO_GATHER_P. |
| (gen_perm_mask): New function. |
| (perm_mask_for_reverse): Use it. |
| (reverse_vec_element): Rename to... |
| (permute_vec_elements): ... this. Add Y and MASK_VEC arguments, |
| generalize for any permutations. |
| (vectorizable_load): Adjust caller. Handle STMT_VINFO_GATHER_P. |
| * target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook. |
| * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it. |
| * doc/tm.texi: Regenerate. |
| * tree-data-ref.c (initialize_data_dependence_relation, |
| compute_self_dependence): No longer static. |
| * tree-data-ref.h (initialize_data_dependence_relation, |
| compute_self_dependence): New prototypes. |
| * tree-vect-data-refs.c (vect_check_gather): New function. |
| (vect_analyze_data_refs): Detect possible gather load data refs. |
| * tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field. |
| (STMT_VINFO_GATHER_P): Define. |
| (vect_check_gather): New prototype. |
| * config/i386/i386-builtin-types.def: Add types for alternate |
| gather builtins. |
| * config/i386/sse.md (AVXMODE48P_DI): Remove. |
| (VEC_GATHER_MODE): Rename mode_attr to... |
| (VEC_GATHER_IDXSI): ... this. |
| (VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs. |
| (avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI> |
| instead of <VEC_GATHER_MODE>. |
| (avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of |
| <AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE |
| on src and mask operands. |
| (*avx2_gatherdi<mode>): Likewise. Use VEC_GATHER_MODE iterator |
| instead of AVXMODE48P_DI. |
| (avx2_gatherdi<mode>256, *avx2_gatherdi<mode>256): Removed. |
| * config/i386/i386.c (enum ix86_builtins): Add |
| IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF, |
| IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI. |
| (ix86_init_mmx_sse_builtins): Create those builtins. |
| (ix86_expand_builtin): Handle those builtins and adjust expansions |
| of other gather builtins. |
| (ix86_vectorize_builtin_gather): New function. |
| (TARGET_VECTORIZE_BUILTIN_GATHER): Define. |
| |
| 2011-11-07 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/f16cintrin.h: Remove extra _X86INTRIN_H_INCLUDED check. |
| |
| 2011-11-07 Tristan Gingold <gingold@adacore.com> |
| |
| * config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs. |
| * config/vms/t-vms: Add vms-c.o rule. |
| * config/vms/vms-c.c: New file. |
| * config/vms/vms-protos.h (vms_c_register_pragma): New prototype. |
| * config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define. |
| |
| 2011-11-07 Tristan Gingold <gingold@adacore.com> |
| |
| * config/alpha/vms.h (TARGET_OBJECT_SUFFIX, |
| TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS, |
| TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE, |
| POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h |
| (SUBTARGET_OS_CPP_BUILTINS): Define. |
| (TARGET_DEFAULT): Tune according to POINTER_SIZE. |
| (MASK_RETURN_ADDR): Define in 64 bit mode. |
| * config/ia64/vms.h: Likewise. |
| * config/vms/vms.h: New file. |
| * config/vms/vms64.h: New file. |
| * config/alpha/vms64.h: Removed. |
| * config/ia64/vms64.h: Removed. |
| * config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*): |
| Adjust for above change. |
| |
| 2011-11-07 Enkovich Ilya <ilya.enkovich@intel.com> |
| |
| PR target/50962 |
| * config/i386/i386-protos.h (ix86_use_lea_for_mov): New. |
| * config/i386/i386.c (ix86_use_lea_for_mov): Likewise. |
| * config/i386/i386.md (movsi_internal): Emit lea if profitable. |
| (movdi_internal_rex64): Likewise. |
| |
| 2011-11-07 Sergey Ostanevich <sergos.gnu@gmail.com> |
| |
| PR rtl-optimization/47698 |
| * ifcvt.c (noce_operand_ok): Return false for mems with side effects. |
| |
| 2011-11-07 Tristan Gingold <gingold@adacore.com> |
| |
| * common/config/alpha/alpha-common.c (alpha_option_init_struct): |
| New function. |
| (TARGET_OPTION_INIT_STRUCT): Define. |
| * config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET) |
| (TARGET_MAX_ANCHOR_OFFSET) |
| (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine. |
| |
| 2011-11-06 Quentin Neill <quentin.neill@amd.com> |
| |
| Fix r180999, update ChangeLog |
| * config.gcc: Add f16cintrin.h. |
| * config/i386/f16cintrin.h: Add missing endif. |
| |
| 2011-11-06 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config.gcc (arm*-*-rtemseabi*): New target. |
| * config/arm/rtems-eabi.h: New. |
| * config/arm/t-rtems-eabi: New. |
| |
| 2011-11-06 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete. |
| (zero_extend_v8qi_vis, zero_extend_v4hi_vis, |
| *zero_extend_v8qi_<P:mode>_insn, |
| *zero_extend_v4hi_<P:mode>_insn): Express using vec_merge |
| and vec_duplicate instead of using an UNSPEC. |
| |
| 2011-11-07 Alan Modra <amodra@gmail.com> |
| |
| PR target/30282 |
| * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit |
| blockage for ABI_V4. |
| |
| 2011-11-06 Dave Korn <dave.korn.cygwin@gmail.com> |
| |
| * config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent |
| libgcj version bump. |
| * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise. |
| |
| 2011-11-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcse.c: Adjust outdated comments throughout. |
| (struct mem_conflict_info): New structure. |
| (mems_conflict_for_gcse_p): Use it to communicate with caller. |
| (load_killed_in_block_p): Pass it to note_stores. |
| (hash_expr): Remove superfluous line break. |
| (hash_scan_set): Rename PAT parameter into SET. |
| (hash_scan_insn): Reorder cases. |
| (canon_list_insert): Fix long line. |
| (edge_list): Delete. |
| (prune_expressions): Rename E local variable into EXPR. |
| (compute_pre_data): Return struct edge_list * object. |
| (pre_expr_reaches_here_p_work): Fix formatting. |
| (process_insert_insn): Move around comment. |
| (pre_edge_insert): Fix long line. |
| (pre_insert_copies): Likewise. |
| (gcse_emit_move_after): Swap SRC and DEST parameters. |
| (pre_delete): Adjust call to gcse_emit_move_after. |
| (pre_gcse): Take struct edge_list * parameter. Fix long line. |
| (one_pre_gcse_pass): Use flag_gcse_lm condition for all routines. |
| Use a local list of edges. |
| (hoist_code): Fix long line. Adjust call to gcse_emit_move_after. |
| (pre_ldst_expr_hash): Fix long line. |
| (free_ldst_mems): Rename into... |
| (free_ld_motion_mems): ...this. |
| (first_ls_expr): Delete. |
| (next_ls_expr): Likewise. |
| (print_ldst_list): Do not use above two functions. |
| (simple_mem): Adjust interface. |
| (compute_ld_motion_mems): Fix formatting. |
| (update_ld_motion_stores): Reuse local variable. |
| |
| 2011-11-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (shadow_tag_warned, grokdeclarator): Handle _Alignas |
| specifiers. |
| (build_null_declspecs): Initialize align_log and alignas_p fields. |
| (declspecs_add_alignas): New. |
| * c-parser.c (c_token_starts_declspecs): Handle RID_ALIGNAS. |
| (c_parser_declspecs): Handle _Alignas specifiers. |
| (c_parser_alignas_specifier): New. |
| (c_parser_alignof_expression): Diagnose alignof use for non-C1X. |
| Diagnose _Alignof (expression). |
| * c-tree.h (struct c_declspecs): Add align_log and alignas_p fields. |
| (declspecs_add_alignas): Declare. |
| * ginclude/stddef.h (max_align_t): Define for C1X and C++11. |
| * ginclude/stdalign.h: New. |
| * Makefile.in (USER_H): Add stdalign.h. |
| |
| 2011-11-06 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * regset.h (fixed_reg_set_regset): Declare. |
| * dse.c: Include regset.h . |
| (struct insn_info): Add member fixed_regs_live. |
| (note_add_store_info): New typedef. |
| (note_add_store): New function. |
| (emit_inc_dec_insn_before): Expect arg to be of type insn_info_t. |
| Use gen_add3_insn / gen_move_insn. |
| Check new insn for unwanted clobbers before emitting it. |
| (check_for_inc_dec): Rename to... |
| (check_for_inc_dec_1:) ... this. Return bool. Take insn_info |
| parameter. Changed all callers in file. |
| (check_for_inc_dec, copy_fixed_regs): New functions. |
| (scan_insn): Set fixed_regs_live field of insn_info. |
| * rtl.h (check_for_inc_dec): Update prototype. |
| * postreload.c (reload_cse_simplify): Take new signature of |
| check_ind_dec into account. |
| * reginfo.c (fixed_reg_set_regset): New variable. |
| (init_reg_sets_1): Initialize it. |
| |
| 2011-11-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-cfg.c (gimple_can_merge_blocks_p): For -O0 don't remove |
| any user labels. |
| |
| 2011-11-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs. |
| Remove dependence of declaration and target define on definition of |
| HPUX_LONG_DOUBLE_LIBRARY. Update implementation. |
| |
| 2011-11-06 Andrew Macleod <amacleod@redhat.com> |
| Richard Henderson <rth@redhat.com> |
| Aldy Hernandez <aldyh@redhat.com> |
| |
| Merged from cxx-mem-model. |
| |
| * cppbuiltin.c (define__GNUC__): Define __ATOMIC memory models |
| * coretypes.h (enum memmodel): New. enumerated memory model type. |
| * Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H) |
| * genopinit,c (optabs): Add atomic direct optab handlers. |
| * sync-builtins.def (BUILT_IN_ATOMIC_*): New builtins. |
| * builtin-types.def (BT_CONST_VOLATILE_PTR, |
| BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT, |
| BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR, |
| BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT, |
| BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT, |
| BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, |
| BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): New builtin types. |
| * expr.h (expand_atomic_*): Add prototypes. |
| (expand_{bool,val}_compare_and_swap): Remove prototypes. |
| * c-typeck.c (build_function_call_vec): Don't reprocess __atomic |
| parameters. |
| * common.opt (Winvalid-memory-model): New warning flag. |
| (finline-atomics): New. Flag to disable atomic inlining. |
| * params.h (ALLOW_LOAD_DATA_RACES): New. |
| (ALLOW_PACKED_LOAD_DATA_RACES): New. |
| (ALLOW_PACKED_STORE_DATA_RACES): New. |
| * params.def (PARAM_ALLOW_LOAD_DATA_RACES): New. |
| (PARAM_ALLOW_PACKED_LOAD_DATA_RACES): New. |
| (PARAM_ALLOW_PACKED_STORE_DATA_RACES): New. |
| * builtins.c (is_builtin_name): Handle __atomic. |
| (get_memmodel): New. Extract memory model. |
| (expand_expr_force_mode): New. Factor out common code for ensuring an |
| integer argument is in the proper mode. |
| (expand_builtin_sync_operation): Remove ignore param. Always call |
| expand_atomic_fetch_op instead of the old expanders. |
| (expand_builtin_compare_and_swap, |
| expand_builtin_sync_lock_test_and_set): Use expand_expr_force_mode, |
| call atomic expanders instead of sync expanders. |
| (expand_builtin_sync_lock_release): Call atomic_store expander. |
| (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load, |
| expand_builtin_atomic_store, expand_builtin_atomic_fetch_op): New. |
| (expand_builtin_atomic_exchange): New. |
| (fold_builtin_atomic_always_lock_free, |
| expand_builtin_atomic_always_lock_free, |
| fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free): |
| New. |
| (expand_builtin_mem_thread_fence, expand_builtin_atomic_thread_fence, |
| expand_builtin_atomic_signal_fence): New. |
| (expand_builtin_mem_signal_fence): New. |
| (expand_builtin): Add cases for BUILT_IN_ATOMIC_*. |
| (fold_builtin_2): Add cases for BUILT_IN_ATOMIC_{IS,ALWAYS}_LOCK_FREE. |
| * optabs.h (DOI_atomic_*): Define new atomics. |
| (atomic_*_optab): Define. |
| (can_compare_and_swap_p, expand_atomic_compare_and_swap): New |
| prototypes. |
| * optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove. |
| (expand_sync_lock_test_and_set): Remove. |
| (expand_atomic_load, expand_atomic_store): New. |
| (expand_atomic_exchange): New. |
| (expand_atomic_compare_and_swap): New. Implements |
| atomic_compare_exchange via compare and swap. |
| (struct atomic_op_functions): Opcode table struct for fetch ops. |
| (get_atomic_op_for_code): New. Return an opcode table entry. |
| (maybe_emit_op): New. Try to emit a fetch op. |
| (expand_atomic_fetch_op): New. |
| (expand_val_compare_and_swap_1): Remove. |
| (expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove. |
| (expand_atomic_compare_and_swap): Rename from |
| expand_atomic_compare_exchange. Rewrite to return both success and |
| oldval return values; expand via both atomic and sync optabs. |
| (can_compare_and_swap_p): New. |
| (expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap. |
| (maybe_gen_insn): Handle 7 and 8 operands. |
| * omp-low.c (expand_omp_atomic_fetch_op): Don't test individual |
| fetch_op optabs, only test can_compare_and_swap_p. Use __atomic |
| builtins instead of __sync builtins. |
| (expand_omp_atomic_pipeline): Use can_compare_and_swap_p. |
| * doc/extend.texi: Document __atomic built-in functions. |
| * doc/invoke.texi: Document data race parameters. |
| * doc/md.texi: Document atomic patterns. |
| * config/i386/i386.md (UNSPEC_MOVA): New. |
| (UNSPECV_CMPXCHG): Split into ... |
| (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, |
| UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New. |
| * config/i386/sync.md (ATOMIC): New mode iterator. |
| (atomic_load<ATOMIC>, atomic_store<ATOMIC>): New. |
| (atomic_loaddi_fpu, atomic_storedi_fpu, movdi_via_fpu): New. |
| (mem_thread_fence): Rename from memory_barrier. |
| Handle the added memory model parameter. |
| (mfence_nosse): Rename from memory_barrier_nosse. |
| (sync_compare_and_swap<CASMODE>): Split into ... |
| (atomic_compare_and_swap<SWI124>): this and ... |
| (atomic_compare_and_swap<CASMODE>): this. Handle the new parameters. |
| (atomic_compare_and_swap_single<SWI>): Rename from |
| sync_compare_and_swap<SWI>; rewrite to use split unspecs. |
| (atomic_compare_and_swap_double<DCASMODE>): Rename from |
| sync_double_compare_and_swap<DCASMODE>; rewrite to use split unspecs. |
| (*atomic_compare_and_swap_doubledi_pic): Rename from |
| sync_double_compare_and_swapdi_pic; rewrite to use split unspecs. |
| (atomic_fetch_add<SWI>): Rename from sync_old_add<SWI>; add memory |
| model parameter. |
| (*atomic_fetch_add_cmp<SWI>): Similarly. |
| (atomic_add<SWI>, atomic<any_logic><SWI>): Similarly. |
| (atomic_sub<SWI>): Similarly. Use x86_maybe_negate_const_int. |
| (sync_lock_test_and_set<SWI>): Merge with ... |
| (atomic_exchange<SWI>): ... this. |
| |
| 2011-11-6 Richard Guenther <rguenther@suse.de> |
| |
| * ipa-prop.c (ipa_modify_call_arguments): Re-compute inlinable flag. |
| |
| 2011-11-06 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vectorizer.h (vectorizable_condition): Add argument. |
| * tree-vect-loop.c (vectorizable_reduction): Fail for condition |
| in SLP. Update calls to vectorizable_condition. |
| * tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to |
| the arguments. Pass it to vect_is_simple_use_1. |
| (vectorizable_condition): Add slp_node to the arguments. Support |
| vectorization of basic blocks. Fail for reduction in SLP. Update |
| calls to vect_is_simple_cond and vect_is_simple_use. Support SLP: |
| call vect_get_slp_defs to get vector operands. |
| (vect_analyze_stmt): Update calls to vectorizable_condition. |
| (vect_transform_stmt): Likewise. |
| * tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR. |
| (vect_get_and_check_slp_defs): Handle COND_EXPR. Allow pattern |
| def stmts. |
| (vect_build_slp_tree): Handle COND_EXPR. |
| (vect_analyze_slp_instance): Push pattern statements to root node. |
| (vect_get_constant_vectors): Fix comments. Handle COND_EXPR. |
| |
| 2011-11-05 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec. |
| (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders. |
| (*zero_extend_v8qi_<P:mode>_insn, |
| *zero_extend_v4hi_<P:mode>_insn): New insns. |
| * config/sparc/sparc.c (vector_init_move_words, |
| vector_init_prepare_elts, sparc_expand_vector_init_vis2, |
| sparc_expand_vector_init_vis1): New functions. |
| (vector_init_bshuffle): Rewrite to handle more cases and make use |
| of locs[] array prepared by vector_init_prepare_elts. |
| (vector_init_fpmerge, vector_init_faligndata): Delete. |
| (sparc_expand_vector_init): Rewrite using new infrastructure. |
| |
| 2011-11-05 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * config.gcc (epiphany-*-*): New architecture. |
| (epiphany-*-elf): New configuration. |
| * config/epiphany, common/config/epiphany : New directories. |
| * doc/extend.texi (disinterrupt attribute): Add Epiphany. |
| (interrupt attribute): Add Epiphany. |
| (long_call, short_call attribute): Add Epiphany. |
| * doc/invoke.texi (Options): Add Epiphany options. |
| * doc/md.texi (Machine Constraints): Add Epiphany constraints. |
| * doc/install.texi (Options specification): |
| Add --with-stack-offset=@var{num} description. |
| (host/target specific issues): Add epiphany-*-elf. |
| * doc/contrib.texi (Contributors): Mention Epiphany port. |
| |
| 2011-11-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50693 |
| * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with |
| non-forced user labels. |
| (gimple_merge_blocks): Turn non-forced user labels into |
| debug bind stmt with the label as first operand and reset value. |
| (gimple_duplicate_bb): Don't duplicate label debug stmts. |
| * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL. |
| * final.c (final_scan_insn): Likewise. |
| (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL. |
| * var-tracking.c (debug_label_num): New variable. |
| (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs, |
| instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes. |
| * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle |
| NOTE_INSN_DELETED_DEBUG_LABEL. |
| (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs. |
| * insn-notes.def (DELETED_DEBUG_LABEL): New note kind. |
| * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL. |
| * gengtype.c (adjust_field_rtx_def): Likewise. |
| * config/i386/i386.c (ix86_output_function_epilogue): For MachO |
| clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL |
| if their are at the end of function and nop hasn't been emitted. |
| * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise. |
| |
| 2011-11-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR rtl-optimization/50448 |
| * cprop.c (try_replace_reg): Also try to replace uses of FROM that |
| appear in SET_DEST. |
| |
| 2011-11-05 Peter Dufault <dufault@hda.com>, |
| Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS): |
| Extend rs6000_spe handling. |
| |
| 2011-11-05 Ralf Corsépius <ralf.corsepius@rtems.org> |
| |
| * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib. |
| Remove -mcpu=601 multilib. |
| Remove -Dmpc8260 multilib. |
| * config/rs6000/rtems.h: Allow --float-gprs=... to override grps |
| on E500 targets. |
| |
| 2011-11-05 Quentin Neill <quentin.neill@amd.com> |
| |
| Piledriver f16cintrin.h fix. |
| * config/i386/f16cintrin.h: Contents moved from immintrin.h. |
| * config/i386/immintrin.h: Include f16cintrin.h. |
| * config.gcc (i[34567]86-*-*, x86_64-*-*): Add f16cintrin.h. |
| |
| |
| 2011-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR c++/50608 |
| * c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call |
| to fold_offsetof. |
| * c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1. |
| |
| 2011-11-04 Alan Modra <amodra@gmail.com> |
| |
| * reload1.c (gen_reload): Don't use REGNO on SUBREGs. |
| * print-rtl.c (print_rtx): Don't segfault on negative regno. |
| |
| 2011-11-04 David S. Miller <davem@davemloft.net> |
| |
| PR target/49965 |
| * config/sparc/sparc.c (sparc_expand_conditional_move): Handle the |
| fact that sparc_emit_float_lib_cmp modifies the comparison in |
| operands[1]. |
| |
| 2011-11-04 Ralf Corsépius <ralf.corsepius@rtems.org> |
| |
| * config/lm32/t-rtems: New. |
| * config.gcc (lm32-*-rtems*): Add t-rtems. |
| |
| 2011-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/50979 |
| * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8. |
| |
| 2011-11-04 Jiangning Liu <jiangning.liu@arm.com> |
| |
| PR rtl-optimization/38644 |
| * config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier |
| for epilogue having stack adjustment. |
| |
| 2011-11-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50931 |
| * config/avr/avr-modes.def: New file defining PSImode. |
| * config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__, |
| __UINT24_MAX__): New built-in defines. |
| * config/avr/avr.md (adjust_len): Add tstpsi, mov24, reload_in24, |
| ashlpsi, ashrpsi, lshrpsi. |
| (QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI. |
| (MOVMODE): New mode iterator. |
| (movpsi): New expander. |
| (movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE. |
| (*reload_inpsi, *movpsi): New insns. |
| (*reload_inpsi): New RTL peephole. |
| (addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi, |
| *addpsi3_sign_extend.hi): New insns. |
| (subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi, |
| *subpsi3_sign_extend.hi): New insns. |
| (divmodpsi4, udivmodpsi4): New define insn-and-split. |
| (*divmodpsi4_call, *udivmodpsi4_call): New insns. |
| (andpsi3, iorpsi3, xorpsi3): New insns. |
| (*rotlpsi2.1, *rotlpsi2.23): New insns. |
| (*rotw<mode>): Insn condition only allow even-sized modes. |
| (*rotb<mode>): Insn condition allows odd-sized modes. |
| (ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns. |
| (negpsi2, one_cmplpsi2): New insns. |
| (extendqipsi2, extendhipsi2, extendpsisi2): New insns. |
| (zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New |
| insn-and-splits. |
| (*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns. |
| (cbranchpsi4): New expander. |
| * config/avr/constraints.md (Ca3, Co3, Cx3): New constraints. |
| * config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi, |
| avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3, |
| avr_out_reload_inpsi): New prototypes. |
| |
| * config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to... |
| (avr_scalar_mode_supported_p): ...this new static function. |
| (avr_asm_len): Always return "". |
| (avr_out_load_psi, avr_out_store_psi): New static functions. |
| (avr_out_movpsi, avr_out_reload_inpsi): New functions. |
| (avr_out_tstpsi): New function. |
| (avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions. |
| (avr_out_plus_1, output_reload_in_const): Handle 3-byte types. |
| (avr_simplify_comparison_p): Ditto. |
| (adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24, |
| ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI, |
| ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI. |
| (avr_rtx_costs_1): Report PSI costs. |
| (avr_libcall_value): Handle odd-sized parameters. |
| (avr_init_builtin_int24): New static function to define built-in |
| 24-bit types __int24 and __uint24. |
| (avr_init_builtins): Use it. |
| |
| 2011-11-04 Thomas Doerfler <thomas.doerfler@embedded-brains.de> |
| |
| PR target/50989 |
| * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional |
| support for VFP floating point model. |
| |
| 2011-11-04 Tristan Gingold <gingold@adacore.com> |
| |
| * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section. |
| |
| 2011-11-04 Ira Rosen <ira.rosen@linaro.org> |
| |
| Unrevert: |
| 2011-10-24 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50730 |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block |
| analysis if encountered unsupported data-ref. |
| |
| 2011-11-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New |
| function. |
| * config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf): |
| New prototype. |
| * config/i386/sse.md (floatuns<sseintvecmodelower><mode>2): Use it. |
| For floatunsv8siv8sf2 require TARGET_AVX2. |
| |
| * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add |
| XORP argument. Subtract 0x1p31 instead of 0x1p32. Use normal |
| signalling comparison instead of non-signalling. Store into |
| *XORP pseudo holding 0x80000000 integers if 0x1p31 has been |
| subtracted and 0 otherwise. |
| * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): |
| Adjust prototype. |
| * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Enable |
| already for TARGET_SSE2. Xor in vector initialized by |
| ix86_expand_adjust_ufix_to_sfix_si at the end. |
| (vec_pack_ufix_trunc_<mode>): Likewise. |
| |
| * tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle |
| not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P, |
| WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what |
| vectorizable_type_demotion and vectorizable_type_promotion did. |
| Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer |
| is {,un}signed {char,short}. |
| (vect_create_vectorized_demotion_stmts): Fix comment typo. For |
| recursive calls unconditionally use VEC_PACK_TRUNC_EXPR. |
| Push vec_dest back to the vec_dsts vector at the end. |
| (vect_create_vectorized_promotion_stmts): Don't recurse, do just |
| one step. Removed multi_step_cvt, vec_dsts, slp_node and |
| prev_stmt_info arguments, add vec_dest argument. Push always |
| into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0 |
| with vec_tmp at the end after freeing old *vec_oprnd0 vector. |
| (vectorizable_type_demotion, vectorizable_type_promotion): Removed. |
| (vect_analyze_stmt): Don't call vectorizable_type_demotion and |
| vectorizable_type_promotion. Call vectorizable_conversion even |
| for SLP bb vectorization. |
| (vect_transform_stmt): Call vectorizable_conversion instead of |
| vectorizable_type_demotion and vectorizable_type_promotion. |
| (supportable_widening_operation): Clear *multi_step_cvt first, |
| simplify c1/c2 computation, free *interm_types vector on failure. |
| (supportable_narrowing_operation): Clear *multi_step_cvt first, |
| free *interm_types vector on failure, handle multi-step |
| FIX_TRUNC_EXPR. |
| |
| 2011-11-04 Tristan Gingold <gingold@adacore.com> |
| |
| * config/alpha/alpha.c (alpha_write_linkage): Remove fundecl |
| argument. Conditionally generate crash debug info. Adjust |
| for alpha_funcs_tree removal. |
| (machine_function): Add links field. |
| (alpha_start_function): Conditionally generate crash debug info. |
| (alpha_end_function): Adjust call to alpha_write_linkage. |
| (alpha_funcs): Remove. |
| (links_kind): Remove. |
| (alpha_links): Remove num, target and lkind field. Add func field. |
| (alpha_links_tree): Remove. |
| (alpha_funcs_tree): Remove. |
| (alpha_need_linkage): Remove. |
| (alpha_use_linkage): Change prototype. Adjust. |
| (alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL. |
| Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro. |
| * config/alpha/alpha-protos.h (alpha_use_linkage): Update. |
| (alpha_need_linkage): Remove. |
| * config/alpha/alpha.md: Update calls to alpha_use_linkage. |
| Adjust calls to alpha_need_linkage. |
| |
| 2011-11-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * sched-vis.c (print_value): Handle STRICT_LOW_PART. |
| |
| 2011-11-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2, |
| rint<mode>2, floor<mode>2, lfloor<MODEF:mode><SWI48:mode>2, |
| btrunc<mode>2, lwp_lwpval<mode>3): Use operands[N] instead of operandN. |
| |
| 2011-11-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/50978 |
| * config/arm/t-bpabi: New file. |
| * config.gcc (arm*-*-linux*): Add arm/t-bpabi to tmake_file for |
| arm*-*-linux-*eabi. |
| (arm*-*-uclinux*): Add arm/t-bpabi to tmake_file for |
| arm*-*-uclinux*eabi. |
| (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi to tmake_file |
| for arm*-*-eabi*. |
| |
| 2011-11-03 Michael Matz <matz@suse.de> |
| |
| PR bootstrap/50857 |
| * configure.ac: Check for -fno-exceptions -fno-rtti. |
| * configure: Regenerate. |
| * Makefile.in (NOEXCEPTION_FLAGS): New flag. |
| (ALL_CXXFLAGS): Use it. |
| |
| 2011-11-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md: Use {} for multi-line preparation statements. |
| |
| 2011-11-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (movtf_insn_sp32_no_fpu): Consolidate into... |
| (movtf_insn_sp32): ...this. |
| (movtf_insn_sp64_no_fpu): Consolidate into... |
| (movtf_insn_sp64): ...this. |
| (movtf_insn_sp64_hq): Do not test TARGET_FPU. |
| * config/sparc/sparc.c (sparc_legitimate_address_p): Likewise. |
| |
| 2011-11-03 Tristan Gingold <gingold@adacore.com> |
| |
| * config/vms/vms.c (vms_patch_builtins): Fix typo. |
| |
| 2011-11-03 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/44965 |
| * lto-opts.c: Re-implement. |
| * lto-streamer.h (lto_register_user_option): Remove. |
| (lto_read_file_options): Likewise. |
| (lto_reissue_options): Likewise. |
| (lto_clear_user_options): Likewise. |
| (lto_clear_file_options): Likewise. |
| * opts-global.c (post_handling_callback): Remove. |
| (set_default_handlers): Do not set post_handling_callback. |
| (decode_options): Remove LTO specific code. |
| * lto-wrapper.c (merge_and_complain): New function. |
| (run_gcc): Read all input file options and |
| prepend a merged set before the linker driver options. |
| * gcc.c (driver_post_handling_callback): Remove. |
| (set_option_handlers): Do not set post_handling_callback. |
| * opts-common.c (handle_option): Do not call post_handling_callback. |
| * opts.h (struct cl_option_handlers): Remove post_handling_callback. |
| |
| 2011-11-03 Richard Guenther <rguenther@suse.de> |
| |
| * collect2.c (main): Guard object_nbr variable with TARGET_AIX_VERSION. |
| |
| 2011-11-03 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (type_change_info): New fields offset, object, |
| known_current_type and multiple_types_encountered. |
| (extr_type_from_vtbl_ptr_store): New function. |
| (check_stmt_for_type_change): Use it, set multiple_types_encountered if |
| the result is different from the previous one. |
| (detect_type_change): Renamed to detect_type_change_1. New parameter |
| comp_type. Set up new fields in tci, build known type jump |
| functions if the new type can be identified. |
| (detect_type_change): New function. |
| * tree.h (DECL_CONTEXT): Comment new use. |
| |
| 2011-11-03 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48217 |
| * lto-wrapper.c (get_options_from_collect_gcc_options): Properly |
| decode an encoded literal '. |
| |
| 2011-11-03 Tristan Gingold <gingold@adacore.com> |
| |
| * collect2.c (main): Add support of -f (response file) on AIX. |
| |
| 2011-11-03 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50912 |
| * tree-vectorizer.h (slp_void_p): New. |
| (struct _slp_tree): Replace left and right with children. Update |
| documentation. |
| (struct _slp_oprnd_info): New. |
| (vect_get_vec_defs): Declare. |
| (vect_get_slp_defs): Update arguments. |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Call |
| vect_get_vec_defs instead of vect_get_slp_defs. |
| (vectorizable_reduction): Likewise. |
| * tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument. |
| Update call to vect_get_slp_defs. |
| (vectorizable_conversion): Update call to vect_get_vec_defs. |
| (vectorizable_assignment, vectorizable_shift, |
| vectorizable_operation): Likewise. |
| (vectorizable_type_demotion): Call vect_get_vec_defs instead of |
| vect_get_slp_defs. |
| (vectorizable_type_promotion, vectorizable_store): Likewise. |
| (vect_analyze_stmt): Fix typo. |
| * tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal. |
| (vect_print_slp_tree, vect_mark_slp_stmts, |
| vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts, |
| vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations, |
| vect_schedule_slp_instance): Likewise. |
| (vect_create_new_slp_node): New. |
| (vect_create_oprnd_info, vect_free_oprnd_info): Likewise. |
| (vect_get_and_check_slp_defs): Pass information about defs using |
| oprnds_info, allow any number of operands. |
| (vect_build_slp_tree): Likewise. Update calls to |
| vect_get_and_check_slp_defs. Fix comments. |
| (vect_analyze_slp_instance): Move node creation to |
| vect_create_new_slp_node. |
| (vect_get_slp_defs): Allow any number of operands. |
| |
| 2011-11-02 Peter Bergner <bergner@vnet.ibm.com> |
| Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define. |
| (get_ppc476_thunk_name): Use it. |
| (rs6000_code_end): Likewise. |
| (macho_branch_islands): Fix typo. |
| |
| 2011-11-02 Paolo Carlini <paolo.carlini@oracle.com> |
| Jason Merrill <jason@redhat.com> |
| |
| PR c++/50810 |
| * configure.ac: Add -Wno-narrowing to warning options. |
| * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update. |
| |
| 2011-11-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/50945 |
| * config/sparc/sparc.md (movsf_insn): Reindent constraints. |
| (movdf_insn_sp32): Likewise. Remove redundant G constraint. |
| (movdf_insn_sp64): Likewise. |
| (DFmode splitter): Do not test TARGET_FPU. |
| (movtf_insn_sp32): Reindent constraints. |
| (movtf_insn_sp32_no_fpu): Likewise. |
| (movtf_insn_sp64): Likewise. |
| (movtf_insn_sp64_hq): Likewise. |
| (movtf_insn_sp64_no_fpu): Likewise. |
| |
| 2011-11-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/50956 |
| * builtins.c (fold_builtin_memchr): Fix cast. |
| |
| 2011-11-02 Teresa Johnson <tejohnson@google.com> |
| |
| * config/i386/predicates.md (promotable_binary_operator): Add minus |
| to the list of promotable operators. |
| |
| 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * gthr-single.h, gthr.h: Move to ../libgcc. |
| * gthr-aix.h: Move to ../libgcc/config/rs6000. |
| * gthr-dce.h: Move to ../libgcc/config/pa. |
| * gthr-lynx.h: Move to ../libgcc/config. |
| * gthr-mipssde.h: Move to ../libgcc/config/mips. |
| * gthr-posix.h: Move to ../libgcc/config. |
| * gthr-rtems.h: Likewise. |
| * gthr-tpf.h: Move to ../libgcc/config/s390. |
| * gthr-vxworks.h: Move to ../libgcc/config. |
| * gthr-win32.h: Move to ../libgcc/config/i386. |
| * configure.ac (gthread_flags): Remove |
| (gthr-default.h): Don't create. |
| (thread_file): Don't substitute. |
| * configure: Regenerate. |
| * Makefile.in (GCC_THREAD_FILE): Remove. |
| (GTHREAD_FLAGS): Remove. |
| (libgcc.mvars): Remove GTHREAD_FLAGS. |
| * config/t-vxworks (EXTRA_HEADERS): Remove. |
| |
| 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| Paolo Bonzini <bonzini@gnu.org> |
| |
| * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove. |
| * configure: Regenerate. |
| * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove. |
| (TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list). |
| (libgcc_tm.h, cs-libgcc_tm.h): Remove. |
| (clean): Remove libgcc_tm.h |
| * mkconfig.sh: Don't include libgcc_tm.h in tm.h. |
| * config.gcc (libgcc_tm_file): Remove. |
| (arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi. |
| (arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi. |
| (arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file. |
| (avr-*-rtems*): Likewise. |
| (avr-*-*): Likewise. |
| (frv-*-elf): Likewise. |
| (frv-*-*linux*): Likewise. |
| (h8300-*-rtems*): Likewise. |
| (h8300-*-elf*): Likewise. |
| (i[34567]86-*-darwin*): Likewise. |
| (x86_64-*-darwin*): Likewise. |
| (rx-*-elf*): Likewise. |
| (tic6x-*-elf): Likewise. |
| (tic6x-*-uclinux): Likewise. |
| (i[34567]86-*-linux*, x86_64-*-linux*): Likewise. |
| |
| 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS) |
| (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA) |
| (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET) |
| (INCLUDES_FOR_TARGET): Remove. |
| (LIBGCC2_CFLAGS): Don't export. |
| (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify): |
| Remove. |
| (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies. |
| (libgcc.mvars): Likewise. |
| Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST, |
| LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS, |
| TARGET_LIBGCC2_CFLAGS. |
| Emit GTHREAD_FLAGS. |
| * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc. |
| * config/darwin-64.c: Move to ../libgcc/config. |
| * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c, |
| config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c, |
| config/udivmodsi4.c: Move to ../libgcc/config. |
| * config/gthr-posix.c: Move to ../libgcc/config/alpha. |
| * config/memcmp.c, config/memcpy.c, config/memmove.c, |
| config/memset.c: Move to ../libgcc/config. |
| * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/t-freebsd: Remove. |
| * config/t-freebsd-thread: Move to ../libgcc/config. |
| * config/t-libgcc-pic: Move to ../libgcc/config. |
| * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/t-linux: Remove. |
| * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): |
| Remove. |
| * config/t-openbsd-thread: Move to ../libgcc/config. |
| * config/t-rtems (LIBGCC2_INCLUDES): Remove. |
| * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/t-svr4: Remove. |
| * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS) |
| (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove. |
| * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config. |
| * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S. |
| * config/alpha/t-alpha, config/alpha/t-ieee: Remove. |
| * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha. |
| * config/arm/bpabi.c, config/arm/unaligned-funcs.c, |
| config/arm/fp16.c, config/arm/linux-atomic.c, |
| config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm. |
| * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC) |
| (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/arm/t-bpabi, config/arm/t-linux: Remove. |
| * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS) |
| (LIB2FUNCS_STATIC_EXTRA): Remove. |
| * config/arm/t-netbsd: Remove. |
| * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC) |
| (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove. |
| * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC) |
| (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS) |
| (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/bfin/t-bfin-linux: Likewise. |
| * config/bfin/t-bfin-uclinux: Likewise. |
| * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, |
| config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, |
| config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, |
| config/c6x/ltf.c: Move to ../libgcc/config/c6x. |
| * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove. |
| * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/cris/arit.c: Move to ../libgcc/config/cris. |
| * config/cris/cris_abi_symbol.c: Remove. |
| * config/cris/cris.h: Remove obsolete comment. |
| * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S. |
| * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC) |
| ($(LIB2FUNCS_EXTRA)): Remove. |
| * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC) |
| (LIBGCC): Remove. |
| * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/fr30/t-fr30: Remove. |
| * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, |
| config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c, |
| config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move |
| to ../libgcc/config/frv. |
| * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) |
| (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c) |
| (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/h8300/clzhi2.c, config/h8300/ctzhi2.c, |
| config/h8300/fixunssfsi.c, config/h8300/parityhi2.c, |
| config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300. |
| * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) |
| (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/i386/gthr-win32.c: Move to ../libgcc/config/i386. |
| * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove. |
| * config/i386/t-cygwin: Remove. |
| * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) |
| (LIB2FUNCS_EXCLUDE): Remove. |
| * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) |
| (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/i386/t-gthr-win32: Move to ../libgcc/config/i386. |
| * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/i386/t-mingw-w32: Likewise. |
| * config/i386/t-mingw-w64: Likewise. |
| * config/i386/t-openbsd: Likewise. |
| * config/i386/t-nto: Remove. |
| * config/ia64/quadlib.c: Move to ../libgcc/config/ia64. |
| * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) |
| (quadlib.c): Remove. |
| * config/ia64/t-ia64: Remove comment. |
| * config/iq2000/lib2extra-funcs.c: Move to |
| ../libgcc/config/iq2000/lib2funcs.c. |
| * config/iq2000/t-iq2000: Remove. |
| * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c. |
| * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c. |
| * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove. |
| * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC) |
| (INSTALL_LIBGCC): Remove. |
| * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k. |
| * config/m68k/t-floatlib: Remove. |
| * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove. |
| Fix typo. |
| (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c. |
| * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c. |
| * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove. |
| * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC) |
| (INSTALL_LIBGCC): Remove. |
| * config/mips/t-isa3264: Likewise. |
| * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove. |
| * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC) |
| (INSTALL_LIBGCC): Remove. |
| * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC) |
| (INSTALL_LIBGCC): Remove. |
| * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS) |
| (LIB2FUNCS_STATIC_EXTRA): Remove. |
| * config/mips/vr4120-div.S: Move to ../libgcc/config/mips. |
| * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/pa/fptr.c, config/pa/linux-atomic.c: Move to |
| ../libgcc/config/pa. |
| * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S. |
| * config/pa/quadlib.c: Move to ../libgcc/config/pa. |
| * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/pa/t-linux, config/pa/t-linux64: Remove. |
| * config/pa/t-pa-hpux, config/pa/t-pa-hpux10, |
| config/pa/t-pa-hpux11, config/pa/t-pa64: Remove. |
| * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA): |
| Remove. |
| * config/picochip/libgccExtras: Move to ../libgcc/config/picochip. |
| * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET) |
| (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove. |
| * config/rs6000/crtresfpr.asm: Move to |
| ../libgcc/config/rs6000/crtresfpr.S. |
| * config/rs6000/crtresgpr.asm: Move to |
| ../libgcc/config/rs6000/crtresgpr.S. |
| * config/rs6000/crtresxfpr.asm: Move to |
| ../libgcc/config/rs6000/crtresxfpr.S. |
| * config/rs6000/crtresxgpr.asm: Move to |
| ../libgcc/config/rs6000/crtresxgpr.S. |
| * config/rs6000/crtsavfpr.asm: Move to |
| ../libgcc/config/rs6000/crtsavfpr.S. |
| * config/rs6000/crtsavgpr.asm: Move to |
| ../libgcc/config/rs6000/crtsavgpr.S. |
| * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000. |
| * config/rs6000/darwin-fpsave.asm: Move to |
| ../libgcc/config/rs6000/darwin-fpsave.S. |
| * config/rs6000/darwin-gpsave.asm: Move to |
| ../libgcc/config/rs6000/darwin-gpsave.S. |
| * config/rs6000/darwin-tramp.asm: Move to |
| ../libgcc/config/rs6000/darwin-tramp.S. |
| * config/rs6000/darwin-vecsave.asm: Move to |
| ../libgcc/config/rs6000/darwin-vecsave.S. |
| * config/rs6000/darwin-world.asm: Move to |
| ../libgcc/config/rs6000/darwin-world.S. |
| * config/rs6000/e500crtres32gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtres32gpr.S. |
| * config/rs6000/e500crtres64gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtres64gpr.S. |
| * config/rs6000/e500crtres64gprctr.asm: Move to |
| ../libgcc/config/rs6000/e500crtres64gprctr.S. |
| * config/rs6000/e500crtrest32gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtrest32gpr.S. |
| * config/rs6000/e500crtrest64gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtrest64gpr.S. |
| * config/rs6000/e500crtresx32gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtresx32gpr.S. |
| * config/rs6000/e500crtresx64gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtresx64gpr.S. |
| * config/rs6000/e500crtsav32gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtsav32gpr.S. |
| * config/rs6000/e500crtsav64gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtsav64gpr.S. |
| * config/rs6000/e500crtsav64gprctr.asm: Move to |
| ../libgcc/config/rs6000/e500crtsav64gprctr.S. |
| * config/rs6000/e500crtsavg32gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtsavg32gpr.S. |
| * config/rs6000/e500crtsavg64gpr.asm: Move to |
| ../libgcc/config/rs6000/e500crtsavg64gpr.S. |
| * config/rs6000/e500crtsavg64gprctr.asm: Move to |
| ../libgcc/config/rs6000/e500crtsavg64gprctr.S. |
| * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S. |
| * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) |
| (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/rs6000/t-aix52: Likewise. |
| * config/rs6000/t-darwin: Remove. |
| * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS) |
| (LIB2FUNCS_EXTRA): Remove. |
| * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC) |
| (INSTALL_LIBGCC): Remove. |
| * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA) |
| (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S) |
| (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC) |
| (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext)) |
| ($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext)) |
| ($(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove. |
| * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA) |
| (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove. |
| * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/rs6000/t-vxworks: Remove comment. |
| * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S. |
| * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/sh/linux-atomic.asm: Move to |
| ../libgcc/config/sh/linux-atomic.S. |
| * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove. |
| * config/sh/t-netbsd: Remove. |
| * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): |
| Remove. |
| * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/sparc/t-leon: Likewise. |
| * config/sparc/t-leon3: Likewise. |
| * config/sparc/t-linux64: Likewise. |
| * config/sparc/t-netbsd64: Fix typo. |
| Remove comment. |
| * config/spu/divmodti4.c, config/spu/divv2df3.c, |
| config/spu/float_disf.c, config/spu/float_unsdidf.c, |
| config/spu/float_unsdisf.c, config/spu/float_unssidf.c, |
| config/spu/mfc_multi_tag_release.c, |
| config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c, |
| config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c, |
| config/spu/multi3.c: Move to ../libgcc/config/spu. |
| * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE) |
| (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC) |
| (INSTALL_LIBGCC): Remove. |
| * config/stormy16/stormy16-lib2.c: Move to |
| ../libgcc/config/stormy16/lib2.c. |
| * config/stormy16/stormy16-lib2-ashlsi3.c: Move to |
| ../libgcc/config/stormy16/ashlsi3.c. |
| * config/stormy16/stormy16-lib2-ashrsi3.c: Move to |
| ../libgcc/config/stormy16/ashrsi3.c. |
| * config/stormy16/stormy16-lib2-clzhi2.c: Move to |
| ../libgcc/config/stormy16/clzhi2.c. |
| * config/stormy16/stormy16-lib2-cmpsi2.c: Move to |
| ../libgcc/config/stormy16/cmpsi2.c. |
| * config/stormy16/stormy16-lib2-ctzhi2.c: Move to |
| ../libgcc/config/stormy16/ctzhi2.c. |
| * config/stormy16/stormy16-lib2-divsi3.c: Move to |
| ../libgcc/config/stormy16/divsi3.c. |
| * config/stormy16/stormy16-lib2-ffshi2.c: Move to |
| ../libgcc/config/stormy16/ffshi2.c. |
| * config/stormy16/stormy16-lib2-lshrsi3.c: Move to |
| ../libgcc/config/stormy16/lshrsi3.c. |
| * config/stormy16/stormy16-lib2-modsi3.c: Move to |
| ../libgcc/config/stormy16/modsi3.c. |
| * config/stormy16/stormy16-lib2-parityhi2.c: Move to |
| ../libgcc/config/stormy16/parityhi2.c. |
| * config/stormy16/stormy16-lib2-popcounthi2.c: Move to |
| ../libgcc/config/stormy16/popcounthi2.c. |
| * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to |
| ../libgcc/config/stormy16/ucmpsi2.c. |
| * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to |
| ../libgcc/config/stormy16/udivmodsi4.c. |
| * config/stormy16/stormy16-lib2-udivsi3.c: Move to |
| ../libgcc/config/stormy16/udivsi3.c. |
| * config/stormy16/stormy16-lib2-umodsi3.c: Move to |
| ../libgcc/config/stormy16/umodsi3.c. |
| * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16. |
| * config/v850/t-v850 (INSTALL_LIBGCC): Remove. |
| * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa. |
| * config/xtensa/t-elf: Remove. |
| * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove. |
| * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread |
| from tmake_file. |
| (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, |
| *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file. |
| (*-*-netbsd*): Remove t-libgcc-pic from tmake_file. |
| (*-*-openbsd*): Likewise. |
| Remove t-openbsd-thread for posix threads. |
| (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file. |
| (alpha*-*-freebsd*): Likewise. |
| (alpha*-*-netbsd*): Likewise. |
| (alpha*-*-openbsd*): Likewise. |
| (alpha64-dec-*vms*): Likewise. |
| (alpha*-dec-*vms*): Likewise. |
| (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file. |
| (arm*-*-linux*): Remove t-linux from tmake_file. |
| Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi. |
| (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for |
| arm*-*-uclinux*eabi. |
| (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from |
| tmake_file for arm*-*-eabi*. |
| (fr30-*-elf): Remove tmake_file. |
| (hppa*64*-*-linux*): Remove tmake_file. |
| (hppa*-*-linux*): Likewise. |
| (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from |
| tmake_file. |
| (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file. |
| (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from |
| tmake_file. |
| (i[34567]86-*-elf*): Remove tmake_file. |
| (x86_64-*-elf*): Likewise. |
| (i[34567]86-*-nto-qnx*): Likewise. |
| (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file. |
| (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32 |
| from tmake_file if using win32 threads. |
| (iq2000*-*-elf*): Remove tmake-file. |
| (microblaze*-linux*): Likewise. |
| (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*) |
| (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*) |
| (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*) |
| (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for |
| sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd. |
| (xtensa*-*-elf*): Remove tmake_file. |
| |
| 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (LIB1ASMSRC): Don't export. |
| (libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC. |
| * config/arm/arm.c: Update lib1funcs.asm filename. |
| * config/arm/linux-eabi.h: Likewise. |
| * config/arm/bpabi-v6m.S, config/arm/bpabi.S, |
| config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to |
| ../libgcc/config/arm. |
| * config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S. |
| * config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/arm/t-arm-elf (LIB1ASMFUNCS): Remove. |
| * config/arm/t-bpabi: Likewise. |
| * config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove. |
| * config/arm/t-strongarm-elf: Likewise. |
| * config/arm/t-symbian: Likewise. |
| * config/arm/t-vxworks: Likewise. |
| * config/arm/t-wince-pe: Likewise. |
| * config/avr/libgcc.S: Move to ../libgcc/config/avr. |
| * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S. |
| * config/bfin/t-bfin: Remove. |
| * config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/bfin/t-bfin-linux: Likewise. |
| * config/bfin/t-bfin-uclinux: Likewise. |
| * config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S. |
| * config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S. |
| * config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S. |
| * config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/h8300/fixunssfsi.c: Update lib1funcs.asm filename. |
| * config/h8300/lib1funcs.asm: Move to |
| ../libgcc/config/h8300/lib1funcs.S. |
| * config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S. |
| * config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/i386/t-interix: Likewise. |
| * config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S. |
| * config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove. |
| * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove. |
| * config/m32c/m32c.c: Update m32c-lib1.S filename. |
| * config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S. |
| * config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove. |
| * config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S. |
| * config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file. |
| * config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S. |
| * config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S. |
| * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/mips/mips16.S: Move to ../libgcc/config/mips. |
| * config/mips/t-libgcc-mips16: Remove. |
| * config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove. |
| * config/pa/milli64.S: Move to ../libgcc/config/pa. |
| * config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove. |
| * config/pa/t-linux64: Likewise. |
| * config/picochip/libgccExtras/fake_libgcc.asm: Move to |
| ../libgcc/config/picochip/lib1funcs.S. |
| * config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove. |
| * config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S. |
| * config/sh/lib1funcs.h: Move to ../libgcc/config/sh. |
| * config/sh/sh.h: Update lib1funcs.asm filename. |
| * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove. |
| * config/sh/t-netbsd: Likewise. |
| * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE): |
| Remove. |
| * config/sh/t-sh64 (LIB1ASMFUNCS): Remove. |
| * config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S. |
| * config/sparc/lb1spl.asm: Remove. |
| * config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config/sparc/t-leon: Likewise. |
| * config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove. |
| * config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S. |
| * config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove |
| * config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S. |
| * config/vax/t-linux: Remove. |
| * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to |
| ../libgcc/config/xtensa. |
| * config/xtensa/lib1funcs.asm: Move to |
| ../libgcc/config/xtensa/lib1funcs.S. |
| * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove. |
| * config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file. |
| (bfin*-*): Likewise. |
| (mips64*-*-linux*, mipsisa64*-*-linux*): Remove |
| mips/t-libgcc-mips16 from tmake_file. |
| (mips*-*-linux*): Likewise. |
| (mips*-sde-elf*): Likewise. |
| (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*) |
| (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*) |
| (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise. |
| (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise. |
| (mips-*-elf*, mipsel-*-elf*): Likewise. |
| (mips64-*-elf*, mips64el-*-elf*): Likewise. |
| (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise. |
| (mips*-*-rtems*): Likewise. |
| (mipstx39-*-elf*, mipstx39el-*-elf*): Likewise. |
| (vax-*-linux*): Remove vax/t-linux from tmake_file. |
| |
| 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc (extra_parts): Remove. |
| (*-*-freebsd*): Remove extra_parts. |
| (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, |
| *-*-gnu*, *-*-kopensolaris*-gnu): Likewise. |
| (*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file. |
| Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*, |
| *-*-netbsdelf[2-9]*. |
| (*-*-openbsd*): Remove t-libc-ok from tmake_file. |
| (alpha*-*-linux*): Remove extra_parts. |
| (alpha*-*-freebsd*): Likewise. |
| (bfin*-linux-uclibc*): Likewise. |
| (fr30-*-elf): Likewise. |
| (moxie-*-elf): Likewise. |
| (moxie-*-uclinux*): Likewise. |
| (h8300-*-rtems*): Remove h8300/t-elf from tmake_file. |
| (h8300-*-elf*): Likewise. |
| (hppa*64*-*-hpux11*): Remove extra_parts. |
| (i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from |
| tmake_file. |
| (x86_64-*-elf*): Likewise. |
| (i[34567]86-*-freebsd*): Remove tmake_file. |
| (x86_64-*-freebsd*): Likewise. |
| (x86_64-*-netbsd*): Likewise. |
| (i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove |
| t-libc-ok from tmake_file. |
| (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, |
| i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, |
| i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from |
| tmake_file. |
| Remove extra_parts. |
| (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): |
| Remove i386/t-crtstuff from tmake_file. |
| (i[34567]86-*-lynxos*): Likewise. |
| Remove extra_parts. |
| (ia64*-*-elf*): Remove extra_parts. |
| (ia64*-*-freebsd*): Likewise. |
| (ia64*-*-linux*): Likewise. |
| (ia64-hp-*vms*): Remove ia64/t-vms from tmake_file. |
| (m32r-*-elf*): Remove extra_parts. |
| (m32rle-*-elf*): Likewise. |
| (m32r-*-rtems*): Likewise. |
| (m68k-*-elf*, fido-*-elf*): Likewise. |
| (m68k*-*-openbsd*): Remove t-libc-ok from tmake_file. |
| (m68k-*-rtems*): Remove extra_parts. |
| (mep-*-*): Likewise. |
| (microblaze*-linux*): Likewise. |
| (mips64*-*-linux*, mipsisa64*-*-linux*): Likewise. |
| (mips*-*-linux*): Likewise. |
| (powerpc-*-lynxos*): Likewise. |
| (s390x-ibm-tpf*): Likewise. |
| (score-*-elf): Likewise. |
| Remove tmake_file. |
| (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*, |
| sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*, |
| sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file. |
| Remove sh/t-superh from tmake_file for sh*-superh-elf. |
| Remove sh/t-linux64 from tmake_file for sh64*-*-linux*. |
| (sh-*-rtems*): Remove sh/t-elf from tmake_file. |
| (sh-wrs-vxworks): Likewise. |
| (sparc-*-linux*): Remove extra_parts. |
| (sparc64-*-linux*): Likewise. |
| (sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise. |
| (xstormy16-*-elf): Likewise. |
| (xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file. |
| (am33_2.0-*-linux*): Remove extra_parts. |
| * configure.ac (extra_parts): Don't substitute. |
| * configure: Regenerate. |
| * crtstuff.c: Move to ../libgcc. |
| * Makefile.in (CRTSTUFF_CFLAGS): Remove. |
| (EXTRA_PARTS): Remove. |
| (CRTSTUFF_T_CFLAGS): Remove. |
| (MOSTLYCLEANFILES): Remove $(EXTRA_PARTS). |
| (GCC_EXTRA_PARTS): Remove. |
| (libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS, |
| CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S. |
| Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS. |
| ($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o) |
| ($(T)crtbeginT.o): Remove. |
| * config/alpha/t-vms (EXTRA_PARTS): Remove. |
| ($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove. |
| * config/alpha/vms-dwarf2.asm: Move to |
| ../libgcc/config/alpha/vms-dwarf2.S. |
| * config/alpha/vms-dwarf2eh.asm: Move to |
| ../libgcc/config/alpha/vms-dwarf2eh.S. |
| * config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S. |
| * config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S. |
| * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove. |
| ($(T)crti.o, $(T)crtn.o): Remove. |
| * config/arm/t-linux: Remove comment. |
| * config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove. |
| * config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove. |
| ($(T)crti.o, $(T)crtn.o): Remove. |
| * config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove. |
| * config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S. |
| * config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S. |
| * config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S. |
| * config/bfin/t-bfin (EXTRA_PARTS): Remove. |
| ($(T)crti.o, $(T)crtn.o): Remove. |
| * config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove. |
| ($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove |
| (EXTRA_MULTILIB_PARTS): Remove. |
| * config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS, |
| EXTRA_MULTILIB_PARTS): Remove. |
| * config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove. |
| ($(T)crtlibid.o): Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| * config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S. |
| * config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S. |
| * config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS, |
| CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove. |
| * config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S. |
| * config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S. |
| * config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove. |
| * config/frv/frvbegin.c, config/frv/frvend.c: Move to |
| ../libgcc/config/frv. |
| * config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove. |
| (FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove. |
| * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove. |
| (CRTSTUFF_T_CFLAGS): Remove. |
| * config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S. |
| * config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S. |
| * config/h8300/t-elf: Remove. |
| * config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c: |
| Move to ../libgcc/config/i386. |
| * config/i386/t-crtstuff: Remove. |
| * config/i386/t-i386elf: Remove. |
| * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove. |
| * config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove. |
| * config/ia64/crtbegin.asm: Move to ../libgcc/config/ia64/crtbegin.S. |
| * config/ia64/crtend.asm: Move to ../libgcc/config/ia64/crtend.S. |
| * config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S. |
| * config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S. |
| * config/ia64/t-vms: Remove. |
| * config/ia64/vms-crtinit.asm: Move to |
| ../libgcc/config/ia64/vms-crtinit.S. |
| * config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove. |
| * config/m32r/initfini.c: Move to ../libgcc/config/m32r. |
| * config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove. |
| ($(T)crtinit.o, $(T)crtfini.o): Remove. |
| (m32rx, m32r2): Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| * config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S. |
| * config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S. |
| * config/m68k/t-crtstuff: Remove. |
| * config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove. |
| * config/m68k/t-m68kelf: Remove. |
| * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove. |
| * config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S. |
| * config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S. |
| * config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove. |
| (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove. |
| * config/mep/t-mep (CRTSTUFF_CFLAGS): Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| * config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S. |
| * config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S. |
| * config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS, |
| EXTRA_PARTS): Remove. |
| ($(T)crti$(objext), $(T)crtn$(objext)): Remove. |
| * config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S. |
| * config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S. |
| * config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove. |
| ($(T)crti.o, $(T)crtn.o): Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| * config/mips/t-isa3264: Likewise. |
| * config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove. |
| * config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove. |
| (CRTSTUFF_T_CFLAGS): Remove. |
| * config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove. |
| ($(T)crti.o, $(T)crtn.o): Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| * config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): |
| Remove. |
| ($(T)crti.o, $(T)crtn.o): Remove. |
| * config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove. |
| * config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| ($(T)crti.o, $(T)crtn.o): Remove. |
| * config/mmix/crti.asm: Move to ../libgcc/config/crti.S. |
| * config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S. |
| * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove. |
| * config/moxie/crti.asm, config/moxie/crtn.asm: Remove. |
| * config/pa/stublib.c: Move to libgcc/config/pa. |
| * config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove. |
| (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o) |
| (pthread_mutex_unlock-stub.o, pthread_once-stub.o) |
| ($(T)libgcc_stub.a): Remove. |
| * config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove. |
| (rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o) |
| (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o) |
| (pthread_mutex_unlock-stub.o, pthread_once-stub.o) |
| ($(T)libgcc_stub.a): Remove. |
| * config/rs6000/eabi-cn.asm: Move to |
| ../../../libgcc/config/rs6000/eabi-cn.S. |
| * config/rs6000/eabi-ci.asm: Move to |
| ../../../libgcc/config/rs6000/eabi-ci.S. |
| * config/rs6000/sol-ci.asm: Move to |
| ../../../libgcc/config/rs6000/sol-ci.S. |
| * config/rs6000/sol-cn.asm: Move to |
| ../../../libgcc/config/rs6000/sol-cn.S. |
| * config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove. |
| (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): |
| Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove. |
| (ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove. |
| ($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext), |
| ($(T)ncrtn$(objext)): Remove. |
| (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove. |
| * config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove. |
| * config/score/crti.asm: Move to ../libgcc/config/score/crti.S. |
| * config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S. |
| * config/score/t-score-elf: Remove. |
| * config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S. |
| * config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S. |
| * config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S. |
| * config/sh/lib1funcs-4-300.asm: Move to |
| ../../../libgcc/config/sh/lib1funcs-4-300.S. |
| * config/sh/lib1funcs-Os-4-200.asm: Move to |
| ../libgcc/config/sh/lib1funcs-Os-4-200.S. |
| * config/sh/t-elf: Remove. |
| * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove. |
| * config/sh/t-linux64: Remove. |
| * config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove. |
| * config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove. |
| (IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove. |
| ($(T)ic_invalidate_array_4-100.o) |
| ($(T)libic_invalidate_array_4-100.a) |
| ($(T)ic_invalidate_array_4-200.o) |
| ($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o) |
| ($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o) |
| ($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o) |
| ($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o) |
| ($(T)libgcc-4-300.a): Remove. |
| * config/sh/t-superh: Remove. |
| * config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove. |
| * config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove. |
| * config/spu/cache.S: Move to ../libgcc/config/spu. |
| * config/spu/cachemgr.c: Move to ../libgcc/config/spu. |
| * config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove. |
| ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o) |
| ($(T)cache64k.o, $(T)cache128k.o): Remove. |
| * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/t-libc-ok: Remove. |
| * config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/t-netbsd: Remove. |
| * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove. |
| * config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove. |
| * config/vms/t-vms (VMS_EXTRA_PARTS): Remove. |
| ($(T)vcrt0.o, $(T)pcrt0.o): Remove. |
| * config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms. |
| * config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S. |
| * config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S. |
| * config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove. |
| (EXTRA_MULTILIB_PARTS): Remove. |
| * config/xtensa/t-linux: Remove. |
| * config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove. |
| |
| 2011-11-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_CVTTPD2DQ256]: Use |
| CODE_FOR_fix_truncv4dfv4si2, not CODE_FOR_fix_truncv4sfv4si2. |
| |
| 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR translation/45116 |
| * Makefile.in (slibdir): Remove, don't export. |
| (SHLIB_NM_FLAGS): Remove. |
| (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL, |
| SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, |
| SHLIB_MAPFILES, SHLIB_NM_FLAGS. |
| (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK. |
| (gcc.o): Pass SHLIB instead of SHLIB_LINK. |
| (gccspec.o): Likewise. |
| (installdirs): Don't create $(DESTDIR)$(slibdir). |
| * configure.ac (slibdir): Remove. |
| * configure: Regenerate. |
| * libgcc-libsystem.ver: Move to ../libgcc/config. |
| * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc. |
| * config/libgcc-glibc.ver: Move to ../libgcc/config. |
| * config/t-libunwind (SHLIB_LC): Remove. |
| * config/t-linux (SHLIB_MAPFILES): Remove. |
| * config/t-slibgcc-dummy: Rename to config/t-slibgcc. |
| * config/t-slibgcc-elf-ver: Remove. |
| * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to |
| ../libgcc/config. |
| * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move |
| to ../libgcc/config/alpha. |
| * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, |
| SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC, |
| SHLIB_SYMVECX2, SHLIB_LINK): Remove. |
| * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm. |
| * config/arm/t-bpabi (SHLIB_MAPFILES): Remove. |
| * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME, |
| SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove. |
| * config/arm/t-symbian (SHLIB_LC): Remove. |
| * config/bfin/libgcc-bfin.ver: Move to |
| ../libgcc/config/bfin/libgcc-glibc.ver. |
| * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove. |
| * config/c6x/libgcc-c6xeabi.ver: Move to |
| ../libgcc/config/c6x/libgcc-eabi.ver. |
| * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove. |
| * config/cris/libgcc.ver: Move to |
| ../libgcc/config/cris/libgcc-glibc.ver. |
| * config/cris/t-linux (SHLIB_MAPFILES): Remove. |
| * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv. |
| * config/frv/t-linux (SHLIB_MAPFILES): Remove. |
| * config/i386/darwin-libgcc.10.4.ver: Move to |
| ../libgcc/config/i386/libgcc-darwin.10.4.ver. |
| * config/i386/darwin-libgcc.10.5.ver: Move to |
| ../libgcc/config/i386/libgcc-darwin.10.5.ver. |
| * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386. |
| * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION, |
| SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL) |
| SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK, |
| SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove. |
| * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION, |
| SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove. |
| * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to |
| ../libgcc/config/i386. |
| * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to |
| ../libgcc/config/i386. |
| * config/i386/t-linux: Move to ../libgcc/config/i386. |
| * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386. |
| * config/i386/t-mingw-w32 (SHLIB_LC): Remove. |
| * config/i386/t-mingw-w64: Likewise. |
| * config/i386/t-mingw32: Remove. |
| * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move |
| to ../libgcc/config/ia64. |
| * config/ia64/t-glibc: Remove. |
| * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove. |
| * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove. |
| * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, |
| SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove. |
| * config/ia64/vms_symvec_libgcc_s.opt: Remove. |
| * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r. |
| * config/m32r/t-linux (SHLIB_MAPFILES): Remove. |
| * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k. |
| * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove. |
| * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux. |
| * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: |
| Move to ../libgcc/config/pa. |
| * config/rs6000/darwin-libgcc.10.4.ver: Move to |
| ../libgcc/config/rs6000/libgcc-darwin.10.4.ver. |
| * config/rs6000/darwin-libgcc.10.5.ver: Move to |
| ../libgcc/config/rs6000/libgcc-darwin.10.5.ver. |
| * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, |
| SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove. |
| * config/rs6000/t-aix52: Likewise. |
| * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to |
| ../libgcc/config/sh. |
| * config/sparc/libgcc-sparc-glibc.ver: Move to |
| ../libgcc/config/sparc/libgcc-glibc.ver. |
| * config/sparc/t-linux: Move to ../libgcc/config/sparc. |
| * config/xtensa/t-linux (SHLIB_MAPFILES): Remove. |
| * config/xtensa/libgcc-xtensa.ver: Move to |
| ../libgcc/config/xtensa/libgcc-glibc.ver. |
| * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with |
| t-slibgcc in tmake_file. |
| Remove t-slibgcc-nolc-override for *-*-freebsd[34], |
| *-*-freebsd[34].* with pthreads. |
| (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, |
| *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace |
| t-slibgcc-elf-ver with t-slibgcc in tmake_file. |
| (*-*-netbsd*): Likewise. |
| (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. |
| (*-*-*vms*): Add t-slibgcc to tmake_file. |
| (alpha*-*-linux*): Remove alpha/t-linux from tmake_file. |
| (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in |
| tmake_file. |
| (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for |
| arm*-*-linux-*eabi. |
| (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in |
| tmake_file. |
| (crisv32-*-linux*, cris-*-linux*): Likewise. |
| (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver, |
| pa/t-slibgcc-dwarf-ver from tmake_file. |
| (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in |
| tmake_file. |
| Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file. |
| (hppa*64*-*-hpux11*): Likewise. |
| (hppa[12]*-*-hpux11*): Likewise. |
| (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in |
| tmake_file. |
| (x86_64-*-darwin*): Likewise. |
| (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file. |
| Add t-slibgcc to tmake_file. |
| (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. |
| Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*, |
| i[34567]86-w64-*. |
| Remove i386/t-mingw-pthread from tmake_file. |
| (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file. |
| (ia64*-*-hpux*): Add t-slibgcc to tmake_file. |
| (ia64-hp-*vms*): Likewise. |
| (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in |
| tmake_file. |
| (m32rle-*-linux*): Likewise. |
| (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file. |
| (microblaze*-linux*): Remove t-slibgcc-elf-ver, |
| t-slibgcc-nolc-override from tmake_file. |
| (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in |
| tmake_file. |
| (powerpc-*-darwin*): Likewise. |
| (powerpc64-*-darwin*): Likewise. |
| (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file. |
| (powerpc-*-linux*, powerpc64-*-linux*): Likewise. |
| (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add |
| t-slibgcc to tmake_file. |
| (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. |
| (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise. |
| (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise. |
| (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise. |
| (sparc-*-linux*): Remove sparc/t-linux from tmake_file. |
| (sparc64-*-linux*): Likewise. |
| (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in |
| tmake_file. |
| (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu, |
| x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux |
| from tmake_file. |
| |
| 2011-11-02 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50902 |
| * tree-vect-stmts.c (vectorizable_load): Properly convert |
| an invariant initializer element. |
| |
| 2010-11-02 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50890 |
| * gimple.h (gimple_fold_call): Remove. |
| * gimple-fold.c (fold_stmt_1): Move all call related code to ... |
| (gimple_fold_call): ... here. Make static. Update the |
| cannot-inline flag on direct calls. |
| * ipa-inline.c (early_inliner): Copy the cannot-inline flag |
| from the statements to the edges. |
| |
| 2011-11-01 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (struct macro_hash_value): Define. |
| (macro_hash_hashval): New static function. |
| (macro_hash_eq, macro_hash_del): New static functions. |
| (go_define): Use macro_hash_value to store values in macro_hash. |
| Replace an old value on a redefinition. Don't print anything to |
| go_dump_file. |
| (go_undef): Delete the entry from the hash table. |
| (go_output_typedef): For an enum, use macro_hash_value, and don't |
| print anything to go_dump_file. |
| (go_print_macro): New static function. |
| (go_finish): Traverse macro_hash with go_print_macro. |
| (dump_go_spec_init): Update macro_hash creation for macro_hash_value. |
| |
| 2011-11-02 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED. |
| |
| 2011-11-01 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/44277 |
| * doc/invoke.texi: Document -Wzero-as-null-pointer-constant. |
| |
| 2011-11-01 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning. |
| |
| 2011-11-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (splitters for int-float conversion): Use |
| SUBREG_REG on SUBREGs in splitter constraints. |
| |
| 2011-11-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New |
| prototype. |
| * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New |
| function. |
| * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use it. |
| (ssepackfltmode): New mode attr. |
| (vec_pack_ufix_trunc_<mode>): New expander. |
| |
| 2011-11-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50940 |
| * config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter): |
| Compare <ssevecmode>mode to V4SFmode, not V4SImode. |
| |
| 2011-11-01 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant. |
| * config/rs6000/476.h: New file. |
| * config/rs6000/476.opt: Likewise. |
| * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define. |
| (SET_TARGET_LINK_STACK): Likewise. |
| (TARGET_ASM_CODE_END): Define. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable |
| TARGET_LINK_STACK for -mtune=476 and -mtune=476fp. |
| (rs6000_legitimize_tls_address): Emit the link stack preserving GOT |
| code if TARGET_LINK_STACK. |
| (rs6000_emit_load_toc_table): Likewise. |
| (output_function_profiler): Likewise |
| (macho_branch_islands): Likewise |
| (machopic_output_stub): Likewise |
| (get_ppc476_thunk_name): New function. |
| (rs6000_code_end): Likewise. |
| * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b): |
| Convert to a define_expand. |
| (load_toc_v4_PIC_1_normal): New define_insn. |
| (load_toc_v4_PIC_1_476): Likewise. |
| (load_toc_v4_PIC_1b_normal): Likewise. |
| (load_toc_v4_PIC_1b_476): Likewise. |
| |
| 2011-11-01 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50910 |
| * config/avr/avr.opt (-mbranch-cost=): New option. |
| * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost. |
| * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs. |
| * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns. |
| (*addhi3_zero_extend1): Remove % in constraint of operand 1. |
| (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns. |
| |
| 2011-11-01 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/50908 |
| * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed |
| before update_vuses, test for 1 predecessor rather than two. |
| (delete_block_update_dominator_info): New function, part of it factored |
| out of ... |
| (replace_block_by): Use delete_block_update_dominator_info. Call |
| update_vuses after deleting bb1 and updating dominator info, instead of |
| before. |
| |
| 2011-11-01 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (vector_init_faligndata): New function. |
| (sparc_expand_vector_init): Use it for V4HImode on VIS1. |
| |
| * config/sparc/sparc.c (sparc_expand_vcond): New function. |
| * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it. |
| * config/sparc/sparc.md (vcond<mode><mode>): New VIS3 expander. |
| (vconduv8qiv8qi): Likewise. |
| |
| 2011-11-01 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/50869 |
| * cselib.c (cfa_base_preserved_regno): Initialize. |
| (cselib_expand_value_rtx_1): Don't expand it. |
| * var-tracking.c (vt_expand_var_loc_chain): Initialize depth. |
| Check it's only zero if result is NULL. |
| |
| 2011-11-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New |
| expander. |
| |
| * config/i386/sse.md (sseintvecmode): Remove duplicate modes. |
| (sseintvecmodelower): New mode iterator. |
| (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into... |
| (float<sseintvecmodelower><mode>2): ... this using VF1 iterator. |
| (floatunsv4siv4sf2): Macroize into... |
| (floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator. |
| |
| 2011-10-31 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (cmask patterns): Allow zero operand. |
| |
| * dwarf2out.c (cached_next_real_insn): New. |
| (dwarf2out_end_epilogue): Set it to NULL_RTX. |
| (dwarf2out_var_location): Remove cached_next_real_insn local static. |
| |
| 2011-10-31 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256. |
| (floatv4siv4sf2): Rename from sse2_cvtdq2ps. |
| (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps. |
| (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256. |
| (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq. |
| (floatv4siv4df2): Rename from avx_cvtdq2pd256. |
| (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256. |
| (vec_unpacku_float_hi_v8si): Update for insn pattern name changes. |
| * config/i386/i386.md (splitters for int-float conversion): Likewise. |
| * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise. |
| (bdesc_args): Likewise. |
| (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove. |
| (ix86_vectorize_builtin_conversion): Remove. |
| (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. |
| |
| 2011-10-31 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (mark_modified): Moved up in the file. |
| (is_parm_modified_before_call): Renamed to |
| is_parm_modified_before_stmt, moved up in the file. |
| (load_from_unmodified_param): New function. |
| (compute_complex_assign_jump_func): Also attempt to create pass |
| through jump functions for values loaded from (addressable) |
| parameters. |
| |
| 2011-10-31 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def |
| in a loop and has different type from op0, cast it to op0's type |
| before the loop first. For slp give up. Don't crash if op1_vectype |
| is NULL. |
| |
| 2011-10-31 Paul Brook <paul@codesourcery.com> |
| |
| * cgraphunit.c: Don't mark clones as static constructors. |
| |
| 2011-10-31 David Edelsohn <dje.gcc@gmail.com> |
| |
| * gcc-ar: Do not include stdio.h. |
| |
| 2011-10-31 Diego Novillo <dnovillo@google.com> |
| |
| * tree-streamer-out.c (pack_ts_base_value_fields): Emit |
| TYPE_ADDR_SPACE. |
| * tree-streamer-in.c (unpack_ts_base_value_fields): Read |
| TYPE_ADDR_SPACE. |
| |
| 2011-10-30 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (vector_init_bshuffle): New function. |
| (vector_init_fpmerge): New function. |
| (sparc_expand_vector_init): Use them to improve non-const cases. |
| |
| * dwarf2out.c (dwarf2out_var_location): When processing several |
| consecutive location notes, cache the result of next_real_insn(). |
| |
| 2011-10-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn from |
| avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator. |
| (vec_dupv4sf): Remove expander. |
| (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx. |
| (vec_dupv2df): Remove expander. |
| (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3. |
| (*vec_concatv2df): Merge *vec_concatv2df_sse3. |
| (*vec_dupv4si): Merge *vec_dupv4si_avx. |
| (*vec_dupv2di): Merge *vec_dupv2di_sse3. |
| |
| 2011-10-30 Dmitry Plotnikov <dplotnikov@ispras.ru> |
| |
| * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions. |
| * optabs.c (supportable_convert_operation): New function. |
| * optabs.h (supportable_convert_operation): New prototype. |
| * tree-vect-stmts.c (vectorizable_conversion): Change condition and |
| behavior for NONE modifier case. |
| * tree.h (VECTOR_INTEGER_TYPE_P): New macro. |
| |
| 2011-10-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vectorizer.h (NUM_PATTERNS): Bump to 9. |
| * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New |
| function. |
| (vect_vect_recog_func_ptrs): Add it. |
| |
| 2011-10-30 David S. Miller <davem@davemloft.net> |
| |
| * reorg.c (label_before_next_insn): New function. |
| (relax_delay_slots): Use it instead of prev_label. |
| * rtl.h (prev_label): Delete declaration. |
| * emit-rtl.c (prev_label): Remove. |
| |
| 2011-10-30 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog |
| as BB_DISABLE_SCHEDULE. |
| (mark_loop_unsched): New function. |
| (sms_schedule): Call it. |
| |
| 2011-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/50617 |
| * config/pa/protos.h (attr_length_save_restore_dltp): Delete. |
| (cmpib_comparison_operator): Likewise. |
| (following_cal, output_and, output_ior, output_move_double, |
| output_fp_move_double, output_block_move, output_block_clear, |
| output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra, |
| output_movb, output_parallel_movb, output_parallel_addb, output_call, |
| output_indirect_call, output_millicode_call, output_mul_insn, |
| output_div_insn, output_mod_insn, singlemove_string, |
| output_arg_descriptor, output_global_address, print_operand, |
| legitimize_pic_address, hppa_encode_label, symbolic_expression_p, |
| fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence, |
| emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay, |
| hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call, |
| attr_length_indirect_call, return_addr_rtx, function_arg_padding, |
| insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p, |
| output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move, |
| hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p, |
| compute_zdepdi_operands, output_64bit_and, output_64bit_ior, |
| reloc_needed, magic_milli, shadd_constant_p): Consistently prefix |
| exported functions and variables with "pa_". |
| * config/pa/predicates.md: Likewise. |
| * config/pa/pa64-hpux.h: likewise. |
| * config/pa/som.h: Likewise. |
| * config/pa/elf.h: Likewise. |
| * config/pa/pa64-linux.h: Likewise. |
| * config/pa/pa.md: Likewise. |
| * config/pa/pa.c: Likewise. |
| * config/pa/pa-linux.h: Likewise. |
| * config/pa/pa.h: Likewise. |
| * config/pa/constraints.md: Likewise. |
| |
| 2011-10-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3. |
| Update all uses. |
| (xop_shl<mode>3): Rename from xop_lshl<mode>3. Update all uses. |
| * config/i386/i386.c: Update all uses. |
| |
| 2011-10-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (lshlv16qi3): Remove expander. |
| (lshrv16qi3): New expander. |
| (<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3 |
| using any_shiftrt code iterator. Cleanup. |
| (ashlv16qi3): Cleanup. |
| (ashrv2di3): Ditto. |
| |
| 2011-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/50691 |
| * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol |
| references. |
| (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC |
| and TLS_MODEL_LOCAL_DYNAMIC symbol references. |
| |
| 2011-10-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50887 |
| * config/avr/avr.opt (-maccumulate-args): New option. |
| * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to |
| avr_starting_frame_offset. |
| (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args. |
| * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove. |
| (UNSPECV_WRITE_SP_IRQ_OFF): Remove. |
| (UNSPECV_WRITE_SP): New constant. |
| (*addhi3_sp_R): Rewrite to... |
| (*addhi3_sp): ...this new insn. |
| (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to... |
| (movhi_sp_r): ...this new insn. |
| * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New. |
| (avr_starting_frame_offset): New. |
| * config/avr/avr.c (avr_accumulate_outgoing_args): New function. |
| (avr_starting_frame_offset): New function. |
| (avr_outgoing_args_size): New static function. |
| (avr_initial_elimination_offset): Use it. |
| (avr_simple_epilogue): Use it. |
| (avr_asm_function_end_prologue): Use it. |
| (expand_epilogue): Use it. |
| (expand_prologue): Use it. Break out code to... |
| (avr_prologue_setup_frame): ...this new static function. |
| (avr_can_eliminate): Allow eliminating to frame pointer if there |
| is one. |
| (avr_frame_pointer_required_p): Use frame pointer if target has a |
| nonlocal label. |
| * config/avr/constraints.md (R): Remove. |
| (Csp): New constraint. |
| * config/avr/predicates.md (avr_sp_immediate_operand): Use it. |
| |
| 2011-10-29 Andi Kleen <ak@linux.intel.com> |
| |
| * gcc-ar.c (target_machine): Add. |
| |
| 2011-10-29 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p, |
| cris_constant_index_p, cris_base_p, cris_index_p, |
| cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p, |
| cris_legitimate_address_p): New functions. |
| (TARGET_LEGITIMATE_ADDRESS_P): Define. |
| (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type |
| from rtx to const_rtx. |
| (cris_print_operand_address, cris_address_cost, |
| cris_side_effect_mode_ok): Use |
| cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, |
| cris_biap_index_p and cris_bdap_index_p. |
| * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P, |
| BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS, |
| REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove. |
| (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use |
| cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p, |
| cris_biap_index_p and cris_bdap_index_p. |
| * config/cris/cris.md (moversideqi movemsideqi peephole2): Use |
| cris_base_p. |
| * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p, |
| cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New |
| prototype. |
| (cris_pic_symbol_type, cris_valid_pic_const): Update prototype. |
| |
| 2011-10-21 Andi Kleen <ak@linux.intel.com> |
| |
| * ggc-page (PAGE_ALIGN): Add. |
| (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read): |
| Replace ROUND_UP with PAGE_ALIGN. |
| |
| 2011-10-20 Andi Kleen <ak@linux.intel.com> |
| |
| * ggc-page (alloc_anon): Add check argument. |
| (alloc_page): Add fallback to 1 page allocation. |
| Adjust alloc_anon calls to new argument. |
| |
| 2011-10-18 Andi Kleen <ak@linux.intel.com> |
| |
| * ggc-page (release_pages): First free large continuous |
| chunks in the madvise path. |
| |
| 2011-10-18 Andi Kleen <ak@linux.intel.com> |
| |
| * ggc-page.c (alloc_pages): Always round up entry_size. |
| |
| 2011-10-19 Andi Kleen <ak@linux.intel.com> |
| |
| * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib. |
| (native): Add gcc-ar, gcc-nm, gcc-ranlib. |
| (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o, |
| gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add. |
| (install): Depend on install-gcc-ar. |
| (install-gcc-ar): Add. |
| (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib. |
| * gcc-ar.c: Add new file. |
| |
| 2011-10-28 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble. |
| * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble |
| type for V2DF. |
| (VStype_div): Use vector types for V2DF/V4SF. |
| (VStype_sqrt): Use *sqrt types. |
| (VS_spdp_type): Change type to vecdouble. |
| (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws, |
| vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds, |
| vsx_xvcvspuxds): Likewise. |
| (*vsx_fms<mode>4): Set type via <VStype_mul>. |
| (*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via |
| <VStype_simple>. |
| * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe. |
| (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt, |
| power7-dsqrt): Correct insn latency. |
| (power7-vecsimple): Add veccmp type and correct dispatch/VSU values. |
| (power7-veccmp): Delete. |
| (power7-vecfloat): Correct latency/dispatch/VSU values. |
| (define_bypass "power7-vecfloat"): Correct latency and types. |
| (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values. |
| (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New. |
| |
| 2011-10-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (shift_insn): Rename code attribute from |
| shiftrt_insn. Also handle ashift RTX. |
| (shift): Rename code attribute from shiftrt. Also handle ashift RTX. |
| (vshift): New code attribute. |
| (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates. |
| (any_lshift): Move and rename code iterator from ... |
| * config/i386/sse.md (lshift): ... here. |
| (lshift_insn): Remove code attribute. |
| (lshift): Remove code attribute. |
| (vlshr<mode>3): Use lshiftrt RTX. |
| (vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX. |
| (vashl<mode>3, ashlv16qi3): Use ashift RTX. |
| (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>. Use |
| any_lshift code iterator. Update asm template. |
| (<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3 |
| usign any_lshift code iterator. |
| * config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from |
| mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator. |
| * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update. |
| |
| 2011-10-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49313 |
| * config/avr/avr.md (parityhi2): Expand allowing pseudos. |
| (*parityhi2): New pre-reload insn-and-split to map 16-bit parity |
| to the libgcc insn. |
| (*parityqihi2): Same for 8-bit parity. |
| |
| 2011-10-28 Julian Brown <julian@codesourcery.com> |
| |
| PR rtl-optimization/47918 |
| * reload1.c (set_initial_label_offsets): Use initial offsets |
| for labels on the nonlocal_goto_handler_labels chain. |
| |
| 2011-10-28 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): |
| Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA. |
| (LIB2FUNCS_EXTRA): Add darwin-gpsave.asm. |
| (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from |
| config/t-darwin. |
| * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable. |
| (GP_SAVE_INLINE): Likewise. |
| (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX, |
| RESTORE_FP_SUFFIX): Set to empty strings. |
| * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin. |
| (debug_stack_info): Print savres_strategy. |
| (rs6000_savres_routine_name): Implement for Darwin. |
| (rs6000_make_savres_rtx): Adjust used register for Darwin. |
| (rs6000_emit_prologue): Implement out-of-line saves for Darwin. |
| (rs6000_output_function_prologue): Don't emit .extern for Mach-O. |
| (rs6000_emit_epilogue): Implement out-of-line saves for Darwin. |
| * config/rs6000/darwin-gpsave.asm: New file. |
| |
| 2011-10-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (VI4SD_AVX2): Removed. |
| (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators. |
| (vashl<mode>3): Use VI12_128 iterator instead of VI124_128. |
| Add another expander using VI48_128 iterator for |
| TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator |
| for TARGET_AVX2. |
| (vlshr<mode>3): Likewise. Change register_operand predicate to |
| nonimmediate_operand on last operand in the VI12_128 expander. |
| (vashr<mode>3): Use VI128_128 iterator instead of VI124_128. |
| (vashrv4si3, vashrv8si3): New expanders. |
| (avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si, |
| avx2_<lshift>vv2di): Removed. |
| (avx2_ashrv<mode>): New insn with VI4_AVX2 iterator. |
| (avx2_<lshift>v<mode>): Macroize using VI48_AVX2 |
| iterator. Simplify pattern. |
| |
| 2010-10-28 Richard Guenther <rguenther@suse.de> |
| |
| PR driver/50876 |
| * lto-wrapper.c (get_options_from_collect_gcc_options): |
| Properly count arguments. |
| (run_gcc): Use an obstack to collect argv, properly separate |
| switches and their arguments. |
| |
| 2011-10-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different |
| vector mode from vectype's mode. |
| |
| 2011-10-28 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| PR rtl-optimization/49720 |
| * simplify-rtx.c (simplify_relational_operation_1): Detect |
| infinite recursion condition in "(eq/ne (plus x cst1) cst2) |
| simplifies to (eq/ne x (cst2 - cst1))" case. |
| |
| 2011-10-27 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (snedi_special): Only match when not VIS3. |
| (*snedi_zero): Likewise. |
| (*snedi_zero_trunc): Likewise. |
| (snedi_special_vis3): New expander. |
| (*snedi_zero_vis3): New insn. |
| (*snedi_zero_trunc_vis3): Likewise. |
| (*sltu_insn_vis3): Likewise. |
| (*sltu_insn_vis3_trunc): Likewise. |
| (addxc): Likewise. |
| (*addxc_trunc_sp64_vis3): Likewise. |
| * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the |
| gen_snedi_special_vis3 expander, and try GTU/LTU addx based |
| sequences on DImode values. |
| |
| * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f' |
| constraint. |
| |
| * regcprop.c (copyprop_hardreg_forward_1): Reject the |
| transformation when we narrow the mode on big endian. |
| |
| 2011-10-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2, |
| vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders. |
| (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns. |
| |
| * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x' |
| overrides for -masm=intel memory. |
| * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd, |
| sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2, |
| sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2, |
| sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel. |
| (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2, |
| sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel. |
| (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel. |
| |
| 2011-10-27 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info |
| to parm_ainfo. |
| (ipa_compute_jump_functions_for_edge): Likewise. |
| (ipa_compute_jump_functions): Likewise. |
| (ipa_analyze_indirect_call_uses): Likewise. |
| (ipa_analyze_call_uses): Likewise. |
| (ipa_analyze_params_uses): Likewise. |
| (ipa_analyze_node): Likewise. |
| |
| 2011-10-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50875 |
| * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn |
| constraints. Change alternative 1 to "x,m,1". |
| |
| 2011-10-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (build/gencheck.o): Depend on tree.def and |
| c-family/c-common.def. |
| |
| * tree-ssa-strlen.c: Include expr.h. |
| (get_stridx): Don't use c_strlen, instead use string_constant |
| and compute string length from it. |
| * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H). |
| |
| 2011-10-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/46603 |
| PR bootstrap/50879 |
| * reload.c (push_reload): In the out case, restore previous behavior |
| for subregs that don't have word mode. |
| |
| 2011-10-27 Ian Lance Taylor <iant@google.com> |
| |
| * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if |
| CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not. |
| (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is |
| defined. |
| |
| 2011-10-27 Richard Henderson <rth@redhat.com> |
| |
| * optabs.c (expand_vec_perm): Use the correct mode for scaling the |
| selector. Save the qimode constant selector for later use by the |
| qimode vec_perm pattern. |
| |
| 2011-10-27 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg |
| to unit_req_factor to the right enum type. |
| (get_unit_operand_masks, reshuffle_units, try_rename_operands, |
| hwloop_optimize): Remove unused variables. |
| |
| 2010-10-27 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50731 |
| * tree-vect-generic.c (do_binop): Handle scalar operands. |
| |
| 2011-08-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/37191 |
| * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers |
| from different units in a single alternative. |
| |
| 2011-10-26 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences |
| if we're comparing DImode and comparison is other than EQ or NE. |
| |
| * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until |
| LEU/LTU/GEU/GTU is attempted. |
| * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn |
| and split. |
| (*neg_seqsi_sign_extend): Likewise. |
| (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64, |
| *neg_sgeu_extend_sp64): New insns. |
| |
| * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare. |
| * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it. |
| (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4. |
| (*mov<I:mode>_cc_reg_sp64): Likewise. |
| (*movsf_cc_v9): Likewise. |
| (*movsf_cc_reg_sp64): Likewise. |
| (*movdf_cc_v9): Likewise. |
| (*movdf_cc_reg_sp64): Likewise. |
| (*movtf_cc_hq_v9): Likewise. |
| (*movtf_cc_reg_hq_sp64): Likewise. |
| (*movtf_cc_v9): Likewise. |
| (*movtf_cc_reg_sp64): Likewise. |
| * config/sparc/sparc.c (sparc_expand_conditional_move): New function. |
| (sparc_print_operand): Delete 'c' and 'd' handling, no longer used. |
| |
| 2011-10-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * reload.c (reload_inner_reg_of_subreg): Change type of return value |
| and type of OUTPUT parameter to bool and adjust. Document MODE and |
| OUTPUT parameters. Use HARD_REGISTER_P. Reorder final condition |
| and improve associated comment. |
| (push_reload): Clarify and update comments about reloading of subregs. |
| Adjust calls to reload_inner_reg_of_subreg. Compute the class upfront |
| for the reloading of subregs in the out case as well. |
| |
| 2011-10-26 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/50826 |
| * var-tracking.c (rtx_debug_expr_p): New. |
| (use_type): Don't use debug exprs to track non-VTA variables. |
| |
| 2011-10-26 Jeff Law <law@redhat.com> |
| |
| * doc/invoke.texi (sink-frequency-threshold): Document. |
| * tree-ssa-sink.c: Include params.h. |
| (select_best_block): New function. |
| (statement_sink_location): Use it. |
| * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM. |
| |
| 2011-10-26 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR target/48108 |
| * config/darwin.c (top level): Amend comments concerning LTO output. |
| (lto_section_num): New variable. (darwin_lto_section_e): New GTY. |
| (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New. |
| (LTO_NAMES_SECTION): Rename. |
| (darwin_asm_named_section): Record LTO section counts and switches |
| in a vec of darwin_lto_section_e. |
| (darwin_file_start): Remove unused code. |
| (darwin_file_end): Put an LTO section termination label. Handle |
| output of the wrapped LTO sections, index and names table. |
| |
| 2011-10-26 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded |
| declaration. |
| (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp. |
| (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx. Use |
| simple_return in pattern, emit instruction, and set jump_label. |
| (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx. Use |
| simple_return rather than return. |
| (emit_cfa_restores): New function. |
| (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap. |
| Add missing cfa_restores for SAVE_WORLD. Add missing LR cfa_restore |
| when using out-of-line gpr restore. Add missing LR and FP regs |
| cfa_restores for out-of-line fpr restore. Consolidate code setting |
| up cfa_restores. Formatting. Use LR_REGNO define. |
| (rs6000_output_mi_thunk): Use simple_return rather than return. |
| * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise. |
| (return_internal*): Likewise. |
| (any_return, return_pred, return_str): New iterators. |
| (return, conditional return insns): Provide both return and |
| simple_return variants. |
| * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define. |
| (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13. |
| Move r11 and r0 later to suit shrink-wrapping. |
| |
| 2011-10-26 Richard Guenther <rguenther@suse.de> |
| |
| * lto-wrapper.c (run_gcc): Properly init/free obstack. |
| |
| 2011-10-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.md (UNSPEC_VSIBADDR): New. |
| * config/i386/predicates.md (vsib_address_operand, |
| vsib_mem_operator): New predicates. |
| * config/i386/i386.c (ix86_print_operand_address): Handle |
| UNSPEC_VSIBADDR addresses. |
| * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>, |
| avx2_gatherdi<mode>256): Adjust expanders to use MEM with |
| UNSPEC_VSIBADDR address. |
| (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256): |
| Adjust insns to use MEM with UNSPEC_VSIBADDR address. |
| |
| 2011-10-26 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/50763 |
| * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or |
| phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2. |
| |
| 2011-10-26 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/41844 |
| * Makefile.in (lto-wrapper): Depend on and link against opts-common.o. |
| (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H). |
| * lto-wrapper.c (get_options_from_collect_gcc_options): New function. |
| (run_gcc): Use it. Filter out language specific options. |
| |
| 2011-10-26 Andreas Tobler <andreast@fgznet.ch> |
| |
| * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the |
| 32-bit target does. |
| |
| 2011-10-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR driver/46617 |
| * gcc.c (main): Fix fatal_error string for translation. |
| |
| 2011-10-25 Ian Lance Taylor <iant@google.com> |
| |
| * tree-eh.c (do_return_redirection): Remove return_value_p |
| parameter. Change all callers. |
| (lower_try_finally_nofallthru): Remove local return_val. |
| (lower_try_finally_onedest): Likewise. |
| (lower_try_finally_copy): Likewise. |
| (lower_try_finally_switch): Likewise. |
| |
| 2011-10-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and |
| remove "&& !TARGET_64BIT" |
| (*mmx_maskmovq_rex): Removed. |
| |
| 2011-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/46603 |
| * reload.c (push_reload): In the out case, reload the subreg as well |
| as the reg if it has word mode. |
| |
| 2011-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily |
| suppress debug info for the parent type. |
| |
| 2011-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/ia64/ia64.c (ia64_profile_hook): Fix thinko. |
| |
| 2011-10-25 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove. |
| (vec_extract_even<mode>, vec_extract_odd<mode>): Remove. |
| |
| * config/rs6000/altivec.md (vec_extract_evenv8hi, |
| vec_extract_evenv16qi, vec_extract_oddv4si, |
| vec_extract_oddv4sf): Remove. |
| |
| * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf, |
| vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si, |
| vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi, |
| vec_interleave_highv4sf, vec_interleave_lowv4sf, |
| vec_interleave_highv4si, vec_interleave_lowv4si, |
| vec_interleave_highv8hi, vec_interleave_lowv8hi, |
| vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove. |
| |
| * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop. |
| [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise. |
| [VEC_INTERLEAVE_LOW_EXPR]: Likewise. |
| * optabs.c (expand_binop): Implement vec_interleave_high_optab, |
| vec_interleave_low_optab, vec_extract_even_optab, |
| vec_extract_odd_optab with expand_vec_perm. |
| (can_vec_perm_for_code_p): New. |
| * optabs.h: Update. |
| * tree-vect-data-refs.c (vect_strided_store_supported): Allow for |
| fallback via can_vec_perm_for_code_p. |
| (vect_strided_load_supported): Likewise. |
| * tree-vect-generic.c (expand_vector_operations_1): Never lower |
| VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR, |
| VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR. |
| |
| * target.def (vec_perm_const_ok): Change parameters to mode and |
| array of indicies. |
| * doc/tm.texi: Rebuild. |
| * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change |
| parameters to mode and array of indicies. |
| * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here. |
| * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p. |
| Change parameters to mode and array of indicies. |
| (expand_vec_perm_1): Rename from expand_vec_perm_expr_1. |
| (expand_vec_perm): Rename from expand_vec_perm_expr. Change |
| parameters to mode and rtx inputs. Try lowering to QImode |
| vec_perm_const before trying fully variable permutation. |
| * optabs.h: Update decls. |
| * tree-vect-generic.c (lower_vec_perm): Extract array of indices from |
| VECTOR_CST to pass to can_vec_perm_p. |
| * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type |
| from int pointer to unsigned char pointer. |
| (vect_transform_slp_perm_load): Update for change to can_vec_perm_p. |
| * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. |
| |
| * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name. |
| (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR, |
| VEC_INTERLEAVE_LOW_EXPR): Likewise. |
| |
| 2011-10-25 Mike Stump <mikestump@comcast.net> |
| |
| * reload.c (regno_clobbered_p): Fix typo. |
| |
| 2011-10-25 Dodji Seketeli <dodji@redhat.com> |
| |
| * input.c (expand_location): Rewrite using linemap_resolve_location |
| and linemap_expand_location. Add a comment. |
| |
| 2011-10-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50596 |
| * tree-vect-stmts.c (vect_mark_relevant): Only use |
| FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME. |
| (vectorizable_store): If is_pattern_stmt_p look through |
| VIEW_CONVERT_EXPR on lhs. |
| * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern): |
| Use unsigned type instead of signed. |
| (vect_recog_bool_pattern): Optimize also stores into bool memory in |
| addition to casts from bool to integral types. |
| (vect_mark_pattern_stmts): If pattern_stmt already has vinfo |
| created, don't create it again. |
| |
| 2011-10-25 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/i386.c (ix86_frame_pointer_required): Require |
| frame-pointer, if setjmp is used for 32-bit ms-abi. |
| |
| 2011-10-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * builtins.c (set_builtin_user_assembler_name): Remove extra |
| newline added in October 11th, 2011 change. |
| |
| 2011-10-24 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/little-endian.opt: Delete. |
| * config.gcc: Remove references to config/sparc/little-endian.opt |
| * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc. |
| * config/sparc/linux64.h: Delete references to -mlittle-endian. |
| * config/sparc/netbsd-elf.h: Likewise. |
| * config/sparc/openbsd64.h: Likewise. |
| * config/sparc/sparc.h: Likewise. |
| * config/sparc/sp64-elf.h: Likewise and delete overrides for |
| BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN. |
| * config/sparc/sparc.c (dump_target_flag_bits): Remove reference |
| to MASK_LITTLE_ENDIAN. |
| * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete. |
| |
| * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns. |
| Only use D, Y, and Z constraints in vector insns. |
| |
| * config/sparc/sparc.md (cpu_feature, enabled): New attributes. |
| (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern |
| called *movsi_insn. |
| (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate |
| into *movdi_insn_sp32. |
| (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into |
| one pattern called *movdi_insn_sp64. |
| (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu): |
| Consolidate into one pattern called *movsf_insn. |
| (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3, |
| *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate |
| into *movdf_insn_sp32. |
| (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3, |
| *movdf_insn_sp64_no_fpu): Consolidate into one pattern called |
| *movdf_insn_sp64. |
| (*zero_extendsidi2_insn_sp64_novis3, |
| *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern |
| called *zero_extendsidi2_insn_sp64. |
| (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3): |
| Consolidate into one pattern named *sign_extendsidi2_insn. |
| (*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3): |
| Consolidate into one pattern named *mov<VM32:mode>_insn. |
| (*mov<VM64:mode>_insn_sp64_novis3, |
| *mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern |
| named *mov<VM64:mode>_insn_sp64. |
| (*mov<VM64:mode>_insn_sp32_novis3, |
| *mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern |
| named *mov<VM64:mode>_insn_sp32. |
| |
| 2011-10-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY. |
| (zero_length_string): Change assertion to accept strinfo without |
| length but with stmt instead. |
| Set the endptr pointer also if starting a new chain. |
| (adjust_related_strinfos): Ignore strinfos marked for delayed |
| length computation. |
| (handle_builtin_strcpy): Mark earlier strinfo elements also for |
| delayed length computation. |
| |
| 2011-10-24 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50820 |
| Port from 4.6 branch r180379 |
| * doc/invoke.texi (AVR Options): New subsubsection to explain EIND |
| handling and indirect jump/calls on devices > 128k. |
| |
| 2011-10-24 Anatoly Sokolov <aesok@post.ru> |
| Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49824 |
| * doc/extend.texi (Declaring Attributes of Functions): |
| Document OS_main and OS_task attributes. |
| (Specifying Attributes of Variables): Move up |
| subsection "AVR Variable Attributes" as of alphabetical order. |
| |
| 2011-10-24 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants |
| to vector element type. |
| (vectorizable_assignment): Bail out for non-mode-precision operations. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_type_demotion): Likewise. |
| (vectorizable_type_promotion): Likewise. |
| (vectorizable_store): Handle non-mode-precision stores. |
| (vectorizable_load): Handle non-mode-precision loads. |
| (get_vectype_for_scalar_type_and_size): Return a vector type |
| for non-mode-precision integers. |
| * tree-vect-loop.c (vectorizable_reduction): Bail out for |
| non-mode-precision reductions. |
| |
| 2011-10-24 Julian Brown <julian@codesourcery.com> |
| |
| * config/m68k/m68k.c (notice_update_cc): Tighten condition for |
| setting CC_REVERSED for FP comparisons. |
| |
| 2011-10-24 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50838 |
| * tree-data-ref.c (dr_analyze_indices): Properly canonicalize |
| a MEM_REF base if we change it. |
| |
| 2011-10-24 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR bootstrap/50836 |
| * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h". |
| |
| PR rtl-optimization/50833 |
| * function.c (thread_prologue_and_epilogue_insns): Expect the |
| return insn optimization only if optimize. |
| |
| 2011-10-24 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c: Break long lines. |
| Define target hooks on the fly if applicable. |
| (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition |
| overridden later. |
| (targetm): Move definition to end of file. |
| (avr_can_eliminate): Make static on the fly. |
| (avr_frame_pointer_required_p): Ditto. |
| (avr_hard_regno_scratch_ok): Ditto. |
| (avr_builtin_setjmp_frame_value): Make static on the fly. |
| Indent according to coding rules. |
| (avr_case_values_threshold): Ditto. |
| (avr_attribute_table): Move down. |
| |
| 2011-10-24 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50730 |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block |
| analysis if encountered unsupported data-ref. |
| |
| 2011-10-23 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus |
| cpu adjustment. |
| * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit, |
| append -mcpu=v9 when -mv8plus is given. |
| |
| * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move |
| between float and non-float regs when VIS3. |
| * config/sparc/sparc.c (eligible_for_restore_insn): We can't |
| use a restore when the source is a float register. |
| (sparc_split_regreg_legitimate): When VIS3 allow moves between |
| float and integer regs. |
| (sparc_register_move_cost): Adjust to account for VIS3 moves. |
| (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an |
| integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS. |
| (sparc_secondary_reload): On 32-bit with VIS3 when moving between |
| float and integer regs we sometimes need a FP_REGS class |
| intermediate move to satisfy the reload. When this happens |
| specify an extra cost of 2. |
| (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard. |
| (*movdi_insn_sp32_v9): Likewise. |
| (*movdi_insn_sp64): Likewise. |
| (*movsf_insn): Likewise. |
| (*movdf_insn_sp32_v9): Likewise. |
| (*movdf_insn_sp64): Likewise. |
| (*zero_extendsidi2_insn_sp64): Likewise. |
| (*sign_extendsidi2_insn): Likewise. |
| (*movsi_insn_vis3): New insn. |
| (*movdi_insn_sp32_v9_vis3): New insn. |
| (*movdi_insn_sp64_vis3): New insn. |
| (*movsf_insn_vis3): New insn. |
| (*movdf_insn_sp32_v9_vis3): New insn. |
| (*movdf_insn_sp64_vis3): New insn. |
| (*zero_extendsidi2_insn_sp64_vis3): New insn. |
| (*sign_extendsidi2_insn_vis3): New insn. |
| (TFmode reg/reg split): Make sure both REG operands are float. |
| (*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove |
| easy constant to integer reg alternatives. |
| (*mov<VM64:mode>_insn_sp64): Likewise. |
| (*mov<VM64:mode>_insn_sp32_novis3): Likewise. |
| (*mov<VM32:mode>_insn_vis3): New insn. |
| (*mov<VM64:mode>_insn_sp64_vis3): New insn. |
| (*mov<VM64:mode>_insn_sp32_vis3): New insn. |
| (VM64 reg<-->reg split): New splitter for 32-bit. |
| |
| * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function. |
| * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate): |
| Declare it. |
| * config/sparc/sparc.md (DImode reg/reg split): Use it. |
| (DFmode reg/reg split): Likewise. |
| |
| * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for |
| generating fzero and fone instructions. |
| (DImode const_int --> reg splitter): Only trigger for integer regs. |
| |
| * config/sparc/predicates.md (input_operand): Disallow vector |
| constants other than 0 and -1. |
| * config/sparc/sparc.c (sparc_preferred_reload_class): Return |
| NO_REGS for vector constants other than 0 and -1. |
| |
| * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG, |
| SPARC_INT_REG_P): Define. |
| (HARD_REGNO_NREGS): Use SPARC_INT_REG_P. |
| (REGNO_OK_FOR_INDEX_P): Likewise. |
| * config/sparc/sparc.c (gen_df_reg): Likewise. |
| (eligible_for_return_delay): Likewise. |
| (eligible_for_sibcall_delay): Likewise. |
| (sparc_legitimate_address_p): Likewise. |
| (emit_save_or_restore_regs): Likewise. |
| (registers_ok_for_ldd_peep): Likewise. |
| * config/spac/sparc.md (DI mode splitters): Likewise. |
| (SF mode const splitters): Likewise. |
| (DF mode splitters): Likewise. |
| (32-bit DI mode logical op splitters): Likewise. |
| |
| 2011-10-23 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/50841 |
| Revert: |
| 2011-10-23 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/50810 |
| * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update. |
| |
| 2011-10-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern. |
| (VI248_256): Remove mode iterator. |
| * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3 |
| instead of gen_avx2_lshlv4di3. |
| (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of |
| CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3. |
| |
| 2011-10-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (sseintprefix): Rename from gthrfirstp. |
| (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander. |
| (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn |
| pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and |
| *avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode |
| iterator. Use sseintprefix mode attribute. |
| (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander. |
| (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn |
| pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and |
| *avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode |
| iterator. Use sseintprefix mode attribute. |
| (*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode |
| attributes. |
| (*avx2_gatherdi<mode>): Ditto. |
| (*avx2_gatherdi<mode>256): Ditto. |
| (VI48_AVX2): Remove mode iterator. |
| (gthrlastfp): Remove mode attribute. |
| |
| 2011-10-23 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/50810 |
| * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update. |
| |
| 2011-10-23 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/50763 |
| * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored |
| out of ... |
| (same_succ_flush_bbs): Use same_succ_flush_bb. |
| (purge_bbs): Remove argument. Remove calls to same_succ_flush_bbs, |
| release_last_vdef and delete_basic_block. |
| (unlink_virtual_phi): New function. |
| (update_vuses): Add and use vuse1_phi_args argument. Set var to |
| SSA_NAME_VAR of vuse1 or vuse2, and use var. Handle case that |
| def_stmt2 is NULL. Use phi result as phi arg in case vuse1 or vuse2 |
| is NULL_TREE. Replace uses of vuse1 if vuse2 is NULL_TREE. Fix code |
| to limit replacement of uses. Propagate phi argument for phis with a |
| single argument. |
| (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE. |
| Set vuse1_phi_args if vuse1 is a phi defined in bb1. Add |
| vuse1_phi_args as argument to call to update_vuses. Call |
| release_last_vdef, same_succ_flush_bb, delete_basic_block. Update |
| CDI_DOMINATORS info. |
| (tail_merge_optimize): Remove argument in call to purge_bbs. Remove |
| call to free_dominance_info. Only call calculate_dominance_info once. |
| |
| 2011-10-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR. |
| |
| PR tree-optimization/44683 |
| * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if |
| we can be sure that there are no signed zeros involved. |
| |
| 2011-10-23 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (estimate_badness): Scale up and handle overflows. |
| |
| 2011-10-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50788 |
| * config/i386/sse.md (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): |
| Remove (match_dup 0). |
| (*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern. |
| (*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto. |
| (*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto. |
| (*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto. |
| (*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern. |
| (*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto. |
| |
| 2011-10-23 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50819 |
| * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove |
| the last argument. |
| * tree-vect-loop.c (vect_analyze_loop_2): Update call to |
| vect_analyze_data_ref_dependences. |
| * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove |
| the last argument. Check load-after-store dependence for unknown |
| dependencies in basic blocks. |
| (vect_analyze_data_ref_dependences): Update call to |
| vect_analyze_data_ref_dependences. |
| * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo. |
| * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove. |
| (vect_slp_analyze_bb_1): Update call to |
| vect_analyze_data_ref_dependences. Don't call |
| vect_bb_vectorizable_with_dependencies. |
| |
| 2011-10-22 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS, |
| SECONDARY_OUTPUT_RELOAD_CLASS): Delete. |
| * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine. |
| (sparc_secondary_reload): New function. |
| |
| * config/sparc/sparc.h (sparc_costs): Remove extern decl. |
| (struct processor_costs): Move from here.. |
| * config/sparc/sparc.c (struct processor_costs): To here. |
| (sparc_costs): Mark static. |
| |
| * config/sparc/sparc.c (short_branch, reg_unused_after): Delete. |
| * config/sparc/sparc-protos.h (short_branch, reg_unused_after): |
| Get rid of declarations. |
| |
| 2011-10-21 Paul Brook <paul@codesourcery.com> |
| |
| * config/c6x/c6x.c (c6x_asm_emit_except_personality, |
| c6x_asm_init_sections): New functions. |
| (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define. |
| |
| 2011-10-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50813 |
| * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle |
| V4DImode and V8SImode for !TARGET_AVX2. |
| |
| 2011-10-21 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR bootstrap/50825 |
| * sched-deps.c (add_dependence): If not doing predication, promote |
| REG_DEP_CONTROL to REG_DEP_ANTI. |
| |
| 2011-10-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X |
| instead of X to avr_legitimize_reload_address. |
| * config/avr/avr-protos.h (avr_legitimize_reload_address): Change |
| first argument's type from rtx to rtx*. |
| * config/avr/avr.c (avr_legitimize_reload_address): Ditto. |
| Pass PX to push_reload instead of &X. Change log messages for |
| better distinction. |
| |
| 2011-10-21 Roland Stigge <stigge@antcom.de> |
| |
| PR translation/47064 |
| * params.def: Fix typo "compilatoin" -> "compilation". |
| |
| 2011-10-21 H.J. Lu <hongjiu.lu@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR target/50740 |
| * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only |
| if max_level allows that. |
| |
| 2011-10-21 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * reg-notes.def (DEP_CONTROL): New. |
| * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when |
| not doing speculation. |
| * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets, |
| record_hard_reg_uses_1, record_hard_reg_uses): New functions. |
| * function.c (record_hard_reg_sets, record_hard_reg_uses, |
| record_hard_reg_uses_1): Remove; move to rtlanal.c. |
| * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions. |
| * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h". |
| (MUST_RECOMPUTE_SPEC_P): New macro. |
| (real_insn_for_shadow): New function. |
| (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions, |
| toggle_cancelled_flags): New static functions. |
| (schedule_insn): Relax an assert to only check for empty hard back |
| dependencies. Skip cancelled dependencies. Call |
| check_clobbered_conditions. |
| (copy_insn_list): Remove function, renamed moved to lists.c. |
| (save_backtrack_point): Use new spelling copy_INSN_LIST. |
| (unschedule_insns_until): Ensure TODO_SPEC is reset properly. |
| (restore_last_backtrack_point): Likewise. Call toggle_cancelled_flags. |
| (estimate_insn_tick): Ignore cancelled dependencies. |
| (haifa_speculate_insn): Move declaration. |
| (try_ready): Move code into recompute_todo_spec and call it. Tweak |
| some asserts. Ensure predicated patterns are restored if necessary. |
| Dump DEP_CONTROL flag. |
| (haifa_change_pattern): Merge with sched_change_pattern. |
| (sched_change_pattern): Remove function. |
| * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove. All |
| uses changed to simply not test NON_FLUSH_JUMP_P. |
| (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle |
| REG_DEP_CONTROL. |
| (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative. |
| (reg_pending_control_uses, control_dependency_cache): New static |
| variables. |
| (sched_get_reverse_condition_uncached): New function. |
| (sd_find_dep_between): Remove pointless assert. Look in |
| control_dependency_cache. |
| (ask_dependency_caches, set_dependency_caches, sd_delete_dep, |
| extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL |
| and control_dependency_cache. |
| (sd_unresolve_dep): Use dep_spec_p. |
| (add_dependence): Now a wrapper around add_dependence_1, handling |
| REG_DEP_CONTROL specially. |
| (flush_pending_lists): Clear pending_jump_insns. |
| (sched_analyze_1): Handle pending_jump_insns like a memory flush. |
| (sched_analyze_2): Unconditionally add to pending memory flushes, |
| keep previous behaviour but apply it to pending_jump_insns instead. |
| (sched_analyze_insn): Defer adding jump reg dependencies using |
| reg_pending_control_uses; add them to the control_uses list. Handle |
| pending_jump_insns and control_uses when adding dependence lists. |
| (deps_analyze_insn): Update INSN_COND_DEPS. |
| (deps_analyze_insn): Add jumps to pending_jump_insns rather than |
| last_pending_memory_flush. |
| (init_deps): Initialize pending_jump_insns. |
| (free_deps): Free control_uses. |
| (remove_from_deps): Remove from pending_jump_insns. |
| (init_deps_global): Allocate reg_pending_control_uses). |
| (finish_deps_global): Free it. |
| (add_dependence_1): Renamed from add_dependence. Handle |
| REG_DEP_CONTROL. |
| * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare. |
| (copy_INSN_LIST, concat_INSN_LIST): Declare. |
| * sched-int.h (struct deps_reg): Add control_uses. |
| (struct deps_desc): Add pending_jump_insns. |
| (struct _haifa_deps_insn_data): Add cond_deps. |
| (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat. |
| (INSN_COND_DEPS, PREDICATED_PAT): New macros. |
| (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word. |
| (DEP_CONTROL): New macro. |
| (DEP_TYPES): Include it. |
| (HARD_DEP): Adjust definition. |
| (DEP_CANCELLED): New macro. |
| (enum SCHED_FLAGS): Add DO_PREDICATION. |
| (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare. |
| * sched-rgn.c (concat_INSN_LIST): Remove function. |
| (deps_join): Handle pending_jump_insns. |
| (free_pending_lists): Likewise. |
| * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final |
| schedule. |
| |
| 2011-10-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50820 |
| * config/avr/libgcc.S (__EIND__): New define to 0x3C. |
| (__tablejump__): Consistently use EIND for indirect jump/call. |
| (__tablejump_elpm__): Ditto. |
| |
| 2011-10-21 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/c6x/c6x.md (attr "op_pattern"): New. |
| (load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it. |
| * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_): |
| Likewise. |
| * config/c6x/c6x-mult.md: Regenerate. |
| * config/c6x/c6x.c: Include "regrename.h". |
| (unit_req_table): New typedef. |
| (unit_reqs): Use it for the declaration. |
| (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance, |
| get_unit_operand_masks, try_rename_operands, reshuffle_units): New |
| static functions. |
| (count_unit_reqs): New arg reqs. All callers changed. Use |
| get_unit_reqs, and don't merge here. |
| (res_mii): New arg reqs. All callers changed. Rewrite to use a loop |
| using unit_req_factor. |
| (hwloop_optimize): Call reshuffle_units. Call merge_unit_reqs after |
| count_unit_reqs. |
| (c6x_reorg): Add reg notes problem, and call df_analyze. |
| * Makefile.in ($(out_object_file)): Depend on regrename.h. |
| |
| 2011-10-21 Kai Tietz <ktietz@redhat.com> |
| |
| * fold-const.c (simple_operand_p_2): Handle integral |
| casts from boolean-operands. |
| |
| 2011-10-21 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (dump_cgraph_node): Dump alias flag. |
| * cgraphunit.c (handle_alias_pairs): Handle weakrefs with |
| no destination. |
| (get_alias_symbol): New function. |
| (output_weakrefs): Output also weakrefs with no destinatoin. |
| (lto_output_node): Output weakref alias flag when at function boundary. |
| |
| 2011-10-21 Andrew Stubbs <ams@codesourcery.com> |
| |
| PR target/50809 |
| * config/arm/driver-arm.c (vendors): Make static. |
| |
| 2011-10-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_emit_swdivsf): Force b into register. |
| (ix86_emit_swsqrtsf): Force a into register. |
| |
| 2011-10-20 Mike Stump <mikestump@comcast.net> |
| |
| * regcprop.c (copyprop_hardreg_forward_1): Update recog_data |
| after validate_change wipes it out. |
| |
| 2011-10-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32 |
| before using the shufb instruction. |
| |
| 2011-10-20 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR target/50766 |
| * config/i386/i386.md (bmi_bextr_<mode>): Update register/ |
| memory operand order. |
| (bmi2_bzhi_<mode>3): Ditto. |
| (bmi2_pdep_<mode>3): Ditto. |
| (bmi2_pext_<mode>3): Ditto. |
| |
| 2011-10-20 Richard Henderson <rth@redhat.com> |
| |
| * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok. |
| * optabs.c (can_vec_perm_expr_p): Update to match. |
| (expand_vec_perm_expr): Likewise. |
| * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename |
| from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK. |
| * doc/tm.texi.in: Likewise. |
| |
| 2011-10-20 Sergey Ostanevich <sergos.gnu@gmail.com> |
| |
| PR target/50572 |
| * config/i386/i386.c (processor_target_table): Change Atom |
| align_loops_max_skip to 15. |
| |
| 2011-10-20 Richard Henderson <rth@redhat.com> |
| |
| * target.def (builtin_vec_perm): Remove. |
| * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. |
| |
| * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove. |
| (IX86_BUILTIN_VEC_PERM_*): Remove. |
| (bdesc_args): Remove vec_perm builtins |
| (ix86_expand_builtin): Likewise. |
| (ix86_expand_vec_perm_const_1): Rename from |
| ix86_expand_vec_perm_builtin_1. |
| (extract_vec_perm_cst): Merge into... |
| (ix86_vectorize_vec_perm_const_ok): ... here. Rename from |
| ix86_vectorize_builtin_vec_perm_ok. |
| (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. |
| |
| * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove. |
| (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. |
| |
| * config/spu/spu.c (spu_builtin_vec_perm): Remove. |
| (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove. |
| |
| 2011-10-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47989 |
| * config/i386/i386.h (RECIP_MASK_DEFAULT): New define. |
| * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT. |
| * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC |
| implements vectorized single float division and vectorized sqrtf(x) |
| with reciprocal sequence with additional Newton-Raphson step with |
| -ffast-math. |
| |
| 2011-10-20 Dodji Seketeli <dodji@redhat.com> |
| |
| * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename |
| ggc_alloced_size_order_for_request into ggc_round_alloc_size like |
| it was done in ggc-page.c. |
| |
| PR other/50659 |
| * doc/cppopts.texi: Use @smallexample/@end smallexample in |
| documentation for -fdebug-cpp instead of @quotation/@end quotation |
| that is not supported by contrib/texi2pod.pl. |
| |
| 2011-10-19 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (inline_small_functions): Always update all calles after |
| inlining. |
| |
| 2011-10-19 Jan Hubicka <jh@suse.cz> |
| |
| PR bootstrap/50709 |
| * ipa-inline.c (inline_small_functions): Fix checking code to not make |
| effect on fibheap stability. |
| |
| 2011-10-20 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs. |
| |
| 2011-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/50106 |
| * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return |
| reg size from 1-3. |
| |
| 2011-10-20 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR |
| and rotates to the set of expensive operations. |
| |
| 2011-10-19 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p. |
| (sparc_emit_set_const32): Likewise. |
| (sparc_emit_set_const64_longway): Likewise. |
| (sparc_emit_set_const64): Likewise. |
| (sparc_legitimize_pic_address): Likewise. |
| (memory_ok_for_ldd): Likewise. |
| |
| 2011-10-20 Dehao Chen <dehao@google.com> |
| |
| * profile.c (compute_branch_probabilities): Compute and dump the |
| overlap between the static estimation and the instrumentation profile. |
| (OVERLAP_BASE): New macro. |
| (compute_frequency_overlap): New function |
| |
| 2011-10-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use |
| d->op1 instead of d->op0 for the second vpshufb. |
| (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates. |
| (ix86_expand_vec_perm_const): If mask indicates two operands are |
| needed, but both are the same and expanding them as d.op0 == d.op1 |
| failed, retry with d.op0 != d.op1. |
| (ix86_expand_vec_perm_builtin): Likewise. Handle sorry printing |
| also for d.nelt == 32. |
| |
| PR middle-end/50754 |
| * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore |
| VEC_PERM_EXPR. |
| |
| 2011-10-19 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * regrename.h: New file. |
| * regrename.c: Include it. Also include "emit-rtl.h". |
| (struct du_head, struct du_chain, du_head_p DEF_VEC and |
| DEF_VEC_ALLOC_P): Move to regrename.h. |
| (do_replace): Remove declaration. |
| (insn_rr): New variable. |
| (cur_operand): New static variable. |
| (regrename_chain_from_id): Renamed from chain_from_id and no longer |
| static. All callers changed. |
| (record_operand_use): New static function. |
| (scan_rtx_reg): Use it. |
| (find_best_rename_reg): New function, broken out of rename_chains. |
| (rename_chains): Use it. Don't update chain regno and nregs here, ... |
| (regrename_do_replace): ... do it here instead. Renamed from |
| do_replace, and no longer static. All callers changed. |
| (regrename_analyze): No longer static. New arg bb_mask. |
| All callers changed. If bb_mask is nonzero, use it to limit the |
| number of basic blocks we analyze. If we failed to analyze a block, |
| clear insn operand data. |
| (record_out_operands): New arg insn_info. Update cur_operand if it is |
| nonnull. |
| (build_def_use): If insn_rr is nonnull, pass an insn_info to |
| record_out_operands, and update cur_operand here as well. |
| (regrename_init, regrename_finish): New functions. |
| (regrename_optimize): Use them. |
| * Makefile.in (regrename.o): Adjust dependencies. |
| |
| 2011-10-19 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/50769 |
| * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2 |
| unconditionally. Handle case that phi_vuse2 is not an SSA_NAME. Add |
| dummy argument .MEM to phi when increasing number of arguments of phi by |
| redirecting edges to the block with phi. |
| |
| 2011-10-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/50777 |
| * configure.ac: Save and restore CXXFLAGS around |
| gcc_AC_CHECK_DECLS uses. |
| Check for madvise() declaration with g++ if --enable-build-with-cxx. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE. |
| |
| 2011-10-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/49310 |
| * var-tracking.c (loc_exp_dep, onepart_aux): New structs. |
| (variable_part): Replace offset with union. |
| (enum onepart_enum, onepart_enum_t): New. |
| (variable_def): Drop cur_loc_changed, add onepart. |
| (value_chain_def, const_value_chain): Remove. |
| (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking. |
| (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros. |
| (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise. |
| (value_chain_pool, value_chains): Remove. |
| (dropped_values): New. |
| (struct parm_reg): Only if HAVE_window_save. |
| (vt_stack_adjustments): Don't record register arguments. |
| (dv_as_rtx): New. |
| (dv_onepart_p): Return a onepart_enum_t. |
| (onepart_pool): New. |
| (dv_pool): Remove. |
| (dv_from_rtx): New. |
| (variable_htab_free): Release onepart aux data. Reset flags. |
| (value_chain_htab_hash, value_chain_htab_eq): Remove. |
| (unshare_variable): Use onepart field. Propagate onepart aux |
| data or offset. Drop cur_loc_changed. |
| (val_store): Cope with NULL insn. Rephrase dump output. Check |
| for unsuitable locs. Add FIXME on using cselib locs. |
| (val_reset): Remove FIXME of unfounded concerns. |
| (val_resolve): Check for unsuitable locs. Add FIXME on using |
| cselib locs. |
| (variable_union): Use onepart field, adjust access to offset. |
| (NO_LOC_P): New. |
| (VALUE_CHANGED, DECL_CHANGED): Update doc. |
| (set_dv_changed): Clear NO_LOC_P when changed. |
| (find_loc_in_1pdv): Use onepart field. |
| (intersect_loc_chains): Likewise. |
| (unsuitable_loc): New. |
| (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list. |
| (add_value_chain, add_value_chains): Remove. |
| (add_cselib_value_chains, remove_value_chain): Likewise. |
| (remove_value_chains, remove_cselib_value_chains): Likewise. |
| (canonicalize_loc_order_check): Use onepart. Drop cur_loc_changed. |
| (canonicalize_values_star, canonicalize_vars_star): Use onepart. |
| (variable_merge_over_cur): Likewise. Adjust access to offset. |
| Drop cur_loc_changed. |
| (variable_merge_over_src): Use onepart field. |
| (remove_duplicate_values): Likewise. |
| (variable_post_merge_new_vals): Likewise. |
| (find_mem_expr_in_1pdv): Likewise. |
| (dataflow_set_preserve_mem_locs): Likewise. Drop cur_loc_changed |
| and value chains. |
| (dataflow_set_remove_mem_locs): Likewise. Use VAR_LOC_FROM. |
| (variable_different_p): Use onepart field. Move onepart test out |
| of the loop. |
| (argument_reg_set): Drop. |
| (add_uses, add_stores): Preserve but do not record in dynamic |
| tables equivalences for ENTRY_VALUEs and CFA_based addresses. |
| Avoid unsuitable address expressions. |
| (EXPR_DEPTH): Unlimit. |
| (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH. |
| (prepare_call_arguments): Use DECL_RTL_IF_SET. |
| (dump_var): Adjust access to offset. |
| (variable_from_dropped, recover_dropped_1paux): New. |
| (variable_was_changed): Drop cur_loc_changed. Use onepart. |
| Preserve onepart aux in empty_var. Recover empty_var and onepart |
| aux from dropped_values. |
| (find_variable_location_part): Special-case onepart. Adjust |
| access to offset. |
| (set_slot_part): Use onepart. Drop cur_loc_changed. Adjust |
| access to offset. Initialize onepaux. Drop value chains. |
| (delete_slot_part): Drop value chains. Use VAR_LOC_FROM. |
| (VEC (variable, heap), VEC (rtx, stack)): Define. |
| (expand_loc_callback_data): Drop dummy, cur_loc_changed, |
| ignore_cur_loc. Add expanding, pending, depth. |
| (loc_exp_dep_alloc, loc_exp_dep_clear): New. |
| (loc_exp_dep_insert, loc_exp_dep_set): New. |
| (notify_dependents_of_resolved_value): New. |
| (update_depth, vt_expand_var_loc_chain): New. |
| (vt_expand_loc_callback): Revamped. |
| (resolve_expansions_pending_recursion): New. |
| (INIT_ELCD, FINI_ELCD): New. |
| (vt_expand_loc): Use the new macros above. Drop ignore_cur_loc |
| parameter, adjust all callers. |
| (vt_expand_loc_dummy): Drop. |
| (vt_expand_1pvar): New. |
| (emit_note_insn_var_location): Operate on non-debug decls only. |
| Revamp multi-part cur_loc recomputation and one-part expansion. |
| Drop cur_loc_changed. Adjust access to offset. |
| (VEC (variable, heap)): Drop. |
| (changed_variables_stack, changed_values_stack): Drop. |
| (check_changed_vars_0, check_changed_vars_1): Remove. |
| (check_changed_vars_2, check_changed_vars_3): Remove. |
| (values_to_stack, remove_value_from_changed_variables): New. |
| (notify_dependents_of_changed_value, process_changed_values): New. |
| (emit_notes_for_changes): Revamp onepart updates. |
| (emit_notes_for_differences_1): Use onepart. Drop cur_loc_changed |
| and value chains. Propagate onepaux. Recover empty_var and onepaux |
| from dropped_values. |
| (emit_notes_for_differences_2): Drop value chains. |
| (emit_notes_in_bb): Adjust. |
| (vt_emit_notes): Drop value chains, changed_variables_stack. |
| Initialize and release dropped_values. |
| (create_entry_value): Revamp. |
| (vt_add_function_parameter): Use new interface. |
| (note_register_arguments): Remove. |
| (vt_initialize): Drop value chains and register arguments. |
| (vt_finalize): Drop value chains. Release windowed_parm_regs only |
| if HAVE_window_save. |
| * rtl.h: Document various pass-local uses of RTL flags. |
| * tree.h (DECL_RTL_KNOWN_SET): New. |
| * doc/invoke.texi (param max-vartrack-expr-depth): Update |
| description and default. |
| |
| 2011-10-19 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50447 |
| * config/avr/avr.md (cc): New alternative out_plus_noclobber. |
| (adjust_len): Ditto. |
| (addhi3): Don't pipe through short; use gen_int_mode instead. |
| Prior to reload, expand to gen_addhi3_clobber. |
| (*addhi3): Use avr_out_plus_noclobber if applicable, use |
| out_plus_noclobber in cc and adjust_len attribute. |
| (addhi3_clobber): 2 new RTL peepholes. |
| (addhi3_clobber): New insn. |
| * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype. |
| * config/avr/avr.c (avr_out_plus_noclobber): New function. |
| (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER. |
| (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0. |
| Set cc0 to set_zn for adiw on 16-bit values. |
| (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER. |
| (expand_epilogue): No need to add 0 to frame_pointer_rtx. |
| |
| 2011-10-19 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50780 |
| * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify |
| the condition is properly gimple before using it. |
| * tree-eh (stmt_could_throw_1_p): Properly extract the |
| operation type from comparisons. |
| |
| 2011-10-19 Roland Stigge <stigge@antcom.de> |
| |
| PR translation/48638 |
| * plugin.c (add_new_plugin): Fix typo in fatal_error message. |
| |
| 2011-10-19 Roland Stigge <stigge@antcom.de> |
| |
| PR translation/49517 |
| * config/rx/rx.c (rx_print_operand): Fix typo in warning message. |
| |
| 2011-10-19 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50768 |
| * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite. |
| |
| 2011-10-19 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/50340 |
| * sel-sched-ir.c (update_target_availability): LHS register |
| availability is not known if the unavailable LHS of the other |
| expression is a different register. |
| |
| 2011-10-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR target/50310 |
| * config/spu/spu.c (spu_emit_vector_compare): Support unordered |
| floating-point comparisons. |
| |
| 2011-10-19 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (handle_alias_pairs): Also handle wekref with |
| destination declared. |
| (output_weakrefs): New function. |
| * varpool.c (varpool_create_variable_alias): Handle external aliases. |
| |
| 2011-10-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as |
| second argument instead of mode. |
| |
| 2011-10-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use |
| mode SUBREG of operands[0] as target. |
| (valid_perm_using_mode_p): Don't ignore higher bits of d->perm. |
| (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si. |
| (expand_vec_perm_1): Handle identity and some broadcast |
| permutations. |
| (expand_vec_perm_interleave2): Handle also 32-byte modes, using |
| vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation. |
| For d->testing_p return true earlier to avoid creating more GC |
| garbage. |
| (expand_vec_perm_vpermq_perm_1): New function. |
| (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true |
| earlier to avoid creating more GC garbage. Fix handling of |
| V16HImode. Avoid some SUBREGs in SET_DEST. |
| (expand_vec_perm_broadcast_1): Return false for 32-byte integer |
| vector modes. |
| (expand_vec_perm_vpshufb4_vpermq2): New function. |
| (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1 |
| and expand_vec_perm_vpshufb4_vpermq2. |
| |
| 2011-10-18 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/driver-arm.c (host_detect_local_cpu): Close the file |
| before exiting. |
| |
| 2011-10-18 Andrew Stubbs <ams@codesourcery.com> |
| |
| PR tree-optimization/50717 |
| * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type' |
| parameter. Calculate 'type' from stmt. |
| (convert_mult_to_widen): Update call the is_widening_mult_p. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-10-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (struct machine_function): New data structure. |
| (spu_init_machine_status): New function. |
| (spu_option_override): Install it. |
| (get_pic_reg): Set and use cfun->machine->pic_reg. |
| (spu_split_immediate): Do not set crtl->uses_pic_offset_table. |
| (need_to_save_reg): Use cfun->machine->pic_reg instead of |
| checking crtl->uses_pic_offset_table. |
| (spu_expand_prologue): Likewise. |
| |
| 2011-10-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50735 |
| * function.c (gimplify_parameters): Use create_tmp_var instead of |
| create_tmp_reg. If parm is not TREE_ADDRESSABLE and type is complex |
| or vector type, set DECL_GIMPLE_REG_P. |
| |
| 2011-10-18 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config.host (arm*-*-linux*): Add driver-arm.o and x-arm. |
| * config/arm/arm.opt: Add 'native' processor_type and |
| arm_arch enum values. |
| * config/arm/arm.h (host_detect_local_cpu): New prototype. |
| (EXTRA_SPEC_FUNCTIONS): New define. |
| (MCPU_MTUNE_NATIVE_SPECS): New define. |
| (DRIVER_SELF_SPECS): New define. |
| * config/arm/driver-arm.c: New file. |
| * config/arm/x-arm: New file. |
| * doc/invoke.texi (ARM Options): Document -mcpu=native, |
| -mtune=native and -march=native. |
| |
| 2011-10-18 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/50205 |
| * sel-sched.c (count_occurrences_1): Simplify on the assumption that |
| p->x is a register. Forbid substitution when the same register is |
| found in a different mode. |
| (count_occurrences_equiv): Assert that 'what' is a register. |
| |
| 2011-10-18 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50767 |
| * tree-ssa-pre.c (create_expression_by_pieces): Update the |
| folded statement. |
| |
| 2011-10-18 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm.c (arm_block_move_unaligned_straight) |
| (arm_adjust_block_mem, arm_block_move_unaligned_loop) |
| (arm_movmemqi_unaligned): New. |
| (arm_gen_movmemqi): Support unaligned block copies. |
| |
| 2011-10-18 Ira Rosen <ira.rosen@linaro.org> |
| |
| * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo, |
| vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document. |
| * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR, |
| VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR. |
| (op_code_prio): Likewise. |
| (op_symbol_code): Handle WIDEN_LSHIFT_EXPR. |
| * optabs.c (optab_for_tree_code): Handle |
| VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR. |
| (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo. |
| * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo. |
| * genopinit.c (optabs): Initialize the new optabs. |
| * expr.c (expand_expr_real_2): Handle |
| VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR. |
| * gimple-pretty-print.c (dump_binary_rhs): Likewise. |
| * tree-vectorizer.h (NUM_PATTERNS): Increase to 8. |
| * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR, |
| VEC_WIDEN_LSHIFT_LO_EXPR): New. |
| * cfgexpand.c (expand_debug_expr): Handle new tree codes. |
| * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add |
| vect_recog_widen_shift_pattern. |
| (vect_handle_widen_mult_by_const): Rename... |
| (vect_handle_widen_op_by_const): ...to this. Handle shifts. |
| Add a new argument, update documentation. |
| (vect_recog_widen_mult_pattern): Assume that only second |
| operand can be constant. Update call to |
| vect_handle_widen_op_by_const. |
| (vect_recog_over_widening_pattern): Fix typo. |
| (vect_recog_widen_shift_pattern): New. |
| * tree-vect-stmts.c (vectorizable_type_promotion): Handle |
| widening shifts. |
| (supportable_widening_operation): Likewise. |
| * tree-inline.c (estimate_operator_cost): Handle new tree codes. |
| * tree-vect-generic.c (expand_vector_operations_1): Likewise. |
| * tree-cfg.c (verify_gimple_assign_binary): Likewise. |
| * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New. |
| (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>, |
| vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>): |
| Likewise. |
| * config/arm/predicates.md (const_neon_scalar_shift_amount_operand): |
| New. |
| * config/arm/iterators.md (V_innermode): New. |
| * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand |
| for widening shift. |
| |
| 2011-10-18 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.h (struct pt_solution): Remove |
| vars_contains_restrict member. |
| (pt_solutions_same_restrict_base): Remove. |
| (pt_solution_set): Adjust. |
| * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove |
| vars_contains_restrict handling. |
| (dump_points_to_solution): Likewise. |
| (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base. |
| * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var |
| field. |
| (new_var_info): Do not initialize it. |
| (ipa_escaped_pt): Adjust. |
| (make_constraint_from_restrict): Make the tag global. |
| (make_constraint_from_global_restrict): New function. |
| (make_constraint_from_heapvar): Remove. |
| (create_variable_info_for): Do not make restrict vars point |
| to NONLOCAL. |
| (intra_create_variable_infos): Likewise. |
| (find_what_var_points_to): Remove vars_contains_restrict handling. |
| (pt_solution_set): Adjust. |
| (pt_solution_ior_into): Likewise. |
| (pt_solutions_same_restrict_base): Remove. |
| (compute_points_to_sets): Do not test is_restrict_var. |
| * cfgexpand.c (update_alias_info_with_stack_vars): Adjust. |
| * gimple-pretty-print.c (pp_points_to_solution): Likewise. |
| |
| 2011-10-18 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/50672 |
| * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function, |
| factored out of ... |
| (mark_virtual_phi_result_for_renaming): Use |
| mark_virtual_operand_for_renaming. |
| * tree-flow.h (mark_virtual_operand_for_renaming): Declare. |
| * tree-ssa-tail-merge.c (release_last_vdef): New function. |
| (purge_bbs): Add update_vops parameter. Call release_last_vdef for each |
| deleted basic block. |
| (tail_merge_optimize): Add argument to call to purge_bbs. |
| |
| 2011-10-18 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50716 |
| * expr.c (get_object_or_type_alignment): New function. |
| (expand_assignment): Use it. |
| (expand_expr_real_1): Likewise. |
| |
| 2011-10-18 Dodji Seketeli <dodji@redhat.com> |
| |
| PR bootstrap/50760 |
| * input.c (dump_line_table_statistics): Use long, not size_t. |
| |
| 2011-10-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (in_call_delay): Fix formatting issues. |
| |
| 2011-10-17 Simon Baldwin <simonb@google.com> |
| Ian Lance Taylor <iant@google.com> |
| |
| * configure.ac: Add --with-native-system-header-dir. Set and |
| substitute NATIVE_SYSTEM_HEADER_DIR. Use native_system_header |
| when setting target_header_dir. |
| * config.gcc: Always set native_system_header_dir. |
| (*-*-gnu*): Set native_system_header_dir. Don't use t-gnu. |
| (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir. Don't |
| use i386/t-djgpp. |
| (i[34567]86-*-mingw* | x86_64-*-mingw*): Set |
| native_system_header_dir. |
| (spu-*-elf*): Set native_system_header_dir. |
| * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to |
| @NATIVE_SYSTEM_HEADER_DIR@. |
| (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR. |
| * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define. |
| (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from |
| STANDARD_INCLUDE_COMPONENT. |
| (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR. Rename |
| STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR. |
| * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and |
| STANDARD_INCLUDE_COMPONENT. |
| * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove. |
| * config/i386/t-mingw-w32: Likewise. |
| * config/i386/t-mingw-w64: Likewise. |
| * config/spu/t-spu-elf: Likewise. |
| * config/i386/t-djgpp: Remove. |
| * config/t-gnu: Remove. |
| * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define. |
| (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from |
| STANDARD_INCLUDE_COMPONENT. |
| * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define. |
| * config/spu/spu-elf.h: Likewise. |
| * config/vms/xm-vms.h: Likewise. |
| * config/gnu.h: Likewise. |
| * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR |
| and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and |
| NATIVE_SYSTME_HEADER_COMPONENT. |
| * doc/install.texi (Configuration): Document |
| --with-native-system-header-dir. Mention it in the documentation |
| for --with-sysroot and --with-build-sysroot. |
| * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or |
| STANDARD_INCLUDE_DIR. Rename STANDARD_INCLUDE_COMPONENT to |
| NATIVE_SYSTEM_HEADER_COMPONENT. Rename uses of |
| STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR. |
| * doc/fragments.texi (Target Fragment): Don't document |
| NATIVE_SYSTEM_HEADER_DIR. |
| * configure, doc/tm.texi: Rebuild. |
| |
| 2011-10-17 Richard Henderson <rth@redhat.com> |
| |
| * config/sparc/sparc.md: Use register_or_zero_operand where rJ |
| is the constraint. |
| |
| * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New |
| patterns. |
| * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function. |
| * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare. |
| |
| 2011-10-17 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc-modes.def: Add single entry vector modes for |
| DImode and SImode. |
| * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete |
| mode iterators. |
| (mov<V32:mode>): Revert back to plain SFmode pattern. |
| (*movsf_insn): Likewise. |
| (mov<V64:mode>): Revert back to plain DFmode pattern. |
| (*movdf_insn_sp32): Likewise. |
| (*movdf_insn_sp32_v9): Likewise. |
| (*movdf_insn_sp64): Likewise. |
| (V64 mode splitters) Likewise. |
| (addsi3): Remove VIS alternatives. |
| (subsi3): Likewise. |
| (and<V64I:mode>3): Revert to DImode only pattern. |
| (and<V64I:mode>3_sp32): Likewise. |
| (*and<V64I:mode>3_sp64): Likewise. |
| (and<V32I:mode>3): Likewise. |
| (*and_not_<V64I:mode>_sp32): Likewise. |
| (*and_not_<V64I:mode>_sp64): Likewise. |
| (*and_not_<V32I:mode>): Likewise. |
| (ior<V64I:mode>3): Likewise. |
| (*ior<V64I:mode>3_sp32): Likewise. |
| (*ior<V64I:mode>3_sp64): Likewise. |
| (ior<V32I:mode>3): Likewise. |
| (*or_not_<V64I:mode>_sp32): Likewise. |
| (*or_not_<V64I:mode>_sp64): Likewise. |
| (*or_not_<V32I:mode>): Likewise. |
| (xor<V64I:mode>3): Likewise. |
| (*xor<V64I:mode>3_sp32): Likewise. |
| (*xor<V64I:mode>3_sp64): Likewise. |
| (xor<V32I:mode>3): Likewise. |
| (V64I mode splitters): Likewise. |
| (*xor_not_<V64I:mode>_sp32): Likewise. |
| (*xor_not_<V64I:mode>_sp64): Likewise. |
| (*xor_not_<V32I:mode>): Likewise. |
| (one_cmpl<V64I:mode>2): Likewise. |
| (*one_cmpl<V64I:mode>2_sp32): Likewise. |
| (*one_cmpl<V64I:mode>2_sp64): Likewise. |
| (one_cmpl<V32I:mode>2): Likewise. |
| (VM32, VM64, VMALL): New mode iterators. |
| (vbits, vconstr, vfptype): New mode attributes. |
| (mov<VMALL:mode>): New expander. |
| (*mov<VM32:mode>_insn): New insn. |
| (*mov<VM64:mode>_insn_sp64): New insn. |
| (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter |
| specifically for the register to memory case. |
| (vec_init<mode>): New expander. |
| (VADDSUB): New mode iterator. |
| (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace |
| with... |
| (<plusminus_insn><mode>3): New consolidated pattern. |
| (VL): New mode iterator for logical operations. |
| (vlsuf): New more attribute. |
| (vlop): New code iterator. |
| (vlinsn, vlninsn): New code attributes. |
| (<code><mode>3): New insn to non-negated vector logical ops. |
| (*not_<code><mode>3): Likewise for negated variants. |
| (*nand<mode>_vis): New insn. |
| (vlnotop): New code iterator. |
| (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns. |
| (one_cmpl<mode>2): New insn. |
| (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator. |
| (bshuffle<VM64:mode>_vis): Likewise. |
| (v<vis3_shift_patname><mode>3): Use GCM mode iterator. |
| (fp<plusminus_insn>64_vis): Use V1DI mode. |
| (VASS mode iterator): Use V1SI not SI mode. |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Account for |
| single-entry vector mode changes. |
| (sparc_expand_builtin): Likewise. |
| (sparc_expand_vector_init): New function. |
| * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare. |
| |
| 2011-10-17 Kai Tietz <ktietz@redhat.com> |
| |
| * fold-const.c (simple_operand_p_2): New function. |
| (fold_truthop): Rename to |
| (fold_truth_andor_1): function name. |
| Additionally remove branching creation for logical and/or. |
| (fold_truth_andor): Handle branching creation for logical and/or here. |
| |
| 2011-10-17 Andi Kleen <ak@linux.intel.com> |
| |
| * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP. |
| |
| 2011-10-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.h (ASSEMBLER_DIALECT): Remove. |
| * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes. |
| (adjust_len): Add alternative "call". |
| (isa, enabled): New insn attributes. |
| (length): Use match_test with AVR_HAVE_JMP_CALL instead of |
| mcu_mega attribute. |
| (*sbrx_branch<mode>): Ditto. |
| (*sbrx_and_branch<mode>): Ditto. |
| (*sbix_branch): Ditto. |
| (*sbix_branch_bit7): Ditto. |
| (*sbix_branch_tmp): Ditto. |
| (*sbix_branch_tmp_bit7): Ditto. |
| (jump): Ditto. |
| (negsi2): Use attribute "isa" instead of assembler dialect. |
| (extendhisi2): Ditto. |
| (call_insn, call_value_insn): Set adjust_len attribute. |
| (indirect_jump): Indent to coding rules. |
| (call_prologue_saves): Use isa attribute instead of mcu_mega. |
| (epilogue_restores): Ditto. Fix setting of SP as described in the |
| RTX pattern. |
| (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump |
| and *indirect_jump_avr6. |
| (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib. |
| (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove. |
| (*tablejump_rjmp, *tablejump_lib): Remove. |
| * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL. |
| |
| 2011-10-17 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/50757 |
| * doc/invoke.texi ([Wnonnull]): Update. |
| |
| 2011-10-17 Richard Henderson <rth@redhat.com> |
| |
| PR 50746 |
| * optabs.c (expand_vec_perm_expr): Fix indexing error. |
| |
| 2011-10-17 Sergio Durigan Junior <sergiodj@redhat.com> |
| |
| * configure.ac: Display `yes' if the SystemTap header has been found. |
| * configure: Regenerate. |
| |
| 2011-10-08 Andi Kleen <ak@linux.intel.com> |
| |
| PR other/50636 |
| * config.in, configure: Regenerate. |
| * configure.ac (madvise): Add to AC_CHECK_FUNCS. |
| * ggc-page.c (USING_MADVISE): Add. |
| (page_entry): Add discarded field. |
| (alloc_page): Check for discarded pages. |
| (release_pages): Add USING_MADVISE branch. |
| |
| 2011-10-17 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50729 |
| * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test. |
| (simplify_conversion_using_ranges): Properly test the |
| intermediate result. |
| |
| 2011-10-15 Tom Tromey <tromey@redhat.com> |
| Dodji Seketeli <dodji@redhat.com> |
| |
| * ggc.h (ggc_round_alloc_size): Declare new public entry point. |
| * ggc-none.c (ggc_round_alloc_size): New public stub function. |
| * ggc-page.c (ggc_alloced_size_order_for_request): New static |
| function. Factorized from ggc_internal_alloc_stat. |
| (ggc_round_alloc_size): New public function. Uses |
| ggc_alloced_size_order_for_request. |
| (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request. |
| * ggc-zone.c (ggc_round_alloc_size): New public function extracted |
| from ggc_internal_alloc_zone_stat. |
| (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size. |
| * toplev.c (general_init): Initialize |
| line_table->alloced_size_for_request. |
| |
| 2011-10-15 Tom Tromey <tromey@redhat.com> |
| Dodji Seketeli <dodji@redhat.com> |
| |
| * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros. |
| (num_expanded_macros_counter, num_macro_tokens_counter): Declare |
| new counters. |
| (dump_line_table_statistics): Define new function. |
| * input.h (dump_line_table_statistics): Declare new function. |
| * toplev.c (dump_memory_report): Call dump_line_table_statistics. |
| |
| 2011-10-15 Tom Tromey <tromey@redhat.com> |
| Dodji Seketeli <dodji@redhat.com> |
| |
| * doc/cppopts.texi: Document -fdebug-cpp. |
| * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options. |
| |
| 2011-10-15 Tom Tromey <tromey@redhat.com> |
| Dodji Seketeli <dodji@redhat.com> |
| |
| * gcc/diagnostic.h (diagnostic_report_current_module): Add a |
| location parameter. |
| * diagnostic.c (diagnostic_report_current_module): Add a location |
| parameter to the function definition. Use it instead of |
| input_location. Resolve the virtual location rather than just |
| looking up its map and risking to touch a resulting macro map. |
| (default_diagnostic_starter): Pass the relevant diagnostic |
| location to diagnostic_report_current_module. |
| * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New. |
| (virt_loc_aware_diagnostic_finalizer): Likewise. |
| (diagnostic_report_current_function): Pass the |
| relevant location to diagnostic_report_current_module. |
| * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare |
| new function. |
| * toplev.c (general_init): By default, use the new |
| virt_loc_aware_diagnostic_finalizer as diagnostic finalizer. |
| * Makefile.in: Add vec.h dependency to tree-diagnostic.c. |
| |
| 2011-10-15 Tom Tromey <tromey@redhat.com> |
| Dodji Seketeli <dodji@redhat.com> |
| |
| * doc/cppopts.texi (-ftrack-macro-expansion): Document new option. |
| * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of |
| preprocessor related options. |
| |
| 2011-10-15 Tom Tromey <tromey@redhat> |
| Dodji Seketeli <dodji@redhat.com> |
| |
| * input.h (struct expanded_location): Move to libcpp/line-map.h. |
| (LOCATION_COLUMN): New accessor |
| (in_system_header_at): Use linemap_location_in_system_header_p. |
| * diagnostic.c (diagnostic_report_current_module): Adjust to avoid |
| touching the internals of struct line_map. Use the public API instead. |
| (diagnostic_report_diagnostic): Don't use relational operator '<' |
| on virtual locations. Use linemap_location_before_p instead. |
| * input.c (expand_location): Adjust to expand to the tokens' |
| spelling location when macro location tracking is on. |
| |
| |
| 2011-10-08 Andi Kleen <ak@linux.intel.com> |
| |
| * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512 |
| |
| 2011-10-13 Andi Kleen <ak@linux.intel.com> |
| |
| * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim. |
| |
| 2011-10-16 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50727 |
| * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add |
| DEF_STMT to the list of statements to be replaced by the |
| pattern statements. |
| |
| 2011-10-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/50615 |
| * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op. |
| |
| 2011-10-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50596 |
| * tree-vectorizer.h (NUM_PATTERNS): Increase to 7. |
| * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add |
| vect_recog_bool_pattern. |
| (check_bool_pattern, adjust_bool_pattern_cast, |
| adjust_bool_pattern, vect_recog_bool_pattern): New functions. |
| |
| 2011-10-16 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-stmts.c (vectorizable_load): For SLP without permutation |
| treat the first load of the node as the first element in its |
| interleaving chain. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if |
| necessary and possible. |
| (vect_build_slp_tree): Add new argument. Allow load groups of any size |
| in basic blocks. Keep all the loads for further permutation check. |
| Use the new argument to determine if there is a permutation. Update |
| the recursive calls. |
| (vect_supported_load_permutation_p): Allow subchains of interleaving |
| chains in basic block vectorization. |
| (vect_analyze_slp_instance): Update the call to vect_build_slp_tree. |
| Check load permutation based on the new parameter. |
| (vect_schedule_slp_instance): Don't start from the first element in |
| interleaving chain unless the loads are permuted. |
| |
| 2011-10-15 Jan Hubicka <jh@suse.cz> |
| |
| PR target/48668 |
| PR target/50689 |
| * cgraphunit.c (cgraph_expand_function): Expand thunks and alises |
| after function body. |
| |
| 2011-10-15 Richard Henderson <rth@redhat.com> |
| |
| * tree-vect-slp.c: Include langhooks.h. |
| (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin. |
| (vect_transform_slp_perm_load): Use can_vec_perm_expr_p. Simplify |
| mask creation for VEC_PERM_EXPR. |
| * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask, |
| not the builtin. |
| (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin. |
| * Makefile.in (tree-vect-slp.o): Update dependency. |
| * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant. |
| |
| 2011-10-15 Alan Modra <amodra@gmail.com> |
| |
| PR bootstrap/50738 |
| * ifcvt.c (dead_or_predicable): Revert accidental commit with |
| HAVE_simple_return test. |
| |
| 2011-10-15 Alan Modra <amodra@gmail.com> |
| |
| * ifcvt.c (dead_or_predicable): Disable if-conversion when |
| doing so is likely to kill a shrink-wrapping opportunity. |
| |
| PR rtl-optimization/49941 |
| * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps. |
| |
| * rtl.h (set_return_jump_label): Declare. |
| * function.c (set_return_jump_label): New function, extracted.. |
| (thread_prologue_and_epilogue_insns): ..from here. Use it in |
| another instance to set return jump_label. |
| * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label. |
| * reorg.c (find_end_label): Likewise. |
| |
| 2011-10-14 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling |
| with a more complete cpp test. |
| * config/sparc/linux64.h: Likewise. |
| * config/sparc/linux.h: Likewise. |
| * config/sparc/sparc.opt (sparc_debug): New target variable. |
| (mdebug): New target option. |
| * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL, |
| TARGET_DEBUG_OPTIONS): New defines. |
| * config/sparc/sparc.c (debug_target_flag_bits, |
| debug_target_flags): New functions. |
| (sparc_option_override): Add name strings back to cpu_table[]. |
| Parse -mdebug string. When TARGET_DEBUG_OPTIONS is true, print |
| out the target flags before and after override processing as well |
| as the selected cpu. If MASK_V8PLUS, make sure that the selected |
| cpu is at least v9. |
| |
| 2011-10-15 Oleg Endo <oleg.endo@t-online.de> |
| |
| PR target/49263 |
| * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro. |
| * config/sh/sh.c (sh_rtx_costs): Add test instruction case. |
| * config/sh/sh.md (tstsi_t): Name existing insn. Make inner |
| and instruction commutative. |
| (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not, |
| tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor, |
| tstsi_t_zero_extract_subreg_xor_little, |
| tstsi_t_zero_extract_subreg_xor_big): New insns. |
| (*movsicc_t_false, *movsicc_t_true): Replace space with tab in |
| asm output. |
| (*andsi_compact): Reorder alternatives so that K08 is considered first. |
| |
| 2011-10-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/50354 |
| * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default |
| processor is at least V9 and TARGET_64BIT_DEFAULT is defined. |
| |
| 2011-10-14 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * invoke.texi (AVR Options): Avoid \leq{}. |
| |
| 2011-10-14 Kai Tietz <ktietz@redhat.com> |
| |
| * gimplify.c (gimplify_expr): Take care that for bitwise-binary |
| transformation the operands have compatible types. |
| |
| 2011-10-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (vec_widen_smult_hi_v8hi, |
| vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi, |
| vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2 |
| mode iterator and any_extend code iterator. |
| (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders. |
| (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable |
| also for TARGET_SSE4_1 using pmuldq insn. |
| (sdot_prodv8hi): Macroize using VI2_AVX2 iterator. |
| (sse2_sse4_1): New code attr. |
| (udot_prodv4si): Macroize using any_extend code iterator. |
| (<s>dot_prodv8si): New expander. |
| |
| 2011-10-14 Yakovlev Vladimir <vladimir.b.yakovlev@intel.com> |
| |
| * config/i386/i386.c (atom_cost): Changed cost for loading |
| QImode using movzbl. |
| |
| 2011-10-14 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my |
| change on October 11th, 2011. |
| |
| 2011-10-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (vec_interleave_high<mode>, |
| vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes. |
| * config/i386/i386.c (expand_vec_perm_interleave3): New function. |
| (ix86_expand_vec_perm_builtin_1): Call it. |
| |
| 2011-10-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| Fix thinko from r179765 |
| * config/avr/avr.c (avr_option_override): Don't override |
| flag_omit_frame_pointer if not actually needed. |
| |
| 2011-10-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/46278 |
| * doc/invoke.texi (AVR Options): Document -mstrict-X. |
| |
| * config/avr/avr.opt (-mstrict-X): New option. |
| (avr_strict_X): New variable reflecting -mstrict-X. |
| * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter |
| outer_code and pass it down to avr_regno_mode_code_ok_for_base_p. |
| (avr_legitimate_address_p): Pass outer_code to |
| avr_reg_ok_for_addr_p and use that function in case PLUS. |
| (avr_mode_code_base_reg_class): Depend on avr_strict_X. |
| (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code. |
| (avr_option_override): Disable -fcaller-saves if -mstrict-X is on. |
| |
| 2011-10-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead |
| of VI_128. |
| |
| * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator. |
| (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128. |
| Use <sseinsnmode> instead of TI in mode attr. |
| |
| 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org> |
| |
| * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c). |
| * config/arm/linux-atomic.c: Change comment to point to 64bit version. |
| (SYNC_LOCK_RELEASE): Instantiate 64bit version. |
| * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c. |
| |
| 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org> |
| |
| * config/arm/arm.c (arm_output_ldrex): Support ldrexd. |
| (arm_output_strex): Support strexd. |
| (arm_output_it): New helper to output it in Thumb2 mode only. |
| (arm_output_sync_loop): Support DI mode. Change comment to |
| not support const_int. |
| (arm_expand_sync): Support DI mode. |
| * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH |
| and LDREXD. |
| * config/arm/iterators.md (NARROW): move from sync.md. |
| (QHSD): New iterator for all current ARM integer modes. |
| (SIDI): New iterator for SI and DI modes only. |
| * config/arm/sync.md (sync_predtab): New mode_attr. |
| (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>. |
| (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>. |
| (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>. |
| (sync_nandsi): Fold into sync_nand<mode>. |
| (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>. |
| (sync_new_nandsi): Fold into sync_new_nand<mode>. |
| (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>. |
| (sync_old_nandsi): Fold into sync_old_nand<mode>. |
| (sync_compare_and_swap<mode>): Support SI & DI. |
| (sync_lock_test_and_set<mode>): Likewise. |
| (sync_<sync_optab><mode>): Likewise. |
| (sync_nand<mode>): Likewise. |
| (sync_new_<sync_optab><mode>): Likewise. |
| (sync_new_nand<mode>): Likewise. |
| (sync_old_<sync_optab><mode>): Likewise. |
| (sync_old_nand<mode>): Likewise. |
| (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI. |
| (arm_sync_lock_test_and_setsi): Likewise. |
| (arm_sync_new_<sync_optab>si): Likewise. |
| (arm_sync_new_nandsi): Likewise. |
| (arm_sync_old_<sync_optab>si): Likewise. |
| (arm_sync_old_nandsi): Likewise. |
| (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent. |
| (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise. |
| (arm_sync_new_<sync_optab><mode> NARROW): Likewise. |
| (arm_sync_new_nand<mode> NARROW): Likewise. |
| (arm_sync_old_<sync_optab><mode> NARROW): Likewise. |
| (arm_sync_old_nand<mode> NARROW): Likewise. |
| |
| 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org> |
| |
| PR target/48126 |
| * config/arm/arm.c (arm_output_sync_loop): Move label before barrier. |
| |
| 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org> |
| |
| * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1. |
| |
| 2011-10-14 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * doc/invoke.texi ([Wformat-zero-length]): Tidy. |
| |
| 2011-10-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also |
| on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs. |
| |
| 2011-10-14 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50723 |
| * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING. |
| |
| 2011-10-14 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * gengtype.c (files_rules): Added rules for objc/objc-map.h and |
| objc/objc-map.c. |
| |
| 2011-10-14 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/17212 |
| * doc/invoke.texi ([Wformat-zero-length]): Update. |
| |
| 2011-10-14 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR bootstrap/50699 |
| * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only |
| build for powerpc targets. (darwin_patch_builtins): Only build for |
| powerpc targets. |
| |
| 2011-10-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to... |
| (avx_cvtdq2pd256_2): ... this. |
| (sseunpackfltmode): New mode attr. |
| (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi, |
| vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize |
| using VI2_AVX2 iterator. |
| (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders. |
| |
| 2011-10-13 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (plusminus): New code iterator. |
| (plusminus_insn): New code attr. |
| (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge |
| using plusminus and plusminus_insn. |
| (fpadd64_vis, fpsub64_vis): Likewise. |
| |
| 2011-10-13 Richard Henderson <rth@redhat.com> |
| |
| * doc/md.texi (vec_perm): Document fallback to byte permutation. |
| * genopinit.c (optabs): Add vec_perm_const. |
| * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p. |
| Reject non-vector modes. Allow fallback to byte permutation. |
| (expand_vec_perm_expr_1): Split out from ... |
| (expand_vec_perm_expr): ... here. Allow fallback to byte permutation. |
| * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New. |
| * tree-vect-generic.c (lower_vec_perm): Update for name change. |
| |
| 2011-10-13 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/altivec.md (vec_permv16qi): New pattern. |
| |
| * config/rs6000/spu.md (vec_permv16qi): New pattern. |
| |
| * config/i386/i386.c (ix86_expand_vec_perm_const): New. |
| * config/i386/i386-protos.h: Update. |
| * config/i386/sse.md (VEC_PERM_CONST): New mode iterator. |
| (vec_perm_const<VEC_PERM_CONST>): New expander. |
| |
| * optabs.c (expand_vector_broadcast): New. |
| (expand_binop): Expand scalar shifts of vectors to vector shifts |
| of vectors, if the former isn't supported. |
| * tree-vect-generic.c (expand_vector_operations_1): Don't do that |
| here; always simplify to scalar shift of vector if possible. |
| |
| * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode |
| test for vector splat. |
| |
| 2011-10-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V. |
| |
| 2011-10-13 Jakub Jelinek <jakub@redhat.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector |
| or complex vars even if their DECL_UID is in not_reg_needs bitmap. |
| |
| 2011-10-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (reduc_umin_v8hi): New pattern. |
| * config/i386/i386.c (ix86_build_const_vector): Handle |
| also V32QI, V16QI, V16HI and V8HI modes. |
| (emit_reduc_half): New function. |
| (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN. |
| Use emit_reduc_half helper function. |
| |
| 2011-10-13 Lawrence Crowl <crowl@google.com> |
| Diego Novillo <dnovillo@google.com> |
| |
| * lto-streamer-in.c (input_struct_function_base): Factor out of ... |
| (input_function): ... here. |
| * lto-streamer-out.c (output_struct_function_base): Factor out of ... |
| (output_function): ... here. |
| |
| 2011-10-13 Gabriel Charette <gchare@google.com> |
| Diego Novillo <dnovillo@google.com> |
| |
| * streamer-hooks.h (struct streamer_hooks): Add hooks |
| input_location and output_location. |
| * lto-streamer-in.c (lto_input_location): Use |
| streamer_hooks.input_location, if set. |
| * lto-streamer-out.c (lto_output_location): Use |
| streamer_hooks.output_location, if set. |
| |
| 2011-10-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (SPARC options): Document -mfix-at697f. |
| * config/sparc/sparc.opt (mfix-at697f): New option. |
| * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define. |
| (sparc_reorg): New function. |
| |
| 2011-10-13 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50712 |
| * ipa-split.c (split_function): Always re-gimplify parameters |
| when they are not gimple vals before passing them. Properly |
| check for type compatibility. |
| |
| 2011-10-13 Tom de Vries <tom@codesourcery.com> |
| |
| * function.c (gimplify_parameters): Set number of arguments of call to |
| BUILT_IN_ALLOCA_WITH_ALIGN to 2. |
| |
| 2011-10-13 Tom de Vries <tom@codesourcery.com> |
| |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P |
| for static const strings. |
| * varasm.c (build_constant_desc): Generate the memory location of the |
| constant using gen_const_mem. |
| |
| 2011-10-13 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50698 |
| * tree-data-ref.c (split_constant_offset_1): Also process |
| offsets of &MEM. |
| |
| 2011-10-12 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete. |
| (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New |
| unspecs. |
| (fpmerge_vis): Remove inaccurate comment, represent using vec_select |
| of a vec_concat. |
| (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns. |
| (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis): |
| Reimplement as unspecs and remove inaccurate comments. |
| (vis3_shift_patname): New code attr. |
| (<vis3_shift_insn><vbits>_vis): Rename to |
| "v<vis3_shift_patname><mode>3". |
| (vis3_addsub_ss_patname): New code attr. |
| (<vis3_addsub_ss_insn><vbits>_vis): Rename to |
| "<vis3_addsub_ss_patname><mode>3". |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Update to |
| accommodate pattern name changes. |
| |
| * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF |
| to zero when assembler lacks support for such instructions. |
| * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3 |
| and MASK_FMAF in defaults when assembler lacks necessary support. |
| |
| 2011-10-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (vec_unpacks_lo_<mode>, |
| vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>, |
| vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2. |
| * config/i386/i386.c (ix86_expand_sse_unpack): Handle |
| V32QImode, V16HImode and V8SImode for TARGET_AVX2. |
| |
| * config/i386/sse.md (vec_avx2): New mode_attr. |
| (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ... |
| (mul<mode>3): ... this. |
| |
| * config/i386/i386.md (UNSPEC_VPERMDI): Remove. |
| * config/i386/i386.c (ix86_expand_vec_perm): Handle |
| V16QImode and V32QImode for TARGET_AVX2. |
| (MAX_VECT_LEN): Increase to 32. |
| (expand_vec_perm_blend): Add support for 32-byte integer |
| vectors with TARGET_AVX2. |
| (valid_perm_using_mode_p): New function. |
| (expand_vec_perm_pshufb): Add support for 32-byte integer |
| vectors with TARGET_AVX2. |
| (expand_vec_perm_vpshufb2_vpermq): New function. |
| (expand_vec_perm_vpshufb2_vpermq_even_odd): New function. |
| (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors |
| with TARGET_AVX2. |
| (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq |
| and expand_vec_perm_vpshufb2_vpermq_even_odd. |
| * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2 |
| 32-byte integer vector modes. |
| (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128. |
| (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto. |
| (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate |
| 4 new operands. |
| (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use |
| match_dup, instead add 4 new operands and require they have |
| right cross-lane values. |
| (avx2_permv4di): Change into define_expand. |
| (avx2_permv4di_1): New instruction. |
| (avx2_permv2ti): Use nonimmediate_operand instead of register_operand |
| for "xm" constrained operand. |
| (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2. |
| |
| * config/i386/sse.md (avx2_gathersi<mode>, |
| avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of |
| match_scratch, change memory_operand to register_operand, |
| add (mem:BLK (scratch)) use. |
| (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, |
| *avx2_gatherdi<mode>256): Add clobber of match_scratch, |
| add earlyclobber to the output operand and match_scratch, |
| add (mem:BLK (scratch)) use, change the other mem to match_operand. |
| Use %p6 instead of %c6 in the pattern. |
| * config/i386/i386.c (ix86_expand_builtin): Adjust for |
| operand 2 being a Pmode register_operand instead of memory_operand. |
| |
| 2011-10-12 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active. |
| |
| 2011-10-12 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses. |
| |
| 2011-10-12 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (maybe_skip_until): Cache also at the point |
| of the first store we visit in a basic-block. |
| (get_continuation_for_phi): Search for a candidate VUSE that |
| might dominates all others. Do pairwise disambiguation against |
| that candidate. |
| |
| 2011-10-12 Paul Koning <pkoning@gcc.gnu.org> |
| |
| PR tree-optimization/50189 |
| * tree-vrp.c (extract_range_from_assert): Use the type of |
| the variable, not the limit. |
| |
| 2011-10-12 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50700 |
| * tree-object-size.c (addr_object_size): Simplify and treat |
| MEM_REF bases consistently. |
| |
| 2011-10-12 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * function.c (prepare_shrink_wrap, bb_active_p): New function. |
| (thread_prologue_and_epilogue_insns): Use bb_active_p. Call |
| prepare_shrink_wrap, then recompute bb_active_p for the last block. |
| |
| 2011-10-12 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/50565 |
| * convert.c (convert_to_integer): Do not narrow operands of |
| pointer subtraction. |
| |
| 2011-10-12 Nick Clifton <nickc@redhat.com> |
| |
| * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro. Used to |
| emit a .eabi_attribute assembler directive, possibly with a |
| comment attached. |
| * config/arm/arm.c (arm_file_start): Use the new macro. |
| * config/arm/arm-c.c (arm_output_c_attributes): Likewise. |
| |
| 2011-10-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49939 |
| * config/avr/avr.md (*movqi): Rename to movqi_insn. |
| (*call_insn): Rename to call_insn. |
| (*call_value_insn): Rename to call_value_insn. |
| * config/avr/avr.c (avr_2word_insn_p): New static function. |
| (jump_over_one_insn_p): Use it. |
| |
| 2011-10-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR middle-end/48660 |
| * expr.h (copy_blkmode_to_reg): Declare. |
| * expr.c (copy_blkmode_to_reg): New function. |
| (expand_assignment): Don't expand register RESULT_DECLs before |
| the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a |
| RESULT_DECL register. |
| (expand_expr_real_1): Handle BLKmode decls when looking for promotion. |
| * stmt.c (expand_return): Move BLKmode-to-register code into |
| copy_blkmode_to_reg. |
| |
| 2011-10-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/49965 |
| * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code. |
| (mov<F:mode>cc): Likewise. |
| |
| 2011-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP. |
| |
| 2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * tree.h (built_in_decls): Delete old interface with two parallel |
| arrays to hold standard builtin declarations, and replace it with |
| a function based interface that can support creating builtins on |
| the fly in the future. Change all uses, and poison the old |
| names. Make sure 0 is not a legitimate builtin index. |
| (implicit_built_in_decls): Ditto. |
| (built_in_info): Ditto. |
| (BUILTIN_VALID_P): Ditto. |
| (builtin_decl_explicit): Ditto. |
| (builtin_decl_implicit): Ditto. |
| (set_builtin_decl): Ditto. |
| (set_builtin_decl_implicit_p): Ditto. |
| (builtin_decl_explicit_p): Ditto. |
| (builtin_decl_implicit_p): Ditto. |
| * tree-complex.c (expand_complex_libcall): Ditto. |
| * tree-loop-distribution.c (generate_memset_zero): Ditto. |
| * tree-ssa-strlen.c (get_string_length): Ditto. |
| (handle_builtin_strcpy): Ditto. |
| (handle_builtin_strcat): Ditto. |
| * tree.c (iterative_hash_expr): Ditto. |
| (local_define_builtin): Ditto. |
| (build_common_builtin_nodes): Ditto. |
| * builtins.c (built_in_decls): Ditto. |
| (implicit_built_in_decls): Ditto. |
| (built_in_info): Ditto |
| (expand_builtin_classify_type): Ditto. |
| (mathfn_built_in_1): Ditto. |
| (expand_builtin_cexpi): Ditto. |
| (expand_builtin_mempcpy_args): Ditto. |
| (expand_builtin_stpcpy): Ditto. |
| (gimplify_va_arg_expr): Ditto. |
| (expand_builtin_sync_operation): Ditto. |
| (build_builtin_expect_predicate): Ditto. |
| (fold_builtin_memory_op): Ditto. |
| (fold_builtin_strcpy): Ditto. |
| (fold_builtin_stpcpy): Ditto. |
| (fold_builtin_strncpy): Ditto. |
| (fold_builtin_interclass_mathfn): Ditto. |
| (fold_builtin_classify): Ditto. |
| (fold_builtin_2): Ditto. |
| (fold_builtin_strstr): Ditto. |
| (fold_builtin_strrchr): Ditto. |
| (fold_builtin_strpbrk): Ditto. |
| (fold_builtin_strcat): Ditto. |
| (fold_builtin_strncat): Ditto. |
| (fold_builtin_strcspn): Ditto. |
| (fold_builtin_fputs): Ditto. |
| (fold_builtin_sprintf): Ditto. |
| (fold_builtin_snprintf): Ditto. |
| (expand_builtin_memory_chk): Ditto. |
| (fold_builtin_memory_chk): Ditto. |
| (fold_builtin_stxcpy_chk): Ditto. |
| (fold_builtin_strncpy_chk): Ditto. |
| (fold_builtin_strcat_chk): Ditto. |
| (fold_builtin_strncat_chk): Ditto. |
| (fold_builtin_sprintf_chk_1): Ditto. |
| (fold_builtin_snprintf_chk_1): Ditto. |
| (fold_builtin_printf): Ditto. |
| (fold_builtin_fprintf): Ditto. |
| (fold_call_stmt): Ditto. |
| (set_builtin_user_assembler_name): Ditto. |
| * tree-emutls.c (emutls_common_1): Ditto. |
| * omp-low.c (scan_omp): Ditto. |
| (lower_rec_input_clauses): Ditto. |
| (lower_reduction_clauses): Ditto. |
| (expand_parallel_call): Ditto. |
| (expand_task_call): Ditto. |
| (maybe_catch_exception): Ditto. |
| (optimize_omp_library_calls): Ditto. |
| (expand_omp_for_generic): Ditto. |
| (expand_omp_for_static_nochunk): Ditto. |
| (expand_omp_for_static_chunk): Ditto. |
| (expand_omp_sections): Ditto. |
| (expand_omp_atomic_fetch_op): Ditto. |
| (expand_omp_atomic_pipeline): Ditto. |
| (expand_omp_atomic_mutex): Ditto. |
| (lower_omp_single_simple): Ditto. |
| (lower_omp_single_copy): Ditto. |
| (lower_omp_master): Ditto. |
| (lower_omp_ordered): Ditto. |
| (lower_omp_critical): Ditto. |
| * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto. |
| * builtins.c (DEF_BUILTIN_STUB): Ditto. |
| (BUILT_IN_NONE): Ditto. |
| * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto. |
| * gimple-low.c (lower_function_body): Ditto. |
| (lower_builtin_setjmp): Ditto. |
| * c-decl.c (merge_decls): Ditto. |
| * tree-eh.c (lower_resx): Ditto. |
| (lower_resx): Ditto. |
| (lower_eh_dispatch): Ditto. |
| * function (gimplify_parameters): Ditto. |
| * c-typeck.c (build_function_call_vec): Ditto. |
| * gimplify.c (build_stack_save_restore): Ditto. |
| (gimplify_vla_decl): Ditto. |
| (gimplify_modify_expr_to_memcpy): Ditto. |
| (gimplify_modify_expr_to_memset): Ditto. |
| (gimplify_variable_sized_compare): Ditto. |
| (gimplify_function_tree): Ditto. |
| * calls.c (emit_call_1): Ditto. |
| * tree-ssa-forprop.c (simplify_builtin_call): Ditto. |
| * tree-nested.c (convert_nl_goto_reference): Ditto. |
| (convert_tramp_reference_op): Ditto. |
| (finalize_nesting_tree_1): Ditto. |
| * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto. |
| (tree_ssa_prefetch_arrays): Ditto. |
| * tree-streamer-in.c (streamer_get_builtin_tree): Ditto. |
| * system.h (built_in_decls): Ditto. |
| (implicit_built_in_decls): Ditto. |
| * tree-vect-generic.c (expand_vector_operations_1): Ditto. |
| * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto. |
| * config/i386/i386.c (ix86_gimplify_va_arg): Ditto. |
| (ix86_veclibabi_svml): Ditto. |
| (ix86_veclibabi_acml): Ditto. |
| * config/vms/vms.c (vms_patch_builtins): Ditto. |
| * config/ia64/ia64.c (ia64_init_builtins): Ditto. |
| * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto. |
| (rs6000_builtin_vectorized_libmass): Ditto. |
| (rs6000_init_builtins): Ditto. |
| * config/darwin.c (darwin_override_options): Ditto. |
| (darwin_patch_builtin): Ditto. |
| (darwin_rename_builtins): Ditto. |
| * config/pa/pa.c (pa_init_builtins): Ditto. |
| |
| 2011-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * tree.h (copy_ref_info): Expose existing function. |
| * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to... |
| * tree-ssa-address.c (copy_ref_info): ...here, and remove static token. |
| |
| 2011-10-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New |
| prototype. |
| (avr_regno_mode_code_ok_for_base_p): New prototype. |
| * config/avr/avr.h (BASE_REG_CLASS): Remove. |
| (REGNO_OK_FOR_BASE_P): Remove. |
| (REG_OK_FOR_BASE_NOSTRICT_P): Remove. |
| (REG_OK_FOR_BASE_STRICT_P): Remove. |
| (MODE_CODE_BASE_REG_CLASS): New define. |
| (REGNO_MODE_CODE_OK_FOR_BASE_P): New define. |
| * config/avr/avr.c (avr_mode_code_base_reg_class): New function. |
| (avr_regno_mode_code_ok_for_base_p): New function. |
| (avr_reg_ok_for_addr_p): New static function. |
| (avr_legitimate_address_p): Use it. Beautify. |
| |
| 2011-10-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50447 |
| * config/avr/avr.md (cc): Add out_plus attribute alternative. |
| (addsi3): Use it. Adapt avr_out_plus to new prototype. Use |
| avr_out_plus for all CONST_INT addends. |
| * config/avr/avr-protos.h (avr_out_plus): Change prototype. |
| * config/avr/avr.c (notice_update_cc): Call avr_out_plus on |
| CC_OUT_PLUS. |
| (avr_out_plus_1): Change prototype and report effect on cc0. |
| (avr_out_plus): Ditto. |
| (adjust_insn_length): Adapt call to avr_out_plus to new prototype. |
| |
| 2011-10-11 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_special_args_builtin): Remove |
| the extra break. |
| |
| 2011-10-11 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com> |
| |
| * doc/invoke.texi: Document new warning. |
| * common.opt (Wvector-operation-performance): Define new warning. |
| * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded |
| vector operation. |
| (exapnd_vector_parallel): Warn about expanded vector operation. |
| (lower_vec_shuffle): Warn about expanded vector operation. |
| * c-typeck.c (c_build_vec_perm_expr): Store correct location |
| when creating VEC_PERM_EXPR. |
| |
| 2011-10-11 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50204 |
| * tree-ssa-alias.c (get_continuation_for_phi_1): Split out |
| two argument handling from ... |
| (get_continuation_for_phi): ... here. Handle arbitrary number |
| of PHI args. |
| |
| 2011-10-11 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * modulo-sched.c: Fix comment typo. Mention the possibility |
| of using scheduling windows of II+1 cycles. |
| |
| 2011-10-11 Tristan Gingold <gingold@adacore.com> |
| |
| * doc/invoke.texi (C Dialect Options): Document |
| -fallow-parameterless-variadic-functions. |
| * c-parser.c (c_parser_parms_list_declarator): Handle it. |
| |
| 2011-10-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer |
| to 0 if frame pointer is needed for unwinding. |
| |
| 2011-10-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR bootstrap/50665 |
| * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm. Move from enum |
| optab_index to enum direct_optab_index. |
| (vec_perm_optab): Update. |
| |
| 2011-10-10 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/cris/cris.c (cris_preferred_reload_class): New function. |
| (TARGET_PREFERRED_RELOAD_CLASS): Define. |
| * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove. |
| |
| 2011-10-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (*tablejump_rjmp): Change insn condition to |
| !AVR_HAVE_JMP_CALL. |
| (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL. |
| (*tablejump_enh, *tablejump): Remove insns. |
| * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND + |
| EIJMP for indirect jump. Use LPM Z+ where available. |
| |
| 2011-10-10 Richard Henderson <rth@redhat.com> |
| |
| * doc/md.texi (vec_perm_const): Fix typo in cindex. |
| |
| 2011-10-10 Kirill Yukhin <kirill.yukhin@intel.com> |
| Yakovlev Vladimir <vladimir.b.yakovlev@intel.com> |
| |
| * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo. |
| |
| 2011-10-10 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50389 |
| * gimple-fold.c (gimplify_and_update_call_from_tree): Do not |
| mark symbols for renaming. Append the VUSE to all statements |
| that possibly can have one. |
| |
| 2011-10-10 Richard Guenther <rguenther@suse.de> |
| |
| * ipa-split.c (pass_split_functions): Add verification TODOs. |
| (pass_feedback_split_functions): Likewise. |
| |
| 2011-10-10 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50195 |
| * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2) |
| only when optimizing. |
| |
| 2011-10-10 Nick Clifton <nickc@redhat.com> |
| |
| PR middle-end/49801 |
| * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and |
| df_get_live_out instead of accessing the bitmaps directly. |
| (execute_compare_elim_after_reload): Remove calls to df_set_flags, |
| df_live_add_problem and df_analyze. |
| |
| 2011-10-10 Michael Matz <matz@suse.de> |
| |
| PR middle-end/50638 |
| * tree-emutls.c (gen_emutls_addr): Call add_referenced_var. |
| |
| 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages. |
| (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete. |
| (node_sched_params): Remove first_reg_move and nreg_moves. |
| (ps_num_consecutive_stages, extend_node_sched_params): New functions. |
| (update_node_sched_params): Move up file. |
| (print_node_sched_params): Print the stage. Don't dump info related |
| to first_reg_move and nreg_moves. |
| (set_columns_for_row): New function. |
| (set_columns_for_ps): Move up file and use set_columns_for_row. |
| (schedule_reg_move): New function. |
| (schedule_reg_moves): Call extend_node_sched_params and |
| schedule_reg_move. Extend size of uses bitmap. Initialize |
| num_consecutive_stages. Return false if a move could not be |
| scheduled. |
| (apply_reg_moves): Don't emit moves here. |
| (permute_partial_schedule): Handle register moves. |
| (duplicate_insns_of_cycles): Remove for_prolog. Emit moves according |
| to the same stage-count test as ddg nodes. |
| (generate_prolog_epilog): Update calls accordingly. |
| (sms_schedule): Allow move-scheduling to add a new first stage. |
| |
| 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * modulo-sched.c (ps_insn): Adjust comment. |
| (ps_reg_move_info): New structure. |
| (partial_schedule): Add reg_moves field. |
| (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params. |
| (node_sched_params): Turn first_reg_move into an identifier. |
| (ps_reg_move): New function. |
| (ps_rtl_insn): Cope with register moves. |
| (ps_first_note): Adjust comment and assert that the instruction |
| isn't a register move. |
| (node_sched_params): Replace with... |
| (node_sched_param_vec): ...this vector. |
| (set_node_sched_params): Adjust accordingly. |
| (print_node_sched_params): Take a partial schedule instead of a ddg. |
| Use ps_rtl_insn and ps_reg_move. |
| (generate_reg_moves): Rename to... |
| (schedule_reg_moves): ...this. Remove rescan parameter. Record each |
| move in the partial schedule, but don't emit it here. Don't perform |
| register substitutions here either. |
| (apply_reg_moves): New function. |
| (duplicate_insns_of_cycles): Use register indices directly, |
| rather than finding instructions using PREV_INSN. Use ps_reg_move. |
| (sms_schedule): Call schedule_reg_moves before committing to |
| a partial schedule. Try the next ii if the schedule fails. |
| Use apply_reg_moves instead of generate_reg_moves. Adjust |
| call to print_node_sched_params. Free node_sched_param_vec |
| instead of node_sched_params. |
| (create_partial_schedule): Initialize reg_moves. |
| (free_partial_schedule): Free reg_moves. |
| |
| 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * modulo-sched.c (ps_insn): Replace node field with an identifier. |
| (SCHED_ASAP): Replace with.. |
| (NODE_ASAP): ...this macro. |
| (SCHED_PARAMS): New macro. |
| (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW) |
| (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS. |
| (node_sched_params): Remove asap. |
| (ps_rtl_insn, ps_first_note): New functions. |
| (set_node_sched_params): Use XCNEWVEC. Don't copy across the |
| asap values. |
| (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP. |
| (generate_reg_moves): Pass ids to the SCHED_* macros. |
| (update_node_sched_params): Take a ps insn identifier rather than |
| a node as parameter. Use ps_rtl_insn. |
| (set_columns_for_ps): Update for above field and SCHED_* macro changes. |
| (permute_partial_schedule): Use ps_rtl_insn and ps_first_note. |
| (optimize_sc): Update for above field and SCHED_* macro changes. |
| Update calls to try_scheduling_node_in_cycle and |
| update_node_sched_params. |
| (duplicate_insns_of_cycles): Adjust for above field and SCHED_* |
| macro changes. Use ps_rtl_insn and ps_first_note. |
| (sms_schedule): Pass ids to the SCHED_* macros. |
| (get_sched_window): Adjust for above field and SCHED_* macro changes. |
| Use NODE_ASAP instead of SCHED_ASAP. |
| (try_scheduling_node_in_cycle): Remove node parameter. Update |
| call to ps_add_node_check_conflicts. Pass ids to the SCHED_* macros. |
| (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle. |
| (ps_insert_empty_row): Adjust for above field changes. |
| (compute_split_row): Use ids rather than nodes. |
| (verify_partial_schedule): Adjust for above field changes. |
| (print_partial_schedule): Use ps_rtl_insn. |
| (create_ps_insn): Take an id rather than a node. |
| (ps_insn_find_column): Adjust for above field changes. |
| Use ps_rtl_insn. |
| (ps_insn_advance_column): Adjust for above field changes. |
| (add_node_to_ps): Remove node parameter. Update call to |
| create_ps_insn. |
| (ps_has_conflicts): Use ps_rtl_insn. |
| (ps_add_node_check_conflicts): Replace node parameter than an id. |
| |
| 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * modulo-sched.c (undo_replace_buff_elem): Delete. |
| (generate_reg_moves): Don't build and return an undo list. |
| (free_undo_replace_buff): Delete. |
| (sms_schedule): Adjust call to generate_reg_moves. |
| Don't call free_undo_replace_buff. |
| |
| 2011-10-10 Matthias Klose <doko@ubuntu.com> |
| |
| * common/config/m32c: Remove empty directory. |
| |
| 2011-10-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter. |
| |
| 2011-10-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50652 |
| * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of |
| atmega164a to 0x100. |
| |
| 2011-10-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make |
| the replacement if the conversion to the LHS type is not useless. |
| |
| 2011-10-09 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50635 |
| * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add |
| DEF_STMT to the list of statements to be replaced by the |
| pattern statements. |
| (vect_handle_widen_mult_by_const): Don't check TYPE_OUT. |
| |
| 2011-10-09 Anatoly Sokolov <aesok@post.ru> |
| |
| * system.h: Commit forgotten hunk in previous patch. |
| (OUTPUT_ADDR_CONST_EXTRA): Poison. |
| |
| 2011-10-08 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| PR libobjc/50428 |
| * doc/objc.texi (Garbage Collection): Updated example to protect |
| +initialize against execution in subclasses. |
| |
| 2011-10-07 Richard Henderson <rth@redhat.com> |
| |
| * doc/extend.texi (__builtin_shuffle): Improve the description to |
| include the modulus of the selector. Mention OpenCL. |
| * doc/md.texi (vec_perm, vec_perm_const): Document named patterns. |
| |
| * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR. |
| * genopinit.c (optabs): Rename vshuffle to vec_perm. |
| * c-typeck.c (c_build_vec_perm_expr): Rename from |
| c_build_vec_shuffle_expr. Update for name changes. |
| * optabs.c (expand_vec_perm_expr_p): Rename from |
| expand_vec_shuffle_expr_p. |
| (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr. |
| * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle. |
| (vec_perm_optab): Rename from vshuffle_optab. |
| * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c, |
| c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c, |
| tree-ssa-operands.c, tree-vect-generic.c: Update for name changes. |
| |
| * config/i386/i386.c (ix86_expand_vec_perm): Rename from |
| ix86_expand_vshuffle. |
| * config/i386/i386-protos.h: Update. |
| * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2. |
| (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>. |
| |
| 2011-10-07 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/predicates.md (avx2_pblendw_operand): New. |
| * config/i386/sse.md (sse4_1_pblendw): Un-macroize. |
| (avx2_pblendw, *avx2_pblendw): New expander and insn. |
| |
| 2011-10-07 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/i386.c (bdesc_args): Update code for |
| __builtin_ia32_palignr256. Change type of __builtin_ia32_pslldqi256, |
| and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT. |
| (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT. |
| * config/i386/sse.md (mode iterator V16): Add V2TI. |
| (mode iterator SSESCALARMODE): Use V2TI not V4DI. |
| (mode attr ssse3_avx2): Add V2TI. |
| (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove. |
| |
| 2011-10-07 David S. Miller <davem@davemloft.net> |
| |
| PR 50655 |
| * configure.ac: Add .register directives to VIS3 test. |
| * configure: Regenerate. |
| |
| 2011-10-07 Richard Henderson <rth@redhat.com> |
| |
| * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu. |
| |
| 2011-10-07 Richard Henderson <rth@redhat.com> |
| |
| PR 49752 |
| * fold-const.c (fold_checksum_tree): Remove out-of-date assert. |
| |
| 2011-10-07 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/predicates.md (shift_amount_operand): Remove constant |
| range check. |
| (shift_operator): Check range of constants for all shift operators. |
| |
| 2011-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion. |
| Load GOT pointer for non-pic builds. |
| (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12. |
| (s390_emit_call): Likewise. |
| |
| 2011-10-07 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/50527 |
| * tree.c (build_common_builtin_nodes): Add local_define_builtin for |
| BUILT_IN_ALLOCA_WITH_ALIGN. Mark that BUILT_IN_ALLOCA_WITH_ALIGN can |
| throw. |
| * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN |
| arglist. Set align for BUILT_IN_ALLOCA_WITH_ALIGN. |
| (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN. |
| (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN. |
| * tree-ssa-ccp.c (evaluate_stmt): Set align for |
| BUILT_IN_ALLOCA_WITH_ALIGN. |
| (fold_builtin_alloca_for_var): Rename to ... |
| (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd |
| BUILT_IN_ALLOCA_WITH_ALIGN argument. |
| (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using |
| fold_builtin_alloca_with_align. |
| (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN. |
| * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using |
| DEF_BUILTIN_STUB. |
| * ipa-pure-const.c (special_builtin_state): Handle |
| BUILT_IN_ALLOCA_WITH_ALIGN. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1) |
| (call_may_clobber_ref_p_1): Same. |
| * function.c (gimplify_parameters): Lower vla to |
| BUILT_IN_ALLOCA_WITH_ALIGN. |
| * gimplify.c (gimplify_vla_decl): Same. |
| * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN. |
| * tree-mudflap.c (mf_xform_statements): Same. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary) |
| (mark_all_reaching_defs_necessary_1, propagate_necessity): Same. |
| * varasm.c (incorporeal_function_p): Same. |
| * tree-object-size.c (alloc_object_size): Same. |
| * gimple.c (gimple_build_call_from_tree): Same. |
| |
| 2011-10-07 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * function.c (frame_required_for_rtx): Remove function. |
| (requires_stack_frame_p): New arg set_up_by_prologue. All callers |
| changed. Compute a set of mentioned registers and compare against |
| the new arg rather than calling frame_required_for_rtx. |
| (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue |
| reg set. Convert the unconverted_simple_returns mechanism to store |
| jump insns rather than their basic blocks. Also check the |
| orig_entry_edge destination for new blocks. |
| |
| 2011-10-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50650 |
| * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't |
| call vect_is_simple_cond here, instead fail if cond_expr isn't |
| COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL |
| for cond_expr's first operand. |
| * tree-vect-stmts.c (vect_is_simple_cond): Static again. |
| * tree-vectorizer.h (vect_is_simple_cond): Remove prototype. |
| |
| 2011-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.md (DWH, dwh): New mode macros. |
| ("umulsidi3"): Extend to support "umulditi3" as well. |
| |
| 2011-10-07 Uros Bizjak <ubizjak@gmail.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/50603 |
| * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of |
| integer PLUS RTX to a register to improve address combine. |
| |
| 2011-10-06 Richard Henderson <rth@redhat.com> |
| |
| * combine-stack-adjust.c (maybe_move_args_size_note): Add after |
| parameter; use it to decide whether to merge two notes. |
| (combine_stack_adjustments_for_block): Use maybe_move_args_size_note |
| for the deallocation case as well. |
| |
| 2011-10-06 Anatoly Sokolov <aesok@post.ru> |
| |
| * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison. |
| * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation. |
| * doc/tm.texi: Regenerate. |
| * target.def (output_addr_const_extra): Use |
| hook_bool_FILEptr_rtx_false. |
| * targhooks.c (default_asm_output_addr_const_extra): Remove. |
| * targhooks.h (default_asm_output_addr_const_extra): Remove. |
| * hooks.c (hook_bool_FILEptr_rtx_false): New functions. |
| * hooks.h (hook_bool_FILEptr_rtx_false): Declare. |
| |
| 2011-10-06 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into... |
| (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the |
| SI mode 64-bit code gen case explicitly zero-extend and truncate. |
| (*popcount<mode>_sp64): Split up into... |
| (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the |
| SImode case use truncate. |
| (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the |
| subtract so the compiler can optimize it. |
| (SIDI): Remove unused mode iterator. |
| |
| 2011-10-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * function.c (thread_prologue_and_epilogue_insns): Emit split prologue |
| on the orig_entry_edge. Don't account for it in prologue_clobbered. |
| |
| 2011-10-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50596 |
| * tree-vectorizer.h (vect_is_simple_cond): New prototype. |
| (NUM_PATTERNS): Change to 6. |
| * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New |
| function. |
| (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern. |
| (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt |
| if it already has one, and don't set STMT_VINFO_VECTYPE in it |
| if it is already set. |
| * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle |
| COND_EXPR in pattern stmts. |
| (vect_is_simple_cond): No longer static. |
| |
| 2001-10-06 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support. |
| * config/i386/sse.md (sseshuffint): Remove. |
| (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI. |
| (VSHUFFLE_AVX2): New mode iterator. |
| (vshuffle<mode>): Use it. |
| (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx. |
| |
| * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode |
| for vector_all_ones_operand. |
| (ix86_expand_int_vcond): Distinguish between comparison mode |
| and data mode. Allow them to differ. |
| (ix86_expand_vshuffle): Don't force data mode to match maskmode. |
| |
| 2001-10-06 Richard Henderson <rth@redhat.com> |
| |
| * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the |
| mask operand. Tidy the code. |
| |
| 2011-10-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-patterns.c (vect_pattern_recog_1): Use |
| vect_recog_func_ptr typedef for the first argument. |
| (vect_pattern_recog): Rename vect_recog_func_ptr variable |
| to vect_recog_func, use vect_recog_func_ptr typedef for it. |
| |
| PR tree-optimization/49279 |
| * tree-ssa-structalias.c (find_func_aliases): Don't handle |
| CAST_RESTRICT. |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow |
| restrict propagation. |
| * tree-ssa.c (useless_type_conversion_p): Don't return false |
| if TYPE_RESTRICT differs. |
| |
| 2011-10-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * function.c (thread_prologue_and_epilogue_insns): Build a vector |
| of unconverted simple return blocks rather than trying to |
| recompute them later based on bb_flags bitmap tests. |
| |
| 2011-10-06 Michael Matz <matz@suse.de> |
| |
| * tree-flow.h (get_var_ann): Don't declare. |
| * tree-flow-inline.h (get_var_ann): Remove. |
| (set_is_used): Use var_ann, not get_var_ann. |
| * tree-dfa.c (add_referenced_var): Inline body of get_var_ann. |
| * tree-profile.c (gimple_gen_edge_profiler): Call |
| find_referenced_var_in. |
| (gimple_gen_interval_profiler): Ditto. |
| (gimple_gen_pow2_profiler): Ditto. |
| (gimple_gen_one_value_profiler): Ditto. |
| (gimple_gen_average_profiler): Ditto. |
| (gimple_gen_ior_profiler): Ditto. |
| (gimple_gen_ic_profiler): Ditto plus call add_referenced_var. |
| (gimple_gen_ic_func_profiler): Call add_referenced_var. |
| * tree-mudflap.c (execute_mudflap_function_ops): Call |
| add_referenced_var. |
| |
| 2011-10-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs |
| don't set SSA_NAME_DEF_STMT that has been already set by |
| gimple_build_assign_with_ops. |
| (vect_recog_pow_pattern, vect_recog_widen_sum_pattern, |
| vect_operation_fits_smaller_type, vect_recog_over_widening_pattern): |
| Likewise. |
| |
| * tree.h (avoid_folding_inline_builtin): New prototype. |
| * builtins.c (avoid_folding_inline_builtin): No longer static. |
| * gimple-fold.c (gimple_fold_builtin): Give up if |
| avoid_folding_inline_builtin returns true. |
| |
| 2011-10-06 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vect-generic.c (vector_element): Look at previous |
| generated results. |
| |
| 2011-10-06 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/39950 |
| * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define |
| __powerpc__, __PPC__, __unix__. |
| |
| 2011-10-06 Michael Matz <matz@suse.de> |
| |
| * i386/i386.opt (recip_mask, recip_mask_explicit, |
| x_recip_mask_explicit): New variables and cl_target member. |
| (mrecip=): New option. |
| * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV, |
| RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks. |
| (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV, |
| TARGET_RECIP_VEC_SQRT): New tests. |
| * i386/i386.md (divsf3): Check TARGET_RECIP_DIV. |
| (sqrt<mode>2): Check TARGET_RECIP_SQRT. |
| * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV. |
| (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT. |
| * i386/i386.c (ix86_option_override_internal): Set recip_mask |
| for -mrecip and -mrecip=options. |
| (ix86_function_specific_save): Save recip_mask_explicit. |
| (ix86_function_specific_restore): Restore recip_mask_explicit. |
| |
| * doc/invoke.texi (ix86 Options): Document the new option. |
| |
| 2011-10-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR target/49049 |
| * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative. |
| |
| 2011-10-06 Ulrich Weigand <ulrich.weigand@linaro.org> |
| |
| PR target/50305 |
| * config/arm/arm.c (arm_legitimize_reload_address): Recognize |
| output of a previous pass through legitimize_reload_address. |
| Do not attempt to optimize addresses if the base register is |
| equivalent to a constant. |
| |
| 2011-10-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * function.c (thread_prologue_and_epilogue_insns): Mark |
| last_bb_active as possibly unused. It is unused for targets which |
| do neither have "return" nor "simple_return" expanders. |
| |
| 2011-10-06 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_ternary_loc): Also fold non-constant |
| vector CONSTRUCTORs. Make more efficient. |
| * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands. |
| (cprop_into_stmt): Don't propagate into virtual operands. |
| (optimize_stmt): Really dump original statement. |
| |
| 2011-10-06 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md (smin3): Revert previous delta. |
| |
| 2011-10-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/38884 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial |
| reads from aggregate SSA names. |
| |
| 2011-10-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace |
| argument, truncate it at the beginning instead of allocating there |
| and freeing at the end. |
| (vect_pattern_recog): Allocate stmts_to_replace here and free at end, |
| pass its address to vect_pattern_recog_1. |
| |
| 2011-10-05 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.opt (POPC): New option. |
| * doc/invoke.texi: Document it. |
| * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by |
| default on Niagara-2 and later. |
| * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. |
| * config/sparc/sparc.md (SIDI): New mode iterator. |
| (ffsdi2): Delete commented out pattern and comments. |
| (popcount<mode>2, clz<mode>2): New expanders. |
| (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus, |
| *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns. |
| |
| 2011-10-06 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com> |
| |
| PR middle-end/50607 |
| * c-tree.h (c_expr_t): New typedef for struct c_expr. |
| (C_EXPR_APPEND): New macro. |
| * c-parser.c (c_parser_get_builtin_args): Preserve |
| original_tree_code of c_expr structure. |
| (c_parser_postfix_expression): Adjust to the new function. |
| |
| 2011-10-05 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap |
| if profiling after the prologue. |
| |
| 2011-10-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50613 |
| * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT |
| operand is ADDR_EXPR, fallthru into ADDR_EXPR handling, |
| and if it is neither that not SSA_NAME, give up. |
| |
| 2011-10-05 Richard Henderson <rth@redhat.com> |
| |
| * tree-vect-generic.c (vector_element): Never fail. Use |
| build_zero_cst. Tidy up type references. |
| (lower_vec_shuffle): Never fail. Mask shuffle indicies. Reduce |
| code duplication. Do update_stmt here ... |
| (expand_vector_operations_1): ... not here. |
| |
| * config/i386/i386.c (ix86_expand_vshuffle): Never fail. Handle |
| TARGET_XOP. Fix pshufb constant vector creation. Reduce code |
| duplication. Handle V2DI without SSE4.1. |
| * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl. |
| * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok. |
| |
| 2011-10-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (distance_non_agu_define): Simplify calculation |
| of "found". Simplify return value calculation. |
| (distance_agu_use): Ditto. |
| |
| 2011-10-05 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR bootstrap/50621 |
| * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only |
| if the function was not shrink-wrapped. |
| (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached |
| to an insn. |
| * function.c (thread_prologue_and_epilogue_insns): Make sure the |
| shrink_wrapped flag is set even if there is no dump file. |
| |
| 2011-10-05 DJ Delorie <dj@redhat.com> |
| Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.opt (mpid): Define. |
| * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid |
| (MULTILIB_DIRNAMES): Add pid. |
| * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val) |
| (rx_num_interrupt_regs): New variable. |
| (rx_gp_base_regnum): New function. Returns the number of the |
| small data area register. |
| (rx_pid_base_regnum): New function. Returns the number of the pid |
| base register. |
| (rx_decl_for_addr): New function. Returns the symbolic part of a MEM. |
| (rx_pid_data_operand): New function. Returns whether an object is |
| in the position independent data area. |
| (rx_legitimize_address): New function. Puts undecided PID |
| objects in the PID data area. |
| (rx_is_legitimate_address): Add support for PID operands. |
| (rx_print_operand_address): Likewise. |
| (rx_print_operand): Likewise. |
| (rx_maybe_pidify_operand): New function. Determine if an operand |
| is suitable for PID addressing. |
| (rx_gen_move_template): Add PID support. |
| (rx_conditional_register_usage): Likewise. |
| (rx_option_override): Initialise rx_num_interrupt_regs. |
| (rx_is_legitimate_constant): Add support for PID constants. |
| (TARGET_LEGITIMIZE_ADDRESS): Define. |
| * config/rx/constraints.md (Rpid): Define. |
| (Rpda): Define. |
| * config/rx/rx.md (UNSPEC_PID_ADDR): Define. |
| (tablejump): Add PID support. |
| (mov<>): Likewise. |
| (mov<>_internal): Likewise. |
| (addsi3): Convert to an expander. Add PID support. |
| (pid_addr): New pattern. |
| * config/rx/rx.h (CPP_SPEC): Define. |
| (ASM_SPEC): Pass -mpid and -mint-register on to assembler. |
| (CASE_VECTOR_PC_RELATIVE): Define. |
| (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode. |
| * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype. |
| * doc/invoke.texi (RX Options): Document -mpid command line option. |
| |
| 2011-10-05 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/38885 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads |
| from constants. |
| |
| 2011-10-05 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/invoke.texi (-fshrink-wrap): Document. |
| * opts.c (default_options_table): Add it. |
| * common.opt (fshrink-wrap): Add. |
| * function.c (emit_return_into_block): Remove useless declaration. |
| (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx, |
| requires_stack_frame_p, gen_return_pattern): New static functions. |
| (emit_return_into_block): New arg simple_p. All callers changed. |
| Use gen_return_pattern. |
| (thread_prologue_and_epilogue_insns): Implement shrink-wrapping. |
| * config/i386/i386.md (return): Expand into a simple_return. |
| (simple_return): New expander): |
| (simple_return_internal, simple_return_internal_long, |
| simple_return_pop_internal_long, simple_return_indirect_internal): |
| Renamed from return_internal, return_internal_long, |
| return_pop_internal_long and return_indirect_internal; changed to use |
| simple_return. |
| * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand |
| simple returns. |
| (ix86_pad_returns): Likewise. |
| * function.h (struct rtl_data): Add member shrink_wrapped. |
| * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that |
| are not jumps or sibcalls can't be compared. |
| |
| 2011-10-05 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of |
| vector type. |
| (simplify_unary_expression): Handle BIT_FIELD_REFs. |
| (try_to_simplify): Handle BIT_FIELD_REFs. |
| |
| 2011-10-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (avr_out_addto_sp): New prototype. |
| * config/avr/avr.c (avr_out_addto_sp): New function. |
| (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP. |
| * config/avr/avr.md (adjust_len): Add "addto_sp". |
| (*movhi_sp): Remove insn. |
| (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R. |
| |
| 2011-10-05 Richard Guenther <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops |
| with an embedded expression valueize and fold that as well. |
| * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name |
| results from gimple_fold_stmt_to_constant_1. |
| |
| 2011-10-05 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md (tablejump): Add missing label. |
| (adddi3_internal): Mark operand 0 as early-clobbered. |
| (smaxsi3): Revert previous delta. |
| (adc_internal): Fix whitespace in generated asm. |
| (adc_flags): Likewise. |
| |
| 2011-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * expmed.c (expand_mult_highpart_optab): Replace optab_handler |
| with the new widening_optab_handler. |
| |
| 2011-10-05 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50609 |
| * gimple-fold.c (fold_array_ctor_reference): Also handle |
| vector typed constructors. |
| (fold_ctor_reference): Dispatch to fold_array_ctor_reference |
| for vector typed constructors. |
| |
| 2011-10-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_emit_binop): New static function. |
| (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl |
| instructions. |
| (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions. |
| |
| 2011-10-04 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB, |
| UNSPEC_XMUL): New unspecs. |
| (muldi3_v8plus): Use output_v8plus_mult. |
| (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend): |
| New VIS 3.0 combiner patterns. |
| (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis, |
| fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64, |
| umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus, |
| xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0 |
| builtins patterns. |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins. |
| (output_v8plus_mult): New function. |
| * config/sparc/sparc-protos.h: Declare it. |
| * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd, |
| __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd, |
| __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics. |
| * doc/extend.texi: Document new builtins. |
| |
| 2011-10-04 Richard Henderson <rth@redhat.com> |
| |
| * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable. |
| Avoid save_expr unless two_arguments. |
| |
| 2011-10-04 Ozkan Sezer <sezeroz@gmail.com> |
| |
| * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT. |
| * config/i386/mingw32.h (CPP_SPEC): Likewise. |
| |
| 2011-10-04 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc |
| under Linux. |
| |
| 2011-10-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50604 |
| * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy, |
| fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure |
| last argument to memcpy has size_type_node type instead of ssizetype. |
| * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node |
| instead of TREE_TYPE (len) as type for newlen. |
| |
| PR tree-optimization/50522 |
| * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test |
| TYPE_RESTRICT. |
| (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base |
| unconditionally. |
| |
| * fold-const.c (fold_unary_loc): Don't optimize |
| POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by |
| casting the inner pointer if it isn't TYPE_RESTRICT. |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through |
| casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer. |
| |
| 2011-10-04 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff. |
| |
| 2011-10-04 Jan Hubicka <jh@suse.cz> |
| |
| * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter. |
| * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order. |
| * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order. |
| * lto-cgraph.c (order_base): New static var. |
| (lto_output_node): Stream in order. |
| (lto_output_varpool_node): Stream out order. |
| (input_node): Stream in order. |
| (input_varpool_node): Stream out order. |
| (input_cgraph_1): Initialize order base; update call of |
| lto_input_toplevel_asms. |
| |
| 2011-10-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50566 |
| * config/avr/avr-protos.h (avr_legitimize_reload_address): New |
| prototype. |
| * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code |
| from here... |
| * config/avr/avr.c (avr_legitimize_reload_address) ...to this new |
| function. Log if avr_log.legitimize_reload_address. |
| |
| 2011-10-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests. |
| |
| 2011-10-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local |
| variables. Fix second operand of DR. Swap inputs for sdiv_qrnnd. |
| |
| 2011-10-03 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make |
| GSR_REG an input operand to UNSPEC instead of a parallel USE. |
| (faligndata<V64I:mode>_vis): Likewise and use DI mode. |
| (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis): |
| Reference GSR_REG in DI mode, simplify convoluted expressions by using |
| zero_extract. |
| (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode. |
| |
| 2011-10-03 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * tree-eh.c (remove_unreachable_handlers): Obvious cleanup. |
| |
| 2011-10-03 Jakub Jelinek <jakub@redhat.com> |
| Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_output_typedef): Support printing enum values that |
| don't fit in a signed HOST_WIDE_INT. |
| |
| 2011-10-03 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/cris/cris.c (cris_output_addr_const_extra): Make static. |
| (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. |
| * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove. |
| * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove. |
| |
| 2011-10-03 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static. |
| (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. |
| * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove. |
| * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove. |
| |
| 2011-10-03 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/49967 |
| * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*. |
| (gcc_cv_ld_static_option): Ditto. |
| (gcc_cv_ld_dynamic_option): Ditto. |
| * configure: Regenerate. |
| |
| 2011-10-03 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di' |
| and 'si' patterns which describe the GSR changes explicitly in the |
| RTL using zero_extract. |
| (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec. |
| |
| * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap |
| GSR_REG in a USE, since it's now a true arg to the UNSPEC. |
| |
| 2011-10-03 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com> |
| |
| * optabs.c (expand_vec_shuffle_expr_p): New function. Checks |
| if given expression can be expanded by the target. |
| (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR |
| using target vector instructions. |
| * optabs.h: New optab vshuffle. |
| (expand_vec_shuffle_expr_p): New prototype. |
| (expand_vec_shuffle_expr): New prototype. |
| (vshuffle_optab): New optab. |
| * genopinit.c: Adjust to support vecshuffle. |
| * c-tree.h (c_build_vec_shuffle_expr): New prototype. |
| * expr.c (expand_expr_real_2): Adjust. |
| * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR |
| recognizing the cases of two and three arguments. |
| (convert_arguments) (build_binary_op) |
| (scalar_to_vector) (build_array_ref): Spurious whitespace. |
| * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR. |
| * tree.def: New tree code VEC_SHUFFLE_EXPR. |
| * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR. |
| * tree-vect-generic.c (vector_element): New function. Returns an |
| element of the vector at the given position. |
| (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported |
| by the backend or expand an expression piecewise. |
| (expand_vector_operations_1): Adjusted. |
| (gate_expand_vector_operations_noop): New gate function. |
| * Makefile.in (tree-vect-generic.o): New include. |
| * gimple.c (get_gimple_rhs_num_ops): Adjust. |
| * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR. |
| * passes.c: Move veclower down. |
| * tree-pretty-print.c (dump_generic_node): Recognize |
| VEC_SHUFFLE_EXPR as valid expression. |
| * c-parser.c (c_parser_get_builtin_args): Helper function for the |
| builtins with variable number of arguments. |
| (c_parser_postfix_expression): Use a new helper function for |
| RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE. |
| * tree-ssa-operands: Adjust. |
| * c-family/c-common.c: New __builtin_shuffle keyword. |
| * c-family/c-common.h: New __builtin_shuffle keyword. |
| * gcc/doc/extend.texi: Adjust. |
| |
| * gcc/config/i386/sse.md: (sseshuffint) New mode_attr. Correspondence |
| between the vector and the type of the mask when shuffling. |
| (vecshuffle<mode>): New expansion. |
| * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype. |
| * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function. |
| (ix86_vectorize_builtin_vec_perm_ok): Adjust. |
| |
| 2011-10-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50587 |
| * tree-ssa-reassoc.c (init_range_entry): Stop iterating when |
| arg0 is not a SSA_NAME. |
| |
| 2011-10-03 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * ipa-inline-analysis.c (MAX_TIME): Update comment. |
| |
| 2011-10-02 Richard Henderson <rth@redhat.com> |
| David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove |
| conditional insn type setting, we always emit a shift. |
| (*ashlsi3_extend, *lshrsi3_extend0): New patterns. |
| (*lshrsi3_extend): Rename to *lshrsi3_extend1. |
| * config/sparc/predicates.md (const_one_operand): Delete. |
| |
| 2011-10-02 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * invoke.texi (SPARC Options): Refer to GNU/Linux. |
| |
| 2011-10-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_frame_barrier): New function. |
| (mips_expand_prologue): Call it after allocating stack space. |
| (mips_deallocate_stack): New function. |
| (mips_expand_epilogue): Call mips_frame_barrier and |
| mips_deallocate_stack. |
| |
| 2011-10-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/49696 |
| * config/mips/sync.md (sync_<optab>_12): Allow zero operands. |
| (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise. |
| (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise. |
| |
| 2011-10-02 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (verify_edge_count_and_frequency): Bounds check. |
| |
| * cgraphunit.c (ipa_passes): Remove unrechable nodes. |
| * lto-streamer-out.c (produce_symtab): Skip unused extern declarations. |
| * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external |
| functions are reachable when address is taken. |
| * tree-sra.c (modify_function): Free dominance info. |
| |
| 2011-10-02 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (inline_summary_alloc): Bounds check. |
| |
| * ipa-inline-analysis.c (reset_inline_edge_summary): New function. |
| (reset_inline_summary): New function. |
| (compute_inline_parameters, inline_node_removal_hook, |
| inline_edge_removal_hook): Use it. |
| (inline_free_summary): Reset holders correctly. |
| (inline_generate_summary): Free summary before computing it. |
| |
| 2011-10-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR preprocessor/36819 |
| * incpath.c (merge_include_chains): Call free_path on |
| heads[QUOTE] and tails[QUOTE]. |
| |
| 2011-10-02 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/47247 |
| * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve |
| when resolution is already availbale from plugin. |
| (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP. |
| * cgraph.c (ld_plugin_symbol_resolution): Add |
| prevailing_def_ironly_exp. |
| * lto-cgraph.c (LDPR_NUM_KNOWN): Update. |
| * ipa.c (varpool_externally_visible_p): IRONLY variables are never |
| externally visible. |
| * varasm.c (resolution_to_local_definition_p): Add |
| LDPR_PREVAILING_DEF_IRONLY_EXP. |
| (resolution_local_p): Likewise. |
| |
| 2011-10-01 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.opt (VIS3): New option. |
| * doc/invoke.texi: Document it. |
| * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is |
| not capable of such instructions. |
| * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ |
| to 0x300 when TARGET_VIS3. |
| * config/sparc/sparc-modes.def: Create 16-byte vector modes. |
| * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32, |
| UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs. |
| (V64N8, VASS): New mode iterators. |
| (vis3_shift, vis3_addsub_ss): New code iterators. |
| (vbits, vconstr): New mode attributes. |
| (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes. |
| (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis, |
| fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis, |
| fmean16_vis, fpadd64_vis, fpsub64_vis, |
| <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New |
| VIS 3.0 instruction patterns. |
| * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by |
| default when targetting capable cpus. TARGET_VIS3 implies |
| TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled. |
| (sparc_vis_init_builtins): Emit new VIS 3.0 builtins. |
| (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result |
| is ignored. |
| * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16, |
| __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16, |
| __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32, |
| __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16, |
| __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s, |
| __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s, |
| __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8, |
| __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces. |
| * doc/extend.texi: Document new VIS 3.0 builtins. |
| |
| 2011-10-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ira-color.c (assign_hard_reg): Fix typo. |
| |
| 2011-09-30 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * doc/extend.texi: Add missing ','. |
| |
| 2011-09-30 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * common/config/c6x/c6x-common.c (c6x_option_optimization_table): |
| Enable -fmodulo-sched at -O2 and above. |
| * config/c6x/c6x.md (doloop_end): New expander. |
| (mvilc, sploop, spkernel, loop_end): New patterns. |
| (loop_end with memory destination splitter): New. |
| * config/c6x/c6x.c: Include "hw-doloop.h". |
| (enum unitreqs): New. |
| (unit_req_table): New typedef. |
| (unit_reqs): New static variable. |
| (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs, |
| res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch, |
| hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above, |
| hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions. |
| (struct c6x_sched_context): New member last_scheduled_iter0. |
| (init_sched_state): Initialize it. |
| (c6x_variable_issue): Update it. |
| (sploop_max_uid_iter0): New static variable. |
| (c6x_sched_reorder_1): Be careful about issuing sploop. |
| (c6x_reorg): Call c6x_hwlooops before the final schedule. |
| |
| 2011-09-30 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50566 |
| * config/avr/avr-protos.h (avr_log_t): New field address_cost. |
| * config/avr/avr.c (avr_address_cost): Use it. |
| * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it. |
| (avr_log_vadump): Unknown %-codes finish printing. |
| |
| 2011-09-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR inline-asm/50571 |
| * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If |
| input constraints allow mem and not reg, pass true instead of |
| false as second argument to maybe_fold_reference. |
| |
| PR tree-optimization/46309 |
| * fold-const.c (make_range, merge_ranges): Remove prototypes. |
| (make_range_step): New function. |
| (make_range): Use it. |
| * tree.h (make_range_step): New prototypes. |
| * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H). |
| * tree-ssa-reassoc.c: Include diagnostic-core.h. |
| (struct range_entry): New type. |
| (init_range_entry, range_entry_cmp, update_range_test, |
| optimize_range_tests): New functions. |
| (reassociate_bb): Call optimize_range_tests. |
| |
| 2011-09-30 Jakub Jelinek <jakub@redhat.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle |
| BUILT_IN_STRDUP and BUILT_IN_STRNDUP. |
| * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. Fix |
| handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK. |
| (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT, |
| BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK. |
| |
| 2011-09-30 Jan Beulich <jbeulich@suse.com> |
| |
| * lto-cgraph.c (output_cgraph): Remove processing of |
| 'cgraph_asm_nodes', call lto_output_toplevel_asms() instead. |
| (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call |
| lto_input_toplevel_asms() instead. |
| * lto-section-in.c (lto_section_name): Add "asm" entry. |
| * lto-streamer-in.c (lto_input_toplevel_asms): New. |
| * lto-streamer-out.c (lto_output_toplevel_asms): New. |
| * lto-streamer.h (LTO_minor_version): Bump. |
| (enum lto_section_type): Add LTO_section_asm. |
| (struct lto_asm_header): New. |
| (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare. |
| * tree-streamer.h (streamer_write_string_cst): Declare. |
| * tree-streamer-out.c (write_string_cst): Rename to |
| streamer_write_string_cst and make global. Handle incoming string |
| being NULL. |
| (streamer_write_tree_header): Adjust call to renamed function. |
| |
| 2011-09-30 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns, |
| modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left, |
| modulo_last_stage): New static variables. |
| (set_modulo_params, discard_delay_pairs_above): New functions. |
| (struct delay_pair): New member stages. |
| (htab_i2_traverse, htab_i1_traverse): New static functions. |
| (record_delay_slot_pair): New arg stages. All callers changed. |
| Record it. |
| (pair_delay): Take stages into account. |
| (add_delay_dependencies): Don't do so for stage pairs. |
| (struct sched_block_state): New member modulo_epilogue. |
| (save_backtrack_point): Don't set SHADOW_P for stage pairs. |
| (unschedule_insns_until): Decrease modulo_insns_scheduled. |
| Set HARD_DEP without using or. |
| (resolve_dependencies): New static function. |
| (prune_ready_list): New arg modulo_epilogue_p. All callers changed. |
| If it is true, allow only insns with INSN_EXACT_TICK set. |
| (schedule_block): Return bool, always true for normal scheduling, |
| true or false depending on modulo scheduling success otherwise. |
| Add bookkeeping for modulo scheduling, and call resolve_dependencies |
| on everything left over after a modulo schedule. |
| (haifa_sched_init): Remove check_cfg call. Clear modulo_ii. |
| * sched-int.h (schedule_block, record_delay_slot_pair): Adjust |
| declarations. |
| (set_modulo_params, discard_delay_pairs_above): Declare. |
| * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New. |
| * doc/invoke.texi (--param): Document it. |
| |
| * sched-ebb.c (schedule_ebb): No longer static. Remove declaration. |
| New arg modulo_scheduling. All callers changed. Move note handling |
| code here from schedule_ebbs. |
| (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken |
| out of schedule_ebbs. |
| (schedule_ebbs): Call them. Remove note handling code moved to |
| schedule_ebb. |
| * sched-int.h (schedule_ebb, schedule_ebbs_init, |
| schedule_ebbs_finish): Declare. |
| |
| 2011-09-30 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50574 |
| * tree-cfg.c (verify_gimple_comparison): Compare component |
| mode sizes for vector comparisons. |
| |
| 2011-09-30 Revital Eres <revital.eres@linaro.org> |
| |
| * ddg.c (autoinc_var_is_used_p): New function. |
| (create_ddg_dep_from_intra_loop_link, |
| add_cross_iteration_register_deps): Call it. |
| * ddg.h (autoinc_var_is_used_p): Declare. |
| * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p. |
| (sms_schedule): Handle instructions with REG_INC. |
| |
| 2011-09-30 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (generate_reg_moves): Skip instructions that |
| do not set a register and verify no regmoves are created for |
| !single_set instructions. |
| |
| 2011-09-30 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * hw-doloop.c (scan_loop): Compute register usage only for non-debug |
| insns. |
| |
| 2011-09-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/50099 |
| * config/arm/iterators.md (qhs_zextenddi_cstr): New. |
| (qhs_zextenddi_op): New. |
| * config/arm/arm.md ("zero_extend<mode>di2"): Use them. |
| * config/arm/predicates.md ("arm_extendqisi_mem_op"): |
| Distinguish between ARM and Thumb2 states. |
| |
| 2011-09-30 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.opt (VIS2): New option. |
| * doc/invoke.texi: Document it. |
| * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN, |
| UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N, |
| UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs. |
| (define_attr type): New insn type 'edgen'. |
| (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis, |
| edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis, |
| edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0 |
| patterns. |
| * niagara.md: Handle edgen. |
| * niagara2.md: Likewise. |
| * ultra1_2.md: Likewise. |
| * ultra3.md: Likewise. |
| * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ |
| to 0x200 when TARGET_VIS2. |
| * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by |
| default when targetting capable cpus. TARGET_VIS2 implies |
| TARGET_VIS, clear and it when TARGET_FPU is disabled. |
| (sparc_vis_init_builtins): Emit new VIS 2.0 builtins. |
| (sparc_expand_builtin): Fix predicate indexing when builtin returns |
| void. |
| (sparc_fold_builtin): Do not eliminate bmask when result is ignored. |
| * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi, |
| __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi, |
| __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln, |
| __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces. |
| * doc/extend.texi: Document new VIS 2.0 builtins. |
| |
| 2011-09-29 Nick Clifton <nickc@redhat.com> |
| Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file. |
| * config/frv/frvend.c: Likewise. |
| * config/frv/frv.c (frv_function_prologue): Move misplaced |
| CALL_ARG_LOCATION notes back to their proper locations. |
| |
| 2011-09-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50566 |
| * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool. |
| * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed |
| from avr_rtx_costs. |
| (avr_legitimate_address_p): Use avr_edump to print log information |
| filtered by avr_log. |
| (extra_constraint_Q): Ditto. |
| (avr_legitimize_address): Ditto. |
| (avr_rtx_costs): Ditto. Rewrite as wrapper for avr_rtx_costs_1. |
| (final_prescan_insn): Use avr_log.rtx_costs as filter. |
| |
| 2011-09-29 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/arm-protos.h (arm_modes_tieable_p): Declare. |
| * config/arm/arm.h (MODES_TIEABLE_P): Use it. |
| * config/arm/arm.c (arm_modes_tieable_p): New function. Allow |
| NEON vector and structure modes to be tied. |
| |
| 2011-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * graphite-scop-detection.c (make_close_phi_nodes_unique): New |
| forward declaration. |
| (remove_duplicate_close_phi): Detect and repair creation of |
| duplicate close-phis for a containing loop. |
| |
| 2011-09-27 Andi Kleen <ak@linux.intel.com> |
| |
| * gcc.c (get_local_tick). Rename to get_random_number. Read from |
| /dev/urandom. Add getpid call. |
| (compare_debug_dump_opt_spec_function): Drop getpid call. |
| |
| 2011-09-26 Andi Kleen <ak@linux.intel.com> |
| |
| * toplev.c (init_local_tick): Try reading random seed |
| from /dev/urandom. |
| |
| 2011-09-26 Andi Kleen <ak@linux.intel.com> |
| |
| * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add. |
| * lto-streamer.c (lto_get_section_name): Remove crc32_string. |
| Handle numerical random seed. |
| * lto-streamer.h (lto_file_decl_data): Change id to |
| unsigned HOST_WIDE_INT. |
| * toplev.c (random_seed): Add. |
| (init_random_seed): Change for numerical random seed. |
| (get_random_seed): Return as HOST_WIDE_INT. |
| (set_random_seed): Crc32 existing string. |
| * toplev.h (get_random_seed): Change to numercal return. |
| * tree.c (get_file_function_name): Remove CRC. Handle |
| numerical random seed. |
| |
| 2011-09-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50566 |
| * config.gcc (extra_objs): Add avr-log.o for $target in: |
| avr-*-rtems*, avr-*-*. |
| * config/avr/t-avr (avr-log.o): New rule to compile... |
| * config/avr/avr-log.c: ...this new file. |
| * config/avr/avr.opt (mlog=): New option. |
| * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros. |
| (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes. |
| (avr_log_set_avr_log): New prototype. |
| (avr_log_t): New typedef. |
| (avr_log): New declaration. |
| * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log. |
| |
| 2011-09-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com> |
| |
| * expr.c (do_store_flag): Expand vector comparison by |
| building an appropriate VEC_COND_EXPR. |
| * c-typeck.c (build_binary_op): Typecheck vector comparisons. |
| (c_objc_common_truthvalue_conversion): Adjust. |
| * tree-vect-generic.c (do_compare): Helper function. |
| (expand_vector_comparison): Check if hardware supports |
| vector comparison of the given type or expand vector piecewise. |
| (expand_vector_operation): Treat comparison as binary |
| operation of vector type. |
| (expand_vector_operations_1): Adjust. |
| |
| 2011-09-29 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (build_opaque_vector_type): Make opaque vectors |
| variant types of the corresponding non-opaque type. Make |
| sure to share opaque vector types properly. |
| |
| 2011-09-29 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16, |
| UNSPEC_ARRAY32): New unspec. |
| (define_attr type): New type 'array'. |
| (array{8,16,32}<P:mode>_vis): New patterns. |
| * config/sparc/ultra1_2.md: Add reservations for 'array'. |
| * config/sparc/ultra3.md: Likewise. |
| * config/sparc/niagara.md: Likewise. |
| * config/sparc/niagara2.md: Likewise. |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Build new |
| array builtins. |
| * config/sparc/visintrin.h (__vis_array8, __vis_array16, |
| __vis_array32): New. |
| * doc/extend.texi: Document new VIS builtins. |
| |
| * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr. |
| (VIS pixel-compare insn): Just use <gcond:name>. |
| |
| * config/sparc/sparc.md (VIS pixel-compare insn): There is only one |
| code iterator used, so just use <code>. There are two mode iterators |
| so explicitly use <GCM:gcm_name>. |
| |
| 2011-09-29 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for |
| Darwin >= 9. |
| |
| 2011-09-28 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, |
| UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to... |
| (UNSPEC_FCMP): New unspec. |
| (gcond): New code iterator. |
| (gcond_name): New code attr. |
| (GCM): New mode iterator. |
| (gcm_name): New mode attr. |
| (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators. |
| |
| 2011-09-28 Oleg Endo <oleg.endo@t-online.de> |
| |
| PR target/49486 |
| * config/sh/sh.md (negdi2): Move expansion into split to |
| allow more combination options. Add T_REG clobber. |
| (abssi2): New expander. |
| (*negdi2, *abssi2, *negabssi2): New insns. |
| (cneg): Change from insn to insn_and_split. Rename to |
| negsi_cond. Add alternative for non-SH4. |
| |
| 2011-09-28 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete. |
| (neon_move_hi_quad_<mode>): Likewise. |
| (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves. |
| |
| 2011-09-28 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/predicates.md (rx_minmax_operand): New predicate. |
| Accepts immediates and a restricted subset of MEMs. |
| * config/rx/rx.md (int_modes): New iterator. |
| (smaxsi3, sminsi3): Delete and replace with... |
| (smax<int_mode>3, smin<int_mode>3): New patterns. |
| (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns. |
| |
| 2011-09-28 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50460 |
| * fold-const.c (try_move_mult_to_index): Handle &a.array the |
| same as &a.array[0]. |
| |
| 2011-09-28 Kai Tietz <ktietz@redhat.com> |
| |
| * configure.ac: Add test for new section attribute |
| specifier "e" via define HAVE_GAS_SECTION_EXCLUDE. |
| * config.in: Regenerated. |
| * configure: Regenerated. |
| * config/i386/winnt.c (i386_pe_asm_named_section): Emit |
| new section flag "e" for excluded sections, if supported. |
| Otherwise we mark section withc SECTION_EXCLUDE flag as never-load. |
| |
| 2011-09-28 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-28 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-27 Sriraman Tallam <tmsriram@google.com> |
| |
| * output.h (SECTION_EXCLUDE): New macro. |
| * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE. |
| |
| 2011-09-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * fwprop.c (forward_propagate_and_simplify): After checking |
| reg/subreg combinations, check whether the modes are the same. |
| |
| 2011-09-27 Bernd Schmidt <bernds@codesourcery.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_add_cfa_restore): New function. |
| (mips16e_save_restore_reg): Use it. |
| (mips_restore_reg): Likewise. Split double FPRs for |
| REG_CFA_RESTORE notes. |
| |
| 2011-09-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR middle-end/50386 |
| PR middle-end/50326 |
| * tree-sra.c (build_ref_for_model): Use the type of the field as |
| the type of the COMPONENT_REF. |
| |
| 2011-09-27 Jeff Law <law@redhat.com> |
| |
| * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. Scale |
| non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE. |
| (find_if_case_1): Use the probability of the THEN clause when |
| determining if speculation is profitable. |
| (find_if_case_2): Similarly for the ELSE clause. |
| |
| 2011-09-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * common.opt: Add -foptimize-strlen option. |
| * Makefile.in (OBJS): Add tree-ssa-strlen.o. |
| (tree-sssa-strlen.o): Add dependencies. |
| * opts.c (default_options_table): Enable -foptimize-strlen |
| by default at -O2 if not -Os. |
| * passes.c (init_optimization_passes): Add pass_strlen |
| after pass_object_sizes. |
| * timevar.def (TV_TREE_STRLEN): New timevar. |
| * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter. |
| * tree-pass.h (pass_strlen): Declare. |
| * tree-ssa-strlen.c: New file. |
| * c-decl.c (merge_decls): If compatible stpcpy prototype |
| is seen, set implicit_built_in_decls[BUILT_IN_STPCPY]. |
| |
| 2011-09-27 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/43864 |
| * tree-ssa-tail-merge.c: New file. |
| (struct same_succ_def): Define. |
| (same_succ, const_same_succ): New typedef. |
| (struct bb_cluster_def): Define. |
| (bb_cluster, const_bb_cluster): New typedef. |
| (struct aux_bb_info): Define. |
| (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define. |
| (gvn_uses_equal): New function. |
| (same_succ_print, same_succ_print_traverse, update_dep_bb) |
| (stmt_update_dep_bb, local_def, same_succ_hash) |
| (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete) |
| (same_succ_reset): New function. |
| (same_succ_htab, same_succ_edge_flags) |
| (deleted_bbs, deleted_bb_preds): New var. |
| (debug_same_succ): New function. |
| (worklist): New var. |
| (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ) |
| (init_worklist, delete_worklist, delete_basic_block_same_succ) |
| (same_succ_flush_bbs, purge_bbs, update_worklist): New function. |
| (print_cluster, debug_cluster, update_rep_bb) |
| (add_bb_to_cluster, new_cluster, delete_cluster): New function. |
| (all_clusters): New var. |
| (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors) |
| (merge_clusters, set_cluster): New function. |
| (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate) |
| (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi) |
| (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect) |
| (find_clusters_1, find_clusters): New function. |
| (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function. |
| (update_bbs): New var. |
| (apply_clusters): New function. |
| (update_debug_stmt, update_debug_stmts): New function. |
| (tail_merge_optimize): New function. |
| tree-pass.h (tail_merge_optimize): Declare. |
| * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize. |
| * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o. |
| (tree-ssa-tail-merge.o): New rule. |
| * opts.c (default_options_table): Set OPT_ftree_tail_merge by |
| default at OPT_LEVELS_2_PLUS. |
| * tree-ssa-sccvn.c (vn_valueize): Move to ... |
| * tree-ssa-sccvn.h (vn_valueize): Here. |
| * timevar.def (TV_TREE_TAIL_MERGE): New timevar. |
| * common.opt (ftree-tail-merge): New switch. |
| * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS) |
| (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter. |
| * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge. |
| (-ftree-tail-merge, max-tail-merge-comparisons) |
| (max-tail-merge-iterations): New item. |
| |
| 2011-09-27 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows. |
| |
| 2011-09-27 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle |
| parameters passed by reference; handle loads from non-SSA scalars |
| and update comments. |
| |
| 2011-09-27 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/50249 |
| * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument |
| instead of opnum and type. All callers changed. Remove useless |
| declaration. |
| Search forward for other reloads of the same type for the same operand |
| using the same register; if any are found, return false. |
| (reload_regs_reach_end_p): Same argument changes; all callers changed. |
| |
| 2011-09-27 Andi Kleen <ak@linux.intel.com> |
| Jan Hubicka <jh@suse.cz> |
| |
| * doc/invoke.texi (ffat-lto-objects): Document. |
| * toplev.c (compile_file): Do not output assembly when doing slim lto; |
| Output __gnu_slim_lto when doing slim lto. |
| * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto. |
| (cgraph_optimize): Return early when doing slim lto. |
| * opts.c (finish_options): Complain about lack of linker plugin |
| when doing slim lto. |
| * common.opt (ffat-lto-objects): New. |
| |
| 2011-09-27 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * ipa-inline-analysis.c (predicate_probability): Avoid comparison |
| between signed and unsigned. |
| |
| 2011-09-27 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block |
| vectorization. |
| (vectorizable_type_promotion): Likewise. |
| (vect_analyze_stmt): Call vectorizable_type_demotion and |
| vectorizable_type_promotion for basic blocks. |
| (supportable_widening_operation): Don't assume loop vectorization. |
| * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for |
| basic blocks. Update vectorization factor for basic block |
| vectorization. |
| (vect_analyze_slp_instance): Allow multiple types for basic block |
| vectorization. Recheck unrolling factor after construction of SLP |
| instance. |
| |
| 2011-09-27 Richard Guenther <rguenther@suse.de> |
| |
| * tree-object-size.c (compute_object_sizes): Fix dumping of |
| folded statement. |
| |
| 2011-09-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50363 |
| * tree-ssa-pre.c (create_expression_by_pieces): Handle |
| pointer conversions in POINTER_PLUS_EXPRs properly. |
| |
| 2011-09-27 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi) |
| (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di) |
| (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si) |
| (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands |
| that produce subreg moves. Define using VQX iterators. |
| |
| 2011-09-27 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (ashrqi3): Split alternative "n" |
| into its remaining parts C03, C04, C05, C06, C07 and describe |
| impact in CC by attribute "cc" appropriately. |
| * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0 |
| by digging RTX. |
| |
| 2011-09-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE |
| from 3 x MAX_MACHINE_MODE. |
| (CONSTM1_RTX): Define. |
| * emit-rtl.c (const_tiny_rtx): Change into array of |
| 4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE. |
| (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are |
| CONSTM1_RTX. |
| (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and |
| MODE_VECTOR_INT modes. |
| * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>: |
| Optimize if one operand is CONSTM1_RTX. |
| * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x |
| into mask | x. |
| |
| 2011-09-26 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode. |
| (fcmp{le,ne,gt,eq}{16,32}): Likewise. |
| * config/sparc/visintrin.h: Update edge and pixel-compare |
| intrinsics to return 'long' instead of 'int'. |
| * doc/extend.texi: Update documentation to match. |
| * config/sparc/sparc.c (eligible_for_return_delay): When leaf or |
| flat, allow any instruction. Otherwise, when V9 allow parallels |
| which consist only of sets to registers outside of %o0 to %o5. |
| (sparc_vis_init_builtins): Update VIS builtin types for edge |
| and pixel-compare. |
| |
| * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS |
| is enabled, mark %gsr as global. |
| * config/sparc/sparc.md (UNSPEC_WRGSR): Delete. |
| (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec. |
| |
| * config/sparc/sparc-c.c: New file implementing sparc_target_macros, |
| which will now define __VIS and __VIS__ when -mvis is enabled. |
| * config/sparc/t-sparc: Likewise. |
| * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs, |
| and add t-sparc to tmake_file for all sparc targets. |
| * config/sparc/sparc-protos.h (sparc_target_macros): Declare. |
| * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it. |
| |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit |
| builtins for VIS vector addition and subtraction. |
| * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s, |
| __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s, |
| __vis_fpsub32, __vis_fpsub32s): New. |
| * doc/extend.texi: Document new VIS intrinsics. |
| |
| 2011-09-26 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536. |
| * config/avr/avr.c (avr_out_compare): Print shorter sequence for |
| EQ/NE comparisons against +/-1 in the case of unused-after, |
| non-ld-regs target. |
| |
| 2011-09-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-fold.c (gimplify_and_update_call_from_tree): Set |
| gctx.into_ssa after push_gimplify_context. |
| |
| * gimple.c (gimple_build_call_valist): New function. |
| * gimple.h (gimple_build_call_valist): New prototype. |
| * tree-ssa-propagate.c (finish_update_gimple_call): New function. |
| (update_gimple_call): Likewise. |
| (update_call_from_tree): Use finish_update_gimple_call. |
| * tree-ssa-propagate.h (update_gimple_call): New prototype. |
| |
| 2011-09-26 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50472 |
| * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold |
| volatile references. |
| |
| 2011-09-26 Bingfeng Mei <bmei@broadcom.com> |
| |
| * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P. |
| * target.def: (addr_space_subset_p): Likewise. |
| |
| 2011-09-26 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-alias.h (pt_solution_singleton_p): Declare. |
| * tree-ssa-structalias.c (pt_solution_singleton_p): New function. |
| * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution |
| of new var. |
| |
| 2011-09-26 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50465 |
| * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn. |
| * config/avr/avr.md (*reload_insi, *reload_insf): Change call to |
| output_reload_insisf. |
| (adjust_len): Set default to "no". |
| Remove alternative "yes". Add alternatives: "mov8", "mov16", |
| "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi", |
| "lshrhi", "ashlsi, "ashrsi", "lshrsi". |
| (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3, |
| *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3, |
| *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const, |
| *lshrsi3_const): Set attribute "adjust_len". |
| * config/avr/avr.c (output_reload_insisf): Remove parameter "insn". |
| (output_movsisf): Don't pass insn to output_reload_insisf. |
| (adjust_insn_length): Handle new alternatives to adjust_len. |
| Remove handling of ADJUST_LEN_YES. Clean-up code. |
| |
| 2011-09-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of |
| may_trap_p to detect loads that may trap of fault. |
| |
| 2011-09-26 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (output_reload_inhi): Change prototype. |
| * config/avr/avr.md (adjust_len): Add "reload_in16" alternative. |
| (*reload_inhi): Use it. Adapt call to output_reload_inhi to new |
| prototype. |
| (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L". |
| * config/avr/avr.c: Rename output_reload_insisf_1 to |
| output_reload_in_const. |
| (avr_popcount_each_byte): Handle SFmode, too. |
| (output_reload_in_const): Change so it can handle HI loads, too. |
| Use avr_popcount_each_byte to work out if scratch register must be |
| created on the fly. |
| (output_reload_inhi): Rewrite using output_reload_in_const and... |
| (output_movhi): ...use it to print constants' loads. |
| (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code. |
| |
| 2011-09-25 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/constraints.md (C, P, Z): New constraints for |
| const_doube, const_int, and const_vector "all ones" values. |
| Make unused constraint letters comment match reality. |
| * config/sparc/predicates.md (const_all_ones_operand, |
| register_or_zero_or_all_ones_operand): New predicates. |
| * config/sparc/sparc.c (sparc_expand_move): Allow all ones |
| as well as zero constants when VIS. |
| (sparc_legitimate_constant_p): Likewise. |
| * config/sparc/sparc.md (movsi_insn): Add fones alternative. |
| (movsf_insn): Likewise |
| (movdi_insn_sp64): Add fone alternative. |
| (movdf_insn_sp32_v9): Likewise. |
| (movdf_insn_sp64): Likewise. |
| |
| * configure.ac: Add feature check to make sure the assembler |
| supports the FMAF, HPC, and VIS 3.0 instructions found on |
| Niagara-3 and later cpus. |
| * configure: Rebuild. |
| * config.in: Likewise. |
| * config/sparc/sparc.opt: New option '-mfmaf'. |
| * config/sparc/sparc.md: Add float fused multiply-add patterns. |
| * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro. |
| (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed. |
| * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC, |
| ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise. |
| * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on |
| by default for Niagara-3 and later. Turn it off if TARGET_FPU is |
| disabled. |
| (sparc_rtx_costs): Handle 'FMA'. |
| * doc/invoke.texi: Document -mfmaf. |
| |
| 2011-09-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Treat |
| TYPE_RESTRICT REFERENCE_TYPE parameters like restricted |
| DECL_BY_REFERENCE parameters. |
| |
| 2011-09-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore |
| if there is no outgoing edge. |
| |
| * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and |
| integral types. |
| |
| 2011-09-25 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part |
| of vect_analyze_bb here. |
| (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1. |
| |
| 2011-09-25 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-data-ref.c (dr_analyze_innermost): Add new argument. |
| Allow not simple iv if analyzing basic block. |
| (create_data_ref): Update call to dr_analyze_innermost. |
| (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise. |
| * tree-loop-distribution.c (generate_memset_zero): Likewise. |
| * tree-predcom.c (find_looparound_phi): Likewise. |
| * tree-data-ref.h (dr_analyze_innermost): Add new argument. |
| |
| 2011-09-24 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103. |
| (SPARC_GSR_REG): Define. |
| (FIXED_REGISTERS): Mark GSR as fixed. |
| (CALL_USED_REGISTERS): Mark GSR as call used. |
| (HARD_REGNO_NREGS): GSR is always 1 register. |
| (REG_CLASS_CONTENTS): Add GSR to ALL_REGS. |
| (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end. |
| (REGISTER_NAMES): Add "%gsr". |
| * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete. |
| (UNSPEC_WRGSR): New unspec. |
| (GSR_REG): New constant. |
| (type): Add new insn type 'gsr'. |
| (fpack16_vis, fpackfix_vis, fpack32_vis, |
| faligndata<V64I:MODE>_vis)): Add use of GSR_REG. |
| (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64, |
| rdgsr_v8plus): New expanders and insns. |
| (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement |
| using patterns which show that this is a plus in addition to a |
| modification of GSR_REG, instead of an unspec. |
| * config/sparc/ultra1_2.md: Handle 'gsr'. |
| * config/sparc/ultra3.md: Likewise. |
| * config/sparc/niagara.md: Likewise. |
| * config/sparc/niagara2.md: Likewise. |
| * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out |
| end of table. |
| (sparc_option_override): Make -mvis imply -mv8plus. |
| (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries |
| for %gsr. |
| (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and |
| __builtin_vis_read_gsr. |
| (sparc_expand_buildin): Handle builtins that take one argument and |
| return void. |
| (sparc_fold_builtin): Never fold writes to %gsr. |
| * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New. |
| * doc/extend.texi: Document new VIS intrinsics. |
| |
| 2011-09-23 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-transform.c (inline_call): Add comment. |
| * ipa-inline.h (inline_param_summary): New structure and vector. |
| (struct inline_edge_summary): Add param field. |
| * ipa-inline-analysis.c (CHANGED): New constant. |
| (add_clause): Handle CHANGED and NOT_CONSTANT. |
| (predicate_probability): New function. |
| (dump_condition): Dump CHANGED predicate. |
| (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker |
| of unknown function wide invariant. |
| (evaluate_conditions_for_edge): Handle change probabilities. |
| (inline_edge_duplication_hook): Copy param summaries. |
| (inline_edge_removal_hook): Free param summaries. |
| (dump_inline_edge_summary): Fix dumping of indirect edges and callee |
| sizes; dump param summaries. |
| (will_be_nonconstant_predicate): Use CHANGED predicate. |
| (record_modified_bb_info): New structure. |
| (record_modified): New function. |
| (param_change_prob): New function. |
| (estimate_function_body_sizes): Compute param summaries. |
| (estimate_edge_size_and_time): Add probability argument. |
| (estimate_node_size_and_time): Add inline_param_summary argument; |
| handle predicate probabilities. |
| (remap_predicate): Fix formating. |
| (remap_edge_change_prob): New function. |
| (remap_edge_summaries): Rename from ...; use remap_edge_change_prob. |
| (remap_edge_predicates): ... this one. |
| (inline_merge_summary): Remap edge summaries; handle predicate |
| probabilities; remove param summaries after we are done. |
| (do_estimate_edge_time): Update. |
| (do_estimate_edge_growth): Update. |
| (read_inline_edge_summary): Read param info. |
| (inline_read_summary): Fix formating. |
| (write_inline_edge_summary): Write param summaries. |
| |
| 2011-09-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_print_operand): Handle %~. |
| (ix86_print_operand_punct_valid_p): Return true also for '~'. |
| * config/i386/sse.md (i128): New mode_attr. |
| (vec_extract_hi_<mode>, vec_extract_hi_<mode>, |
| avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full, |
| *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>, |
| vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the |
| patterns, use "<sseinsnmode>" for "mode" attribute. |
| (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi, |
| vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use |
| %~128 in the patterns, use "OI" for "mode" attribute. |
| |
| 2011-09-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50447 |
| * config/avr/avr.md (adjust_len): Add alternatives "tsthi", |
| "tstsi", "compare". |
| (*cmpqi_sign_extend): Use s8_operand. |
| (*cmphi, *cmpsi): Rewrite using avr_out_compare. |
| * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove |
| prototypes. |
| (out_tsthi, out_tstsi): Remove prototypes. |
| (avr_out_tsthi, avr_out_tstsi): New prototypes. |
| * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions. |
| (avr_asm_len): Negative length now sets *plen to -length. |
| (compare_sign_p): Return bool instead of int. |
| (compare_diff_p, compare_eq_p): Ditto and make static. |
| (avr_out_tsthi): New function. |
| (avr_out_tstsi): New function. |
| (avr_out_compare): New function. |
| (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI, |
| ADJUST_LEN_COMPARE. |
| |
| 2011-09-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50447 |
| * config/avr/avr.md: (adjust_len): Add alternative "out_plus". |
| (addsi3): Rewrite using QI scratch register. Adjust text |
| peepholes using plus:SI. |
| (*addsi3_zero_extend.hi): New insn. |
| (*subsi3_zero_extend.hi): New insn. |
| (*subhi3_zero_extend1): Set attribute "cc" to "set_czn". |
| (*subsi3_zero_extend): Ditto. |
| (subsi3): Change predicate #2 to register_operand. |
| * config/avr/avr-protos.h (avr_out_plus): New prototype. |
| (avr_out_plus_1): New static function. |
| (avr_out_plus): New function. |
| (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS. |
| |
| 2011-09-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For |
| GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX. |
| |
| 2011-09-23 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_define): Treat a single character in single quotes, |
| or a string, as an operand. |
| |
| 2011-09-23 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (jump_func_type): Updated comments. |
| (ipa_known_type_data): New type. |
| (ipa_jump_func): Use it to describe known type jump functions. |
| * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to |
| reflect the new known type jump function contents. |
| (compute_known_type_jump_func): Likewise. |
| (combine_known_type_and_ancestor_jfs): Likewise. |
| (try_make_edge_direct_virtual_call): Likewise. |
| (ipa_write_jump_function): Likewise. |
| (ipa_read_jump_function): Likewise. |
| * ipa-cp.c (ipa_value_from_known_type_jfunc): New function. |
| (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc. |
| (propagate_accross_jump_function): Likewise. |
| |
| 2011-09-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50446 |
| * config/avr/avr.md (rotlqi3): Support all offsets 0..7. |
| (rotlqi3_4): Turn insn into expander. |
| (*rotlqi3): New insn. |
| (rotlhi3, rotlsi3): Support rotate left/right by 1. |
| (*rotlhi2.1, *rotlhi2.15): New insns. |
| (*rotlsi2.1, *rotlsi2.31): New insns. |
| * config/avr/constraints.md (C03, C05, C06, C07): New constraints. |
| |
| 2011-09-23 Bin Cheng <bin.cheng@arm.com> |
| |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors. |
| |
| 2011-09-22 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * ipa-prop.c (ipa_print_node_jump_functions): Fix typos. |
| |
| 2011-09-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * reload.c (find_reloads): Set operand_mode to Pmode for address |
| operands consisting of just a CONST_INT. |
| |
| 2011-09-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50482 |
| * config/i386/i386.c (ix86_expand_sse_movcc): When generating |
| blendv, force op_true to register if it doesn't satisfy |
| nonimmediate_operand predicate. |
| |
| 2011-09-22 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR middle-end/50113 |
| PR middle-end/50061 |
| * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to |
| get the locate.where_pad value for register-only arguments. |
| * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling. |
| (arm_pad_reg_upward): Handle null types. |
| |
| 2011-09-22 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c: Fix overly long lines. |
| |
| 2011-09-22 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-transform.c (inline_call): Always update jump functions |
| after inlining. |
| * ipa-inline.c (ipa_inline): Likewise; do not call |
| ipa_create_all_structures_for_iinln. |
| (ipa_inline): Always free jump functions. |
| * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack. |
| (remap_edge_predicates): Fix pasto. |
| (inline_merge_summary): Remove nlined edge predicate; remove hack. |
| (inline_analyze_function): Always initialize jump functions. |
| (inline_generate_summary): Likewise. |
| (inline_write_summary): Always write jump functions when ipa-cp |
| is not doing that. |
| (inline_read_summary): Always read jump functions when ipa-cp |
| is not doing that. |
| * ipa-prop.c (iinlining_processed_edges): Remove. |
| (update_indirect_edges_after_inlining): Do not use |
| iinlining_processed_edges; instead set param_index to -1. |
| (propagate_info_to_inlined_callees): Only try to indirect inlining |
| when asked to do so; update jump functions of indirect calls, too; |
| remove jump functions of the inlined edge. |
| (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges. |
| (ipa_create_all_structures_for_iinln): Remove. |
| (ipa_free_all_structures_after_iinln): Do not free |
| iinlining_processed_edges. |
| * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove. |
| |
| 2011-09-22 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/predicates.md (expandable_comparison_operator): New |
| predicate, extracted from... |
| (arm_comparison_operator): ...here. |
| * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4) |
| (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc) |
| (movdfcc): Use expandable_comparison_operator. |
| |
| 2011-09-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50447 |
| PR target/50465 |
| * config/avr/avr-protos.h (avr_out_bitop): New prototype. |
| (avr_popcount_each_byte): New prototype. |
| * config/avr/avr.c (avr_popcount): New static function. |
| (avr_popcount_each_byte): New function. |
| (avr_out_bitop): New function. |
| (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to |
| avr_out_bitop. Cleanup code. |
| * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints. |
| (Ca4, Co4, Cx4): New constraints. |
| * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute |
| alternative. |
| (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop. |
| (andsi3, iorsi3, xorsi3): Ditto. |
| (*iorhi3_clobber, *iorsi3_clobber): Remove insns. |
| |
| 2011-09-22 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50451 |
| * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for |
| constant operands in reduction. |
| (vect_get_slp_defs): Don't create vector operand for NULL scalar |
| operand. |
| |
| 2011-09-22 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark |
| fpack16, fpack32, fpackfix as const. |
| |
| * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG, |
| I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New |
| constants. Use them everywhere. |
| |
| 2011-09-22 Oleg Endo <oleg.endo@t-online.de> |
| |
| * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs. |
| Added AND special case. Adapted comments. |
| (sh_rtx_costs): Added XOR and IOR case. |
| |
| 2011-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analsis.c (compute_inline_parameters): Set |
| cfun and current_function_decl. |
| |
| 2011-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow |
| handled components in parameter of builtin_constant_p. |
| (will_be_nonconstant_predicate): Allow loads of non-SSA parameters. |
| |
| 2011-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (relative_time_benefit): Fix wrong bracketting. |
| * ipa-inline.h (estimate_edge_time): Fix pasto. |
| * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping. |
| |
| 2011-09-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_expand_sse_movcc): Use |
| blendvps, blendvpd and pblendvb if possible. |
| |
| 2011-09-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50464 |
| * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change |
| operand 1 predicate to register_operand and operand 2 predicate |
| to nonimmediate_operand. |
| * config/i386/i386.c (ix86_expand_sse_movcc): When generating |
| xop_pcmov, force op_true to register. Also, force op_false to |
| register if it doesn't satisfy nonimmediate_operand predicate. |
| |
| 2011-09-21 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/bmi2intrin.h (_mulx_u64): New. |
| (_mulx_u32): Ditto. |
| |
| 2011-09-21 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/50433 |
| * ipa-inline-analysis.c (eliminated_by_inlining_prob): |
| Use get_base_address. |
| |
| 2011-09-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use |
| nonimmediate_operand instead of register_operand predicate for operands |
| 1 and 2, force them into registers if expanding them as comparison. |
| (<code><mode>3 umaxmin:VI124_128 expander): Similarly. For UMAX |
| V8HImode force into register just operand 1. |
| |
| 2011-09-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/45099 |
| * config/avr/avr.c (avr_function_arg_advance): Change error to |
| warning if a fixed register is needed as function argument. |
| |
| 2011-09-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50449 |
| PR target/50465 |
| * config/avr/avr.md (adjust_len): New insn attribute. |
| (*reload_insi, *reload_insf): Use it. |
| (*movsi, *movsf): Use new interface of output_movsisf. |
| * config/avr/avr-protos.h (output_movsisf): Change prototype. |
| * config/avr/avr.c (output_movsisf): Ditto. |
| (adjust_insn_length): Use insn attribute "adjust_len" to adjust |
| lengths of insns *reload_insi, *reload_insf. |
| (output_reload_insisf_1): New static function. |
| (output_reload_insisf): Use it. |
| |
| 2011-09-21 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (def_builtin): Change from macro into function. |
| (def_builtin_const): New. |
| (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins |
| other than alignaddr and falignaddr. |
| |
| * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT, |
| UNSPEC_FCMPEQ): New unspec codes. |
| (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis, |
| fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns. |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for |
| new pixel compare VIS patterns. |
| * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32, |
| __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32, |
| __vis_fcmpeq16, __vis_fcmpeq32): New. |
| * doc/extend.texi: Document new pixel compare VIS intrinsics. |
| |
| 2011-09-21 Tom de Vries <tom@codesourcery.com> |
| |
| * final.c (final): Handle if JUMP_LABEL is not LABEL_P. |
| |
| 2011-09-20 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec. |
| (aligneddrl<P:mode>_vis): New pattern. |
| (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis, |
| edge32l_vis): Adjust to take Pmode arguments, and return SImode. |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new |
| alignaddrl insn, and adjust edge operations for updated types. |
| * config/sparc/visintrin.h: Likewise. |
| * doc/extend.texi: Make typing in VIS documentation match reality. |
| |
| 2011-09-20 Terry Guo <terry.guo@arm.com> |
| |
| * config/arm/arm-arches.def: Add armv6s-m. |
| * config/arm/arm-tables.opt: Regenerate. |
| |
| 2011-09-20 Wei Guozhi <carrot@google.com> |
| |
| PR rtl-optimization/49452 |
| * postreload.c (reload_combine): Invalidate use information when across |
| volatile insn. |
| |
| 2011-09-19 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg): |
| Remove maintenance overhead. |
| (haifa_sched_init, sched_finish): Update. |
| |
| 2011-09-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX |
| to calculate unit, prefix_rep and prefix_data16 attributes. |
| (*mov<mode>_internal): Ditto for unit attribute. |
| (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes. |
| (*movv2sf_internal): Ditto. |
| * config/i386/sse.md (VI1248_256): Remove mode iterator. |
| (avx2_eq<mode>3): Use VI_256 instead of VI1248_256. |
| (*avx2_eq<mode>3): Ditto. |
| (avx2_gt<mode>3): Ditto. |
| |
| 2011-09-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (maxmin): New code iterator. |
| * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander |
| from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin |
| code iterator. |
| (*avx2_<maxmin:code><mode>3): Macroize isn from |
| *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using |
| maxmin code iterator. |
| (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3. |
| (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and |
| <umaxmin:code>v16qi3. |
| |
| 2011-09-19 Alan Modra <amodra@gmail.com> |
| Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/50341 |
| * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not |
| split the load of the indirect function's TOC from the call to |
| prevent the compiler from moving the load of the new TOC above |
| code that references the current function's TOC. |
| (call_indirect_aix<ptrsize>_internal): Ditto. |
| (call_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_indirect_aix<ptrsize>_internal2): Ditto. |
| (call_value_indirect_aix<ptrsize>): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal): Ditto. |
| (call_value_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal2): Ditto. |
| |
| 2011-09-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (*sse4_1_extractps): Change into |
| define_insn_and_split, add =x 0 n and =x x n alternatives |
| and split them after reload. |
| |
| 2011-09-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4. |
| |
| 2011-09-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs. |
| |
| 2011-09-19 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50413 |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize |
| a basic block if one of its data-refs can't be analyzed. |
| |
| 2011-09-19 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/predicates.md (shift_amount_operand): Check constant |
| shift count is in range. |
| (const_shift_operand): Remove. |
| |
| 2011-09-18 Eric Botcazou <ebotcazou@adacore.com> |
| Iain Sandoe <developer@sandoe-acoustics.co.uk> |
| |
| PR target/50091 |
| * config/rs6000/rs6000.md (probe_stack): Use explicit operand. |
| * config/rs6000/rs6000.c (output_probe_stack_range): Likewise. |
| |
| 2011-09-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/bmiintrin.h: Remove tmp. |
| * config/i386/tbmintrin.h: Likewise. |
| |
| 2011-09-18 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50414 |
| * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and |
| MIN_EXPR. |
| |
| 2011-09-18 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50412 |
| * tree-vect-data-refs.c (vect_analyze_group_access): Fail for |
| acceses that require epilogue loop if vectorizing outer loop. |
| |
| 2011-09-17 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L, |
| UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L): |
| New unspecs. |
| (define_attr type): New type 'edge'. |
| (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis, |
| edge32l_vis): New patterns. |
| * config/sparc/ultra1_2.md: Add insn reservation for 'edge'. |
| * config/sparc/ultra3.md: Likewise. |
| * config/sparc/niagara.md: Likewise. |
| * config/sparc/niagara2.md: Likewise. |
| * config/sparc/sparc.d (sparc_vis_init_builtins): Generate |
| builtins for VIS edge instructions. |
| * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l) |
| (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New |
| intrinsics. |
| (__v8qi, __v4qi): Make unsigned. |
| (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi, |
| __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al, |
| __vis_fpack32): Fix types. |
| * doc/extend.texi: Document new 'edge' VIS intrinsics. |
| |
| * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer |
| divide costs. |
| (niagara3_costs): New. |
| (sparc_option_override): Use it. |
| * gcc/config/sparc/niagara2.md: Adjust with more accurate |
| Niagara-3 reservations. |
| |
| 2011-09-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI. |
| (sse2_avx, sseinsnmode): Add V2TI. |
| (REDUC_SMINMAX_MODE): New mode iterator. |
| (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf, |
| reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove. |
| (reduc_<code>_<mode>): New smaxmin and umaxmin expanders. |
| (sse2_lshrv1ti3): Rename to... |
| (<sse2_avx2>_lshr<mode>3): ... this. Use VIMAX_AVX2 mode |
| iterator. Move before umaxmin expanders. |
| * config/i386/i386.h (VALID_AVX256_REG_MODE, |
| SSE_REG_MODE_P): Accept V2TImode. |
| * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode, |
| V16HImode, V8SImode and V4DImode. |
| |
| * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode |
| and V4DImode. |
| (ix86_build_signbit_mask): Likewise. |
| (ix86_expand_int_vcond): Likewise. Handle V16HImode and V32QImode. |
| (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3 |
| instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3. |
| * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to... |
| (<code><mode>3) ... this. |
| (avx2_<code><mode>3 smaxmin expand): Rename to... |
| (<code><mode>3) ... this. |
| (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator. |
| (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and |
| VI8_AVX2 mode iterator. |
| (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and |
| VI8_AVX2 mode iterator. |
| (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>): |
| New expanders. |
| |
| 2011-09-17 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-16 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/visintrin.h: New file. |
| * config.gcc: Add it to extra_headers on sparc. |
| |
| 2011-09-16 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ... |
| (ix86_expand_reduc): ... this. Handle also V8SFmode and V4DFmode. |
| * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf, |
| reduc_smin_v4sf): Adjust callers. |
| (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): |
| New expanders. |
| |
| * config/i386/sse.md (vec_extract_hi_<mode>, |
| vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use |
| vextracti128 instead of vextractf128 for -mavx2 and |
| integer vectors. For V4DFmode fix up mode attribute. |
| (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors. |
| (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF |
| instead of V8SF mode attribute. |
| (avx2_extracti128): Change into define_expand. |
| * config/i386/i386.c (ix86_expand_vector_extract): Handle |
| 32-byte vector modes if TARGET_AVX. |
| |
| 2011-09-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern. |
| (umulqi3_highpart, smulqi3_highpart): Ditto. |
| (*maddqihi4.const, *umaddqihi4.uconst): Ditto. |
| (*msubqihi4.const, *umsubqihi4.uconst): Ditto. |
| (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto. |
| |
| 2011-09-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50358 |
| * config/avr/avr.md (*ashiftqihi2.signx.1): New insn. |
| (*maddqi4, *maddqi4.const): New insns. |
| (*msubqi4, *msubqi4.const): New insns. |
| * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases |
| PLUS:QI and MINUS:QI. Increase costs of multiply-add/-sub for |
| HImode by 1 in the case of multiplying with a CONST_INT. |
| Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI. |
| |
| 2011-09-15 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/50430 |
| * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on |
| error_mark_node in the DECL_INITIAL of vtable. |
| |
| 2011-09-15 Diego Novillo <dnovillo@google.com> |
| |
| * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from |
| @SYSROOT_CFLAGS_FOR_TARGET@. |
| * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot. |
| * configure: Regenerate. |
| (site.exp): Add definition of TEST_ALWAYS_FLAGS. |
| Remove setting of GCC_UNDER_TEST. |
| |
| 2011-09-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (output_fp_compare): Return %v prefixed |
| instruction mnemonics for TARGET_AVX. |
| |
| * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in |
| "type" attribute calculation. |
| (*movdf_internal): Ditto. |
| (*movsf_internal): Ditto. |
| |
| 2011-09-15 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro. |
| |
| 2011-09-15 Jason Merrill <jason@redhat.com> |
| |
| PR c++/50361 |
| * expr.c (count_type_elements): Handle NULLPTR_TYPE. |
| |
| 2011-09-15 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (add_condition): Add conditions parameter; |
| simplify obviously true clauses. |
| (and_predicates, or_predicates): Add conditions parameter. |
| (inline_duplication_hoook): Update. |
| (mark_modified): New function. |
| (unmodified_parm): New function. |
| (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate, |
| set_switch_stmt_execution_predicate, will_be_nonconstant_predicate): |
| Use unmodified_parm. |
| (estimate_function_body_sizes): Update. |
| (remap_predicate): Update. |
| |
| 2011-09-15 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow |
| read-after-read dependencies in basic block SLP. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| * config/rs6000/constraints.md: Likewise. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/microblaze/microblaze.md: Use match_test rather than |
| eq/ne symbol_ref throughout file. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-14 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/50251 |
| * explow.c (emit_stack_restore): Set crtl->need_drap if |
| stack_restore is emitted. |
| |
| 2011-09-14 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm.c (arm_override_options): Add unaligned_access |
| support. |
| (arm_file_start): Emit attribute for unaligned access as appropriate. |
| * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD) |
| (UNSPEC_UNALIGNED_STORE): Add constants for unspecs. |
| (insv, extzv): Add unaligned-access support. |
| (extv): Change to expander. Likewise. |
| (extzv_t1, extv_regsi): Add helpers. |
| (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu) |
| (unaligned_storesi, unaligned_storehi): New. |
| (*extv_reg): New (previous extv implementation). |
| * config/arm/arm.opt (munaligned_access): Add option. |
| * config/arm/constraints.md (Uw): New constraint. |
| * expmed.c (store_bit_field_1): Adjust bitfield numbering according |
| to size of access, not size of unit, when BITS_BIG_ENDIAN != |
| BYTES_BIG_ENDIAN. Don't use bitfield accesses for |
| volatile accesses when -fstrict-volatile-bitfields is in effect. |
| (extract_bit_field_1): Likewise. |
| |
| 2011-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * simplify-rtx.c (simplify_subreg): Check that the inner mode is |
| a scalar integer before applying integer-only optimisations to |
| inner arithmetic. |
| |
| 2011-09-14 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/mips/mips.c (mips_expand_epilogue): Generate a |
| simple_return only if the return address is in r31. |
| |
| 2011-09-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * cfgcleanup.c (try_head_merge_bb): If get_condition returns |
| NULL for a jump that is a cc0 insn, pick the previous insn for |
| move_before. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mn10300/mn10300.md: Use match_test rather than eq/ne |
| symbol_ref throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| * config/arm/neon.md: Likewise. |
| * config/arm/vfp.md: Likewise. |
| * config/arm/thumb2.md: Likewise. |
| * config/arm/cortex-m4.md: Likewise. |
| |
| 2011-09-13 Sevak Sargsyan <sevak.sargsyan@ispras.ru> |
| |
| * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New |
| define_insn patterns for combine. |
| |
| 2011-09-13 Giuseppe Scrivano <gscrivano@gnu.org> |
| |
| * reorg.c: Always define make_return_insns. |
| |
| 2011-09-13 Jan Hubicka <jh@suse.cz> |
| |
| PR other/49533 |
| * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output. |
| |
| 2011-09-13 Jan Hubicka <jh@suse.cz> |
| |
| PR other/49533 |
| * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos. |
| |
| 2011-09-13 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. |
| (ARM_TARGET2_DWARF_FORMAT): Provide default definition. |
| * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define. |
| * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define. |
| * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define. |
| * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h. |
| * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h. |
| * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code |
| enabling unwind tables. |
| (c6x_debug_unwind_info): New function. |
| (TARGET_ARM_EABI_UNWINDER): Define. |
| (TARGET_DEBUG_UNWIND_INFO): Define. |
| * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define. |
| (TARGET_EXTRA_CFI_SECTION): Remove. |
| * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set. |
| * ginclude/unwind-arm-common.h: New file. |
| |
| 2011-09-13 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50358 |
| * config/avr/predicates.md (const_1_to_6_operand): New predicate. |
| * config/avr/avr.md: (extend_s): New code attribute. |
| (mul_r_d): New code attribute. |
| (*maddqihi4, *umaddqihi4): New insns. |
| (*msubqihi4, *umsubqihi4): New insns. |
| (*usmaddqihi4, *sumaddqihi4): New insns. |
| (*usmsubqihi4, *susubdqihi4): New insns. |
| (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits. |
| (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits. |
| (*umsubqihi4.uconst.ashift): New insn-and-split. |
| (*msubqihi4.sconst.ashift): New insn-and-split. |
| (*sumaddqihi4.uconst): New insn-and-split. |
| (*sumsubqihi4.uconst): New insn-and-split. |
| * config/avr/avr.c (avr_rtx_costs): Report costs of above in case |
| PLUS:HI and MINUS:HI. |
| |
| 2011-09-13 Revital Eres <revital.eres@linaro.org> |
| |
| modulo-sched.c (remove_node_from_ps): Return void instead of bool. |
| (optimize_sc): Adjust call to remove_node_from_ps. |
| (sms_schedule): Add print info. |
| |
| 2011-09-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * rtl.c (copy_rtx): Do not handle frame_related, jump or call |
| flags specially. |
| |
| 2011-09-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/50010 |
| * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between |
| NOTE_INSN_CFI notes, with the exception of |
| NOTE_INSN_SWITCH_TEXT_SECTIONS. |
| |
| 2011-09-12 Bernd Schmidt <bernds@codesourcery.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_epilogue): New structure. |
| (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when |
| restoring registers. |
| (mips_epilogue_emit_cfa_restores): New function. |
| (mips_epilogue_set_cfa): Likewise. |
| (mips_restore_reg): Queue REG_CFA_RESTORE notes. When restoring |
| the current CFA register from the stack, redefine the CFA in terms |
| of the stack pointer. |
| (mips_expand_epilogue): Set up mips_epilogue. Attach CFA information |
| to the epilogue instructions. |
| |
| 2011-09-12 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p |
| argument. |
| (mips16e_build_save_restore): Update accordingly. |
| |
| 2011-09-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/50212 |
| * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): |
| Skip also lps with NULL landing_pad or non-LABEL_P landing_pad. |
| |
| PR debug/50299 |
| * calls.c (load_register_parameters): Use use_reg_mode instead |
| of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE |
| entry. |
| (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument |
| for stack CALL_INSN_FUNCTION_USAGE uses. |
| * expr.h (use_reg_mode): New prototype. |
| (use_reg): Changed into inline around use_reg_mode. |
| * expr.c (use_reg): Renamed to... |
| (use_reg_mode): ... this. Added MODE argument, set EXPR_LIST |
| mode to that mode instead of VOIDmode. |
| * var-tracking.c (prepare_call_arguments): Don't track parameters |
| whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible |
| to it using lowpart_subreg. Convert VALUE and REG/MEM to the |
| EXPR_LIST mode. |
| |
| 2011-09-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/43746 |
| * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define. |
| (progmem_section): New Variable. |
| (avr_asm_init_sections): Initialize it. |
| (TARGET_ASM_SELECT_SECTION): Define to... |
| (avr_asm_select_section): ... this new Function. |
| (avr_replace_prefix): New Function. |
| (avr_asm_function_rodata_section): Use it. |
| (avr_insert_attributes): Don't add section attribute for PROGMEM. |
| (avr_section_type_flags): Use avr_progmem_p instead of section |
| name to detect if object is in PROGMEM. |
| (avr_asm_named_section): Set section name prefix for objects in |
| PROGMEM. |
| |
| 2011-09-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/50352 |
| * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the |
| sprintf format string. |
| |
| 2011-09-12 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50343 |
| * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check |
| that the reduction is over an SSA name before checking its definition. |
| |
| 2011-09-11 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-11 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| * config/mips/sb1.md: Likewise. |
| * config/mips/predicates.md: Replace (match_test "!...") |
| with (not (match_test "...")) |
| * config/mips/constraints.md: Likewise. |
| |
| 2011-09-09 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm-cores.def (generic-armv7-a): New architecture. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * config/arm/arm.c (arm_file_start): Output .arch directive when |
| user passes -mcpu=generic-*. |
| (arm_issue_rate): Add genericv7a support. |
| * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec. |
| (ASM_CPU_SPEC): New define. |
| * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec). |
| * config/arm/semi.h (ASM_SPEC): Likewise. |
| * doc/invoke.texi (ARM Options): Document -mcpu=generic-* |
| and -mtune=generic-*. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50328 |
| * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one |
| constant or default-def operand. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (create_expression_by_pieces): Fold the |
| last statement. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator |
| instead of a statement. |
| * gimple-fold.c (fold_stmt_inplace): Likewise. |
| * sese.c (graphite_copy_stmts_from_block): Adjust. |
| * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise. |
| * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use |
| fold_stmt. |
| (forward_propagate_addr_into_variable_array_index): Likewise. |
| (forward_propagate_addr_expr_1): adjust. |
| (associate_plusminus): Likewise. |
| (ssa_forward_propagate_and_combine): Likewise. |
| * tree-ssa-mathopts.c (replace_reciprocal): Adjust. |
| (execute_cse_reciprocals): Likewise. |
| * tree-ssa.c (insert_debug_temp_for_var_def): Adjust. |
| |
| 2011-09-09 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.c (mn10300_split_and_operand_count): |
| Return a positive value to indicate that the bits at the |
| bottom of the register should be cleared. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (swap_tree_operands): Always adjust |
| existing operand positions. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50333 |
| * tree-data-ref.c (split_constant_offset): Do not try to handle |
| ternary ops. |
| |
| 2011-09-08 Andrew Stubbs <ams@codesourcery.com> |
| |
| PR tree-optimization/50318 |
| * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct |
| typo in use of mult_rhs1 and mult_rhs2. |
| |
| 2011-09-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes. |
| (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template. |
| |
| 2011-09-08 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/arm/arm.md (push_multi): Emit predicates. |
| (push_fp_multi): Likewise. |
| * config/arm/arm.c (vfp_output_fstmd): Likewise. |
| |
| 2011-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| PR c++/33255 - Support -Wunused-local-typedefs warning |
| * c-decl.c (lookup_name): Use the new maybe_record_typedef_use. |
| (pushdecl): Use the new record_locally_defined_typedef. |
| (store_parm_decls): Allocate cfun->language. |
| (finish_function): Use the new maybe_warn_unused_local_typedefs, |
| and free cfun->language. |
| (c_push_function_context): Allocate cfun->language here only if needed. |
| (c_pop_function_context): Likewise, mark cfun->language |
| for collection only when it should be done. |
| * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes. |
| * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new |
| maybe_record_local_typedef_use. |
| * doc/invoke.texi: Update documentation for |
| -Wunused-local-typedefs. |
| |
| 2011-09-08 Enkovich Ilya <ilya.enkovich@intel.com> |
| |
| * config/i386/i386-protos.h (ix86_lea_outperforms): New. |
| (ix86_avoid_lea_for_add): Likewise. |
| (ix86_avoid_lea_for_addr): Likewise. |
| (ix86_split_lea_for_addr): Likewise. |
| |
| * config/i386/i386.c (LEA_MAX_STALL): New. |
| (increase_distance): Likewise. |
| (insn_defines_reg): Likewise. |
| (insn_uses_reg_mem): Likewise. |
| (distance_non_agu_define_in_bb): Likewise. |
| (distance_agu_use_in_bb): Likewise. |
| (ix86_lea_outperforms): Likewise. |
| (ix86_ok_to_clobber_flags): Likewise. |
| (ix86_avoid_lea_for_add): Likewise. |
| (ix86_avoid_lea_for_addr): Likewise. |
| (ix86_split_lea_for_addr): Likewise. |
| (distance_non_agu_define): Search in pred BBs added. |
| (distance_agu_use): Search in succ BBs added. |
| (IX86_LEA_PRIORITY): Value changed from 2 to 0. |
| (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL. |
| (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision. |
| |
| * config/i386/i386.md: Split added to transform non destructive |
| add into move and add. |
| (lea_1): transformed into insn_and_split to avoid AGU stalls. |
| (lea<mode>_2): Likewise. |
| |
| 2011-09-08 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/50287 |
| * ipa-split.c (split_function): Do not create SSA names for |
| non-gimple-registers. |
| |
| 2011-09-08 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/19831 |
| * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also |
| skip builtins with vdefs that do not really store something. |
| (propagate_necessity): For calls to free that we can associate |
| with an allocation function do not mark the freed pointer |
| definition necessary. |
| (eliminate_unnecessary_stmts): Remove a call to free if |
| the associated call to an allocation function is not necessary. |
| |
| 2011-09-08 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/19831 |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark |
| allocation functions as necessary. |
| |
| 2011-09-08 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin-driver.c (darwin_find_version_from_kernel): New routine |
| cut from ... |
| (darwin_default_min_version): Amended to provide defaults |
| for the cross directory case. |
| (darwin_driver_init): call darwin_default_min_version unconditionally. |
| * config/darwin.h (DEF_MIN_OSX_VERSION): New. |
| * config/darwin9.h: Likewise. |
| * config/darwin10.h: Likewise. |
| * config/rs6000/darwin7.h: Likewise. |
| |
| 2011-09-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50310 |
| * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return |
| code early if TARGET_AVX. |
| (ix86_expand_fp_vcond): Handle LTGT and UNEQ. |
| |
| 2011-09-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector |
| duplicates. |
| |
| PR target/50310 |
| * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up |
| "mode" attribute computation. |
| |
| 2011-09-07 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * regrename.c (struct du_head): Make nregs signed. |
| (closed_chains): Remove. |
| (create_new_chain): Return the new chain. |
| (chain_from_id): New static function. |
| (dump_def_use_chain): Change argument to be an int, indicating |
| the first ID to print. All callers changed. |
| (merge_overlapping_regs): Use chain_from_id. Assert that |
| chains don't conflict with themselves. |
| (rename_chains): Take no argument. Iterate over id_to_chain |
| rather to find chains to rename. Clear tick before the main loop. |
| (struct incoming_reg_info): New struct. |
| (struct bb_rename_info): New struct. |
| (init_rename_info, set_incoming_from_chain, merge_chains): New |
| static functions. |
| (regrename_analyze): New static function, broken out of |
| regrename_optimize. Record and make use of open chain information |
| at basic block boundaries, and merge chains where possible. |
| (scan_rtx_reg): Make this_nregs signed. Don't update |
| closed_chains. |
| (build_def_use): Return a bool to indicate success. All callers |
| changed. Don't initialize global data here. |
| (regrename_optimize): Move most code out of here into |
| regrename_analyze. |
| * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set, |
| range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New |
| static inline functions. |
| * vec.h (FOR_EACH_VEC_ELT_FROM): New macro. |
| |
| * bb-reorder.c (insert_section_boundary_note): Don't check |
| optimize_function_for_speed_p. |
| (gate_handle_partition_blocks): Do it here instead. |
| (gate_handle_reorder_blocks): Move preliminary checks here ... |
| (rest_of_handle_reorder_blocks): ... from here. |
| |
| 2011-09-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/50301 |
| * ipa-cp.c (find_more_values_for_callers_subset): Check jump |
| function index bounds. |
| (perhaps_add_new_callers): Likewise. |
| |
| 2011-09-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/49911 |
| * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced |
| enumerations to the corresponding plain integer type. |
| |
| 2011-09-07 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50319 |
| * tree-if-conv.c (set_bb_predicate): Assert we only set |
| canonical predicates. |
| (add_to_predicate_list): Simplify. Allow TRUTH_NOT_EXPR |
| around canonical predicates. |
| (predicate_bbs): Do not re-gimplify already canonical |
| predicates. Properly unshare them though. |
| (find_phi_replacement_condition): Simplify. |
| |
| 2011-09-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR target/49030 |
| * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare. |
| * config/arm/arm.c (maybe_get_arm_condition_code): New function, |
| reusing the old code from get_arm_condition_code. Return ARM_NV |
| for invalid comparison codes. |
| (get_arm_condition_code): Redefine in terms of |
| maybe_get_arm_condition_code. |
| * config/arm/predicates.md (arm_comparison_operator): Use |
| maybe_get_arm_condition_code. |
| |
| 2011-09-07 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): |
| Canonicalize negated predicates by swapping edges. |
| (forward_propagate_into_cond): Likewise. |
| |
| 2011-09-07 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50213 |
| * tree-flow.h (simple_iv_increment_p): Declare. |
| * tree-ssa-dom.c (simple_iv_increment_p): Export. Also handle |
| POINTER_PLUS_EXPR. |
| * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do |
| not propagate simple IV counter increments. |
| |
| 2011-09-07 Eric Botcazou <ebotcazou@adacore.com> |
| Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/rs6000/rs6000.c (compute_save_world_info): Test |
| cfun->has_nonlocal_label to determine if the out-of-line save |
| world call may be used. |
| |
| 2011-09-07 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump |
| label on the parallel part of the insn. |
| |
| 2011-09-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/50191 |
| * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try |
| avoid_constant_pool_reference first instead of last. |
| |
| 2011-09-06 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * doc/configfiles.texi (Configuration Files): Update documentation |
| about tm_p.h and remove FIXME comment. |
| |
| 2011-09-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG. |
| (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX. |
| |
| 2011-09-06 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin10.h Remove duplicate LIB_SPEC. |
| |
| 2011-09-06 Enkovich Ilya <ilya.enkovich@intel.com> |
| |
| PR middle-end/44382 |
| * target.def (reassociation_width): New hook. |
| |
| * doc/tm.texi.in (reassociation_width): Likewise. |
| |
| * doc/tm.texi (reassociation_width): Likewise. |
| |
| * doc/invoke.texi (tree-reassoc-width): New param documented. |
| |
| * hooks.h (hook_int_uint_mode_1): New default hook. |
| |
| * hooks.c (hook_int_uint_mode_1): Likewise. |
| |
| * config/i386/i386.h (ix86_tune_indices): Add |
| X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL. |
| |
| (TARGET_REASSOC_INT_TO_PARALLEL): New. |
| (TARGET_REASSOC_FP_TO_PARALLEL): Likewise. |
| |
| * config/i386/i386.c (initial_ix86_tune_features): Add |
| X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL. |
| |
| (ix86_reassociation_width): New function. |
| |
| * params.def (PARAM_TREE_REASSOC_WIDTH): New param added. |
| |
| * tree-ssa-reassoc.c (get_required_cycles): New function. |
| (get_reassociation_width): Likewise. |
| (swap_ops_for_binary_stmt): Likewise. |
| (rewrite_expr_tree_parallel): Likewise. |
| |
| (rewrite_expr_tree): Refactored. Part of code moved into |
| swap_ops_for_binary_stmt. |
| |
| (reassociate_bb): Now checks reassociation width to be used and |
| call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed. |
| |
| 2011-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47025 |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END |
| uses nothing. |
| (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like |
| BUILT_IN_FREE. |
| (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument |
| definitely points to. |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): |
| BUILT_IN_VA_START doesn't let its va_list argument escape. |
| * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does |
| not make any previous stores necessary. |
| |
| 2011-09-06 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-inline.h (struct inline_summary): Move versionable flag... |
| * cgraph.h (struct cgraph_local_info): ...here |
| * ipa-cp.c (determine_versionability): Use the new versionable flag. |
| (determine_versionability): Likewise. |
| (ipcp_versionable_function_p): Likewise. |
| (ipcp_generate_summary): Likewise. |
| * ipa-inline-analysis.c (dump_inline_summary): Do not dump the |
| versionable flag. |
| (compute_inline_parameters): Do not clear the versionable flag. |
| (inline_read_section): Do not stream the versionable flag. |
| (inline_write_summary): Likewise. |
| * lto-cgraph.c (lto_output_node): Stream the versionable flag. |
| (input_overwrite_node): Likewise. |
| |
| 2011-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48149 |
| * tree-ssa-sccvn.c (vn_get_expr_for): Simplify. Fix tuplification bug. |
| (vn_valueize): Move earlier. |
| (valueize_expr): Use vn_valueize. |
| (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR |
| operands. |
| (simplify_unary_expression): Simplify. |
| |
| 2011-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48317 |
| * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true |
| trailing array. |
| (sizeof_vn_nary_op): New inline function. |
| (vn_nary_op_lookup_pieces): Adjust. |
| (vn_nary_op_insert_pieces): Likewise. |
| * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length. |
| (init_vn_nary_op_from_pieces): Adjust signature. Deal with |
| any number of operands. |
| (vn_nary_length_from_stmt): New function. |
| (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling. |
| (vn_nary_op_lookup_pieces): Adjust signature and allocate properly |
| sized temporary. |
| (vn_nary_op_lookup): Likewise. |
| (vn_nary_op_lookup_stmt): Likewise. |
| (vn_nary_op_insert_into): Likewise. |
| (vn_nary_op_insert_stmt): Likewise. |
| (visit_use): Handle CONSTRUCTOR as nary. |
| * tree-ssa-pre.c (phi_translate_1): Adjust. |
| (create_expression_by_pieces): Likewise. |
| (compute_avail): Likewise. |
| |
| 2011-09-06 Ira Rosen <ira.rosen@linaro.org> |
| |
| * config/arm/arm.c (arm_preferred_simd_mode): Check |
| TARGET_NEON_VECTORIZE_DOUBLE instead of |
| TARGET_NEON_VECTORIZE_QUAD. |
| (arm_autovectorize_vector_sizes): Likewise. |
| * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse |
| mask of mvectorize-with-neon-double. Add RejectNegative. |
| (mvectorize-with-neon-double): New. |
| |
| 2011-09-06 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching. |
| |
| 2011-09-06 Tom de Vries <tom@codesourcery.com> |
| |
| * recog.c (asm_labels_ok): New function. |
| (check_asm_operands): Use asm_labels_ok. |
| |
| 2011-09-05 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/49606 |
| * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode. |
| (PMODE_INSN): New macro. |
| * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN. |
| (mips_got_load, mips_expand_synci_loop): Likewise. |
| (mips_save_gp_to_cprestore_slot): Handle SImode and DImode |
| cprestore patterns. |
| (mips_emit_loadgp): Use PMODE_INSN. Handle SImode and DImode |
| copygp_mips16 patterns. |
| (mips_expand_prologue): Handle SImode and DImode potential_cprestore |
| and use_cprestore patterns. |
| (mips_override_options): Check for incompatible -mabi and -mlong |
| combinations. |
| * config/mips/mips.md (unspec_got<mode>): Rename to... |
| (unspec_got_<mode>): ...this. |
| (copygp_mips16): Use the Pmode iterator. |
| (potential_cprestore, cprestore, use_cprestore): Likewise. |
| (clear_cache, indirect_jump): Use PMODE_INSN. |
| (indirect_jump<mode>): Rename to... |
| (indirect_jump_<mode>): ...this. |
| (tablejump): Use PMODE_INSN. |
| (tablejump<mode>): Rename to... |
| (tablejump_<mode>): ...this. |
| (exception_receiver): Handle restore_gp_si and restore_gp_di. |
| (restore_gp): Use the Pmode iterator. |
| * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use |
| PMODE_INSN. |
| |
| 2011-09-05 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off. |
| Fix the type of the BIT_AND_EXPR. |
| |
| 2011-09-05 David S. Miller <davem@davemloft.net> |
| |
| * config.host: Add driver-sparc.o and sparc/x-sparc on |
| native sparc*-*-linux* builds. |
| * config/sparc/driver-sparc.c: Correct Linux strings. |
| * config/sparc/linux.h: Add DRIVER_SELF_SPECS. |
| * config/sparc/linux64.h: Likewise. |
| * doc/invoke.texi: Document that Linux also supports |
| -mcpu=native and -mtune=native on sparc. |
| |
| * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3, |
| PROCESSOR_NIAGARA4): New. |
| * config/sparc/sparc.opt: Handle new processor types. |
| * config/sparc/sparc.md: Add to "cpu" attribute. |
| * config/sparc/sparc.h (TARGET_CPU_niagara3, |
| TARGET_CPU_niagara4): New, treat as niagara2. |
| * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2. |
| * config/sparc/sol2.h: Likewise. |
| * config/sparc/niagara2.md: Schedule niagara3 like niagara2. |
| * config/sparc/sparc.c (sparc_option_override): Add |
| niagara3 and niagara4 handling. |
| (sparc32_initialize_trampoline): Likewise. |
| (sparc64_initialize_trampoline): Likewise. |
| (sparc_use_sched_lookahead): Likewise. |
| (sparc_issue_rate): Likewise. |
| (sparc_register_move_cost): Likewise. |
| * config/sparc/driver-sparc.c (cpu_names): Use niagara3 |
| and niagara4 as appropriate. |
| * doc/invoke.texi: Document new processor types. |
| * config.gcc: Recognize niagara3 and niagara4 in --with-cpu |
| and --with-tune options. |
| |
| * config/sparc/sol2-64.h: Move ... |
| * config/sparc/default-64.h: ... to here. Update comment. |
| * config.gcc: Update Solaris sparc to use default-64.h, also |
| prefix this header into the list on sparc64-*-linux. |
| * config/sparc/linux64.h (TARGET_DEFAULT): Only override if |
| TARGET_64BIT_DEFAULT is defined. Remove commented out reference |
| to MASK_HARD_QUAD. |
| |
| 2011-09-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50289 |
| * config/avr/avr.c (sequent_regs_live): Don't recognize sequences |
| that contain global register variable. |
| |
| 2011-09-05 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace. |
| |
| 2011-09-05 Richard Guenther <rguenther@suse.de> |
| |
| * stor-layout.c (layout_type): Use size_binop for array size |
| calculations. |
| |
| 2011-09-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.h (progmem_section): Remove Declaration. |
| * config/avr/avr.c (progmem_section): Make static and rename to |
| progmem_swtable_section. |
| (avr_output_addr_vec_elt): No need to switch sections. |
| (avr_asm_init_sections): Use output_section_asm_op as section |
| callback for progmem_swtable_section. |
| (avr_output_progmem_section_asm_op): Remove Function. |
| (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define. |
| (avr_asm_function_rodata_section): New static Function. |
| * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output |
| alignment 2**1 for jump tables. |
| |
| 2011-09-04 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that |
| parameter is SSA name. |
| |
| 2011-09-04 Richard Guenther <rguenther@suse.de> |
| |
| Revert |
| 2011-08-31 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE |
| special-casing. |
| |
| 2011-09-04 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR debug/49901 |
| * config/darwin.h (DEBUG_MACRO_SECTION): New macro. |
| |
| 2011-09-04 Jakub Jelinek <jakub@redhat.com> |
| Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50208 |
| * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an |
| argument. Check that def_stmt is inside the loop. |
| (vect_recog_widen_mult_pattern): Update calls to |
| vect_handle_widen_mult_by_cons. |
| (vect_operation_fits_smaller_type): Check that def_stmt is |
| inside the loop. |
| |
| 2011-09-04 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vectorizer.c (vect_print_dump_info): Print line |
| number when dumping to a file. |
| (vectorize_loops): Add new messages to dump file. |
| |
| 2011-09-03 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (ipa_jump_func_t): New typedef. |
| (struct ipa_edge_args): Removed field argument_count, field |
| jump_functions turned into a vector. |
| (ipa_set_cs_argument_count): Removed. |
| (ipa_get_cs_argument_count): Updated to work on vectors. |
| (ipa_get_ith_jump_func): Likewise. |
| * ipa-prop.c (ipa_count_arguments): Removed. |
| (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access |
| jump functions. Update caller. |
| (compute_pass_through_member_ptrs): Likewise. |
| (compute_cst_member_ptr_arguments): Likewise. |
| (ipa_compute_jump_functions_for_edge): Get number of arguments from |
| the statement, allocate vector. |
| (ipa_compute_jump_functions): Do not call ipa_count_arguments. |
| (duplicate_ipa_jump_func_array): Removed. |
| (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count. |
| (ipa_read_node_info): Allocate vector. |
| |
| 2011-09-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/50232 |
| * config/pa/pa.md (return): Define "return" insn pattern. |
| (epilogue): Use it when no epilogue is needed. |
| * config/pa/pa.c (pa_can_use_return_insn): New function. |
| * config/pa/pa-protos.h (pa_can_use_return_insn): Declare. |
| |
| 2011-09-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgexpand.c (add_stack_var): Assert that the alignment is not zero. |
| * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change. |
| Force at least BITS_PER_UNIT alignment on the new variable. |
| |
| 2011-09-02 Gary Funck <gary@intrepid.com> |
| |
| * opts.c (print_specific_help): Fix off-by-one compare in |
| assertion check. |
| * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, |
| CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): |
| Increase by +5 to allow for more languages. |
| * optc-gen.awk: Generate #if that ensures that the number of |
| languages is within the implementation-defined limit. |
| |
| 2011-09-02 Michael Matz <matz@suse.de> |
| |
| PR middle-end/50260 |
| * ipa-split.c (split_function): Call add_referenced_var. |
| |
| * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann. |
| (cond_if_else_store_replacement_1): Ditto. |
| * tree-ssa-pre.c (get_representative_for): Ditto. |
| (create_expression_by_pieces): Ditto. |
| (insert_into_preds_of_block): Ditto. |
| * tree-sra.c (create_access_replacement): Ditto. |
| (get_replaced_param_substitute): Ditto. |
| |
| 2011-09-02 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New |
| automata_options. |
| (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit. |
| (l1w, s1w, l2w, s2w): Define in the main automaton. |
| (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New |
| units. |
| * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member. |
| (c6x_unit_names): Add the new units. |
| (c6x_unit_codes): New static array. |
| (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1, |
| UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1, |
| UNIT_QID_SIDE_OFFSET): New macros. |
| (RESERVATION_S2): Adjust value. |
| (c6x_option_override): Compute c6x_unit_codes. |
| (assign_reservations): Take the unit_mask of the last instruction |
| into account. Detect floating point reservations by looking for |
| the new units. Don't assign reservations if the field is already |
| nonzero. |
| (struct c6x_sched_context): Add member prev_cycle_state_ctx. |
| (init_sched_state): Initialize it. |
| (c6x_clear_sched_context): Free it. |
| (insn_set_clock): Clear reservation. |
| (prev_cycle_state): New static variable. |
| (c6x_init_sched_context): Save it. |
| (c6x_sched_init): Allocate space for it and clear it. |
| (c6x_sched_dfa_pre_cycle_insn): New static function. |
| (c6x_dfa_new_cycle): Save state at the start of a new cycle. |
| (c6x_variable_issue): Only record units in the unit_mask that |
| were not set at the start of the cycle. |
| (c6x_variable_issue): Compute and store the unit_mask from the |
| current state. |
| (reorg_split_calls): Ensure the new information remains correct. |
| (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT, |
| TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define. |
| * config/c6x/c6x.h (CPU_UNITS_QUERY): Define. |
| * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_): |
| Add special reservations. |
| * config/c6x/c6x-sched.md: Regenerate. |
| |
| 2011-09-02 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (ipa_node_params): Removed fields |
| called_with_var_arguments and node_versionable. |
| (ipa_set_called_with_variable_arg): Removed. |
| (ipa_is_called_with_var_arguments): Likewise. |
| * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert. |
| (determine_versionability): Do not check for type attributes and va |
| builtins. Record versionability into inline summary. |
| (initialize_node_lattices): Do not check |
| ipa_is_called_with_var_arguments. |
| (propagate_constants_accross_call): Likewise, ignore arguments we do |
| not have PARM_DECLs for, set variable flag for parameters that were |
| not passed a value. |
| (create_specialized_node): Dump info that we cannot change signature. |
| * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable |
| number of arguments. |
| (ipa_make_edge_direct_to_target): Likewise. |
| (ipa_update_after_lto_read): Likewise. |
| (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag. |
| * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if |
| they were remapped. |
| |
| 2011-09-02 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/27460 |
| PR middle-end/29269 |
| * doc/md.texi (vcond): Document. |
| * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion |
| optab with two modes. |
| * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu. |
| (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu. |
| (vcond_optab): Adjust. |
| (vcondu_optab): Likewise. |
| (expand_vec_cond_expr_p): Adjust prototype. |
| * optabs.c (get_vcond_icode): Adjust. |
| (expand_vec_cond_expr_p): Likewise. |
| (expand_vec_cond_expr): Likewise. |
| * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison |
| vector type. |
| (vectorizable_condition): Allow differing types for comparison |
| and result. |
| * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode |
| for the comparison. |
| * config/i386/sse.md (vcond<mode>): Split to |
| vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>, |
| vcond<V_128:mode><VI124_128:mode> and |
| vcondu<V_128:mode><VI124_128:mode>. |
| (vcondv2di): Change to vcond<VI8F_128:mode>v2di. |
| (vconduv2di): Likewise. |
| * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>. |
| (vcondu<mode>): Likewise. |
| * config/ia64/vect.md (vcond<mode>): Likewise. |
| (vcondu<mode>): Likewise. |
| (vcondv2sf): Likewise. |
| * config/mips/mips-ps-3d.md (vcondv2sf): Likewise. |
| * config/rs6000/paired.md (vcondv2sf): Likewise. |
| * config/rs6000/vector.md (vcond<mode>): Likewise. |
| (vcondu<mode>): Likewise. |
| * config/spu/spu.md (vcond<mode>): Likewise. |
| (vcondu<mode>): Likewise. |
| |
| 2011-09-02 Richard Guenther <rguenther@suse.de> |
| |
| * pretty-print.h (pp_unsigned_wide_integer): New. |
| * tree-pretty-print.c (dump_generic_node): Print unsigned |
| host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer. |
| |
| 2011-09-02 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR target/49987 |
| * config/rs6000/rs6000.c (paired_expand_vector_init): Check for |
| valid CONST_VECTOR operands. |
| (rs6000_expand_vector_init): Likewise. |
| |
| 2011-09-02 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta. |
| * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use |
| BINFO_VTABLE. Parameter delta removed, all callers updated. |
| * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead |
| BINFO_VTABLE. |
| * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated |
| all calls. |
| * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed |
| handling of thunk_delta. |
| * ipa-cp.c (get_indirect_edge_target): Removed parameter delta. |
| (devirtualization_time_bonus): Do not handle thunk deltas. |
| (ipcp_discover_new_direct_edges): Likewise. |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. |
| (try_make_edge_direct_simple_call): Likewise. |
| (try_make_edge_direct_virtual_call): Likewise. |
| * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark |
| parameter set as unused. |
| (output_edge_opt_summary): Likewise. Mark both parameters as unused. |
| * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark |
| parameter set as unused. |
| (output_edge_opt_summary): Likewise. Mark both parameters as unused. |
| (input_edge_opt_summary): Likewise. |
| * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream |
| BINFO_VIRTUALS at all. |
| * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise. |
| |
| 2011-09-02 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0). |
| (ccp_fold_stmt): Continue replacing args when folding alloca fails. |
| |
| 2011-08-31 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR |
| handling here, from ... |
| (expand_expr_real_1): ... here. |
| * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR |
| and VEC_COND_EXPR. |
| * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR |
| a GIMPLE_TERNARY_RHS. |
| * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR |
| and VEC_COND_EXPR here ... |
| (verify_gimple_assign_single): ... not here. |
| * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding. |
| * tree-object-size.c (cond_expr_object_size): Adjust. |
| (collect_object_sizes_for): Likewise. |
| * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs. |
| * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify. |
| (ssa_forward_propagate_and_combine): Adjust. |
| * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR |
| as ternary. |
| * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust. |
| * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise. |
| * tree-vect-stmt.c (vectorizable_condition): Likewise. |
| * tree-vrp.c (extract_range_from_cond_expr): Likewise. |
| (extract_range_from_assignment): Likewise. |
| |
| 2011-08-31 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/i386/i386.md: Use (match_test ...) for attribute tests. |
| * config/i386/mmx.md: Likewise. |
| * config/i386/sse.md: Likewise. |
| * config/i386/predicates.md (call_insn_operand): Use |
| (not (match_test "...")) instead of (match_test "!...") |
| * config/i386/constraints.md (w): Likewise. |
| |
| 2011-08-31 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * doc/md.texi: Describe the use of match_tests in attribute tests. |
| * rtl.def (MATCH_TEST): Update commentary. |
| * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag) |
| (write_test_expr, walk_attr_value): Handle MATCH_TEST. |
| |
| 2011-08-31 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs. |
| (attr_string): Use copy_md_ptr_loc. |
| |
| 2011-08-31 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/49886 |
| * ipa-inline-analysis.c (compute_inline_parameters): Set |
| can_change_signature of noes with typde attributes. |
| * ipa-split.c (split_function): Do not skip any arguments if |
| can_change_signature is set. |
| |
| 2011-08-31 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias |
| check removed. |
| |
| 2011-08-31 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE |
| special-casing. |
| |
| 2011-08-31 Marc Glisse <marc.glisse@inria.fr> |
| |
| * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals. |
| |
| 2011-08-31 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/43513 |
| * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule. |
| * tree-ssa-ccp.c (params.h): Include. |
| (fold_builtin_alloca_for_var): New function. |
| (ccp_fold_stmt): Use fold_builtin_alloca_for_var. |
| |
| 2011-08-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_valid_target_attribute_inner_p): |
| Handle FMA option. |
| |
| 2011-08-30 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2, |
| b3 and b4 unsigned. |
| |
| 2011-08-30 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (arm_gen_constant): Set can_negate correctly |
| when code is SET. |
| |
| 2011-08-30 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48571 |
| * gimple.h (maybe_fold_offset_to_address): Remove. |
| (maybe_fold_offset_to_reference): Likewise. |
| (maybe_fold_stmt_addition): Likewise. |
| (may_propagate_address_into_dereference): Likewise. |
| * tree-inline.c (remap_gimple_op_r): Do not reconstruct |
| array references. |
| * gimple-fold.c (canonicalize_constructor_val): Likewise. |
| Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF |
| addresses instead. |
| (may_propagate_address_into_dereference): Remove. |
| (maybe_fold_offset_to_array_ref): Likewise. |
| (maybe_fold_offset_to_reference): Likewise. |
| (maybe_fold_offset_to_address): Likewise. |
| (maybe_fold_stmt_addition): Likewise. |
| (fold_gimple_assign): Do not reconstruct array references but |
| instead canonicalize invariant POINTER_PLUS_EXPRs to invariant |
| MEM_REF addresses. |
| (gimple_fold_stmt_to_constant_1): Likewise. |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. |
| * gimplify.c (gimplify_conversion): Likewise. |
| (gimplify_expr): Likewise. |
| |
| 2011-08-30 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/fmaintrin.h: New. |
| * config.gcc: Add fmaintrin.h. |
| * config/i386/i386.c |
| (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New. |
| <IX86_BUILTIN_VFMADDSD3>: Likewise. |
| * config/i386/sse.md (fmai_vmfmadd_<mode>): New. |
| (*fmai_fmadd_<mode>): Likewise. |
| (*fmai_fmsub_<mode>): Likewise. |
| (*fmai_fnmadd_<mode>): Likewise. |
| (*fmai_fnmsub_<mode>): Likewise. |
| * config/i386/immintrin.h: Add fmaintrin.h. |
| |
| 2011-08-30 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * genautomata.c (NO_COMB_OPTION): New macro. |
| (no_comb_flag): New static variable. |
| (gen_automata_option): Handle NO_COMB_OPTION. |
| (comb_vect_p): False if no_comb_flag. |
| (add_vect): Move computation of min/max values. Return early if |
| no_comb_flag. |
| * doc/md.texi (automata_option): Document no-comb-vect. |
| |
| * config/i386/i386.c (get_pc_thunk_name): Change prefix to |
| "__x86.get_pc_thunk". |
| |
| * bb-reorder.c (insert_section_boundary_note): Only do it if |
| we reordered the blocks; i.e. not if !optimize_function_for_speed_p. |
| |
| 2011-08-30 Christian Bruel <christian.bruel@st.com> |
| |
| * coverage.c (coverage_init): Check flag_branch_probabilities instead of |
| flag_profile_use. |
| |
| 2011-08-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default |
| to off. Document switch. |
| * doc/invoke.texi (-msave-toc-indirect): Ditto. |
| |
| 2011-08-29 Jakub Jelinek <jakub@redhat.com> |
| |
| * gthr-posix.h (__gthread_active_p): Do not use preprocessor |
| conditionals and comments inside macro arguments. |
| |
| 2011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (constant_boolean_node): Adjust prototype. |
| * fold-const.c (fold_convert_loc): Move aggregate conversion |
| leeway down. |
| (constant_boolean_node): Make value parameter boolean, add |
| vector type handling. |
| (fold_unary_loc): Use constant_boolean_node. |
| (fold_binary_loc): Preserve types properly when folding |
| COMPLEX_EXPR <__real x, __imag x>. |
| * gimplify.c (gimplify_expr): Handle vector comparison. |
| * tree.def (EQ_EXPR, ...): Document behavior on vector typed |
| comparison. |
| * tree-cfg.c (verify_gimple_comparison): Verify vector typed |
| comparisons. |
| |
| 2011-08-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48722 |
| * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs, |
| reset_used_flags also in CALL_INSN_FUNCTION_USAGE. |
| (verify_rtl_sharing): Likewise and verify_rtx_sharing |
| in there too. |
| (unshare_all_rtl_in_chain): For CALL_INSNs |
| copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE. |
| |
| 2011-08-29 Richard Guenther <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location |
| on the built ADDR_EXPR. |
| |
| 2011-08-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/50215 |
| * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn |
| before adding ENTRY_VALUE to val->locs. |
| |
| 2011-08-28 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR bootstrap/50218 |
| * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize |
| comp. |
| |
| 2011-08-27 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/rtl.texi (simple_return): Document. |
| (parallel, PATTERN): Here too. |
| * doc/md.texi (return): Mention it's allowed to expand to simple_return |
| in some cases. |
| (simple_return): Document standard pattern. |
| * gengenrtl.c (special_rtx): SIMPLE_RETURN is special. |
| * final.c (final_scan_insn): Use ANY_RETURN_P on body. |
| * reorg.c (function_return_label, function_simple_return_label): |
| New static variables, replacing... |
| (end_of_function_label): ... this. |
| (simplejump_or_return_p): New static function. |
| (optimize_skip, steal_delay_list_from_fallthrough, |
| fill_slots_from_thread): Use it. |
| (relax_delay_slots): Likewise. Use ANY_RETURN_P on body. |
| (rare_destination, follow_jumps): Use ANY_RETURN_P on body. |
| (find_end_label): Take a new arg which is one of the two return |
| rtxs. Depending on which, set either function_return_label or |
| function_simple_return_label. All callers changed. |
| (make_return_insns): Make both kinds. |
| (dbr_schedule): Adjust for two kinds of end labels. |
| * function.c (emit_return_into_block): Set JUMP_LABEL properly. |
| * genemit.c (gen_exp): Handle SIMPLE_RETURN. |
| (gen_expand, gen_split): Use ANY_RETURN_P. |
| * df-scan.c (df_uses_record): Handle SIMPLE_RETURN. |
| * rtl.def (SIMPLE_RETURN): New code. |
| * ifcvt.c (find_if_case_1): Be more careful about |
| redirecting jumps to the EXIT_BLOCK. |
| * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p, |
| returnjump_p_1): Handle SIMPLE_RETURNs. |
| * print-rtl.c (print_rtx): Likewise. |
| * rtl.c (copy_rtx): Likewise. |
| * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P. |
| * combine.c (simplify_set): Likewise. |
| * resource.c (find_dead_or_set_registers, mark_set_resources): |
| Likewise. |
| * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1, |
| copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs. |
| (init_emit_regs): Initialize simple_return_rtx. |
| * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to |
| force_nonfallthru_and_redirect. |
| * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN. |
| (GR_SIMPLE_RETURN): New enum value. |
| (simple_return_rtx): New macro. |
| * basic-block.h (force_nonfallthru_and_redirect): Adjust |
| declaration. |
| * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label |
| argument. All callers changed. Be careful about what kinds of |
| returnjumps to generate. |
| * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb, |
| ix86_pad_short_function): Likewise. |
| * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds |
| of return. |
| * config/mips/mips.md (any_return): New code_iterator. |
| (optab): Add cases for return and simple_return. |
| (return): Expand to a simple_return. |
| (simple_return): New pattern. |
| (*<optab>, *<optab>_internal for any_return): New patterns. |
| (return_internal): Remove. |
| * config/mips/mips.c (mips_expand_epilogue): Make the last insn |
| a simple_return_internal. |
| |
| 2011-08-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*absneg<mode>2): Fix split condition. |
| (vec_extract_lo_<mode>): Prevent both operands in memory. |
| (vec_extract_lo_v16hi): Ditto. |
| (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint. |
| |
| 2011-08-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note. |
| (*sse2_mulv4si3): Ditto. |
| (mulv2di3): Ditto. |
| * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV |
| notes to REG_EQUAL. |
| |
| 2011-08-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50202 |
| * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note |
| when all outputs are unused. |
| (sse4_2_pcmpistr): Ditto. |
| |
| 2011-08-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (round<mode>2): New expander. |
| * config/i386/i386.c (enum ix86_builtins): Add |
| IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}. |
| (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256} |
| descriptions. |
| (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins. |
| (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor. |
| |
| 2011-08-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/50083 |
| * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert |
| only when TARGET_C99_FUNCTIONS. |
| <BUILT_IN_NEARBYINT{,F,L}>: Ditto. |
| <BUILT_IN_RINT{,F,L}>: Ditto. |
| |
| 2011-08-26 Michael Matz <matz@suse.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR lto/50165 |
| * lto-streamer-in.c (canon_file_name): Initialize new_slot->len; |
| don't call strlen twice, use memcpy. |
| |
| 2011-08-26 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/bmi2intrin.h: Allow in <immintrin.h>. |
| * config/i386/bmiintrin.h: Likewise. |
| * config/i386/lzcntintrin.h: Likewise. |
| |
| * config/i386/immintrin.h: Include <lzcntintrin.h>, |
| <bmiintrin.h> and <bmi2intrin.h>. |
| |
| 2011-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/50166 |
| * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main. |
| * configure: Regenerate. |
| |
| 2011-08-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/50179 |
| * c-typeck.c (c_process_expr_stmt): Skip over nops and |
| call mark_exp_read even if exprv is ADDR_EXPR. |
| |
| 2011-08-26 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * df-problems.c (df_note_bb_compute): Pass uses rather than defs |
| to df_set_dead_notes_for_mw. |
| |
| 2011-08-26 Richard Guenther <rguenther@suse.de> |
| |
| * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF]. |
| |
| 2011-08-26 Zdenek Dvorak <ook@ucw.cz> |
| Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field. |
| (struct ivopts_data): Add loop_single_exit_p field. |
| (niter_for_exit): Change parameter desc_p into return value. Return |
| desc if desc->may_be_zero. Free desc if unused. |
| (niter_for_single_dom_exit): Change return type. |
| (find_induction_variables): Handle changed return type of |
| niter_for_single_dom_exit. Dump may_be_zero. |
| (add_candidate_1): Keep original base and step type for IP_ORIGINAL. |
| (set_use_iv_cost): Add and handle comp parameter. |
| (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add |
| comp argument to set_use_iv_cost. |
| (strip_wrap_conserving_type_conversions, expr_equal_p) |
| (difference_cannot_overflow_p, iv_elimination_compare_lt): New function. |
| (may_eliminate_iv): Add comp parameter. Handle new return type of |
| niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt. |
| (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost |
| and may_eliminate_iv. |
| (rewrite_use_compare): Move call to iv_elimination_compare to ... |
| (may_eliminate_iv): Here. |
| (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p. |
| |
| 2011-08-26 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-pretty-print (dump_generic_node): Test for NULL_TREE before |
| accessing TREE_TYPE. |
| |
| 2011-08-26 Jiangning Liu <jiangning.liu@arm.com> |
| |
| * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well. |
| (*ior_scc_scc_cmp): Likewise |
| (*and_scc_scc): Likewise. |
| (*and_scc_scc_cmp): Likewise. |
| (*and_scc_scc_nodom): Likewise. |
| (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2. |
| |
| 2011-08-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * rtlanal.c (nonzero_bits1): Handle CLRSB. |
| |
| 2011-08-26 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (string_constant): Handle &MEM_REF. |
| |
| 2011-08-26 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (struct four_ints): New type. |
| (count_insns_for_constant): Delete function. |
| (find_best_start): Delete function. |
| (optimal_immediate_sequence): New function. |
| (optimal_immediate_sequence_1): New function. |
| (arm_gen_constant): Move constant splitting code to |
| optimal_immediate_sequence. |
| Rewrite constant negation/invertion code. |
| |
| 2011-08-26 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm-protos.h (const_ok_for_op): Add prototype. |
| * config/arm/arm.c (const_ok_for_op): Add support for addw/subw. |
| Remove prototype. Remove static function type. |
| * config/arm/arm.md (*arm_addsi3): Add addw/subw support. |
| Add arch attribute. |
| * config/arm/constraints.md (Pj, PJ): New constraints. |
| |
| 2011-08-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New. |
| ("cortex_a9_multiply_long"): New and use above. Handle all |
| long multiply cases. |
| ("cortex_a9_multiply"): Handle smmul and smmulr. |
| ("cortex_a9_mac"): Handle smmla. |
| |
| 2011-08-25 Richard Henderson <rth@redhat.com> |
| |
| PR 50132 |
| PR 49864 |
| * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for |
| non-constant stack adjutment. |
| * expr.c (find_args_size_adjust): Break out from ... |
| (fixup_args_size_notes): ... here. |
| * rtl.h (find_args_size_adjust): Declare. |
| |
| 2011-08-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3, |
| sse4 and sse4_noavx. |
| (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx. |
| (*pushdf_rex64): Change Y2 register constraint to x. |
| (*movdf_internal_rex64): Ditto. |
| (*zero_extendsidi2_rex64): Ditto. |
| (*movdi_internal): Change Y2 register constraint to x |
| and update "isa" attribute. |
| (*pushdf): Ditto. |
| (*movdf internal): Ditto. |
| (zero_extendsidi2_1): Ditto. |
| (*truncdfdf_mixed): Ditto. |
| (*truncxfdf2_mixed): Ditto. |
| * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2 |
| register constraint to x. |
| (*movv2sf_internal_rex64): Ditto. |
| (*mov<mode>_internal): Change Y2 register constraint to x |
| and add "isa" attribute. |
| (*movv2sf_internal): Ditto. |
| (*vec_extractv2si_1): Ditto. |
| * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register |
| constraints to x and update "isa" attribute. |
| (*vec_interleave_highv2df): Change Y3 registerconstraint |
| to x and update "isa" attribute. |
| (*vec_interleave_lowv2df): Ditto. |
| (*vec_concatv2df): Change Y2 register constraint to x and |
| update "isa" attribute. |
| (sse2_loadld): Ditto. |
| (*vec_extractv2di_1): Ditto. |
| (*vec_dupv4si): Ditto. |
| (*vec_dupv2di): Ditto. |
| (*vec_concatv4si): Ditto. |
| (vec_concatv2di): Ditto. |
| * config/i386/constraints.md (Y2): Remove. |
| (Y3): Ditto. |
| (Y4): Ditto. |
| |
| 2011-08-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use, |
| dump_def_use_chain): Don't declare. |
| (mark_conflict, create_new_chain): Move before users. |
| (regrename_optimize): Move to near end of file. |
| |
| 2011-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr-protos.h (byte_immediate_operand): Remove Prototype. |
| (secondary_input_reload_class): Remove Prototype. |
| * config/avr/avr.c (byte_immediate_operand): Remove Function. |
| * config/avr/avr.md (setmemhi): Use u8_operand. |
| (strlenhi): Use const0_rtx for comparison. |
| * config/avr/avr.h (avr_reg_order): Remove Declaration. |
| |
| 2011-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (reg_class_tab): Make local to |
| avr_regno_reg_class. Return smallest register class available. |
| |
| 2011-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (STR_PREFIX_P): New Define. |
| (avr_asm_declare_function_name): Use it. |
| (avr_asm_named_section): Use it. |
| (avr_section_type_flags): Use it. |
| |
| 2011-08-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/md.texi (automata_option): Document collapse-ndfa. |
| * genautomata.c (COLLAPSE_OPTION): New macro. |
| (collapse_flag): New static variable. |
| (struct description): New member normal_decls_num. |
| (struct automaton): New members advance_ainsn and collapse_ainsn. |
| (gen_automata_option): Check for COLLAPSE_OPTION. |
| (collapse_ndfa_insn_decl): New static variable. |
| (add_collapse_ndfa_insn_decl, special_decl_p): New functions. |
| (find_arc): If insn is the collapse-ndfa insn, accept any arc we find. |
| (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if |
| necessary. Use normal_decls_num rather than decls_num, remove |
| test for special decls. |
| (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p. |
| (make_automaton); Likewise. Use the new advance_cycle_insn member |
| of struct automaton. |
| (create_composed_state): Disallow advance-cycle arcs if collapse_flag |
| is set. |
| (NDFA_to_DFA): Don't create composed states for the collapse-ndfa |
| transition. Create the necessary transitions for it. |
| (create_ainsns): Return void. Take an automaton_t argument, and |
| update its ainsn_list, advance_ainsn and collapse_ainsn members. All |
| callers changed. |
| (COLLAPSE_NDFA_VALUE_NAME): New macro. |
| (output_tables): Output code to define it. |
| (output_internal_insn_code_evaluation): Output code to accept |
| const0_rtx as collapse-ndfa transition. |
| (output_default_latencies, output_print_reservation_func, |
| output_print_description): Reorganize loops to use normal_decls_num |
| as loop bound; remove special case for advance_cycle_insn_decl. |
| (initiate_automaton_gen): Handle COLLAPSE_OPTION. |
| (check_automata_insn_issues): Check for collapse_ainsn. |
| (expand_automate): Allocate sufficient space. Initialize |
| normal_decls_num. |
| |
| 2011-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md: Fix indentation from r177991. |
| |
| 2011-08-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * regrename.c (struct du_head): Remove member terminated. |
| (create_new_chain): Don't initialize it. |
| (scan_rtx_reg): Don't set or test it, test the open_chains_set |
| bitmap instead. |
| (tick, this_tick): New global variables, moved out of |
| regrename_optimize. |
| (current_id, open_chains, closed_chains, open_chains_set, |
| live_in_chains, live_hard_regs): Reorder declarations. |
| (dump_def_use_chain): Move function earlier in the file. |
| (rename_chains): New static function, broken out of |
| regrename_optimize. |
| (regrename_optimize): Use it. Remove #if 0'ed code. |
| |
| 2011-08-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> |
| |
| * varasm.c: (default_binds_local_p_1): Commentary typo fix. |
| |
| 2011-08-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/50172 |
| * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed. |
| |
| 2011-08-24 Richard Guenther <rguenther@suse.de> |
| |
| * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the |
| ref in the basic-block case. Move stripping array-refs |
| to the place we create an access-function for it. Remove |
| bogus stripping down a MEM_REF to its base. |
| |
| 2011-08-24 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_comparison): Fold &a < &a + 4 even |
| with -fno-strict-overflow. |
| |
| 2011-08-24 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vectorizer.c (vect_print_dump_info): Avoid the |
| file and location clutter when dumping to dump files. |
| |
| 2011-08-24 Simon Baldwin <simonb@google.com> |
| |
| * gengtype-state.c (write_state): Remove timestamped header line. |
| |
| 2011-08-24 Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o) |
| (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o) |
| (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o) |
| (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New. |
| (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o) |
| (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o) |
| (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation |
| rules. |
| (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER). |
| |
| 2011-08-24 Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@). |
| |
| 2011-08-24 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50067 |
| * tree-data-ref.c (dr_analyze_indices): Do not add an access |
| function for a MEM_REF base that has no evolution in the loop |
| nest or that is not analyzable. |
| |
| 2011-08-23 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira.c (ira_init_register_move_cost): Check small subclasses |
| through ira_reg_class_max_nregs and ira_available_class_regs. |
| |
| 2011-08-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/constraints.md (Yp): New register constraint. |
| * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using |
| Yp register constraint. |
| (*addqi_1): Merge with *addqi_1_lea using Yp register constraint. |
| (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint. |
| (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint. |
| |
| 2011-08-23 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/sse.md (<s>mul<mode>3_highpart): Update. |
| |
| 2011-08-23 Mark Heffernan <meheff@google.com> |
| |
| PR middle-end/38509 |
| * common.opt (Wfree-nonheap-object): New option. |
| * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object. |
| * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object |
| to warning. |
| (expand_builtin): Make warning conditional. |
| |
| 2011-08-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (type): Add imulx, ishiftx and rotatex. |
| (length_immediate): Handle imulx, ishiftx and rotatex. |
| (imm_disp): Ditto. |
| (isa): Add bmi2. |
| (enabled): Handle bmi2. |
| (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3. |
| (*umul<mode><dwi>3): Ditto. Add imulx BMI2 alternative. |
| (*bmi2_umulditi3_1): New insn pattern. |
| (*bmi2_umulsidi3_1): Ditto. |
| (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency. |
| (*bmi2_ashl<mode>3_1): New insn pattern. |
| (*ashl<mode>3_1): Add ishiftx BMI2 alternative. |
| (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency. |
| (*bmi2_ashlsi3_1_zext): New insn pattern. |
| (*ashlsi3_1_zext): Add ishiftx BMI2 alternative. |
| (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency. |
| (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern. |
| (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative. |
| (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid |
| flags dependency. |
| (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern. |
| (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative. |
| (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid |
| flags dependency. |
| (*bmi2_rorx<mode>3_1): New insn pattern. |
| (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative. |
| (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency. |
| (*rotatert<mode>3_1 splitter): Ditto. |
| (*bmi2_rorxsi3_1_zext): New insn pattern. |
| (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative. |
| (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency. |
| (*rotatertsi3_1_zext splitter): Ditto. |
| |
| 2011-08-23 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New. |
| (OPTION_MASK_ISA_BMI2_UNSET): Likewise. |
| (ix86_handle_option): Handle OPT_mbmi2 case. |
| * config.gcc (i[34567]86-*-*): Add bmi2intrin.h. |
| (x86_64-*-*): Likewise. |
| * config/i386/bmi2intrin.h: New file. |
| * config/i386/cpuid.h (bit_BMI2): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect |
| BMI2 feature. |
| * config/i386/i386-c.c (ix86_target_macros_internal): |
| Conditionally define __BMI2__. |
| * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2. |
| Handle BMI2 option. |
| (ix86_valid_target_attribute_inner_p): Handle BMI2 option. |
| (print_reg): New code. |
| (ix86_print_operand): Likewise. |
| (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64, |
| IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32, |
| IX86_BUILTIN_PEXT64. |
| (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64, |
| IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32, |
| IX86_BUILTIN_PEXT64. |
| * config/i386/i386.h (TARGET_BMI2): New. |
| * config/i386/i386.md (UNSPEC_PDEP): New. |
| (UNSPEC_PEXT): Likewise. |
| (*bmi2_bzhi_<mode>3): Likewise. |
| (*bmi2_pdep_<mode>3): Likewise. |
| (*bmi2_pext_<mode>3): Likewise. |
| * config/i386/i386.opt (mbmi2): New. |
| * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__ |
| is defined. |
| * doc/extend.texi: Document BMI2 built-in functions. |
| * doc/invoke.texi: Document -mbmi2. |
| |
| 2011-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/50161 |
| * simplify-rtx.c (simplify_const_unary_operation): If |
| op is CONST_INT, don't look at op_mode, but use instead mode. |
| * optabs.c (add_equal_note): For FFS, CLZ, CTZ, |
| CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for |
| operation and TRUNCATE/ZERO_EXTEND if needed. |
| * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap): |
| Document that operand mode must be same as operation mode, |
| or VOIDmode. |
| * config/avr/avr.md (paritysi2, *parityqihi2.libgcc, |
| *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc, |
| *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2, |
| *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops |
| use the mode of operand for the operation and add truncate |
| or zero_extend around if needed. |
| * config/c6x/c6x.md (ctzdi2): Likewise. |
| * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise. |
| |
| 2011-08-12 Michael Matz <matz@suse.de> |
| |
| * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment. |
| (gimple_expand_cfg): Merge alignment info for coalesced pointer |
| SSA names. |
| |
| 2011-08-23 Richard Guenther <rguenther@suse.de> |
| |
| * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency. |
| * tree-affine.h (aff_comb_cannot_overlap_p): Declare. |
| * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved |
| from ... |
| * tree-ssa-loop-im.c (cannot_overlap_p): ... here. |
| (mem_refs_may_alias_p): Adjust. |
| * tree-data-ref.h (dr_may_alias_p): Adjust. |
| * tree-data-ref.c: Include tree-affine.h. |
| (dr_analyze_indices): Do nothing for the non-loop case. |
| (dr_may_alias_p): Distinguish loop and non-loop case. Disambiguate |
| more cases in the non-loop case. |
| * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust |
| calls to dr_may_alias_p. |
| (write_alias_graph_to_ascii_ecc): Likewise. |
| (write_alias_graph_to_ascii_dot): Likewise. |
| (build_alias_set_optimal_p): Likewise. |
| |
| 2011-08-23 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50162 |
| * tree-vect-stmts.c (vectorizable_call): Fix argument lookup. |
| |
| 2011-08-23 Richard Guenther <rguenther@suse.de> |
| |
| * tree-data-ref.c (dr_analyze_indices): Add comments, handle |
| REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs. |
| (create_data_ref): Also dump access functions for the created data-ref. |
| |
| 2011-08-22 Uros Bizjak <ubizjak@gmail.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR target/50155 |
| * config/i386/sse.md (VI_AVX2): New. |
| (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator. |
| (*<plusminus_insn><mode>3): Ditto. |
| (<sse2_avx2>_andnot<mode>3): Ditto. |
| (*andnot<mode>3): Fix order of cond operands. |
| Add asserts for correct TARGET_xxx. |
| (*<any_logic:code><mode>3): Ditto. |
| |
| 2011-08-22 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro. |
| * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove. |
| * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change |
| regclass argument type to reg_class_t. Change 'max' and 'v' vars |
| and return types to unsigned char. Use reg_class_contents instead |
| of class_contents. |
| (TARGET_CLASS_MAX_NREGS): Define. |
| |
| 2011-08-22 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation |
| to make computed_jump_p return true. |
| |
| 2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it. |
| (PICFLAG_FOR_TARGET): Substitute. |
| * aclocal.m4: Regenerate. |
| * configure: Regenerate. |
| |
| 2011-08-22 Dodji Seketeli <dodji@redhat.com> |
| |
| * c-family/c-pch.c (c_common_read_pch): Re-set line table right |
| after reading in the pch. |
| |
| 2011-08-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined. |
| * configure: Regenerated. |
| |
| 2011-08-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50133 |
| * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location |
| from stmt instead of some statement around gsi. |
| |
| PR middle-end/50141 |
| * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if |
| innerdecl is a VAR_DECL. |
| |
| 2011-08-22 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/avx2intrin.h: New file. |
| * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI, |
| PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI, |
| V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI, |
| V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI, |
| V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI, |
| V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI, |
| V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI, |
| V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI, |
| V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI, |
| V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI, |
| V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT, |
| V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI, |
| V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI, |
| V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI, |
| V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI, |
| V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT, |
| V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT, |
| V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI, |
| VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI, |
| VOID_FTYPE_PV8SI_V8SI_V8SI, |
| V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT, |
| V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT, |
| V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT, |
| V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT, |
| V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT, |
| V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT, |
| V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT, |
| V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT, |
| V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT, |
| V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT, |
| V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT, |
| V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT, |
| V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT, |
| V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT, |
| V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT, |
| V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT, |
| V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT, |
| V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT, |
| V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT, |
| V4DI_FTYPE_V4DI_INT_CONVERT, |
| V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New. |
| * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256, |
| IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256, |
| IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256, |
| IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256, |
| IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256, |
| IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256, |
| IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256, |
| IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256, |
| IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256, |
| IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I, |
| IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256, |
| IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256, |
| IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, |
| IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, |
| IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, |
| IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256, |
| IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256, |
| IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256, |
| IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256, |
| IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256, |
| IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256, |
| IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256, |
| IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256, |
| IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256, |
| IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256, |
| IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256, |
| IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256, |
| IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256, |
| IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256, |
| IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256, |
| IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256, |
| IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256, |
| IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256, |
| IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256, |
| IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256, |
| IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256, |
| IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256, |
| IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256, |
| IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256, |
| IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256, |
| IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256, |
| IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256, |
| IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256, |
| IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256, |
| IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256, |
| IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256, |
| IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256, |
| IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256, |
| IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256, |
| IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256, |
| IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256, |
| IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256, |
| IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256, |
| IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256, |
| IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256, |
| IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256, |
| IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256, |
| IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256, |
| IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS, |
| IX86_BUILTIN_VBROADCASTSS_PS256, |
| IX86_BUILTIN_VBROADCASTSD_PD256, |
| IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256, |
| IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256, |
| IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256, |
| IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128, |
| IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128, |
| IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256, |
| IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256, |
| IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256, |
| IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256, |
| IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ, |
| IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256, |
| IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ, |
| IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256, |
| IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI, |
| IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI, |
| IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI, |
| IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI, |
| IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI, |
| IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF, |
| IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF, |
| IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF, |
| IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF, |
| IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI, |
| IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI, |
| IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI, |
| IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI. |
| (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256, |
| IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ, |
| IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256, |
| IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ, |
| IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256. |
| (bdesc_args): Add IX86_BUILTIN_MPSADBW256, |
| IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256, |
| IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256, |
| IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256, |
| IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256, |
| IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256, |
| IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256, |
| IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256, |
| IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256, |
| IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I, |
| IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256, |
| IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256, |
| IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, |
| IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, |
| IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, |
| IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256, |
| IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256, |
| IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256, |
| IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256, |
| IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256, |
| IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256, |
| IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256, |
| IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256, |
| IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256, |
| IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256, |
| IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256, |
| IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256, |
| IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256, |
| IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256, |
| IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256, |
| IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256, |
| IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256, |
| IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256, |
| IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256, |
| IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256, |
| IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256, |
| IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256, |
| IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256, |
| IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256, |
| IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256, |
| IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256, |
| IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256, |
| IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256, |
| IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256, |
| IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256, |
| IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256, |
| IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256, |
| IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256, |
| IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256, |
| IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256, |
| IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256, |
| IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256, |
| IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256, |
| IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256, |
| IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256, |
| IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256, |
| IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256, |
| IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256, |
| IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256, |
| IX86_BUILTIN_VBROADCASTSD_PD256, |
| IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256, |
| IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256, |
| IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256, |
| IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128, |
| IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128, |
| IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256, |
| IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256, |
| IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256, |
| IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256, |
| IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI, |
| IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI, |
| IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI, |
| IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI, |
| IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI. |
| (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF, |
| IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF, |
| IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF, |
| IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF, |
| IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI, |
| IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI, |
| IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI, |
| IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI, |
| IX86_BUILTIN_GATHERDIV8SI. |
| (ix86_preferred_simd_mode): Support AVX2 modes. |
| (ix86_expand_args_builtin): Support AVX2 builtins. |
| (ix86_expand_special_args_builtin): Likewise. |
| (ix86_expand_builtin): Likewise. |
| * config/i386/i386.md (UNSPEC_VPERMSI): New. |
| (UNSPEC_VPERMDF): Likewise. |
| (UNSPEC_VPERMSF): Likewise. |
| (UNSPEC_VPERMDI): Likewise. |
| (UNSPEC_VPERMTI): Likewise. |
| (UNSPEC_GATHER): Likewise. |
| (ssemodesuffix): Extend. |
| * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__ |
| is defined. |
| * config/i386/predicates.md (const1248_operand): New. |
| * config/i386/sse.md (VI1_AVX2): New mode iterator. |
| (VI2_AVX2): Likewise. |
| (VI4_AVX2): Likewise. |
| (VI8_AVX2): Likewise. |
| (VIMAX_AVX2): Likewise. |
| (SSESCALARMODE): Likewise. |
| (VI12_AVX2): Likewise. |
| (VI24_AVX2): Likewise. |
| (VI124_AVX2): Likewise. |
| (VI248_AVX2): Likewise. |
| (VI48_AVX2): Likewise. |
| (VI4SD_AVX2): Likewise. |
| (V48_AVX2): Likewise. |
| (AVX256MODE2P): Likewise. |
| (AVXMODE48P_DI): Likewise. |
| (sse2_avx2): New mode attribute. |
| (ssse3_avx2): Likewise. |
| (sse4_1_avx2): Likewise. |
| (avx_avx2): Likewise. |
| (ssebytemode): Likewise. |
| (AVXTOSSEMODE): Likewise. |
| (AVXMODE48P_DI): Likewise. |
| (gthrfirstp): Likewise. |
| (gthrlastp): Likewise. |
| (lshift): New code_iterator |
| (lshift): New code attribute. |
| (lshift): Likewise. |
| (ssescalarmodesuffix): Update. |
| (sseunpackmode): Likewise. |
| (ssepackmode): Likewise. |
| (avx2_vec_dupv4sf): New insn pattern. |
| (avx2_vec_dupv8sf): Likewise. |
| (avx2_interleave_highv4di): Likewise. |
| (avx2_interleave_lowv4di): Likewise. |
| (avx2_umulv4siv4di3): Likewise |
| (*avx2_umulv4siv4di3): Likewise |
| (avx2_pmaddwd): Likewise. |
| (*avx2_pmaddwd): Likewise. |
| (avx2_lshrqv4di3): Likewise. |
| (avx2_lshlqv4di3): Likewise. |
| (avx2_lshl<mode>3): Likewise. |
| (avx2_<umaxmin:code><mode>3): Likewise. |
| (*avx2_<umaxmin:code><mode>3): Likewise. |
| (avx2_<smaxmin:code><mode>3): Likewise. |
| (*avx2_<smaxmin:code><mode>3): Likewise. |
| (avx2_eq<mode>3): Likewise. |
| (*avx2_eq<mode>3): Likewise. |
| (avx2_gt<mode>3): Likewise. |
| (avx2_interleave_highv32qi): New. |
| (avx2_interleave_lowv32qi): Likewise. |
| (avx2_interleave_highv16hi): Likewise. |
| (avx2_interleave_lowv16hi): Likewise. |
| (avx2_interleave_highv8si): Likewise. |
| (avx2_interleave_lowv8si): Likewise. |
| (avx2_pshufd): Likewise. |
| (avx2_pshufd_1): Likewise. |
| (avx2_pshuflwv3): Likewise. |
| (avx2_pshuflw_1): Likewise. |
| (avx2_pshufhwv3): Likewise. |
| (avx2_pshufhw_1): Likewise. |
| (avx2_uavgv32qi3): Likewise. |
| (*avx2_uavgv32qi3): Likewise. |
| (avx2_uavgv16hi3): Likewise. |
| (*avx2_uavgv16hi3): Likewise. |
| (avx2_pmovmskb): Likewise. |
| (avx2_phaddwv16hi3): Likewise. |
| (avx2_phadddv8si3): Likewise. |
| (avx2_phaddswv16hi3): Likewise. |
| (avx2_phsubwv16hi3): Likewise. |
| (avx2_phsubdv8si3): Likewise. |
| (avx2_phsubswv16hi3): Likewise. |
| (avx2_pmaddubsw256): Likewise. |
| (avx2_umulhrswv16hi3): Likewise. |
| (*avx2_umulhrswv16hi3): Likewise. |
| (avx2_packusdw): Likewise. |
| (avx2_pblendd<mode>): Likewise. |
| (avx2_<code>v16qiv16hi2): Likewise. |
| (avx2_<code>v8qiv8si2): Likewise. |
| (avx2_<code>v8hiv8si2): Likewise. |
| (avx2_<code>v4qiv4di2): Likewise. |
| (avx2_<code>v4hiv4di2): Likewise. |
| (avx2_<code>v4siv4di2): Likewise. |
| (avx2_pbroadcast<mode>): Likewise. |
| (avx2_permvarv8si): Likewise. |
| (avx2_permv4df): Likewise. |
| (avx2_permvarv8sf): Likewise. |
| (avx2_permv4di): Likewise. |
| (avx2_permv2ti): Likewise. |
| (avx2_vec_dupv4df): Likewise. |
| (avx2_vbroadcasti128_<mode>): Likewise. |
| (avx2_vec_set_lo_v4di): Likewise. |
| (avx2_vec_set_hi_v4di): Likewise. |
| (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise. |
| (avx2_extracti128): Likewise. |
| (avx2_inserti128): Likewise. |
| (avx2_ashrvv8si): Likewise. |
| (avx2_ashrvv4si): Likewise. |
| (avx2_<lshift>vv8si): Likewise. |
| (avx2_<lshift>v<mode>): Likewise. |
| (avx2_<lshift>vv2di): Likewise. |
| (avx2_gathersi<mode>): Likewise. |
| (*avx2_gathersi<mode>): Likewise. |
| (avx2_gatherdi<mode>): Likewise. |
| (*avx2_gatherdi<mode>): Likewise. |
| (avx2_gatherdi<mode>256): Likewise. |
| (*avx2_gatherdi<mode>256): Likewise. |
| (<plusminus_insn><mode>3): Use VI mode iterator. |
| (*<plusminus_insn><mode>3): Use VI mode iterator. |
| (<sse2_avx2>_<plusminus_insn><mode>3): Rename from |
| sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator. |
| (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from |
| *sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator. |
| (mul<mode>3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator. |
| (*mul<mode>3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator. |
| (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart. |
| Use VI2_AVX2 mode iterator. |
| (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart. |
| Use VI2_AVX2 mode iterator. |
| (mul<mode>3): Rename from mulv4si3. Use VI4_AVX2 mode iterator. |
| (*mul<mode>3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator. |
| (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3. |
| Use VI4_AVX2 mode iterator. |
| (ashr<mode>3): Use VI24_AVX2 mode iterator. |
| (lshr<mode>3): Use VI248_AVX2 mode iterator. |
| (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3. |
| Use VIMAX_AVX2 mode iterator. |
| (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3. |
| Use VI mode iterator. |
| (*andnot<mode>3): Update for AVX2. |
| (*<any_logic:code><mode>3): Likewise. |
| (<sse2_avx2>_packsswb): Rename from sse2_packsswb. |
| Use VI1_AVX mode iterator. |
| (<sse2_avx2>_packssdw): Rename from sse2_packssdw. |
| Use VI2_AVX mode iterator. |
| (<sse2_avx2>_packuswb): Rename from sse2_packsswb. |
| Use VI1_AVX mode iterator. |
| (<sse2_avx2>_psadbw): Rename from sse2_psadbw. |
| Use VI8_AVX2 mode iterator. |
| (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3. |
| Use VI1_AVX2 mode iterator. |
| (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3. |
| Use VI124_AVX2 mode iterator. |
| (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti. |
| Use SSESCALARMODE mode iterator. |
| (abs<mode>2): Use VI124_AVX2 mode iterator. |
| (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa. |
| Use VI8_AVX2 mode iterator. |
| (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw. |
| Use VI1_AVX2 mode iterator. |
| (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb. |
| Use VI1_AVX2 mode iterator. |
| (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb. |
| Use VI2_AVX2 mode iterator. |
| (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from |
| avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator. |
| (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from |
| avx_maskstore<ssemodesuffix><avxsizesuffix>. |
| Use V48_AVX2 mode iterator. |
| * doc/extend.texi: Document AVX2 built-in functions. |
| * doc/invoke.texi: Document -mavx2. |
| |
| 2011-08-22 Matthias Klose <doko@debian.org> |
| |
| Revert: |
| 2011-07-11 Arthur Loiret <aloiret@debian.org> |
| Matthias Klose <doko@debian.org> |
| * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if |
| tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc |
| convention. |
| * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32. |
| |
| 2011-08-22 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR bootstrap/50146 |
| * ira-color.c (assign_hard_reg): Move saved_nregs declaration |
| to #ifndef HONOR_REG_ALLOC_ORDER block. |
| |
| 2011-08-21 Richard Henderson <rth@redhat.com> |
| |
| * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN. |
| * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P. |
| * resource.c (next_insn_no_annul): Likewise. |
| (mark_set_resources): Likewise. |
| * reorg.c (delete_from_delay_slot): Likewise. |
| (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise. |
| (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing. |
| |
| 2011-08-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (any_div): Remove. |
| (sgnprefix): Update for removal. |
| (u): Ditto. |
| |
| 2011-08-20 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class |
| for ira_reg_class_max_nregs. Increase pressure by 1. |
| (mark_pseudo_regno_subword_dead): Use allocno class |
| for ira_reg_class_max_nregs. |
| |
| 2011-08-20 Richard Henderson <rth@redhat.com> |
| |
| * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, |
| config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, |
| config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, |
| config/c6x/ltf.c: Adjust include path for soft-fp. |
| |
| 2011-08-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR other/46770 |
| * config.gcc (tm_file): Add initfini-array.h if |
| .init_arrary/.fini_array are supported. |
| |
| * crtstuff.c: Don't generate .ctors nor .dtors sections if |
| USE_INITFINI_ARRAY is defined. |
| |
| * output.h (default_elf_init_array_asm_out_constructor): New. |
| (default_elf_fini_array_asm_out_destructor): Likewise. |
| * varasm.c (elf_init_array_section): Likewise. |
| (elf_fini_array_section): Likewise. |
| (get_elf_initfini_array_priority_section): Likewise. |
| (default_elf_init_array_asm_out_constructor): Likewise. |
| (default_elf_fini_array_asm_out_destructor): Likewise. |
| |
| * config/initfini-array.h: New. |
| |
| 2011-08-20 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_class_max_nregs): Check that the mode is |
| OK for ST_REGS and FP_REGS before taking those classes into account. |
| |
| 2011-08-20 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_reorg_process_insns): Check for jumps |
| before checking for annulled branches. |
| |
| 2011-08-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_binary_operator_ok): Use |
| satisfies_constraint_L. |
| |
| 2011-08-20 Uros Bizjak <ubizjak@gmail.com> |
| Michael Matz <matz@suse.de> |
| |
| * config/i386/i386.c (ix86_expand_round_sse4): Expand as |
| trunc (a + copysign (nextafter (0.5, 0.0), a)). |
| |
| 2011-08-20 Anatoly Sokolov <aesok@post.ru> |
| |
| * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove. |
| * doc/tm.texi: Regenerate. |
| * targhooks.c (default_preferred_output_reload_class): Don't use |
| PREFERRED_OUTPUT_RELOAD_CLASS macro. |
| * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison. |
| |
| 2011-08-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48739 |
| * tree-ssa.c: Include cfgloop.h. |
| (execute_update_addresses_taken): When updating ssa, if in loop closed |
| SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa. |
| * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H). |
| |
| 2011-08-19 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/49936 |
| * ira.c (ira_init_register_move_cost): Ignore too small subclasses |
| for calculation of max register move costs. |
| |
| 2011-08-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-parser.c (c_parser_postfix_expression): Convert operands of |
| __builtin_complex to their semantic types. |
| |
| 2011-08-19 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/49721 |
| * explow.c (convert_memory_address_addr_space): Also permute the |
| conversion and addition of constant for zero-extend. |
| |
| 2011-08-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX. |
| * doc/extend.texi (__builtin_complex): Document. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants |
| beyond conversions. |
| (convert_mult_to_widen): Convert constant inputs to the right type. |
| (convert_plusminus_to_widen): Don't automatically reject inputs that |
| are not an SSA_NAME. |
| Convert constant inputs to the right type. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs |
| to the correct type. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle |
| unsigned inputs of different modes. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument |
| 'type'. |
| Use 'type' from caller, not inferred from 'rhs'. |
| Don't reject non-conversion statements. Do return lhs in this case. |
| (is_widening_mult_p): Add new argument 'type'. |
| Use 'type' from caller, not inferred from 'stmt'. |
| Pass type to is_widening_mult_rhs_p. |
| (convert_mult_to_widen): Pass type to is_widening_mult_p. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME. |
| Ensure the the larger type is the first operand. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Convert |
| unsupported unsigned multiplies to signed. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single |
| conversion statement separating multiply-and-accumulate. |
| |
| 2011-08-19 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50067 |
| * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF |
| offset only if we accounted for it. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.md (maddhidi4): Remove '*' from name. |
| * expr.c (expand_expr_real_2): Use find_widening_optab_handler. |
| * optabs.c (find_widening_optab_handler_and_mode): New function. |
| (expand_widen_pattern_expr): Use find_widening_optab_handler. |
| (expand_binop_directly): Likewise. |
| (expand_binop): Likewise. |
| * optabs.h (find_widening_optab_handler): New macro define. |
| (find_widening_optab_handler_and_mode): New prototype. |
| * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR |
| type precision rules. |
| (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR. |
| * tree-ssa-math-opts.c (build_and_insert_cast): New function. |
| (is_widening_mult_rhs_p): Allow widening by more than one mode. |
| Explicitly disallow mis-matched input types. |
| (convert_mult_to_widen): Use find_widening_optab_handler, and cast |
| input types to fit the new handler. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * expr.c (expand_expr_real_2): Use widening_optab_handler. |
| * genopinit.c (optabs): Use set_widening_optab_handler for $N. |
| (gen_insn): $N now means $a must be wider than $b, not consecutive. |
| * optabs.c (widened_mode): New function. |
| (expand_widen_pattern_expr): Use widening_optab_handler. |
| (expand_binop_directly): Likewise. |
| (expand_binop): Likewise. |
| * optabs.h (widening_optab_handlers): New struct. |
| (optab_d): New member, 'widening'. |
| (widening_optab_handler): New function. |
| (set_widening_optab_handler): New function. |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Use |
| widening_optab_handler. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if |
| pedantic. |
| * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment. |
| * ginclude/stdnoreturn.h (noreturn): Don't define for C++. |
| |
| 2011-08-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * opth-gen.awk: Do not declare target save/restore structures and |
| functions if IN_RTS defined. |
| |
| 2011-08-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> |
| |
| PR target/49437 |
| * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue |
| when stack was realigned in interrupt handler prologue. |
| |
| 2011-08-18 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (shadow_tag_warned): Check for _Noreturn. |
| (quals_from_declspecs): Assert _Noreturn not present. |
| (grokdeclarator): Handle _Noreturn. |
| (build_null_declspecs): Initialize noreturn_p. |
| (declspecs_add_scspec): Handle RID_NORETURN. |
| * c-parser.c (c_token_starts_declspecs, c_parser_declspecs) |
| (c_parser_attributes): Handle RID_NORETURN. |
| * c-tree.h (struct c_declspecs): Add noreturn_p. |
| * ginclude/stdnoreturn.h: New. |
| * Makefile.in (USER_H): Add stdnoreturn.h. |
| |
| 2011-08-18 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New. |
| (OPTION_MASK_ISA_AVX_UNSET): Update. |
| (OPTION_MASK_ISA_AVX2_UNSET): New. |
| (ix86_handle_option): Handle OPT_mavx2 case. |
| * config/i386/cpuid.h (bit_AVX2): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect |
| AVX2 feature. |
| * config/i386/i386-c.c (ix86_target_macros_internal): |
| Conditionally define __AVX2__. |
| * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2. |
| Define "core-avx2" processor alias. Handle avx2 option. |
| (ix86_valid_target_attribute_inner_p): Handle avx2 option. |
| * config/i386/i386.h (TARGET_AVX2): New. |
| * config/i386/i386.opt (mavx2): New. |
| * doc/invoke.texi: Document -mavx2. |
| |
| 2011-08-18 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/49890 |
| * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude |
| subclasses of class which is superset of a pressure class. |
| |
| 2011-08-18 H.J. Lu <hongjiu.lu@intel.com> |
| Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| * config/i386/i386-c.c (ix86_target_macros_internal): Replace int |
| with HOST_WIDE_INT for isa_flag. |
| (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for |
| isa variables. |
| |
| * config/i386/i386.c (ix86_target_string): Replace int with |
| HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa. |
| (ix86_target_opts): Replace int with HOST_WIDE_INT on mask. |
| (pta_flags): Removed. |
| (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X). |
| (pta): Use HOST_WIDE_INT on flags. |
| (builtin_isa): Use HOST_WIDE_INT on isa. |
| (ix86_add_new_builtins): Likewise. |
| (def_builtin): Use HOST_WIDE_INT on mask. |
| (def_builtin_const): Likewise. |
| (builtin_description): Likewise. |
| |
| * config/i386/i386.opt (ix86_isa_flags): Replace int with |
| HOST_WIDE_INT. |
| (ix86_isa_flags_explicit): Likewise. |
| (x_ix86_isa_flags_explicit): Likewise. |
| |
| 2011-08-17 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/50107 |
| * ira-int.h (ira_hard_reg_not_in_set_p): Remove. |
| (ira_hard_reg_in_set_p): New. |
| |
| * ira-color.c (calculate_saved_nregs): New. |
| (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all |
| hard regs. |
| (allocno_reload_assign, fast_allocation): Use |
| ira_hard_reg_set_intersection_p instead of |
| ira_hard_reg_not_in_set_p. |
| |
| * ira.c (setup_reg_renumber): Use |
| ira_hard_reg_set_intersection_p instead of |
| ira_hard_reg_not_in_set_p. |
| (setup_allocno_assignment_flags, calculate_allocation_cost): Use |
| ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p. |
| |
| * ira-costs.c (ira_tune_allocno_costs): Use |
| ira_hard_reg_set_intersection_p instead of |
| ira_hard_reg_not_in_set_p. |
| |
| 2011-08-18 H.J. Lu <hongjiu.lu@intel.com> |
| Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| * hwint.h (HOST_WIDE_INT_1): New. |
| |
| * opt-functions.awk (switch_bit_fields): Initialize the |
| host_wide_int field. |
| (host_wide_int_var_name): New. |
| (var_type_struct): Check and return HOST_WIDE_INT. |
| |
| * opt-read.awk: Handle HOST_WIDE_INT for "Variable". |
| |
| * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other. |
| |
| * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly |
| check masks for HOST_WIDE_INT. |
| |
| * opts-common.c (set_option): Support HOST_WIDE_INT flag_var. |
| (option_enabled): Likewise. |
| (get_option_state): Likewise. |
| |
| * opts.h (cl_option): Add cl_host_wide_int. Change var_value |
| to HOST_WIDE_INT. |
| |
| 2011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| Marc Glisse <marc.glisse@normalesup.org> |
| |
| PR libstdc++-v3/1773 |
| * target.def (decl_mangling_context): New C++ hook. |
| * doc/tm.texi: Regenerate. |
| * config/sol2-cxx.c, config/sol2-stubs.c: New files. |
| * config/sol2-protos.h: Group by source file. |
| (solaris_cxx_decl_mangling_context): Declare. |
| * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define. |
| * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets. |
| Use $<. |
| * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs. |
| Add sol2-stubs.o to extra_objs. |
| |
| 2011-08-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50009 |
| * stor-layout.c (update_alignment_for_field): Don't ICE on |
| packed flexible array members if ms_bitfield_layout_p. |
| |
| PR target/50092 |
| * config/i386/i386.c (assign_386_stack_local): Call validize_mem |
| on the result before returning it. |
| |
| PR debug/50017 |
| * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi) |
| is a debug stmt, use location of the first non-debug stmt after it. |
| |
| 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET. |
| (arm_size_rtx_costs): Likewise. |
| |
| 2011-08-18 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (tree_int_cst_msb): Remove. |
| * tree.c (tree_int_cst_msb): Likewise. |
| (tree_int_cst_sign_bit): Move from ... |
| * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here. |
| |
| 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter. |
| * doc/tm.texi: Regenerate. |
| * target.def (rtx_costs): Add an opno parameter. |
| * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with... |
| (hook_bool_rtx_int_int_int_intp_bool_false): ...this. |
| * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with... |
| (hook_bool_rtx_int_int_int_intp_bool_false): ...this. |
| * cse.c (COST_IN): Add an opno parameter. |
| (notreg_cost): Likewise. Update call to rtx_cost. |
| (COST, fold_rtx): Update accordingly. |
| * dojump.c (prefer_and_bit_test): Update call to rtx_cost. |
| * expmed.c (emit_store_flag): Likewise. |
| * optabs.c (avoid_expensive_constant): Add an opno parameter. |
| Update call to rtx_cost. |
| (expand_binop_directly, expand_binop): Likewise. |
| (expand_twoval_binop, prepare_cmp_insn): Likewise. |
| * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters. |
| (set_src_cost, get_full_set_src_cost): Update accordingly. |
| * rtlanal.c (rtx_cost): Add an opno parameter. Update call |
| to target hook. |
| (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost. |
| (default_adress_cost): Update calls to rtx_cost. |
| |
| * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs) |
| (arm_slowmul_rtx_costs): Adjust calls to rtx_cost. |
| (arm_rtx_costs): Add an opno parameter. |
| * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and |
| adjust any recursive rtx-cost calls. |
| * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise. |
| * config/bfin/bfin.c (bfin_rtx_costs): Likewise. |
| * config/c6x/c6x.c (c6x_rtx_costs): Likewise. |
| * config/cris/cris.c (cris_rtx_costs): Likewise. |
| * config/frv/frv.c (frv_rtx_costs): Likewise. |
| * config/h8300/h8300.c (h8300_rtx_costs): Likewise. |
| * config/i386/i386.c (ix86_rtx_costs): Likewise. |
| * config/ia64/ia64.c (ia64_rtx_costs): Likewise. |
| * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise. |
| * config/lm32/lm32.c (lm32_rtx_costs): Likewise. |
| * config/m32c/m32c.c (m32c_rtx_costs): Likewise. |
| * config/m32r/m32r.c (m32r_rtx_costs): Likewise. |
| * config/m68k/m68k.c (m68k_rtx_costs): Likewise. |
| * config/mcore/mcore.c (mcore_rtx_costs): Likewise. |
| * config/mep/mep.c (mep_rtx_cost): Likewise. |
| * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise. |
| * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost. |
| (mips_zero_extend_cost): Add an opno parameter. |
| * config/mmix/mmix.c (mmix_rtx_costs): Likewise. |
| * config/mn10300/mn10300.c (mn10300_address_cost): Update call |
| to rtx_cost. |
| (mn10300_rtx_costs): Add an opno parameter and adjust any recursive |
| rtx-cost calls. |
| * config/pa/pa.c (hppa_rtx_costs): Likewise. |
| * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise. |
| * config/picochip/picochip.c (picochip_rtx_costs): Likewise. |
| * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise. |
| (rs6000_debug_rtx_costs): Likewise. |
| * config/s390/s390.c (s390_rtx_costs): Likewise. |
| * config/score/score-protos.h (score_rtx_costs): Likewise. |
| * config/score/score.c (score_rtx_costs): Likewise. |
| * config/sh/sh.c (andcosts): Update call to rtx_cost. |
| (sh_rtx_costs): Add an opno parameter. |
| * config/sparc/sparc.c (sparc_rtx_costs): Likewise. |
| * config/spu/spu.c (spu_rtx_costs): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise. |
| * config/v850/v850.c (v850_rtx_costs): Likewise. |
| * config/vax/vax.c (vax_rtx_costs): Likewise. |
| * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise. |
| |
| 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * rtl.h (set_src_cost, get_full_set_src_cost): New functions. |
| * auto-inc-dec.c (attempt_change): Use set_src_cost instead of |
| rtx_cost. |
| * calls.c (precompute_register_parameters): Likewise. |
| * combine.c (expand_compound_operation, make_extraction): Likewise. |
| (force_to_mode, distribute_and_simplify_rtx): Likewise. |
| * dse.c (find_shift_sequence): Likewise. |
| * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise. |
| * expr.c (compress_float_constant): Likewise. |
| * fwprop.c (should_replace_address, try_fwprop_subst): Likewise. |
| * gcse.c (want_to_gcse_p): Likewise. |
| * ifcvt.c (noce_try_sign_mask): Likewise. |
| * loop-doloop.c (doloop_optimize): Likewise. |
| * loop-invariant.c (create_new_invariant): Likewise. |
| * optabs.c (avoid_expensive_constant): Likewise. |
| * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands) |
| (try_replace_in_use, reload_cse_move2add): Likewise. |
| * reload1.c (calculate_elim_costs_all_insns): Likewise. |
| (note_reg_elim_costly): Likewise. |
| * rtlanal.c (insn_rtx_cost): Likewise. |
| * simplify-rtx.c (simplify_binary_operation_1): Likewise. |
| * stmt.c (lshift_cheap_p): Likewise. |
| * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise. |
| * config/avr/avr.c (final_prescan_insn): Likewise. |
| * config/bfin/bfin.c (bfin_rtx_costs): Likewise. |
| * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise. |
| |
| 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions. |
| * auto-inc-dec.c (attempt_change): Use set_rtx_cost. |
| * cfgloopanal.c (seq_cost): Likewise. |
| * loop-invariant.c (create_new_invariant): Likewise. |
| * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn) |
| (reload_cse_move2add): Use get_full_set_rtx_cost. |
| |
| 2011-08-18 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (get_inner_reference): Fix typo in last change. |
| |
| 2011-08-18 Paolo Carlini <paolo.carlini@oracle.com> |
| Joseph Myers <joseph@codesourcery.com> |
| |
| PR tree-optimization/49963 |
| * hwint.c (absu_hwi): Define. |
| * hwint.h (absu_hwi): Declare. |
| * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead |
| of abs_hwi. |
| * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. |
| * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise. |
| |
| 2011-08-18 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (get_inner_reference): Sign-extend the constant |
| twos-complement offset before doing arbitrary precision |
| arithmetic on it. |
| * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. |
| (get_constraint_for_1): Pass the offset of a MEM_REF unchanged |
| to get_constraint_for_ptr_offset. |
| |
| 2011-08-17 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/50068 |
| * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule. |
| |
| 2011-08-17 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (convert_to_ptrofftype_loc): New function. |
| (convert_to_ptrofftype): Define. |
| * builtins.c (expand_builtin_bzero): Use size_type_node. |
| (fold_builtin_bzero): Likewise. |
| (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer. |
| * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc. |
| * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc. |
| (cgraph_redirect_edge_call_stmt_to_callee): Use size_int. |
| * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus. |
| * fold-const.c (build_range_check): Negate using the original type. |
| (fold_unary_loc): Use fold_build_pointer_plus_loc. |
| * gimple-fold.c (gimple_adjust_this_by_delta): Use |
| convert_to_ptrofftype. |
| * gimplify.c (gimplify_self_mod_expr): Likewise. |
| * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise. |
| (graphite_create_new_loop_guard): Likewise. |
| * graphite-sese-to-poly.c (my_long_long): Remove. |
| (scop_ivs_can_be_represented): Adjust. |
| * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p. |
| * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus. |
| * tree-loop-distribution.c (build_size_arg_loc): Use |
| size_type_node. |
| (generate_memset_zero): Simplify. |
| * tree-mudflap.c: Use fold_convert, not convert. |
| * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in |
| its own type. |
| (determine_offset): Likewise for DR_STEP. |
| (valid_initializer_p): Likewise. |
| * tree-profile.c (prepare_instrumented_value): Convert the pointer |
| to an integer type of same size. |
| * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer |
| to sizetype without need. |
| * tree-ssa-address.c (tree_mem_ref_addr): Likewise. |
| * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype. |
| * tree-ssa-loop-manip.c (create_iv): Likewise. |
| (determine_exit_conditions): Adjust comment. |
| * tree-ssa-pre.c (create_expression_by_pieces): Use |
| convert_to_ptrofftype. |
| * tree-ssa-structalias.c (get_constraint_for_1): Likewise. |
| * varasm.c (array_size_for_constructor): Compute using double_ints. |
| |
| 2011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests |
| when generating an integer result where possible. Short-cut |
| comparison against 0 also for QImode. |
| |
| 2011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro. |
| * config/spu/spu-protos.h (spu_legitimize_reload_address): Add |
| prototype. |
| * config/spu/spu.c (spu_legitimize_reload_address): New function. |
| (spu_legitimate_address_p): Do not check displacement if the base |
| is an eliminable stack register. |
| |
| 2011-08-16 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS, |
| PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro. |
| * config/m32c/m32c-protos.h (m32c_preferred_reload_class, |
| m32c_preferred_output_reload_class): Remove. |
| * config/m32c/m32c.c (m32c_preferred_reload_class): Make static. |
| Change rclass argument and return types to reg_class_t. Use |
| reg_class_subset_p instead of class_sizes. |
| (m32c_preferred_output_reload_class): Make static. Change rclass |
| argument and return types to reg_class_t. |
| (TARGET_PREFERRED_RELOAD_CLASS, |
| TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. |
| |
| 2011-08-16 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option. |
| |
| 2011-08-16 Richard GUenther <rguenther@suse.de> |
| |
| PR tree-optimization/50082 |
| * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow |
| warnings here, instead of ... |
| (ssa_forward_propagate_and_combine): ... here. |
| (forward_propagate_into_comparison_1): Adjust. |
| (forward_propagate_into_comparison): Likewise. |
| (forward_propagate_into_gimple_cond): Likewise. |
| (forward_propagate_into_cond): Likewise. |
| |
| 2011-08-16 Andreas Schwab <schwab@redhat.com> |
| |
| * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def |
| instead of ggc_alloc_zone_vec_rtvec_def. |
| |
| 2011-08-16 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (ptrofftype_p): New helper function. |
| * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR |
| offset verification. |
| (verify_gimple_assign_binary): Likewise. |
| * tree.c (build2_stat): Likewise. |
| * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise. |
| (reset_evolution_in_loop): Likewise. |
| * tree-chrec.h (build_polynomial_chrec): Likewise. |
| |
| 2011-08-16 Liang Wang <lwang1@marvell.com> |
| |
| * ggc.h (ggc_alloc_rtvec_sized): Change arguments of |
| ggc_alloc_zone_vec_rtvec_def. |
| |
| 2011-08-16 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (extract_range_from_multiplicative_op_1): New |
| helper factored out from ... |
| (extract_range_from_binary_expr_1): ... here. Re-structure |
| to not glob handling too different tree codes. |
| |
| 2011-08-15 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/50006 |
| * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size |
| setting out to include allocate_stack named pattern as well. |
| * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note. |
| * stmt.c (expand_stack_restore): Likewise. |
| |
| 2011-08-15 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50082 |
| * fold-const.c (maybe_canonicalize_comparison_1): Properly |
| convert the modified operand to the other operand type. |
| (fold_comparison): Call maybe_canonicalize_comparison_1 with |
| useless conversions stripped from comparison operands. |
| |
| 2011-08-15 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case. |
| (extract_range_from_unary_expr_1): Restructure. |
| |
| 2011-08-15 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50058 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate |
| copy matching. |
| |
| 2011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/50022 |
| * config/arm/arm.c (output_move_double): Add 2 parameters |
| to count the number of insns emitted and whether to emit or not. |
| Use the flag to decide when to emit and count number of instructions |
| that will be emitted. |
| Handle case where output_move_double might be called for calculating |
| lengths with an invalid constant. |
| (arm_count_output_move_double_insns): Define. |
| * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare. |
| (output_move_double): Adjust prototype. |
| * config/arm/vfp.md ("*movdi_vfp"): Adjust call to |
| output_move_double. |
| ("*movdi_vfp_cortexa8"): Likewise and add attribute |
| for ce_count. |
| * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double. |
| ("*movdf_soft_insn"): Likewise. |
| * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise. |
| ("*cirrus_thumb2_movdi"): Likewise. |
| ("*thumb2_cirrus_movdf_hard_insn"): Likewise. |
| ("*cirrus_movdf_hard_insn"): Likewise. |
| * config/arm/neon.md (*neon_mov<mode> VD): Likewise. |
| * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise. |
| ("mov<mode>_internal VMMX"): Likewise. |
| * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise. |
| |
| 2011-08-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_expand_round_sse4): New function. |
| * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype. |
| * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4 |
| for TARGET_ROUND. |
| |
| (rint<mode>2): Simplify TARGET_ROUND check. |
| (floor<mode>2): Ditto. |
| (ceil<mode>2): Ditto. |
| (btrunc<mode>2): Ditto. |
| |
| 2011-08-14 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine |
| as mmix_preferred_output_reload_class. |
| |
| 2011-08-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| * PR target/49903 |
| * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum. |
| (branch_unspec): New insn. |
| (branch): Beauty farm. |
| * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC |
| to be IF_THEN_ELSE. |
| (avr_compare_pattern, avr_reorg_remove_redundant_compare): |
| New static functions. |
| (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN. |
| Use CONST_INT_P. Beauty. |
| |
| 2011-08-12 Richard Henderson <rth@redhat.com> |
| |
| PR rtl-opt/49994 |
| * sched-init.h (struct deps_desc): Add sched_before_next_jump. |
| * sched-deps.c (init_deps): Clear it. |
| (deps_analyze_insn): Consume it. |
| (sched_analyze_insn): Fill it. |
| |
| 2011-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/48328 |
| * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance |
| for tbh instructions. |
| |
| 2011-08-12 Diego Novillo <dnovillo@google.com> |
| |
| * data-streamer.h (streamer_write_zero): Rename from output_zero. |
| (streamer_write_uhwi): Rename from lto_output_uleb128. |
| (streamer_write_hwi): Rename from output_sleb128. |
| (streamer_write_string): Rename from lto_output_string. |
| (streamer_string_index): Rename from lto_string_index. |
| (streamer_write_string_with_length): Rename from |
| lto_output_string_with_length. |
| (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream. |
| (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream. |
| (streamer_read_string): Rename from lto_input_string. |
| (streamer_read_indexed_string): Rename from input_string_internal. |
| (streamer_read_uhwi): Rename from lto_input_uleb128. |
| (streamer_read_hwi): Rename from lto_input_sleb128. |
| (streamer_write_hwi_in_range): Rename from lto_output_int_in_range. |
| (streamer_read_hwi_in_range): Rename from lto_input_int_in_range. |
| (streamer_write_enum): Rename from lto_output_enum. |
| (streamer_read_enum): Rename from lto_input_enum. |
| (streamer_write_record_start): Rename from output_record_start. |
| (streamer_read_record_start): Rename from input_record_start. |
| (streamer_write_bitpack): Rename from lto_output_bitpack. |
| (streamer_read_bitpack): Rename from lto_input_bitpack. |
| (streamer_write_char_stream): Rename from lto_output_1_stream. |
| (streamer_read_uchar): Rename from lto_input_1_unsigned. |
| * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d. |
| (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p. |
| (streamer_read_string_cst): Rename from input_string_cst. |
| (streamer_read_chain): Rename from lto_input_chain. |
| (streamer_alloc_tree): Rename from lto_materialize_tree. |
| (streamer_read_tree_body): Rename from lto_input_tree_pointers. |
| (streamer_get_pickled_tree): Rename from lto_get_pickled_tree. |
| (streamer_get_builtin_tree): Rename from lto_get_builtin_tree. |
| (streamer_read_integer_cst): Rename from lto_input_integer_cst. |
| (streamer_read_tree_bitfields): Rename from tree_read_bitfields. |
| (streamer_write_chain): Rename from lto_output_chain. |
| (streamer_write_tree_header): Rename from lto_output_tree_header. |
| (streamer_pack_tree_bitfields): Rename from pack_value_fields. |
| (streamer_write_tree_body): Rename from lto_output_tree_pointers. |
| (streamer_write_integer_cst): Rename from lto_output_integer_cst. |
| (streamer_write_builtin): Rename from lto_output_builtin_tree. |
| (streamer_check_handled_ts_structures): Rename from |
| check_handled_ts_structures. |
| (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert. |
| (streamer_tree_cache_insert_at): Rename from |
| lto_streamer_cache_insert_at. |
| (streamer_tree_cache_append): Rename from lto_streamer_cache_append. |
| (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup. |
| (streamer_tree_cache_get): Rename from lto_streamer_cache_get. |
| (streamer_tree_cache_create): Rename from lto_streamer_cache_create. |
| (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete. |
| * tree-streamer-out.c (write_string_cst): Rename from output_string_cst. |
| (write_identifier): Rename from output_identifier. |
| (write_ts_common_tree_pointers): Rename from |
| lto_output_ts_common_tree_pointers. |
| (write_ts_vector_tree_pointers): Rename from |
| lto_output_ts_vector_tree_pointers. |
| (write_ts_complex_tree_pointers): Rename from |
| lto_output_ts_complex_tree_pointers. |
| (write_ts_decl_minimal_tree_pointers): Rename from |
| lto_output_ts_decl_minimal_tree_pointers. |
| (write_ts_decl_common_tree_pointers): Rename from |
| lto_output_ts_decl_common_tree_pointers. |
| (write_ts_decl_non_common_tree_pointers): Rename from |
| lto_output_ts_decl_non_common_tree_pointers. |
| (write_ts_decl_with_vis_tree_pointers): Rename from |
| lto_output_ts_decl_with_vis_tree_pointers. |
| (write_ts_field_decl_tree_pointers): Rename from |
| lto_output_ts_field_decl_tree_pointers. |
| (write_ts_function_decl_tree_pointers): Rename from |
| lto_output_ts_function_decl_tree_pointers. |
| (write_ts_type_common_tree_pointers): Rename from |
| lto_output_ts_type_common_tree_pointers. |
| (write_ts_type_non_common_tree_pointers): Rename from |
| lto_output_ts_type_non_common_tree_pointers. |
| (write_ts_list_tree_pointers): Rename from |
| lto_output_ts_list_tree_pointers. |
| (write_ts_vec_tree_pointers): Rename from |
| lto_output_ts_vec_tree_pointers. |
| (write_ts_exp_tree_pointers): Rename from |
| lto_output_ts_exp_tree_pointers. |
| (write_ts_block_tree_pointers): Rename from |
| lto_output_ts_block_tree_pointers. |
| (write_ts_binfo_tree_pointers): Rename from |
| lto_output_ts_binfo_tree_pointers. |
| (write_ts_constructor_tree_pointers): Rename from |
| lto_output_ts_constructor_tree_pointers. |
| (write_ts_target_option): Rename from lto_output_ts_target_option. |
| (write_ts_translation_unit_decl_tree_pointers): Rename from |
| lto_output_ts_translation_unit_decl_tree_pointers. |
| * tree-streamer.c (streamer_tree_cache_add_to_node_array): |
| Rename from lto_streamer_cache_add_to_node_array. |
| (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1. |
| (record_common_node): Rename from lto_record_common_node. |
| |
| * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward |
| declarations. |
| * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused |
| function. |
| * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove |
| unused function. |
| * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H. |
| (ipa-reference.o): Likewise. |
| * lto-section-out.c: Include data-streamer.h. |
| * ipa-reference.c: Include data-streamer.h. |
| |
| 2011-08-12 Nick Clifton <nickc@redhat.com> |
| |
| * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern. |
| * doc/md.texi (cmpstrn): Note that the comparison stops if both |
| fetched bytes are zero. |
| (cmpstr): Likewise. |
| (cmpmem): Note that the comparison does not stop if both of the |
| fetched bytes are zero. |
| |
| 2011-08-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L} |
| BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions. |
| * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL, |
| BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting |
| to integer_type_node. |
| * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL, |
| BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND. |
| * builtins.c (expand_builtin_in): Ditto. |
| (mathfn_built_in_1): Ditto. |
| (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and |
| BUILT_IN_IFLOOR. |
| (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and |
| BUILT_IN_IROUND. |
| (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR |
| BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL, |
| BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets. |
| |
| 2011-08-12 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X. |
| |
| 2011-08-12 Romain Geissler <romain.geissler@gmail.com> |
| |
| * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H. |
| |
| 2011-08-12 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/arm/arm.c (get_label_padding): New function. |
| (create_fix_barrier, arm_reorg): Use it. |
| |
| 2011-08-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49781 |
| * config/i386/i386.md (*lea_5_zext): New. |
| (*lea_6_zext): Ditto. |
| * config/i386/predicates.md (const_32bit_mask): New predicate. |
| (lea_address_operand): Reject AND. |
| * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with |
| const_32bit_mask immediate. |
| (ix86_print_operand_address): Handle AND. |
| (memory_address_length): Ditto. |
| |
| 2011-08-11 Romain Geissler <romain.geissler@gmail.com> |
| Brian Hackett <bhackett1024@gmail.com> |
| |
| * plugin.def: Add event for finish_decl. |
| * plugin.c (register_callback, invoke_plugin_callbacks): Same. |
| * c-decl.c (finish_decl): Invoke callbacks on above event. |
| * doc/plugins.texi: Document above event. |
| |
| 2011-08-11 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant |
| lookups, make looking through aggregate copies stronger. |
| |
| 2011-08-11 Richard Henderson <rth@redhat.com> |
| |
| PR bootstrap/50018 |
| * expr.c (fixup_args_size_notes): Accept and ignore normal calls. |
| |
| 2011-08-11 Richard Guenther <rguenther@suse.de> |
| |
| * lto-cgraph.c (input_node): Use DECL_BUILT_IN. |
| * tree-vrp.c (stmt_interesting_for_vrp): Likewise. |
| (vrp_visit_stmt): Likewise. |
| |
| 2011-08-11 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50040 |
| * gimplify.c (gimplify_modify_expr_complex_part): Mark the |
| load of the other piece with TREE_NO_WARNING. |
| * tree-flow.h (warn_uninit): Adjust prototype. |
| * tree-ssa.c (warn_uninit): Take uninitialized SSA name, |
| the base variable and the expression that is used separately. |
| Properly query all TREE_NO_WARNING flags. |
| (struct walk_data): Remove. |
| (warn_uninitialized_var): Likewise. |
| (warn_uninitialized_vars): Do not walk gimple pieces but simply |
| look at all SSA uses of the statement. Handle unused memory |
| separately. |
| * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust. |
| |
| 2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com> |
| |
| * config/rx/rx.md (movsicc): Allow register to register transfers. |
| (*movsicc): Likewise. |
| (*stcc): Restrict this pattern to EQ and NE compares. |
| (*stcc_reg): New pattern. Works for any comparison but only for |
| register transfers. |
| |
| 2011-08-11 Diego Novillo <dnovillo@google.com> |
| |
| * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): |
| Call stream_write_tree instead of output_record_start. |
| (lto_output_ts_binfo_tree_pointers): Likewise. |
| |
| * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h. |
| Convert it to a macro. |
| (stream_read_tree): Likewise. |
| |
| * lto-streamer.h (lto_stream_as_builtin_p): Move ... |
| * tree-streamer.h (lto_stream_as_builtin_p): ... here. |
| |
| * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append |
| and tree_read_bitfields. |
| * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c |
| (lto_write_tree): Call it. |
| * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c |
| * streamer-hooks.h (struct streamer_hooks): Remove fields |
| name, is_streamable and alloc_tree. Update all users. |
| * tree-streamer-in.c (tree_read_bitfields): Factor out of ... |
| (lto_materialize_tree): ... here. |
| Handle CALL_EXPR codes. |
| Remove call to lto_streamer_cache_append. |
| * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes. |
| * tree-streamer.h (tree_read_bitfields): Declare. |
| |
| * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H. |
| (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H. |
| * tree-streamer.h (stream_read_tree): New. Replace all calls |
| to lto_input_tree with it. |
| (stream_write_tree): New. Replace all calls to lto_output_tree, |
| lto_output_tree_ref and lto_output_tree_or_ref with it. |
| * lto-streamer-in.c (lto_read_tree): Inline code from |
| lto_streamer_read_tree. |
| (lto_input_tree): Move from tree-streamer-in.c. |
| * lto-streamer-out.c (lto_output_tree_ref): Make static. |
| Remove handling of NULL values for EXPR. |
| Do not handle EXPRs that are not indexable. |
| (lto_write_tree): Move from tree-streamer-out.c. |
| Inline lto_streamer_write_tree. |
| (lto_output_tree): Move from tree-streamer-out.c. |
| If REF_P is true and EXPR is indexable, call lto_output_tree_ref. |
| * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c. |
| (lto_preload_common_nodes): Likewise. |
| Remove assertions and adjustments for nodes |
| main_identifier_node, ptrdiff_type_node and fileptr_type_node. |
| (lto_streamer_hooks_init): Set streamer_hooks.write_tree to |
| lto_output_tree and streamer_hooks.read_tree to lto_input_tree. |
| * lto-streamer.h (lto_input_tree): Declare. |
| (lto_output_tree_ref): Remove. |
| * streamer-hooks.h (struct streamer_hooks): Remove fields |
| preload_common_nodes, indexable_with_decls_p, |
| pack_value_fields, unpack_value_fields and output_tree_header. |
| Update all users. |
| * tree-streamer-in.c (lto_materialize_tree): Make extern. |
| (lto_input_tree_pointers): Likewise. |
| (lto_read_tree): Move to lto-streamer-in.c. |
| (lto_input_integer_cst): Make extern. |
| (lto_get_pickled_tree): Likewise. |
| (lto_get_builtin_tree): Likewise. |
| (lto_input_tree): Move to lto-streamer-in.c. |
| * tree-streamer-out.c (pack_value_fields): Make extern. |
| (lto_output_tree_or_ref): Remove. Replace all callers with |
| calls to stream_write_tree. |
| (lto_output_builtin_tree): Make extern. |
| (lto_streamer_write_tree): Inline into lto_write_tree. |
| (lto_output_tree_pointers): Make extern. |
| (lto_output_tree_header): Likewise. |
| (lto_output_integer_cst): Likewise. |
| (lto_write_tree): Move to lto-streamer-out.c. |
| (lto_output_tree): Likewise. |
| * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c |
| (preload_common_nodes): Likewise. |
| (lto_streamer_cache_create): Call it. |
| * tree-streamer.h: Include streamer-hooks.h. |
| (stream_write_tree): New. |
| (stream_read_tree): New. |
| (lto_input_tree): Remove. |
| (lto_materialize_tree): Declare. |
| (lto_input_tree_pointers): Declare. |
| (lto_get_pickled_tree): Declare. |
| (lto_get_builtin_tree): Declare. |
| (lto_input_integer_cst): Declare. |
| (lto_output_tree_header): Declare. |
| (pack_value_fields): Declare. |
| (lto_output_tree_pointers): Declare. |
| (lto_output_integer_cst): Declare. |
| (lto_output_builtin_tree): Declare. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| |
| * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge |
| only if producer writes to the register given by regno. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| Alexander Monakov <amonakov@ispras.ru> |
| |
| * sched-deps.c (sched_get_condition_with_rev): Rename to ... |
| (sched_get_condition_with_rev_uncached): ... this. Factor out |
| condition caching logic into ... |
| (sched_get_condition_with_rev): ... this. Reimplement. Do not |
| attempt to use cache for instructions with zero luid. |
| (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND. |
| * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| |
| * sel-sched-ir.c (get_seqno_of_a_pred): Rename to |
| get_seqno_for_a_jump. Update the caller. |
| (get_seqno_by_succs): New. Use it ... |
| (get_seqno_for_a_jump): ... here to find a seqno if looking at |
| predecessors was not sufficient. |
| (get_seqno_by_preds): Include head in iteration range, exclude insn. |
| |
| 2011-08-11 Dmitry Melnik <dm@ispras.ru> |
| |
| * sel-sched-ir.c (invalidate_av_set): Remove the assert. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| |
| * sel-sched-ir.h (register_unavailable_p): Declare. |
| * sel-sched-ir.c (register_unavailable_p): New. Use it... |
| (set_unavailable_target_for_expr): ... here to properly test |
| availability of a register. |
| (speculate_expr): Ditto. |
| * sel-sched.c (substitute_reg_in_expr): Ditto. |
| (av_set_could_be_blocked_by_bookkeeping_p): Ditto. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| |
| * sel-sched.c (verify_target_availability): Fix usage of |
| hard_regno_nregs. |
| |
| 2011-08-11 Dmitry Melnik <dm@ispras.ru> |
| |
| * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of |
| recognized by cannot_copy_insn_p hook and volatile instructions. |
| |
| 2011-08-11 Dmitry Melnik <dm@ispras.ru> |
| |
| * sel-sched-ir.c (merge_expr_data): Take maximum spec. |
| |
| 2011-08-11 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/md.texi (define_bypass): Say that the instruction names can |
| be filename-style globs. |
| * Makefile.in (FNMATCH_H): Define. |
| (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H). |
| * genattrtab.c: Include fnmatch.h. |
| (bypass_list): Change field name from "insn" to "pattern". |
| (gen_bypass_1): Update accordingly. |
| (process_bypasses): Use fnmatch to check for matches between |
| insn reservations and define_bypasses. |
| * genautomata.c: Include fnmatch.h. |
| (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern |
| and out_pattern respectively. |
| (gen_bypass, insert_bypass): Update accordingly. |
| (for_each_matching_insn, process_bypass_2, process_bypass_1) |
| (process_bypass): New functions. |
| (process_decls): Use process_bypass. Update after field name changes. |
| |
| 2011-08-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49687 |
| * config/avr/avr.md (smulqi3_highpart): New insn. |
| (umulqi3_highpart): New insn. |
| (*subqi3.ashiftrt7): New insn. |
| (smulhi3_highpart): New expander. |
| (umulhi3_highpart): Nex expander. |
| (*smulhi3_highpart_call): New insn. |
| (*umulhi3_highpart_call): New insn. |
| (extend_u): New code attribute. |
| (extend_prefix): Rename code attribute to extend_su. |
| * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of |
| widening QI/HI multiply. |
| |
| 2011-08-11 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50039 |
| * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check |
| that DEF_STMT has a stmt_vec_info. |
| |
| 2011-08-10 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (can_trust_pointer_alignment): Remove. |
| * builtins.c (can_trust_pointer_alignment): Remove. |
| |
| 2011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com> |
| |
| * c-typeck.c (scalar_to_vector): New function. Try scalar to |
| vector conversion. |
| (stv_conv): New enum for scalar_to_vector return type. |
| (build_binary_op): Adjust. |
| * doc/extend.texi: Description of scalar to vector expansion. |
| |
| 2011-08-10 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (get_pointer_alignment): Remove max-align argument. |
| (get_object_alignment): Likewise. |
| * builtins.c (get_object_alignment_1): Adjust. |
| (get_object_alignment): Remove max-align argument. |
| (get_pointer_alignment): Likewise. |
| (expand_builtin_strlen): Adjust. |
| (expand_builtin_memcpy): Likewise. |
| (expand_builtin_mempcpy_args): Likewise. |
| (expand_builtin_strncpy): Likewise. |
| (expand_builtin_memset_args): Likewise. |
| (expand_builtin_memcmp): Likewise. |
| (expand_builtin_strcmp): Likewise. |
| (expand_builtin_strncmp): Likewise. |
| (get_builtin_sync_mem): Likewise. |
| (fold_builtin_memset): Likewise. |
| (fold_builtin_memory_op): Likewise. |
| (expand_builtin_memory_chk): Likewise. |
| * emit-rtl.c (get_mem_align_offset): Likewise. |
| (set_mem_attributes_minus_bitpos): Likewise. |
| * expr.c (expand_assignment): Likewise. |
| (expand_expr_real_1): Likewise. |
| * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise. |
| * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. |
| * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise. |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. |
| * value-prof.c (gimple_stringops_transform): Likewise. |
| |
| 2011-08-10 Paulo J. Matos <paulo.matos@csr.com> |
| |
| * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo. |
| * doc/tm.texi: Regenerate. |
| |
| 2011-08-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/29560 |
| * config/avr/avr.md (*ashlhiqi3): New insn-and-split. |
| (*ashl<extend_prefix>qihiqi3): New insn-and-splits. |
| (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits. |
| Add peephole2 to map ashlhi3 to ashlqi3 if high part of |
| shift target is unused. |
| |
| 2011-08-10 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49937 |
| * tree-ssa-ccp.c (get_value_from_alignment): Re-implement |
| using get_object_alignment_1. |
| |
| 2011-08-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_emit_i387_round): New function. |
| * config/i386/i386-protos.h (ix86_emit_i387_round): Declare. |
| * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator. |
| Use ix86_emit_i387_round to expand round function for i387 math. |
| (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator. |
| Use ix86_emit_i387_round to expand {l,ll}round function for i387 math. |
| |
| 2011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sync.c: Move to ../libgcc. |
| * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS. |
| * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS): |
| Remove. |
| |
| 2011-08-09 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro. |
| * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove. |
| * config/mmix/mmix.c (mmix_register_move_cost): Make static. |
| Change 'from' and 'to' arguments type to reg_class_t. |
| (TARGET_REGISTER_MOVE_COST): Define. |
| |
| 2011-08-09 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/50026 |
| Revert: |
| PR rtl-optimization/49990 |
| * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't |
| ignore classes which can not change mode. |
| (find_costs_and_classes): Ditto. |
| |
| 2011-08-09 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise |
| information for ranges with only negative values. |
| (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and |
| BIT_AND_EXPR handling to handle ranges with negative values. |
| |
| 2011-08-09 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.c: Remove traling spaces. |
| * config/i386/sse.md: Likewise. |
| (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic. |
| (*fma_fmsub_<mode>): Likewise. |
| (*fma_fnmadd_<mode>): Likewise. |
| (*fma_fnmsub_<mode>): Likewise. |
| |
| 2011-08-09 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md: Disable extender peepholes at -O3. |
| |
| 2011-08-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49781 |
| * config/i386/i386.md (reload_noff_load): New. |
| (reload_noff_store): Ditto. |
| * config/i386/i386.c (ix86_secondary_reload): Use |
| CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle |
| double-word moves from/to non-offsetable addresses instead of |
| generating XMM temporary. |
| |
| 2011-08-09 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove. |
| |
| 2011-08-09 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50014 |
| * tree-vect-loop.c (vectorizable_reduction): Get def type before |
| calling vect_get_vec_def_for_stmt_copy (). |
| |
| 2011-08-08 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/49990 |
| * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't |
| ignore classes which can not change mode. |
| (find_costs_and_classes): Ditto. |
| |
| 2011-08-08 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/49990 |
| * config/i386/i386.c (ix86_expand_prologue): Call |
| for SEH target gen_prologue_use instead of gen_blockage |
| at prologue's end. |
| |
| 2011-08-08 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/49923 |
| * tree-sra.c (access_precludes_ipa_sra_p): Also check access |
| memory alignment. |
| |
| 2011-08-08 Diego Novillo <dnovillo@google.com> |
| |
| * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H. |
| (DATA_STREAMER_H): New. |
| (GIMPLE_STREAMER_H): New. |
| (TREE_STREAMER_H): New. |
| (STREAMER_HOOKS_H): New. |
| (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o, |
| gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o, |
| tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o. |
| (data-streamer.o): New. |
| (data-streamer-in.o): New. |
| (data-streamer-out.o): New. |
| (gimple-streamer-in.o): New. |
| (gimple-streamer-out.o): New. |
| (streamer-hooks.o): New. |
| (tree-streamer.o): New. |
| (tree-streamer-in.o): New. |
| (tree-streamer-out.o): New. |
| (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H. |
| (lto-streamer-in.o): Add dependency on DATA_STREAMER_H, |
| GIMPLE_STREAMER_H and TREE_STREAMER_H. |
| (lto-streamer-out.o): Add dependency on DATA_STREAMER_H, |
| GIMPLE_STREAMER_H and TREE_STREAMER_H. |
| (lto-streamer.o): Add dependency on STREAMER_HOOKS_H. |
| (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H. |
| (ipa-inline-analysis.o): Likewise. |
| (ipa-pure-const.o): Likewise. |
| * data-streamer-in.c: New. |
| * data-streamer-out.c: New. |
| * data-streamer.c: New. |
| * data-streamer.h: New. |
| * gimple-streamer-in.c: New. |
| * gimple-streamer-out.c: New. |
| * gimple-streamer.h: New. |
| * ipa-inline-analysis.c: Include data-streamer.h. |
| * ipa-prop.c: Include data-streamer.h. |
| * ipa-pure-const.c: Include data-streamer.h. |
| * lto-cgraph.c: Include data-streamer.h. |
| * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c. |
| (lto_input_widest_uint_uleb128): Likewise. |
| (lto_input_sleb128): Likewise. |
| (bp_unpack_var_len_unsigned): Likewise. |
| (bp_unpack_var_len_int): Likewise. |
| * lto-section-out.c (lto_output_uleb128_stream): Move to |
| data-streamer-out.c. |
| (lto_output_widest_uint_uleb128_stream): Likewise. |
| (lto_output_sleb128_stream): Likewise. |
| (bp_pack_var_len_unsigned): Likewise. |
| (bp_pack_var_len_int): Likewise. |
| * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h. |
| (struct string_slot): Remove. Update all users. |
| (lto_tag_check_set): Make extern. |
| (lto_tag_check_range): Move to lto-streamer.h. |
| (lto_tag_check): Likewise. |
| (hash_string_slot_node): Remove. Update all users. |
| (eq_string_slot_node): Remove. Update all users. |
| (string_for_index): Move to data-streamer-in.c |
| (input_string_internal): Likewise. |
| (input_string_cst): Move to tree-streamer-in.c. |
| (input_identifier): Likewise. |
| (lto_input_string): Move to data-streamer-in.c |
| (input_record_start): Move to data-streamer.h |
| (canon_file_name): Use new definition of struct string_slot |
| from data-streamer.h. Set S_SLOT.LEN. |
| (lto_input_location): Make extern. |
| (lto_input_chain): Move to tree-streamer-in.c. |
| (lto_init_eh): Make extern. |
| (input_phi): Move to gimple-streamer-in.c. |
| (input_gimple_stmt): Likewise. |
| (input_bb): Likewise. |
| (unpack_ts_base_value_fields): Move to tree-streamer-in.c. |
| (unpack_ts_real_cst_value_fields): Likewise. |
| (unpack_ts_fixed_cst_value_fields): Likewise. |
| (unpack_ts_decl_common_value_fields): Likewise. |
| (unpack_ts_decl_wrtl_value_fields): Likewise. |
| (unpack_ts_decl_with_vis_value_fields): Likewise. |
| (unpack_ts_function_decl_value_fields): Likewise. |
| (unpack_ts_type_common_value_fields): Likewise. |
| (unpack_ts_block_value_fields): Likewise. |
| (unpack_ts_translation_unit_decl_value_fields): Likewise. |
| (unpack_value_fields): Likewise. |
| (lto_materialize_tree): Likewise. |
| (lto_input_ts_common_tree_pointers): Likewise. |
| (lto_input_ts_vector_tree_pointers): Likewise. |
| (lto_input_ts_complex_tree_pointers): Likewise. |
| (lto_input_ts_decl_minimal_tree_pointers): Likewise. |
| (lto_input_ts_decl_common_tree_pointers): Likewise. |
| (lto_input_ts_decl_non_common_tree_pointers): Likewise. |
| (lto_input_ts_decl_with_vis_tree_pointers): Likewise. |
| (lto_input_ts_field_decl_tree_pointers): Likewise. |
| (lto_input_ts_function_decl_tree_pointers): Likewise. |
| (lto_input_ts_type_common_tree_pointers): Likewise. |
| (lto_input_ts_type_non_common_tree_pointers): Likewise. |
| (lto_input_ts_list_tree_pointers): Likewise. |
| (lto_input_ts_vec_tree_pointers): Likewise. |
| (lto_input_ts_exp_tree_pointers): Likewise. |
| (lto_input_ts_block_tree_pointers): Likewise. |
| (lto_input_ts_binfo_tree_pointers): Likewise. |
| (lto_input_ts_constructor_tree_pointers): Likewise. |
| (lto_input_ts_target_option): Likewise. |
| (lto_input_ts_translation_unit_decl_tree_pointers): Likewise. |
| (lto_input_tree_pointers): Likewise. |
| (lto_get_pickled_tree): Likewise. |
| (lto_get_builtin_tree): Likewise. |
| (lto_read_tree): Likewise. |
| (lto_input_integer_cst): Likewise. |
| (lto_input_tree): Likewise. |
| * lto-streamer-out.c: Include data-streamer.h, |
| gimple-streamer.h and streamer-hooks.h. |
| (struct string_slot): Move to data-streamer.h. |
| (hash_string_slot_node): Likewise. |
| (eq_string_slot_node): Likewise. |
| (lto_string_index): Move to data-streamer-out.c. |
| (lto_output_string_with_length): Likewise. |
| (lto_output_string): Likewise. |
| (output_string_cst): Move to tree-streamer-out.c. |
| (output_identifier): Likewise. |
| (output_zero): Move to data-streamer-out.c |
| (output_uleb128): Likewise. |
| (output_sleb128): Likewise. |
| (output_record_start): Move to data-streamer.h |
| (pack_ts_base_value_fields): Move to tree-streamer-out.c. |
| (pack_ts_real_cst_value_fields): Likewise. |
| (pack_ts_fixed_cst_value_fields): Likewise. |
| (pack_ts_decl_common_value_fields): Likewise. |
| (pack_ts_decl_wrtl_value_fields): Likewise. |
| (pack_ts_decl_with_vis_value_fields): Likewise. |
| (pack_ts_function_decl_value_fields): Likewise. |
| (pack_ts_type_common_value_fields): Likewise. |
| (pack_ts_block_value_fields): Likewise. |
| (pack_ts_translation_unit_decl_value_fields): Likewise. |
| (pack_value_fields): Likewise. |
| (lto_output_chain): Likewise. |
| (lto_output_ts_common_tree_pointers): Likewise. |
| (lto_output_ts_vector_tree_pointers): Likewise. |
| (lto_output_ts_complex_tree_pointers): Likewise. |
| (lto_output_ts_decl_minimal_tree_pointers): Likewise. |
| (lto_output_ts_decl_common_tree_pointers): Likewise. |
| (lto_output_ts_decl_non_common_tree_pointers): Likewise. |
| (lto_output_ts_decl_with_vis_tree_pointers): Likewise. |
| (lto_output_ts_field_decl_tree_pointers): Likewise. |
| (lto_output_ts_function_decl_tree_pointers): Likewise. |
| (lto_output_ts_type_common_tree_pointers): Likewise. |
| (lto_output_ts_type_non_common_tree_pointers): Likewise. |
| (lto_output_ts_list_tree_pointers): Likewise. |
| (lto_output_ts_vec_tree_pointers): Likewise. |
| (lto_output_ts_exp_tree_pointers): Likewise. |
| (lto_output_ts_block_tree_pointers): Likewise. |
| (lto_output_ts_binfo_tree_pointers): Likewise. |
| (lto_output_ts_constructor_tree_pointers): Likewise. |
| (lto_output_ts_target_option): Likewise. |
| (lto_output_ts_translation_unit_decl_tree_pointers): Likewise. |
| (lto_output_tree_pointers): Likewise. |
| (lto_output_tree_header): Likewise. |
| (lto_output_builtin_tree): Likewise. |
| (lto_write_tree): Likewise. |
| (lto_output_integer_cst): Likewise. |
| (lto_output_tree): Likewise. |
| (output_phi): Move to gimple-streamer-out.c. |
| (output_gimple_stmt): Likewise. |
| (output_bb): Likewise. |
| * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h. |
| (streamer_hooks): Move to streamer-hooks.c. |
| (check_handled_ts_structures): Move to tree-streamer.c |
| (lto_streamer_cache_add_to_node_array): Likewise. |
| (lto_streamer_cache_insert_1): Likewise. |
| (lto_streamer_cache_insert): Likewise. |
| (lto_streamer_cache_insert_at): Likewise. |
| (lto_streamer_cache_append): Likewise. |
| (lto_streamer_cache_lookup): Likewise. |
| (lto_streamer_cache_get): Likewise. |
| (lto_record_common_node): Likewise. |
| (lto_preload_common_nodes): Likewise. |
| (lto_streamer_cache_create): Likewise. |
| (lto_streamer_cache_delete): Likewise. |
| (streamer_hooks_init): Move to streamer-hooks.c. |
| * lto-streamer.h: Include diagnostic.h |
| (struct output_block, struct lto_input_block, |
| struct data_in, struct bitpack_d): Remove forward declarations. |
| (struct bitpack_d): Move to data-streamer.h. |
| (struct lto_streamer_cache_d): Move to tree-streamer.h. |
| (struct streamer_hooks): Move to streamer-hooks.h. |
| (bp_pack_var_len_unsigned): Move to data-streamer.h. |
| (bp_pack_var_len_int): Likewise. |
| (bp_unpack_var_len_unsigned): Likewise. |
| (bp_unpack_var_len_int): Likewise. |
| (lto_input_location): Declare. |
| (lto_tag_check_set): Declare. |
| (lto_init_eh): Declare. |
| (lto_output_tree_ref): Declare. |
| (lto_output_location): Declare. |
| (bitpack_create): Move to data-streamer.h. |
| (bp_pack_value): Likewise. |
| (lto_output_bitpack): Likewise. |
| (lto_input_bitpack): Likewise. |
| (bp_unpack_value): Likewise. |
| (lto_output_1_stream): Likewise. |
| (lto_input_1_unsigned): Likewise. |
| (lto_output_int_in_range): Likewise. |
| (lto_input_int_in_range): Likewise. |
| (bp_pack_int_in_range): Likewise. |
| (bp_unpack_int_in_range): Likewise. |
| (lto_output_enum): Likewise. |
| (lto_input_enum): Likewise. |
| (bp_pack_enum): Likewise. |
| (bp_unpack_enum): Likewise. |
| * streamer-hooks.c: New. |
| * streamer-hooks.h: New. |
| * tree-streamer-in.c: New. |
| * tree-streamer-out.c: New. |
| * tree-streamer.c: New. |
| * tree-streamer.h: New. |
| |
| 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * gthr-posix95.h: Remove. |
| * gthr.h [_PTHREADS95]: Remove. |
| * configure.ac (enable_threads): Remove posix95. |
| * configure: Regenerate. |
| * doc/install.texi (Configuration, --enable-threads): Remove posix95. |
| |
| 2011-08-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49781 |
| * config/i386/i386.c (ix86_decompose_address): Allow zero-extended |
| SImode addresses. |
| (ix86_print_operand_address): Handle zero-extended addresses. |
| (memory_address_length): Add length of addr32 prefix for |
| zero-extended addresses. |
| (ix86_secondary_reload): Handle moves to/from double-word general |
| registers from/to zero-extended addresses. |
| * config/i386/predicates.md (lea_address_operand): Reject |
| zero-extended operands. |
| |
| 2011-08-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR other/48007 |
| * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86. |
| |
| * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned. |
| (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise. |
| |
| * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New. |
| (_Unwind_Context_Reg_Val): Likewise. |
| (_Unwind_Get_Unwind_Word): Likewise. |
| (_Unwind_Get_Unwind_Context_Reg_Val): Likewise. |
| (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field. |
| (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT |
| for EXTENDED_CONTEXT_BIT. |
| (__frame_state_for): Likewise. |
| (uw_init_context_1): Likewise. |
| (_Unwind_GetGR): Updated. |
| (_Unwind_SetGR): Likewise. |
| (_Unwind_GetGRPtr): Likewise. |
| (_Unwind_SetGRPtr): Likewise. |
| (_Unwind_SetGRValue): Likewise. |
| (_Unwind_GRByValue): Likewise. |
| (uw_install_context_1): Likewise. |
| |
| * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and |
| ASSUME_EXTENDED_UNWIND_CONTEXT. |
| * doc/tm.texi: Regenerated. |
| |
| 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS). |
| |
| 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't |
| Linux/GNU-specific. |
| (DEC Alpha Options, -mtune): Likewise. |
| (MIPS Options, -march): native is supported on IRIX. |
| |
| 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sparc/driver-sparc.c: New file. |
| * config/sparc/x-sparc: New file. |
| * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*. |
| * config/sparc/sparc.opt (native): New value for enum processor_type. |
| * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare. |
| * config/sparc/sparc.c (sparc_option_override): Abort if |
| PROCESSOR_NATIVE gets here. |
| * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare. |
| (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS, |
| DRIVER_SELF_SPECS): Define. |
| * doc/invoke.texi (SPARC Options, -mcpu): Document native. |
| (SPARC Options, -mtune): Likewise. |
| * configure.ac (EXTRA_GCC_LIBS): Check for libkstat. |
| Substitute result. |
| * configure: Regenerate. |
| * Makefile.in (EXTRA_GCC_LIBS): Set. |
| (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS). |
| (cpp$(exeext)): Likewise. |
| |
| 2011-08-08 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (extract_range_from_unary_expr_1): New function, |
| split out from ... |
| (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR |
| by composition. |
| |
| 2011-08-08 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR tree-optimization/50005 |
| * ipa-inline-analysis (remap_predicate): Add cast to |
| silence signed/unsigned comparison warning. |
| |
| 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * modulo-sched.c (get_sched_window): Use a table for the debug output. |
| Print the current ii. |
| (sms_schedule_by_order): Reduce whitespace in dump line. |
| |
| 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * modulo-sched.c (get_sched_window): Use just one loop for predecessors |
| and one loop for successors. Fix upper bound of memory range. |
| |
| 2011-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50001 |
| * config/alpha/alpha.c (alpha_instantiate_decls): New function. |
| (TARGET_INSTANTIATE_DECLS): New define. |
| |
| 2011-08-06 Paolo Bonzini <bonzini@gnu.org> |
| Mikael Morin <mikael.morin@sfr.fr> |
| |
| * Makefile.in (INCLUDES_FOR_TARGET): New. |
| (LIBGCC2_CFLAGS): Use it. |
| (CRTSTUFF_CFLAGS): Use it instead of INCLUDES. |
| |
| 2011-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_compute_frame_layout): Simplify |
| frame->save_regs_using_mov calculation. |
| |
| 2011-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (ssemodesuffix): Remove V8SI mode. |
| * config/i386/sse.md (castmode): New mode attribute. |
| (avx_<castmode><avxsizesuffix>_<castmode>): Rename from |
| avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>. |
| |
| 2011-08-05 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/49494 |
| * ipa-inline-analysis.c (remap_predicate): Add bounds check. |
| |
| 2011-08-05 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/49500 |
| * tree-emultls.c (new_emutls_decl):Add alias_of parameter; |
| handle aliases. |
| (create_emultls_var):New function. |
| (ipa_lower_emutls): Handle aliases correctly. |
| |
| 2011-08-05 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/49735 |
| * ipa-inline.c (recursive_inlining): Look through aliases. |
| |
| 2011-08-05 Jason Merrill <jason@redhat.com> |
| |
| * config/i386/i386.c (setup_incoming_varargs_ms_64): Move |
| declarations to beginning of function. |
| |
| 2011-08-05 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/49900 |
| * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to |
| ensure basic blocks stay in the same order. |
| |
| 2011-08-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to |
| store_bit_field. |
| (s390_expand_atomic): Same. |
| |
| 2011-08-05 Richard Henderson <rth@redhat.com> |
| |
| PR rtl-opt/49977 |
| * dwarf2cfi.c (scan_insn_after): Split out of ... |
| (scan_trace): ... here. Correctly place notes wrt sequences. |
| |
| 2011-08-05 Kaz Kojima <kkojima@gcc.gnu.org> |
| Richard Henderson <rth@redhat.com> |
| |
| PR rtl-opt/49982 |
| * expr.c (fixup_args_size_notes): Look through no-op moves. |
| |
| 2011-08-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*push<mode>2): Use "o" constraint instead |
| of "m" for operand 0. Add type and mode attribute. |
| (*pushxf_nointeger"): Use "<" constraint for operand 0. |
| (*pushdf_rex64): New pattern, split out of *pushdf. Use "m" |
| constraint instead of "o" for opreand 1. |
| (*pushdf): Disable for TARGET_64BIT. Correct mode attribute. |
| (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for |
| operand 0, alternative 4. |
| (*movdf_internal_rex64): Ditto for operand 0, alernative 6. |
| |
| 2011-08-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (lea_address_operand): Rename from |
| no_seg_address_operand. |
| * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename. |
| (*lea_1_zext): Ditto. |
| (*lea_2): Ditto. |
| (*lea_2_zext): Ditto. |
| |
| 2011-08-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of |
| parts.base and parts.index. |
| * config/i386/predicates.md (aligned_operand): Ditto. |
| (cmpxchg8b_pic_memory_operand): Ditto. |
| |
| 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/soft-fp: Move to ../libgcc. |
| * Makefile.in (SFP_MACHINE): Remove. |
| (libgcc-support): Remove $(SFP_MACHINE) dependency. |
| * config/arm/sfp-machine.h: Move to ../libgcc/config/arm. |
| * config/arm/t-arm-softfp: Move to |
| ../libgcc/config/arm/t-softfp. |
| * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x. |
| * config/c6x/t-c6x-softfp: Remove. |
| * config/i386/sfp-machine.h: Move to ../libgcc/config/i386. |
| * config/i386/t-fprules-softfp: Move to |
| ../libgcc/config/t-softfp-tf. |
| * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64. |
| * config/ia64/t-fprules-softfp: Remove. |
| * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32. |
| * config/lm32/t-fprules-softfp: Remove. |
| * config/moxie/sfp-machine.h: Remove. |
| * config/moxie/t-moxie-softfp: Remove. |
| * config/rs6000/darwin-ldouble-format: Move to |
| ../libgcc/config/rs6000/ibm-ldouble-format. |
| * config/rs6000/darwin-ldouble.c: Move to |
| ../libgcc/config/rs6000/ibm-ldouble.c |
| * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000. |
| * config/rs6000/libgcc-ppc64.ver: Likewise. |
| * config/rs6000/sfp-machine.h: Likewise. |
| * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove |
| $(srcdir)/config/rs6000/libgcc-ppc64.ver. |
| (LIB2FUNCS_EXTRA): Remove. |
| (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/rs6000/t-aix52: Likewise |
| * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove |
| $(srcdir)/config/rs6000/darwin-ldouble.c. |
| (SHLIB_MAPFILES): Remove. |
| * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove |
| $(srcdir)/config/rs6000/darwin-ldouble.c. |
| * config/rs6000/t-fprules-softfp: Move to |
| ../libgcc/config/t-softfp-sfdf. |
| * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000. |
| * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove. |
| * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove |
| $(srcdir)/config/rs6000/darwin-ldouble.c. |
| * config/score/sfp-machine.h: Move to ../libgcc/config/score. |
| * config/score/t-score-softfp: Remove. |
| * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp, |
| soft-fp/t-softfp from tmake_file. |
| (arm*-*-uclinux*): Likewise. |
| (arm*-*-ecos-elf): Likewise. |
| (arm*-*-eabi*, arm*-*-symbianelf*): Likewise. |
| (arm*-*-rtems*): Likewise. |
| (arm*-*-elf): Likewise. |
| (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from |
| tmake_file. |
| (moxie-*-uclinux*): Likewise. |
| (moxie-*-rtems*): Likewise. |
| (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from |
| tmake_file. |
| (lm32-*-rtems*): Likewise. |
| (lm32-*-uclinux*): Likewise. |
| (powerpc-*-freebsd*): Remove rs6000/t-freebsd, |
| rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. |
| (powerpc-*-linux*, powerpc64-*-linux*): Remove |
| rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. |
| (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from |
| tmake_file. |
| (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from |
| tmake_file. |
| (tic6x-*-uclinux): Likewise. |
| (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp, |
| soft-fp/t-softfp from tmake_file. |
| (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu) |
| (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise. |
| (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise. |
| (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. |
| (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise. |
| |
| 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove. |
| (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies. |
| (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS, |
| TPBIT, TPBIT_FUNCS. |
| * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc. |
| * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c): |
| Remove. |
| * config/arm/t-vxworks: Likewise. |
| * config/arm/t-wince-pe: Likewise. |
| * config/avr/t-avr (fp-bit.c, FPBIT): Remove. |
| * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/bfin/t-bfin-elf: Likewise. |
| * config/bfin/t-bfin-linux: Likewise. |
| * config/bfin/t-bfin-uclinux: Likewise. |
| * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c): |
| Remove. |
| * config/fr30/t-fr30: Likewise. |
| * config/frv/t-frv: Likewise. |
| * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove. |
| * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/m32c/t-m32c: Likewise. |
| * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove. |
| * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/mcore/t-mcore: Likewise. |
| * config/mep/t-mep: Likewise. |
| * config/microblaze/t-microblaze: Likewise. |
| * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove. |
| * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/mips/t-sdemtk (FPBIT, DPBIT): Remove. |
| * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/mn10300/t-linux: Remove. |
| * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/pdp11/t-pdp11: Likewise. |
| * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove. |
| * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000. |
| * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c. |
| * config/rs6000/t-aix52: Likewise. |
| * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove |
| $(srcdir)/config/rs6000/ppc64-fp.c. |
| * config/rs6000/t-fprules-fpbit: Remove. |
| * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove. |
| * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/sh/t-netbsd (FPBIT, DPBIT): Remove. |
| * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/sparc/t-elf: Likewise. |
| * config/sparc/t-leon: Likewise. |
| * config/sparc/t-leon3: Likewise. |
| * config/spu/t-spu-elf: Likewise. |
| (DPBIT_FUNCS): Remove. |
| * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/v850/t-v850: Likewise. |
| * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file. |
| (avr-*-*): Likewise. |
| (h8300-*-rtems*): Set libgcc_tm_file. |
| (h8300-*-elf*): Likewise. |
| (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from |
| tmake_file. |
| (powerpc-*-eabisim*): Likewise. |
| (powerpc-*-elf*): Likewise. |
| (powerpc-*-eabialtivec*): Likewise. |
| (powerpc-xilinx-eabi*): Likewise. |
| (powerpc-*-eabi*): Likewise. |
| (powerpc-*-rtems*): Likewise. |
| (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise. |
| (powerpcle-*-elf*): Likewise. |
| (powerpcle-*-eabisim*): Likewise. |
| (powerpcle-*-eabi*): Likewise. |
| (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file. |
| (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file. |
| * doc/fragments.texi (Target Fragment, Floating Point Emulation): |
| Remove. |
| |
| 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (UNWIND_H): Remove. |
| (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to |
| ../libgcc/Makefile.in. |
| (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise. |
| (LIBUNWINDDEP): Remove. |
| (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies. |
| (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED, |
| LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL. |
| (stmp-int-hdrs): Remove $(UNWIND_H) dependency. |
| Don't copy $(UNWIND_H). |
| * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling. |
| * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove. |
| * aclocal.m4: Regenerate. |
| * configure: Regenerate. |
| * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, |
| unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, |
| unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, |
| unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc. |
| * unwind-dw2-fde-darwin.c: Move to ../libgcc/config. |
| * config/arm/libunwind.S, config/arm/pr-support.c, |
| config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to |
| ../libgcc/config/arm. |
| * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove. |
| * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove. |
| * config/frv/t-frv ($(T)frvbegin$(objext)): Use |
| $(srcdir)/../libgcc to refer to unwind-dw2-fde.h. |
| ($(T)frvend$(objext)): Likewise. |
| * config/ia64/t-glibc (LIB2ADDEH): Remove. |
| * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64. |
| * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, |
| config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to |
| ../libgcc/config/ia64. |
| * config/ia64/t-hpux (LIB2ADDEH): Remove. |
| * config/ia64/t-ia64 (LIB2ADDEH): Remove. |
| * config/ia64/t-vms (LIB2ADDEH): Remove. |
| * config/ia64/vms.h (UNW_IVMS_MODE, |
| MD_UNW_COMPATIBLE_PERSONALITY_P): Remove. |
| * config/picochip/t-picochip (LIB2ADDEH): Remove. |
| * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove. |
| * config/rs6000/t-darwin (LIB2ADDEH): Remove. |
| * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000. |
| * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use |
| $(srcdir)/../libgcc to refer to unwinder sources. |
| * config/spu/t-spu-elf (LIB2ADDEH): Remove. |
| * config/t-darwin (LIB2ADDEH): Remove. |
| * config/t-freebsd (LIB2ADDEH): Remove. |
| * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove. |
| * config/t-libunwind-elf: Move to ../libgcc/config. |
| * config/t-linux (LIB2ADDEH): Remove. |
| * config/t-sol2 (LIB2ADDEH): Remove. |
| * config/xtensa/t-xtensa (LIB2ADDEH): Remove. |
| * system.h (MD_FROB_UPDATE_CONTEXT): Poison. |
| |
| 2011-08-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (processor_alias_table): Add core-avx-i. |
| |
| * doc/invoke.texi: Document core-avx-i. |
| |
| 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * tsystem.h (CONST_CAST2, CONST_CAST): Define. |
| |
| 2011-08-05 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the |
| result of multiple results reduction when extracting the final |
| value using scalar code. |
| |
| 2011-08-05 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49984 |
| * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR. |
| |
| 2011-08-05 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always |
| return true for constant integer ranges. |
| (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and |
| BIT_IOR_EXPR handling. |
| |
| 2011-08-04 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/i386.c (setup_incoming_varargs_ms_64): Set |
| ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero. |
| |
| 2011-08-04 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vectorizer.h (struct _stmt_vec_info): Add new field for |
| pattern def statement, and its access macro. |
| (NUM_PATTERNS): Set to 5. |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Handle |
| pattern def statement. |
| (vect_transform_loop): Likewise. |
| * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new |
| function vect_recog_over_widening_pattern (). |
| (vect_operation_fits_smaller_type): New function. |
| (vect_recog_over_widening_pattern, vect_mark_pattern_stmts): |
| Likewise. |
| (vect_pattern_recog_1): Move the code that marks pattern |
| statements to vect_mark_pattern_stmts (), and call it. Update |
| documentation. |
| * tree-vect-stmts.c (vect_supportable_shift): New function. |
| (vect_analyze_stmt): Handle pattern def statement. |
| (new_stmt_vec_info): Initialize pattern def statement. |
| |
| 2011-08-04 Richard Henderson <rth@redhat.com> |
| |
| PR target/49964 |
| * config/i386/i386.c (ix86_expand_call): Don't create nested |
| PARALLELs for TARGET_VZEROUPPER. |
| (ix86_split_call_vzeroupper): Fix extraction of the original call. |
| * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't |
| recognize nested PARALLELs. |
| (*call_pop_vzeroupper, *sibcall_pop_vzeroupper, |
| *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper, |
| *sibcall_value_pop_vzeroupper): Likewise. |
| |
| 2011-08-04 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/49968 |
| * calls.c (expand_call): Use fixup_args_size_notes for |
| emit_stack_restore. |
| * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets |
| in non-standard modes. |
| |
| 2011-08-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc.c (self_spec): New variable. |
| (static_specs): Add self_spec. |
| (main): Call do_self_spec on "self_spec" specs after reading |
| user specs files. Move compare_debug handling right after that. |
| |
| 2011-08-04 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (vrp_expr_computes_nonnegative): Remove. |
| (value_range_nonnegative_p): New function. |
| (ssa_name_nonnegative_p): Use it. |
| (value_range_constant_singleton): New function. |
| (op_with_constant_singleton_value_range): Use it. |
| (extract_range_from_binary_expr_1): New function, split out from ... |
| (extract_range_from_binary_expr): ... this. Remove fallback |
| constant folding done here. |
| |
| 2011-08-04 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49806 |
| * tree-vrp.c (op_with_boolean_value_range_p): New function. |
| (simplify_truth_ops_using_ranges): Simplify. Allow inserting |
| a new statement for a final conversion to bool. |
| |
| 2011-08-04 Romain Geissler <romain.geissler@gmail.com> |
| |
| * gengtype-state.c: Include "bconfig.h" if |
| GENERATOR_FILE is defined, "config.h" otherwise. |
| * gengtype.c: Likewise. |
| * gengtype-lex.l: Likewise. |
| * gengtype-parse.c: Likewise. |
| * Makefile.in (gengtype-lex.o-warn): New variable. |
| (plugin_resourcesdir): Likewise. |
| (plugin_bindir): Likewise. |
| (plugin_includedir): Use $(plugin_resourcesdir) as prefix base. |
| (MOSTLYCLEANFILES): Add gengtype$(exeext). |
| (native): Depend on gengtype$(exeext) is $enable_plugin |
| is set to "yes". |
| (gtype.state): Depend on s-gtype. Use temporary file. |
| (gengtype-lex.o): New rule. |
| (gengtype-parse.o): Likewise. |
| (gengtype-state.o): Likewise. |
| (gengtype$(exeext)): Likewise. |
| (install-gengtype): Likewise. |
| (gengtype.o): Likewise. |
| (build/gengtype.o): Depend on version.h. |
| (build/gengtype-state): Depend on double-int.h, version.h, |
| $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o. |
| (install-plugin): Depend on install-gengtype. |
| |
| 2011-08-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49905 |
| * tree.h (init_attributes): New prototype. |
| * attribs.c (init_attributes): No longer static. |
| |
| 2011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify |
| maybe_suffix. |
| |
| 2011-08-03 David Li <davidxl@google.com> |
| |
| * tree-optimize.c (execute_fixup_cfg): Fix up entry |
| outgoing edge counts after inlining. |
| |
| 2011-08-03 David Li <davidxl@google.com> |
| |
| * profile.c (compute_branch_probabilities): Compute |
| function frequency after profile annotation. |
| |
| 2011-08-04 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify |
| use_backchain_to_restore_sp initialisation. |
| (rs6000_legitimate_offset_address_p): Simplify offset test. |
| |
| 2011-08-03 Richard Henderson <rth@redhat.com> |
| |
| * config/spu/spu.md: Use define_c_enum instead of define_constants. |
| (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*. |
| (UNSPECV_NOP): New. |
| |
| 2011-08-03 Richard Henderson <rth@redhat.com> |
| |
| PR target/34888 |
| * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0. |
| |
| 2011-08-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49948 |
| * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements. |
| |
| 2011-08-03 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m32c/m32c.c (class_sizes): Remove. |
| (reduce_class): Change arguments and return type to reg_class_t. |
| Change type cc var to HARD_REG_SET. Change type best var to |
| reg_class_t. Change type best_size var to unsigned int. Remove |
| initialization class_sizes var. Use reg_class_size array instead |
| of class_sizes. Use reg_class_contents array instead |
| of class_contents. |
| |
| 2011-08-03 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/49958 |
| * fold-const.c (fold_binary_loc): Only associate |
| (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if |
| overflow wraps. |
| |
| 2011-08-03 Alan Modra <amodra@gmail.com> |
| |
| PR rtl-optimization/49941 |
| * jump.c (mark_jump_label): Comment. |
| (mark_jump_label_1): Set JUMP_LABEL for return jumps. |
| * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared. |
| (mark_used_flags): Don't mark RETURN. |
| |
| 2011-08-03 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49938 |
| * tree-scalar-evolution.c (interpret_loop_phi): Gracefully |
| deal with a POLYNOMIAL_CHREC. |
| |
| 2011-08-03 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (calculate_stage_count, |
| calculate_must_precede_follow, get_sched_window, |
| try_scheduling_node_in_cycle, remove_node_from_ps): Add |
| declaration. |
| (update_node_sched_params, set_must_precede_follow, optimize_sc): |
| New functions. |
| (reset_sched_times): Call update_node_sched_params. |
| (sms_schedule): Call optimize_sc. |
| (get_sched_window): Change function arguments. |
| (sms_schedule_by_order): Update call to get_sched_window. |
| Call set_must_precede_follow. |
| (calculate_stage_count): Add function argument. |
| |
| 2011-08-02 Richard Henderson <rth@redhat.com> |
| |
| PR target/49864 |
| PR target/49879 |
| * reg-notes.def (REG_ARGS_SIZE): New. |
| * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop. |
| (expand_call): Add REG_ARGS_SIZE to emit_stack_restore. |
| * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to |
| different stack levels. |
| * combine-stack-adj.c (adjust_frame_related_expr): Remove. |
| (maybe_move_args_size_note): New. |
| (combine_stack_adjustments_for_block): Use it. |
| * combine.c (distribute_notes): Place REG_ARGS_SIZE. |
| * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member. |
| (dw_trace_info): Add beg_true_args_size, end_true_args_size, |
| beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined. |
| (cur_cfa): New. |
| (queued_args_size): Remove. |
| (add_cfi_args_size): Assert size is non-negative. |
| (stack_adjust_offset, dwarf2out_args_size): Remove. |
| (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove. |
| (notice_args_size, notice_eh_throw): New. |
| (dwarf2out_frame_debug_def_cfa): Use cur_cfa. |
| (dwarf2out_frame_debug_adjust_cfa): Likewise. |
| (dwarf2out_frame_debug_cfa_offset): Likewise. |
| (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset. |
| (dwarf2out_frame_debug): Don't handle non-frame-related-p insns. |
| (change_cfi_row): Don't emit args_size. |
| (maybe_record_trace_start_abnormal): Split out from ... |
| (maybe_record_trace_start): Here. Set args_size_undefined. |
| (create_trace_edges): Update to match. |
| (scan_trace): Handle REG_ARGS_SIZE. |
| (connect_traces): Connect args_size between EH insns. |
| * emit-rtl.c (try_split): Handle REG_ARGS_SIZE. |
| * explow.c (suppress_reg_args_size): New. |
| (adjust_stack_1): Split out from ... |
| (adjust_stack): ... here. |
| (anti_adjust_stack): Use it. |
| (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE. |
| * expr.c (mem_autoinc_base): New. |
| (fixup_args_size_notes): New. |
| (emit_single_push_insn_1): Rename from emit_single_push_insn. |
| (emit_single_push_insn): New. Generate REG_ARGS_SIZE. |
| * recog.c (peep2_attempt): Handle REG_ARGS_SIZE. |
| * reload1.c (reload_as_needed): Likewise. |
| * rtl.h (fixup_args_size_notes): Declare. |
| |
| 2011-08-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR bootstrap/49914 |
| * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead |
| of abs. |
| * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. |
| * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise. |
| |
| 2011-08-02 Richard Henderson <rth@redhat.com> |
| |
| * config/h8300/h8300.c (push, pop): Return the insn. |
| (h8300_swap_into_er6): Generate correct unwind info. |
| (h8300_swap_out_of_er6): Likewise. |
| * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a |
| complex cfa expression. |
| (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too. |
| |
| 2011-08-02 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo. |
| |
| 2011-08-02 Richard Henderson <rth@redhat.com> |
| |
| PR target/49878 |
| * config/h8300/h8300.c (h8300_move_ok): New. |
| * config/h8300/h8300-protos.h: Declare it. |
| * config/h8300/h8300.md (P): New mode iterator. |
| (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok. |
| (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise. |
| (movsi, *movsi_h8300, *movsi_h8300hs): Likewise. |
| (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY. |
| (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced |
| and pushqi1_h8300hs_normal; use PRE_MODIFY and |
| register_no_sp_elim_operand. |
| (*pushhi1_h8300hs_<P>): Similarly. |
| (pushqi1, pushhi1, pushhi1_h8300): Remove. |
| * config/h8300/predicates.md (register_no_sp_elim_operand): New. |
| |
| 2011-08-02 Richard Henderson <rth@redhat.com> |
| |
| PR target/49881 |
| * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand. |
| |
| 2011-08-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * c-parser.c (enum c_parser_prec): New enum, moved from within |
| c_parser_binary_expression. |
| (c_parser_binary_expression): Add PREC argument. Stop parsing |
| if operator has lower or equal precedence than PREC. |
| (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust |
| callers. |
| (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics. |
| Adjust c_finish_omp_atomic caller. |
| (c_parser_omp_taskyield): New function. |
| (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD. |
| (c_parser_omp_clause_name): Handle final and mergeable clauses. |
| (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New |
| functions. |
| (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL |
| and PRAGMA_OMP_CLAUSE_MERGEABLE. |
| (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses. |
| (c_parser_omp_clause_reduction): Handle min and max. |
| * c-typeck.c (c_finish_omp_clauses): Don't complain about |
| const qualified predetermined vars in firstprivate clause. |
| andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. |
| Handle MIN_EXPR and MAX_EXPR. |
| * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL |
| and OMP_CLAUSE_MERGEABLE. |
| (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD |
| and OMP_ATOMIC_CAPTURE_NEW. |
| * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and |
| OMP_CLAUSE_MERGEABLE. |
| (omp_clause_code_name): Likewise. |
| (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. |
| * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL |
| and OMP_CLAUSE_MERGEABLE. |
| (OMP_CLAUSE_FINAL_EXPR): Define. |
| * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and |
| OMP_CLAUSE_MERGEABLE. |
| (expand_task_call): Likewise. |
| (expand_omp_atomic_load, expand_omp_atomic_store): New functions. |
| (expand_omp_atomic_fetch_op): Handle cases where old or new |
| value is needed afterwards. |
| (expand_omp_atomic): Call expand_omp_atomic_load resp. |
| expand_omp_atomic_store. |
| * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle |
| OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW. |
| (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle |
| OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Likewise. |
| * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD, |
| OMP_ATOMIC_CAPTURE_NEW): New. |
| * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New. |
| (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value): |
| New inlines. |
| * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin. |
| * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE, |
| OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. |
| |
| 2011-08-02 Kai Tietz <ktietz@redhat.com> |
| |
| * gimple.c (canonicalize_cond_expr_cond): Handle cast from |
| boolean-type. |
| (ssa_forward_propagate_and_combine): Interprete result of |
| forward_propagate_comparison. |
| * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for |
| boolean-typed operands for comparisons. |
| |
| 2011-08-02 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/libgcc.S: Gather related function in the |
| same input section. |
| (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4, |
| __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external |
| references. |
| (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4, |
| __udivmodsi4, __divmodsi4, __prologue_saves__, |
| __epilogue_restores__, _exit, __tablejump2__, __tablejump__, |
| __do_copy_data, __do_clear_bss, __do_global_ctors, |
| __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF. |
| |
| 2011-08-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47766 |
| * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value. |
| (stack_protect_test): The pattern compares ptr_mode value. |
| |
| 2011-08-02 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE |
| note for save_LR_around_toc_setup sequence. |
| |
| 2011-08-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long. |
| |
| 2011-08-01 Sebastian Pop <sebastian.pop@amd.com> |
| Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H. |
| * hwint.c: Include diagnostic-core.h. |
| (abs_hwi): New. |
| (gcd): Moved here... |
| (pos_mul_hwi): New. |
| (mul_hwi): New. |
| (least_common_multiple): Moved here... |
| * hwint.h (gcd): ... from here. |
| (least_common_multiple): ... from here. |
| (HOST_WIDE_INT_MIN): New. |
| (HOST_WIDE_INT_MAX): New. |
| (abs_hwi): Declared. |
| (gcd): Declared. |
| (pos_mul_hwi): Declared. |
| (mul_hwi): Declared. |
| (least_common_multiple): Declared. |
| * omega.c (check_pos_mul): Removed. |
| (check_mul): Removed. |
| (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and |
| mul_hwi instead of check_mul. |
| |
| 2011-08-01 Richard Henderson <rth@redhat.com> |
| |
| PR target/49881 |
| * config/avr/avr.h (PUSH_ROUNDING): New. |
| * config/avr/avr.md (pushqi1): Rename from *pushqi. |
| (*pushhi, *pushsi, *pushsf): Remove. |
| (MPUSH): New mode iterator. |
| (push<MPUSH>1): New expander. |
| |
| 2011-08-01 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS, |
| PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro. |
| * config/mmix/mmix-protos.h (mmix_preferred_reload_class, |
| mmix_preferred_output_reload_class): Remove. |
| * config/mmix/mmix.c (mmix_preferred_reload_class, |
| mmix_preferred_output_reload_class): Make static. Change rclass |
| argument and return type to reg_class_t. |
| (TARGET_PREFERRED_RELOAD_CLASS, |
| TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. |
| |
| 2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER |
| handling. |
| |
| 2011-08-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47766 |
| * config/i386/i386.md (PTR): New. |
| (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT. |
| (stack_protect_test): Likewise. |
| (stack_protect_set_<mode>): Replace ":P" with ":PTR". |
| (stack_tls_protect_set_<mode>): Likewise. |
| (stack_tls_protect_test_<mode>): Likewise. |
| |
| 2011-08-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49927 |
| * config/i386/i386.c (ix86_address_subreg_operand): New. |
| (ix86_decompose_address): Use ix86_address_subreg_operand. |
| (ix86_legitimate_address_p): Do not assert that subregs satisfy |
| register_no_elim_operand in DImode. |
| |
| 2011-08-01 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49926 |
| * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement |
| in a chain doesn't have uses both inside and outside the loop. |
| |
| 2011-08-01 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.h (mcu_type_s): Add errata_skip field. |
| * config/avr/avr-devices.c (avr_mcu_types): Use it. |
| * config/avr/avr-mcus.def (AVR_MCU): Use it. |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin |
| define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__. |
| * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit): |
| Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__ |
| to detect if XJMP must not be skipped. |
| |
| 2011-08-02 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static. |
| (rs6000_emit_prologue): Don't prematurely return when |
| TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in |
| save_toc_in_prologue case. |
| (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for |
| calls_alloca. |
| |
| 2011-08-01 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-devices.c: Delete SVN property svn:executable. |
| * config/avr/predicates.md: Ditto. |
| * config/avr/driver-avr.c: Ditto. |
| * config/avr/genopt.sh: Set SVN property svn:executable to *. |
| |
| 2011-08-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * calls.c (emit_library_call_value_1): Declare size only if |
| BLOCK_REG_PADDING is defined. |
| |
| 2011-08-01 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR target/49547 |
| * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h. |
| (x86_64-*-*): Likewise. |
| * config/i386/i386.opt (mlzcnt): New. |
| * config/i386/abmintrin.h: File removed. |
| (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ... |
| * config/i386/lzcntintrin.h: ... here. New file. |
| (__lzcnt): Rename to ... |
| (__lzcnt32): ... this. |
| * config/i386/bmiintrin.h (head): Update copyright year. |
| (__lzcnt_u16): Removed. |
| (__lzcnt_u32): Likewise. |
| (__lzcnt_u64): Likewise. |
| * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__ |
| is defined, remove abmintrin.h. |
| * config/i386/cpuid.h (bit_LZCNT): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect |
| LZCNT feature. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __LZCNT__ if needed. |
| * config/i386/i386.c (ix86_target_string): New option -mlzcnt. |
| (ix86_option_override_internal): Handle LZCNT option. |
| (ix86_valid_target_attribute_inner_p): Likewise. |
| (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update. |
| * config/i386/i386.h (TARGET_LZCNT): New. |
| (CLZ_DEFINED_VALUE_AT_ZERO): Update. |
| * config/i386/i386.md (clz<mode>2): Update insn constraint. |
| (clz<mode>2_lzcnt): Likewise. |
| * doc/invoke.texi: Mention -mlzcnt option. |
| * doc/extend.texi: Likewise. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * configure.ac (fixed-point): Add ARM support. |
| * configure: Regenerate. |
| * config/arm/arm.c (arm_fixed_mode_set): New struct. |
| (arm_set_fixed_optab_libfunc): New. |
| (arm_set_fixed_conv_libfunc): New. |
| (arm_init_libfuncs): Initialise fixed-point helper libfuncs with |
| ARM-specific names. |
| (aapcs_libcall_value): Return sub-word-size fixed-point libcall |
| return values in SImode. |
| (arm_return_in_msb): Return fixed-point types in the msb. |
| (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types |
| upwards. |
| (arm_scalar_mode_supported_p): Support fixed-point modes. |
| (arm_vector_mode_supported_p): Support vector fixed-point modes. |
| * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE) |
| (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE) |
| (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE) |
| (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define. |
| * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL): |
| New mode iterators. |
| (qaddsub_suf): New mode attribute. |
| * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare |
| vector modes. |
| * config/arm/predicates.md (sat_shift_operator): New predicate. |
| * config/arm/arm-fixed.md: New. |
| * config/arm/arm.md: Include arm-fixed.md. |
| * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * calls.c (emit_library_call_value_1): Support padding for libcall |
| arguments and return values. |
| * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values |
| downwards in big-endian mode. |
| |
| 2011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR debug/49887 |
| * config/sol2.c (solaris_code_end): Rename to solaris_file_end. |
| * config/sol2-protos.h: Likewise. |
| * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call |
| solaris_code_end. |
| * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine. |
| * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call |
| solaris_file_end. |
| * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * final.c (output_addr_const): Print fixed-point constants as |
| decimal not hex. |
| |
| 2011-08-01 Richard Guenther <rguenther@suse.de> |
| |
| * stor-layout.c (initialize_sizetypes): Properly sign-extend |
| bitsiztype TYPE_MAX_VALUE. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point |
| comparison helpers. |
| |
| 2011-07-31 Richard Henderson <rth@redhat.com> |
| |
| * config/h8300/crti.asm: Add flags to .section directive. |
| * config/h8300/crtn.asm: Likewise. |
| |
| 2011-07-31 Richard Henderson <rth@redhat.com> |
| |
| * stor-layout.c (initialize_sizetypes): Handle unsigned short. |
| * tree.c (build_common_tree_nodes): Likewise. |
| |
| 2011-07-31 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/49880 |
| * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1. |
| (divsi3_i1): Likewise. |
| |
| 2011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/49749 |
| * tree-ssa-reassoc.c (get_rank): New forward declaration. |
| (PHI_LOOP_BIAS): New macro. |
| (phi_rank): New function. |
| (loop_carried_phi): Likewise. |
| (propagate_rank): Likewise. |
| (get_rank): Add calls to phi_rank and propagate_rank. |
| |
| 2011-07-31 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead |
| of TARGET_64BIT. |
| (PTRDIFF_TYPE): Likewise. |
| |
| 2011-07-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49920 |
| * config/i386/i386.md (strset): Do not expand strset_singleop |
| when %eax or $edi are fixed. |
| (*strsetdi_rex_1): Disable when %eax or %edi are fixed. |
| (*strsetsi_1): Ditto. |
| (*strsethi_1): Ditto. |
| (*strsetqi_1): Ditto. |
| (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed. |
| (*rep_stossi): Ditto. |
| (*rep_stosqi): Ditto. |
| (*strlenqi_1): Ditto. |
| (cmpstrnsi): Also fail when %ecx is fixed. |
| (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed. |
| (*cmpstrnqi_1): Ditto. |
| (*strmovdi_rex_1): Disable when %esi or %edi are fixed. |
| (*strmovsi_1): Ditto. |
| (*strmovhi_1): Ditto. |
| (*strmovqi_1): Ditto. |
| (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed. |
| (*rep_movsi): Ditto. |
| (*rep_movqi): Ditto. |
| |
| 2011-07-31 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR target/47908 |
| * config/m68k/m68k.c (m68k_override_options_after_change): New function. |
| Disable instruction scheduling for non-ColdFire targets. |
| (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. |
| |
| 2011-07-31 Revital Eres <revital.eres@linaro.org> |
| |
| * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation |
| of anti-dep edge from a branch. |
| (add_cross_iteration_register_deps): Create anti-dep edge from |
| a branch. |
| |
| 2011-07-31 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c: Change comment. |
| (reset_sched_times): Fix print message. |
| (print_partial_schedule): Add print info. |
| |
| 2011-07-31 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/43513 |
| * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of |
| get_object_alignment and TYPE_ALIGN. |
| |
| 2011-07-30 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/43513 |
| * tree-ssa-dce.c (ref_may_be_aliased): Add assert. |
| (propagate_necessity): Handle WITH_SIZE_EXPR call arg. |
| |
| 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/mips/driver-native.c [__sgi__]: Include <invent.h>, |
| <sys/sbd.h>. |
| (cpu_types): New array. |
| (cputype): New function. |
| (host_detect_local_cpu): Only define buf, f if !__sgi__. |
| Use scaninvent instead of /proc/cpuinfo if __sgi__. |
| * config.host: Also use driver-native.o, mips/x-native on |
| mips-sgi-irix*. |
| * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare. |
| (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define. |
| (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS. |
| |
| 2011-07-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49897 |
| PR middle-end/49898 |
| * omp-low.c (use_pointer_for_field): If disallowing copy-in/out |
| in nested parallel and outer is a gimple_reg, mark it as addressable |
| and set its bit in task_shared_vars bitmap too. |
| |
| 2011-07-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (tp_or_register_operand): Remove predicate. |
| |
| 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY, |
| IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define. |
| (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE, |
| AMASK_LOCKPFTCHOK): Define. |
| (host_detect_local_cpu): Remove buf, f, cpu_names. |
| Define cpu_types, implver, amask. |
| Use __builtin_alpha_implver, __builtin_alpha_amask to determine |
| native CPU. |
| * config.host: Also use driver-alpha.o, alpha/x-alpha on |
| alpha*-dec-osf*. |
| * config/alpha/osf5.h [__alpha__ || __alpha] |
| (host_detect_local_cpu): Declare. |
| (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS) |
| (DRIVER_SELF_SPECS): Define. |
| |
| 2011-07-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47715 |
| * config/i386/i386.md (*load_tp_x32): New. |
| (*load_tp_x32_zext): Ditto. |
| (*add_tp_x32): Ditto. |
| (*add_tp_x32_zext): Ditto. |
| (*load_tp_<mode>): Disable for TARGET_X32 targets. |
| (*add_tp_<mode>): Ditto. |
| * config/i386/i386.c (get_thread_pointer): Load thread pointer in |
| ptr_mode and convert to Pmode if needed. |
| |
| 2011-07-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49687 |
| * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3, |
| muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3, |
| *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3): |
| Add X to register footprint: Clobber r26/r27. |
| |
| 2011-07-29 Richard Guenther <rguenther@suse.de> |
| |
| * builtins.c (fold_builtin_signbit): Build the comparison |
| with a proper type. |
| |
| 2011-07-29 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49893 |
| * tree-predcom.c (suitable_reference_p): Volatile references |
| are not suitable. |
| |
| 2011-07-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49313 |
| * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction. |
| (__ctzsi2): Result for 0 may be undefined. |
| (__ctzhi2): Result for 0 may be undefined. |
| (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail. |
| (__popcountsi2): Ditto. And don't clobber r26. |
| (__popcountdi2): Ditto. And don't clobber r27. |
| * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum. |
| (parityhi2): New expand. |
| (paritysi2): New expand. |
| (popcounthi2): New expand. |
| (popcountsi2): New expand. |
| (clzhi2): New expand. |
| (clzsi2): New expand. |
| (ctzhi2): New expand. |
| (ctzsi2): New expand. |
| (ffshi2): New expand. |
| (ffssi2): New expand. |
| (copysignsf3): New insn. |
| (bswapsi2): New expand. |
| (*parityhi2.libgcc): New insn. |
| (*parityqihi2.libgcc): New insn. |
| (*paritysihi2.libgcc): New insn. |
| (*popcounthi2.libgcc): New insn. |
| (*popcountsi2.libgcc): New insn. |
| (*popcountqi2.libgcc): New insn. |
| (*popcountqihi2.libgcc): New insn-and-split. |
| (*clzhi2.libgcc): New insn. |
| (*clzsihi2.libgcc): New insn. |
| (*ctzhi2.libgcc): New insn. |
| (*ctzsihi2.libgcc): New insn. |
| (*ffshi2.libgcc): New insn. |
| (*ffssihi2.libgcc): New insn. |
| (*bswapsi2.libgcc): New insn. |
| |
| 2011-07-29 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (get_value_range): Only set parameter default |
| definitions to varying, leave others at undefined. |
| (extract_range_from_binary_expr): Fix undefined handling. |
| (vrp_visit_phi_node): Handle merged undefined state. |
| |
| 2011-07-29 Wei Guozhi <carrot@google.com> |
| |
| PR rtl-optimization/49799 |
| * combine.c (make_compound_operation): Check if the bit field is valid |
| before change it to bit field extraction. |
| |
| 2011-07-29 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/49891 |
| * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for |
| newly created returnjumps. |
| |
| 2011-07-28 DJ Delorie <dj@redhat.com> |
| |
| * expr.c (expand_expr_addr_expr_1): Detect a user request for a |
| local frame in a naked function, and produce a suitable error for |
| that specific case. |
| |
| * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI |
| registers to be reloaded in HI classes when the target is HI. |
| |
| 2011-07-28 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with |
| bound_one, bound_two. |
| |
| 2011-07-28 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/48648 |
| * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle |
| CLAST assignments. |
| (translate_clast): Same. |
| (translate_clast_assignment): New. |
| |
| 2011-07-28 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/49876 |
| * sese.c (rename_uses): Do not return false on gloog_error: set |
| the new_expr to integer_zero_node and continue code generation. |
| (graphite_copy_stmts_from_block): Remove early exit on gloog_error. |
| |
| 2011-07-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49846 |
| * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack |
| arguments also check if they aren't initialized with a MODE_INT |
| mode of the same size. |
| |
| 2011-07-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * expr.c (get_bit_range): Handle *MEM_REF's. |
| |
| 2011-07-28 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * rtlanal.c (tablejump_p): False for returns. |
| * reorg.c (first_active_target_insn): New static function. |
| (find_end_label): Set JUMP_LABEL for a new returnjump. |
| (optimize_skip, get_jump_flags, rare_destination, |
| mostly_true_jump, get_branch_condition, |
| steal_delay_list_from_target, own_thread_p, |
| fill_simple_delay_slots, follow_jumps, fill_slots_from_thread, |
| fill_eager_delay_slots, relax_delay_slots, make_return_insns, |
| dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs. |
| * jump.c (delete_related_insns): Likewise. |
| (jump_to_label_p): New function. |
| (redirect_target): New static function. |
| (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS. |
| (redirect_jump_1): Assert that the new label is nonnull. |
| (redirect_jump): Likewise. |
| (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels. |
| * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the |
| exit block. |
| (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers |
| changed. Ensure that the right label is passed to redirect_jump. |
| * function.c (emit_return_into_block, |
| thread_prologue_and_epilogue_insns): Ensure new returnjumps have |
| ret_rtx in their JUMP_LABEL. |
| * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL. |
| * emit-rtl.c (skip_consecutive_labels): Allow the caller to |
| pass ret_rtx as label. |
| * cfglayout.c (fixup_reorder_chain): Use |
| force_nonfallthru_and_redirect rather than force_nonfallthru. |
| (duplicate_insn_chain): Copy JUMP_LABELs for returns. |
| * rtl.h (ANY_RETURN_P): New macro. |
| (jump_to_label_p): Declare. |
| * resource.c (find_dead_or_set_registers): Handle ret_rtx in |
| JUMP_LABELs. |
| (mark_target_live_regs): Likewise. |
| * basic-block.h (force_nonfallthru_and_redirect): Declare. |
| * cfgrtl.c (force_nonfallthru_and_redirect): No longer static. |
| * config/alpha/alpha.c (alpha_tablejump_addr_vec, |
| alpha_tablejump_best_label): Remove functions. |
| * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec, |
| alpha_tablejump_best_label): Remove declarations. |
| * config/sh/sh.c (barrier_align, split_branches): Adjust for |
| ret_rtx in JUMP_LABELs. |
| * config/arm/arm.c (is_jump_table): Likewise. |
| |
| 2011-07-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (pic_32bit_opreand): Do not define as |
| special predicate. Remove explicit mode checks. |
| |
| 2011-07-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize |
| DW_AT_data_member_location containing just DW_OP_plus_uconst. |
| |
| PR debug/49871 |
| * dwarf2out.c (size_of_die, value_format, output_die): Use |
| DW_FORM_udata instead of DW_FORM_data[48] for |
| dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3. |
| |
| 2011-07-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.md (*tls_global_dynamic_64): Update |
| length attribute. |
| |
| 2011-07-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47715 |
| * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from |
| tls_symbolic_operand check. Update code sequence for TARGET_X32. |
| (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check. |
| (tls_dynamic_gnu2_64): Ditto. |
| (*tls_dynamic_gnu2_lea_64): Ditto. |
| (*tls_dynamic_gnu2_call_64): Ditto. |
| (*tls_dynamic_gnu2_combine_64): Ditto. |
| |
| 2011-07-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config.gcc: Set need_64bit_hwint to yes for x86 targets. |
| |
| 2011-07-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47364 |
| * config/i386/i386.md (strlen<mode>): Replace SWI48x with P. |
| |
| 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints |
| before the core constraints. Adjust attributes. |
| ("*thumb2_movdf_vfp"): Likewise. |
| |
| 2011-07-28 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case. |
| (simplify_truth_ops_using_ranges): Likewise. |
| (build_assert_expr_for): Likewise. |
| (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case |
| and handle BIT_NOT_EXPR for truth-operation. |
| |
| 2011-07-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49313 |
| Undo r176835 from trunk |
| 2011-07-27 Georg-Johann Lay |
| |
| 2011-07-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49687 |
| * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit. |
| Add _muluhisi3, _mulshisi3, _usmulhisi3. |
| * config/avr/libgcc.S (__mulsi3): Rewrite. |
| (__mulhisi3): Rewrite. |
| (__umulhisi3): Rewrite. |
| (__usmulhisi3): New. |
| (__muluhisi3): New. |
| (__mulshisi3): New. |
| (__mulohisi3): New. |
| (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to |
| declare. |
| * config/avr/predicates.md (pseudo_register_operand): Rewrite. |
| (pseudo_register_or_const_int_operand): New. |
| (combine_pseudo_register_operand): New. |
| (u16_operand): New. |
| (s16_operand): New. |
| (o16_operand): New. |
| * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI. |
| * config/avr/avr.md (QIHI, QIHI2): New mode iterators. |
| (any_extend, any_extend2): New code iterators. |
| (extend_prefix): New code attribute. |
| (mulsi3): Rewrite. Turn insn to expander. |
| (mulhisi3): Ditto. |
| (umulhisi3): Ditto. |
| (usmulhisi3): New expander. |
| (*mulsi3): New insn-and-split. |
| (mulu<mode>si3): New insn-and-split. |
| (muls<mode>si3): New insn-and-split. |
| (mulohisi3): New insn-and-split. |
| (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3, |
| *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3, |
| *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3, |
| *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New |
| insn-and-split. |
| (*mulsi3_call): Rewrite. |
| (*mulhisi3_call): Rewrite. |
| (*umulhisi3_call): Rewrite. |
| (*usmulhisi3_call): New insn. |
| (*muluhisi3_call): New insn. |
| (*mulshisi3_call): New insn. |
| (*mulohisi3_call): New insn. |
| (extendqihi2): Use combine_pseudo_register_operand as predicate |
| for operand 1. |
| (extendqisi2): Ditto. |
| (zero_extendqihi2): Ditto. |
| (zero_extendqisi2): Ditto. |
| (zero_extendhisi2): Ditto. |
| (extendhisi2): Ditto. Don't early-clobber operand 0. |
| |
| 2011-07-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX. |
| |
| 2011-07-27 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/49471 |
| * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned |
| iv only when the largest type is unsigned. Do not call |
| lang_hooks.types.type_for_size. |
| |
| 2011-07-27 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/45450 |
| * graphite-poly.c (apply_poly_transforms): Disable legality check |
| after an openscop read. |
| |
| 2011-07-27 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/47691 |
| * graphite-clast-to-gimple.c (translate_clast_user): Update use of |
| copy_bb_and_scalar_dependences. |
| * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error. |
| (graphite_copy_stmts_from_block): Update call to rename_uses. |
| (copy_bb_and_scalar_dependences): Update call to |
| graphite_copy_stmts_from_block. |
| * sese.h (copy_bb_and_scalar_dependences): Update declaration. |
| |
| 2011-07-27 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49313 |
| * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction. |
| (__ctzsi2): Result for 0 may be undefined. |
| (__ctzhi2): Result for 0 may be undefined. |
| (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail. |
| (__popcountsi2): Ditto. And don't clobber r26. |
| (__popcountdi2): Ditto. And don't clobber r27. |
| * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum. |
| (parityhi2): New expand. |
| (paritysi2): New expand. |
| (popcounthi2): New expand. |
| (popcountsi2): New expand. |
| (clzhi2): New expand. |
| (clzsi2): New expand. |
| (ctzhi2): New expand. |
| (ctzsi2): New expand. |
| (ffshi2): New expand. |
| (ffssi2): New expand. |
| (copysignsf3): New insn. |
| (bswapsi2): New expand. |
| (*parityhi2.libgcc): New insn. |
| (*parityqihi2.libgcc): New insn. |
| (*paritysihi2.libgcc): New insn. |
| (*popcounthi2.libgcc): New insn. |
| (*popcountsi2.libgcc): New insn. |
| (*popcountqi2.libgcc): New insn. |
| (*popcountqihi2.libgcc): New insn-and-split. |
| (*clzhi2.libgcc): New insn. |
| (*clzsihi2.libgcc): New insn. |
| (*ctzhi2.libgcc): New insn. |
| (*ctzsihi2.libgcc): New insn. |
| (*ffshi2.libgcc): New insn. |
| (*ffssihi2.libgcc): New insn. |
| (*bswapsi2.libgcc): New insn. |
| |
| 2011-07-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_expand_move): Do not explicitly check |
| the mode of symbolic_opreand RTXes. |
| |
| 2011-07-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (x86_64_movabs_operand): Return false |
| for pic_32bit_operand RTXes. |
| * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand |
| in DImode. |
| |
| 2011-07-27 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Allow -mabi |
| for 32-bit, too. |
| (ix86_handle_abi_attribute): Allow function attributes |
| ms_abi/sysv_abi in 32-bit mode, too. |
| * doc/extend.texi: Adjust attribute documentation. |
| |
| * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR |
| expression handling. |
| (and_var_with_comparison_1): Likewise. |
| |
| 2011-07-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * params.h (ALLOW_STORE_DATA_RACES): New. |
| * params.def (PARAM_ALLOW_STORE_DATA_RACES): New. |
| * Makefile.in (expr.o): Depend on PARAMS_H. |
| * machmode.h (get_best_mode): Add argument. |
| * fold-const.c (optimize_bit_field_compare): Add argument to |
| get_best_mode. |
| (fold_truthop): Same. |
| * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field. |
| * expr.c (emit_group_store): Same. |
| (copy_blkmode_from_reg): Same. |
| (write_complex_part): Same. |
| (optimize_bitfield_assignment_op): Add argument. |
| Add argument to get_best_mode. |
| (get_bit_range): New. |
| (expand_assignment): Calculate maxbits and pass it down accordingly. |
| (store_field): New argument. |
| (expand_expr_real_2): New argument to store_field. Include params.h. |
| * expr.h (store_bit_field): New argument. |
| * stor-layout.c (get_best_mode): Restrict mode expansion by taking |
| into account maxbits. |
| * calls.c (store_unaligned_arguments_into_pseudos): New argument |
| to store_bit_field. |
| * expmed.c (store_bit_field_1): New argument. Use it. |
| (store_bit_field): Same. |
| (store_fixed_bit_field): Same. |
| (store_split_bit_field): Same. |
| (extract_bit_field_1): Pass new argument to get_best_mode. |
| (extract_bit_field): Same. |
| * stmt.c (store_bit_field): Pass new argument to store_bit_field. |
| * doc/invoke.texi: Document parameter allow-store-data-races. |
| |
| 2011-07-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option. |
| |
| 2011-07-27 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-vrp.c (extract_range_from_binary_expr): Remove |
| TRUTH-binary cases and add new bitwise-cases. |
| (extract_range_from_assignment): Likewise. |
| (register_edge_assert_for_1): Likeiwise. |
| (register_edge_assert_for): Likewise. |
| (simplify_truth_ops_using_ranges): Likewise. |
| (simplify_stmt_using_ranges): Likewise. |
| |
| 2011-07-26 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47372 |
| * config/i386/i386.c (ix86_delegitimize_address): Call |
| simplify_gen_subreg for PIC with mode of x only if modes of |
| x and orig_x are different. |
| |
| 2011-07-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (output_macinfo_op): Ensure fd->filename points |
| to GC allocated copy of the string. |
| (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections |
| before .debug_line, not after it. |
| |
| 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/47046 |
| * tree-chrec.h (evolution_function_is_affine_p): Recursively call |
| evolution_function_is_affine_p on CHREC_RIGHT. |
| |
| 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * tree-data-ref.c (max_stmt_executions_tree): Do not call |
| lang_hooks.types.type_for_size. |
| |
| 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/47653 |
| * graphite-scop-detection.c (graphite_can_represent_loop): Discard |
| loops using wrapping semantics. |
| |
| 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/48805 |
| * tree-scalar-evolution.c (instantiate_scev_r): Return |
| chrec_dont_know for ADDR_EXPR. |
| |
| 2011-07-26 Uros Bizjak <ubizjak@gmail.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47369 |
| PR target/49853 |
| * config/i386/i386.c (ix86_expand_move): Call convert_to_mode |
| if legitimize_tls_address returned operand in wrong mode. Allow |
| SImode and DImode symbolic operand for PIC. Call convert_to_mode |
| if legitimize_pic_address returned operand in wrong mode. |
| |
| 2011-07-26 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and |
| return false for invariants. |
| |
| 2011-07-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (add->lea splitter): Implement using SWI |
| mode iterator. Change operand 2 predicate to <nonmemory_operand>. |
| (add->lea zext splitter): Change operand 2 predicate to |
| x86_64_nonmemory_operand. |
| |
| 2011-07-26 Richard Guenther <rguenther@suse.de> |
| |
| * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block |
| frequency makes everything hot. |
| |
| 2011-07-26 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49840 |
| * tree-vrp.c (range_fits_type_p): Properly handle full |
| double-int precision. |
| |
| 2011-07-26 Martin Jambor <mjambor@suse.cz> |
| |
| PR bootstrap/49786 |
| * ipa-cp.c (update_profiling_info): Avoid overflow when updating |
| counts. |
| (update_specialized_profile): Likewise. |
| |
| 2011-07-26 Uros Bizjak <ubizjak@gmail.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47381 |
| PR target/49832 |
| PR target/49833 |
| * config/i386/i386.md (i): Change SImode attribute to "e". |
| (g): Change SImode attribute to "rme". |
| (di): Change SImode attribute to "nF". |
| (general_operand): Change SImode attribute to x86_64_general_operand. |
| (general_szext_operand): Change SImode attribute to |
| x86_64_szext_general_operand. |
| (immediate_operand): Change SImode attribute to |
| x86_64_immediate_operand. |
| (nonmemory_operand): Change SImode attribute to |
| x86_64_nonmemory_operand. |
| (*movdi_internal_rex64): Remove mode from pic_32bit_operand check. |
| (*movsi_internal): Ditto. Use "e" constraint in alternative 2. |
| (*lea_1): Use SWI48 mode iterator. |
| (*lea_1_zext): New insn pattern. |
| (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2. |
| (*bt<mode>): Ditto. |
| (*add<mode>1): Use x86_64_general_operand predicate for operand 2. |
| Update operand constraints. |
| (addsi_1_zext): Ditto. |
| (*add<mode>2): Ditto. |
| (*addsi_3_zext): Ditto. |
| (*subsi_1_zext): Ditto. |
| (*subsi_2_zext): Ditto. |
| (*subsi_3_zext): Ditto. |
| (*addsi3_carry_zext): Ditto. |
| (*<plusminus_insn>si3_zext_cc_overflow): Ditto. |
| (*mulsi3_1_zext): Ditto. |
| (*andsi_1): Ditto. |
| (*andsi_1_zext): Ditto. |
| (*andsi_2_zext): Ditto. |
| (*<any_or:code>si_1_zext): Ditto. |
| (*<any_or:code>si_2_zext): Ditto. |
| (*test<mode>_1): Use <general_operand> predicate for operand 1. |
| (*and<mode>_2): Ditto. |
| (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2. |
| (add->lea splitter): Check operand modes in insn constraint. Extend |
| operands less than SImode wide to SImode. |
| (add->lea zext splitter): Do not extend input operands to DImode. |
| (*lea_general_1): Handle only QImode and HImode operands. |
| (*lea_general_2): Ditto. |
| (*lea_general_3): Ditto. |
| (*lea_general_1_zext): Remove. |
| (*lea_general_2_zext): Ditto. |
| (*lea_general_3_zext): Ditto. |
| (*lea_general_4): Check operand modes in insn constraint. Extend |
| operands less than SImode wide to SImode. |
| (ashift->lea splitter): Ditto. |
| * config/i386/i386.c (ix86_print_operand_address): Print address |
| registers with 'q' modifier on 64bit targets. |
| * config/i386/predicates.md (pic_32bit_opreand): Define as special |
| predicate. Reject non-SI and non-DI modes. |
| |
| 2011-07-25 Andrew Pinski <apinski@cavium.com> |
| |
| PR tree-opt/49671 |
| * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and |
| TREE_THIS_NOTRAP into the inner most MEM_REF. |
| Always copy TREE_THIS_VOLATILE. |
| * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and |
| arguments are not volatile references. |
| |
| 2011-07-25 Richard Henderson <rth@redhat.com> |
| |
| * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove. |
| * final.c (final_scan_insn): Don't test for it. |
| (rest_of_clean_state): Likewise. |
| |
| 2011-07-25 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49841 |
| * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn. |
| (emit_frame_save): Likewise. |
| (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save |
| insn onto a dummy blockage insn after the join label. |
| |
| 2011-07-25 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dw_trace_info): Add ID member. |
| (get_trace_index): Remove. Change users to use ID member. |
| (before_next_cfi_note): New. |
| (connect_traces): Remove unreachable traces before the main loop. |
| Look across one trace and generate remember/restore_state if needed. |
| |
| 2011-07-25 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New. |
| |
| 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * genattr.c (write_upcase, gen_attr <enum definition writing>): |
| Move to ... |
| * genattr-common.c ... here. |
| (main): Call gen_attr. |
| * optc-gen.awk: Make generated program include insn-attr-common.h . |
| * Makefile.in (oprions.o): Depend on insn-attr-common.h |
| |
| 2011-07-25 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, |
| PRINT_OPERAND_PUNCT_VALID_P): Remove macro. |
| * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p, |
| m32c_print_operand, m32c_print_operand_address): Remove. |
| * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static. |
| Change return type to bool. Change argument type to bool. |
| (m32c_print_operand, m32c_print_operand_address): Make static. |
| (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS, |
| TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. |
| |
| 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Environment |
| attributes): Document mmap. |
| |
| 2011-07-25 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, |
| PRINT_OPERAND_PUNCT_VALID_P): Remove macro. |
| * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p, |
| mmix_print_operand, mmix_print_operand_address): Remove. |
| * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static. |
| Change return type to bool. Change argument type to bool. |
| (mmix_print_operand, mmix_print_operand_address): Make static. |
| (mmix_intval, mmix_output_condition): Change 'x' argument type |
| to const_rtx. |
| (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS, |
| TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. |
| |
| 2011-07-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/39386 |
| * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as |
| shift counter for x << x and x >> x shifts. |
| |
| 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/47124 |
| * config.gcc: Reject *-*-solaris2 configuration. |
| |
| 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/49809 |
| * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use |
| gimple_get_lhs instead of gimple_assign_lhs. |
| |
| 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * system.h [__cplusplus]: Wrap C function declarations in extern "C". |
| |
| 2011-07-25 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49822 |
| * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify |
| more. Make sure to preserve stmts with side-effects. Properly |
| handle virtual defs, follow a longer def chain. |
| |
| 2011-07-22 Romain Geissler <romain.geissler@gmail.com> |
| |
| PR plugins/45348 |
| PR plugins/48425 |
| PR plugins/46577 |
| * Makefile.in: Do not flatten c-family directory when installing |
| plugin headers. |
| |
| 2011-07-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of |
| original nodes if we are dealing with virtual clones. |
| |
| 2011-07-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * common/config/c6x/c6x-common.c: New file. |
| |
| 2011-07-25 Roman Zhuykov <zhroma@ispras.ru> |
| |
| * tree-flow.h (tree_ssa_loop_version): Remove unused declaration. |
| |
| 2011-07-25 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49715 |
| * tree-vrp.c: Include expr.h and optabs.h. |
| (range_fits_type_): New function. |
| (simplify_float_conversion_using_ranges): Likewise. |
| (simplify_stmt_using_ranges): Call it. |
| * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies. |
| * optabs.c (can_float_p): Export. |
| * optabs.h (can_float_p): Declare. |
| |
| 2011-07-25 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (num_vr_values, values_propagated): New global vars. |
| (get_value_range): For out-of-range SSA names or names created |
| after propagation return a read-only varying range. |
| (dump_all_value_ranges): Adjust. |
| (vrp_initialize): Likewise. |
| (vrp_finalize): Likewise. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49831 |
| * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip |
| them entirely. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49825 |
| * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier. |
| (dwarf2out_notice_stack_adjust): Use args_size from call_insn. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49827 |
| * dwarf2cfi.c (create_trace_edges): Handle sequences properly. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter. |
| Zero args_size for abnormal edges. Adjust all callers. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49825 |
| * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size. |
| |
| 2011-07-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR bootstrap/49835 |
| * collect2.c (demangle_flag): Removed. |
| |
| 2011-07-24 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * configure.ac (demangler_in_ld): Default to yes. |
| * configure: Regenerated. |
| * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't |
| mess with COLLECT_NO_DEMANGLE, and just pass --demangle and |
| --no-demangle options straight through to ld. When |
| HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a |
| way that has the intended effect on Windows. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c: Include basic-block.h. |
| (dw_label_info): Remove. |
| (trace_work_list, trace_index): New. |
| (remember_row, emit_cfa_remember): Remove. |
| (dw_trace_info_hash, dw_trace_info_eq): New. |
| (get_trace_index, get_trace_info): New. |
| (save_point_p): New. |
| (free_cfi_row): Remove. |
| (add_cfi): Do not emit DW_CFA_remember_state. |
| (cfa_row_equal_p): New. |
| (barrier_args_size): Remove. |
| (compute_barrier_args_size_1, compute_barrier_args_size): Remove. |
| (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size. |
| (maybe_record_trace_start, create_trace_edges, scan_trace): New. |
| (dwarf2out_cfi_begin_epilogue): Remove. |
| (dwarf2out_frame_debug_restore_state): Remove. |
| (connect_traces, create_pseudo_cfg): New. |
| (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces. |
| * Makefile.in (dwarf2cfi.o): Update. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dw_trace_info): New. |
| (dw_label_info): New. |
| (cie_return_save): New. |
| (cur_trace): New. |
| (queued_args_size): Rename from args_size. Update all users. |
| (cfa_store, cfa_temp, regs_saved_in_regs): Remove. |
| (def_cfa_1): Use cur_trace instead of cfa_*. |
| (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise. |
| (clobbers_queued_reg_save, reg_saved_in): Likewise. |
| (dwarf2out_frame_debug_expr): Likewise. |
| (create_cie_data): Split out from ... |
| (execute_dwarf2_frame): ... here. Initialize cur_trace. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc. |
| Update all users to match. |
| (execute_dwarf2_frame): Free reg_saved_in_data. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY. |
| (queued_reg_saves): Don't GTY. Change to a VEC. |
| (queue_reg_save): Update to match. |
| (dwarf2out_flush_queued_reg_saves): Likewise. |
| (clobbers_queued_reg_save): Likewise. |
| (reg_saved_in): Likewise. |
| (execute_dwarf2_frame): Free queued_reg_saves. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (add_cfi_args_size): Split out from... |
| (dwarf2out_args_size): ... here. |
| (add_cfi_restore): Split out from ... |
| (dwarf2out_frame_debug_cfa_restore): ... here. |
| (def_cfa_0): Split out from ... |
| (def_cfa_1): ... here. |
| (cfi_oprnd_equal_p, cfi_equal_p): New. |
| (change_cfi_row): New. |
| (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index. |
| (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note. |
| (output_cfis): Remove. |
| * dwarf2out.c (output_fde): Simplify output_cfi loop. |
| (dwarf2out_switch_text_section): Don't call output_cfis. |
| (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New. |
| * dwarf2out.h: Update decls. |
| (enum dw_val_class): Add dw_val_class_none. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (update_row_reg_save): New. |
| (dwarf2out_frame_debug_cfa_expression): Use it. |
| (dwarf2out_frame_debug_cfa_restore): Likewise. |
| (reg_save): Likewise. Do not emit DW_CFA_same_value. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New. |
| (cie_cfi_row): New. |
| (new_cfi_row, copy_cfi_row, free_cfi_row): New. |
| (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove. |
| (cur_row, remember_row): New. |
| (def_cfa_1): Use cur_row instead of the old_* variables. |
| (dwarf2out_frame_debug_restore_state): Similarly. |
| (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise. |
| (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa. |
| (dwarf2out_frame_debug_adjust_cfa): Likewise. |
| (dwarf2out_frame_debug_cfa_offset): Likewise. |
| (dwarf2out_frame_debug_expr): Likewise. |
| (execute_dwarf2_frame): Set up cur_row. |
| * dwarf2out.h (struct cfa_loc): Mark for GTY. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * basic-block.h (EDGE_PRESERVE): New. |
| (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it. |
| * bb-reorder.c: Include except.h. |
| (fix_up_crossing_landing_pad): New. |
| (find_rarely_executed_basic_blocks_and_crossing_edges): Place |
| landing pads in the right partition. Duplicate as necessary. |
| (partition_hot_cold_basic_blocks): Fix up DF info after |
| duplicating landing pads. |
| * cfg.c (dump_edge_info): Add crossing and preserve to bitnames. |
| * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING |
| is set properly. Validate that EH edges are not CROSSING. |
| * except.c (expand_dw2_landing_pad_for_region): Split out from ... |
| (dw2_build_landing_pads): ... here. |
| (convert_to_eh_region_ranges): Remove code to fixup crossing |
| landing pads. |
| * except.h (expand_dw2_landing_pad_for_region): Declare. |
| * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges. |
| |
| 2011-07-23 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/49816 |
| * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure. |
| |
| 2011-07-22 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing. |
| |
| 2011-07-22 Richard Henderson <rth@redhat.com> |
| |
| * bb-reorder.c (gate_handle_partition_blocks): Honor optimize. |
| |
| 2011-07-22 Richard Henderson <rth@redhat.com> |
| |
| * jump.c (maybe_propagate_label_ref): Split out of... |
| (mark_all_labels): ... here. Do not attempt label_ref |
| propagation while in cfglayout mode. |
| |
| 2011-07-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (struct macinfo_struct): Change code to unsigned char. |
| (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define. |
| (dwarf_attr_name): Handle DW_AT_GNU_macros. |
| (dwarf2out_define): If the vector is empty and |
| lineno is 0, emit a dummy entry first. |
| (dwarf2out_undef): Likewise. Remove redundant semicolon. |
| (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op, |
| optimize_macinfo_range): New functions. |
| (output_macinfo): Use them. If !dwarf_strict and .debug_str is |
| mergeable, optimize longer strings using |
| DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP, |
| optimize longer sequences of define/undef ops from headers |
| using DW_MACRO_GNU_transparent_include. For !dwarf_strict |
| emit a section headers. |
| (dwarf2out_init): For !dwarf_strict set debug_macinfo_section |
| and macinfo_section_label to DEBUG_MACRO_SECTION |
| resp. DEBUG_MACRO_SECTION_LABEL. |
| (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros |
| instead of DW_AT_macro_info. |
| |
| PR other/32998 |
| * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New |
| options. |
| * dwarf2out.c: Include opts.h. |
| (dchar_p): New typedef. Define heap VEC for it. |
| (producer_string): New variable. |
| (gen_producer_string): New function. |
| (gen_compile_unit_die): Use it. |
| (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed. |
| * Makefile.in (dwarf2out.o): Depend on $(OPTS_H). |
| * doc/invoke.texi: Document -grecord-gcc-switches and |
| -gno-record-gcc-switches, add a -grecord-gcc-switches reference |
| to -frecord-gcc-switches description. |
| |
| 2011-07-22 Jason Merrill <jason@redhat.com> |
| |
| PR c++/30112 |
| * c-decl.c (c_linkage_bindings): Define. |
| |
| 2011-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR debug/49815 |
| * var-tracking.c (vt_finalize): Always free windowed_parm_regs. |
| |
| 2011-07-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Disallow |
| MS ABI in x32 mode. |
| (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi |
| only for TARGET_LP64. |
| (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT. |
| |
| 2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to |
| avoid warnings when GCC is built with a C++ compiler. |
| |
| 2011-07-22 Martin Jambor <mjambor@suse.cz> |
| |
| PR lto/49796 |
| * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false |
| if decl node is in another partition, call cgraph_get_node only once. |
| |
| 2011-07-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config.gcc (x86_64-*-linux*): Set |
| default_gnu_indirect_function to yes. |
| |
| 2011-07-22 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/45819 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly |
| preserve volatile and notrap flags. |
| |
| 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| PR bootstrap/49794 |
| * configure.ac: Test AM_ICONV with CXX. |
| * configure: Regenerate. |
| * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST. |
| |
| 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/49797 |
| * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing. |
| (set_cloog_options): Use it. |
| |
| 2011-07-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/49756 |
| * gcc.c (main): Call stack_limit_increase (64MB). |
| * toplev.c (toplev_main): Likewise. |
| |
| 2011-07-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg |
| instead of force_reg. |
| |
| 2011-07-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_move): Convert to Pmode if |
| needed and use force_reg after convert. |
| (ix86_expand_call): Likewise. |
| (ix86_expand_special_args_builtin): Likewise. |
| (ix86_expand_builtin): Likewise. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/47654 |
| PR middle-end/49649 |
| * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2 |
| in parameter. Initialize v1 and v2 based on the values returned |
| by clast_name_to_lb_ub. |
| (type_for_clast_red): Pass v1 and v2 in parameter, and set their |
| values. |
| (type_for_clast_bin): Same. |
| (type_for_clast_expr): Same. |
| (type_for_clast_eq): Update calls to type_for_clast_expr. |
| (type_for_clast_for): Same. |
| (build_iv_mapping): Same. |
| * graphite-ppl.h (value_min): New. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (type_for_interval): Generate signed |
| types whenever possible. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (struct clast_name_index): Add lb |
| and ub fields. |
| (new_clast_name_index): Add lb and ub parameters. |
| (free_clast_name_index): New. |
| (clast_name_to_lb_ub): New. |
| (save_clast_name_index): Add lb and ub parameters. |
| (compute_bounds_for_param): New. |
| (type_for_level): Removed. |
| (type_for_clast_for): Removed level parameter. Do not call |
| type_for_level. |
| (graphite_create_new_loop): Store the lb and ub for the clast_name |
| of the iterator of the loop that has been generated. |
| (graphite_create_new_loop_guard): Remove parameter level. |
| (create_params_index): Store the lb and ub of each parameter. |
| (gloog): Use free_clast_name_index. Pass to create_params_index |
| the current scop. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (max_signed_precision_type): Removed. |
| (max_precision_type): Inline max_signed_precision_type. |
| (type_for_clast_red): Use max_precision_type. |
| (type_for_clast_bin): Same. |
| (type_for_clast_for): Same. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed |
| type_for_interval. |
| (gcc_type_for_value): Renamed type_for_value. |
| (gcc_type_for_clast_term): Renamed type_for_clast_term. |
| (gcc_type_for_clast_expr): Renamed type_for_clast_expr. |
| (gcc_type_for_clast_red): Renamed type_for_clast_red. |
| (gcc_type_for_clast_bin): Renamed type_for_clast_bin. |
| (gcc_type_for_clast_eq): Renamed type_for_clast_eq. |
| (graphite_translate_clast_equation): Update calls. |
| (compute_type_for_level): Renamed type_for_level. |
| (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for. |
| (build_iv_mapping): Update calls. |
| (graphite_create_new_loop_guard): Same. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme |
| comment. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (struct ivs_params): New. |
| (clast_name_to_gcc): Use ivs_params to pass around parameters. |
| (clast_to_gcc_expression): Same. |
| (clast_to_gcc_expression_red): Same. |
| (gcc_type_for_clast_term): Same. |
| (gcc_type_for_clast_expr): Same. |
| (gcc_type_for_clast_red): Same. |
| (gcc_type_for_clast_bin): Same. |
| (gcc_type_for_clast_eq): Same. |
| (graphite_translate_clast_equation): Same. |
| (graphite_create_guard_cond_expr): Same. |
| (graphite_create_new_guard): Same. |
| (graphite_create_new_loop): Same. |
| (build_iv_mapping): Same. |
| (translate_clast_user): Same. |
| (graphite_create_new_loop_guard): Same. |
| (translate_clast): Same. |
| (translate_clast_for_loop): Same. |
| (translate_clast_for): Same. |
| (translate_clast_guard): Same. |
| (initialize_cloog_names): Fix typo. |
| (gloog): Initialize an ivs_params struct, pass it to translate_clast. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (struct clast_name_index): Add level. |
| (new_clast_name_index): Add level parameter. |
| (clast_name_to_level): New. |
| (save_clast_name_index): Add level parameter. |
| (newivs_to_depth_to_newiv): Removed. |
| (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv. |
| (graphite_create_new_loop): Add level parameter. Pass level to |
| save_clast_name_index. |
| (translate_clast_for_loop): Pass level to graphite_create_new_loop. |
| (create_params_index): Pass level to save_clast_name_index. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not |
| recompute type, lb, and ub. Get them from... |
| (graphite_create_new_loop_guard): ...here. Pass in parameter |
| pointers to type, lb, and ub. |
| (translate_clast_for_loop): Update function calls. |
| (translate_clast_for): Same. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (compute_bounds_for_level): Call |
| psct_dynamic_dim. |
| (translate_clast_for_loop): Pass loop level to dependency_in_loop_p. |
| (gcc_type_for_iv_of_clast_loop): Update use of level. |
| (gloog): Start counting nesting level from 0. |
| * graphite-clast-to-gimple.h (get_scattering_level): Removed. |
| * graphite-dependences.c (graphite_carried_dependence_level_k): Call |
| psct_dynamic_dim on level. |
| |
| 2011-07-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_legitimize_address): Convert to |
| Pmode if needed. |
| |
| 2011-07-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (function_value_64): Always return pointers |
| in Pmode. |
| (ix86_promote_function_mode): New. |
| (TARGET_PROMOTE_FUNCTION_MODE): Likewise. |
| |
| 2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/49749 |
| * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and |
| remove no-longer-used maxrank variable. |
| |
| 2011-07-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs. |
| |
| 2011-07-21 Jason Merrill <jason@redhat.com> |
| |
| * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New. |
| * recog.h (struct insn_data_d): Check it instead of |
| HAVE_DESIGNATED_INITIALIZERS. |
| * genoutput.c (output_insn_data): Likewise. |
| |
| 2011-07-21 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49770 |
| * tree-ssa-sccvn.c (valueize_refs_1): Return whether we |
| valueized any operand. Renamed from ... |
| (valueize_refs): ... this. New wrapper around valueize_refs_1. |
| (valueize_shared_reference_ops_from_ref): Return whether we |
| valueized any operand. |
| (vn_reference_lookup): Only when we valueized any operand |
| use the valueized reference for alias analysis. Do not preserve |
| the original reference tree in this case. |
| |
| 2011-07-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_decompose_address): Reject all but |
| register operands and subregs of DImode hard registers in index. |
| |
| 2011-07-21 Kai Tietz <ktietz@redhat.com> |
| |
| * fold-const.c (fold_unary_loc): Preserve indirect |
| comparison cast to none-boolean type. |
| * tree-ssa.c (useless_type_conversion_p): Preserve cast |
| from/to boolean-type. |
| * gimplify.c (gimple_boolify): Handle boolification of comparisons. |
| (gimplify_expr): Boolifiy non aggregate-typed comparisons. |
| * tree-cfg.c (verify_gimple_comparison): Check result |
| type of comparison expression. |
| * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test |
| of condition result and disallow type-cast sinking into comparison. |
| |
| 2011-07-21 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (combine_conversions): Return whether |
| we have to run cfg-cleanup. Properly remove dead stmts. |
| (ssa_forward_propagate_and_combine): Adjust. |
| |
| 2011-07-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK. |
| |
| 2011-07-21 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-propagate.c (substitute_and_fold): Use |
| do_dce flag to deside, if BB's statements are scanned |
| in last to first, or first to last order. |
| |
| 2011-07-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0. |
| |
| 2011-07-20 H.J. Lu <hongjiu.lu@intel.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * config/i386/constraints.md (w): New. |
| |
| * config/i386/i386.c (ix86_output_addr_vec_elt): Check |
| TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD. |
| |
| * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64 |
| instead of TARGET_64BIT. |
| |
| * config/i386/i386.md (indirect_jump): Replace |
| nonimmediate_operand with indirect_branch_operand. |
| (*indirect_jump): Likewise. Replace constraint "m" with "w". |
| (tablejump): Replace nonimmediate_operand with indirect_branch_operand. |
| Convert operand 0 to Pmode for x32 if not PIC. |
| (*tablejump_1): Replace nonimmediate_operand with |
| indirect_branch_operand. Replace constraint "m" with "w". |
| (*call_vzeroupper): Replace constraint "m" with "w". |
| (*call): Likewise. |
| (*call_rex64_ms_sysv_vzeroupper): Likewise. |
| (*call_rex64_ms_sysv): Likewise. |
| (*call_value_vzeroupper): Likewise. |
| (*call_value): Likewise. |
| (*call_value_rex64_ms_sysv_vzeroupper): Likewise. |
| (*call_value_rex64_ms_sysv): Likewise. |
| (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT. |
| |
| * config/i386/predicates.md (indirect_branch_operand): New. |
| (call_insn_operand): Support x32. |
| |
| 2011-07-20 Michael Eager <eager@eagercon.com> |
| |
| * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12. |
| |
| 2011-07-20 Richard Henderson <rth@redhat.com> |
| |
| * cfg.c (dump_bb_info): Dump basic_block->flags. |
| * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info. |
| |
| 2011-07-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_decompose_address): Allow only subregs |
| of DImode hard registers in index. |
| (ix86_legitimate_address_p): Allow subregs of base and index to span |
| more than a word. Assert that subregs of base and index satisfy |
| register_no_elim_operand predicates. Reject addresses where |
| base and index have different modes. |
| |
| 2011-07-20 Robert Millan <rmh@gnu.org> |
| |
| * config.gcc (mips*-*-linux*): Remove redundant tm_file entry. |
| |
| 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by |
| removing now-unnecessary assignment. |
| |
| 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting |
| memory address space to the type's address space. |
| |
| 2011-07-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/36467 |
| PR target/49687 |
| * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2 |
| and expand appropriately if there is a CONST_INT in operand2. |
| (usmulqihi3): New insn. |
| (*sumulqihi3): New insn. |
| (*osmulqihi3): New insn. |
| (*oumulqihi3): New insn. |
| (*muluqihi3.uconst): New insn_and_split. |
| (*muluqihi3.sconst): New insn_and_split. |
| (*mulsqihi3.sconst): New insn_and_split. |
| (*mulsqihi3.uconst): New insn_and_split. |
| (*mulsqihi3.oconst): New insn_and_split. |
| (*ashifthi3.signx.const): New insn_and_split. |
| (*ashifthi3.signx.const7): New insn_and_split. |
| (*ashifthi3.zerox.const): New insn_and_split. |
| (mulsqihi3): New insn. |
| (muluqihi3): New insn. |
| (muloqihi3): New insn. |
| * config/avr/predicates.md (const_2_to_7_operand): New. |
| (const_2_to_6_operand): New. |
| (u8_operand): New. |
| (s8_operand): New. |
| (o8_operand): New. |
| (s9_operand): New. |
| (register_or_s9_operand): New. |
| |
| 2011-07-20 Kai Tietz <ktietz@redhat.com> |
| |
| * builtins.c (fold_builtin_expect): See through the cast |
| from truthvalue_type_node to long. |
| |
| 2011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions |
| where we can use them from the standard and altivec instruction |
| sets, instead of always using the 3 operand VSX forms that require |
| the destination to overlap one of the inputs. |
| (vsx_fms*): Ditto. |
| (vsx_fnma*): Ditto. |
| (vsx_fnms*): Ditto. |
| |
| * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d |
| for DF types. |
| (fmsdf4_fpr): Ditto. |
| (nfmadf4_fpr): Ditto. |
| (nfmsdf4_fpr): Ditto. |
| |
| 2011-07-20 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * genrecog.c (make_insn_sequence): Correct position numbering |
| when filtering out match_scratch and match_dup. |
| |
| 2011-07-20 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify |
| against already removed statements. |
| (forward_propagate_into_comparison): Remove dead defining stmts. |
| (forward_propagate_into_gimple_cond): Likewise. |
| (forward_propagate_into_cond): Simplify. |
| (ssa_forward_propagate_and_combine): Handle changed cfg from |
| forward_propagate_into_comparison. |
| * tree-ssa-phiopt.c (conditional_replacement): Use proper |
| locations for newly built statements. |
| |
| 2011-07-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0. |
| |
| 2011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_class_max_nregs): Fix return type. |
| * config/s390/s390-protos.h (s390_class_max_nregs): Likewise. |
| |
| 2011-07-20 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/18908 |
| * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision. |
| * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus |
| ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X. |
| |
| 2011-07-20 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * config/frv/frv.c (frv_register_move_cost): Define explicitly |
| costs for subclasses of GR_REGS. |
| |
| 2011-07-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49780 |
| * config/i386/predicates.md (no_seg_addres_operand): No more special. |
| * config/i386/i386.c (ix86_decompose_address): Allow only subregs |
| of DImode hard registers in base. |
| (ix86_legitimate_address_p): Allow SImode and DImode base and index |
| registers. |
| |
| 2011-07-20 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily. |
| (unify_nodes): Deal with that. |
| (solve_graph): Likewise. |
| |
| 2011-07-20 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * config/arm/arm.c (arm_canonicalize_comparison): Add case to |
| canonicalize left operand from ZERO_EXTEND to AND. |
| |
| 2011-07-20 Anatoly Sokolov <aesok@post.ru> |
| |
| * target.def (class_max_nregs): New hook. |
| * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document. |
| * doc/tm.texi: Regenerate. |
| * targhooks.c (default_class_max_nregs): New function. |
| * targhooks.h (default_class_max_nregs): Declare. |
| * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and |
| x_ira_reg_class_min_nregs arrays to unsigned char. |
| * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target |
| hook instead of CLASS_MAX_NREGS macro. |
| * reginfo.c (restore_register_info): Ditto. |
| * ira-conflicts.c (process_regs_for_copy): Use |
| ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro. |
| Change type rclass and aclass vars to reg_class_t. |
| * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs |
| array instead of CLASS_MAX_NREGS macro. Change type rclass var to |
| reg_class_t. |
| * reload.c (combine_reloads, find_reloads, find_reloads_address_1): |
| Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro. |
| |
| * config/i386/i386.h (CLASS_MAX_NREGS): Remove. |
| * config/i386/i386.c (ix86_class_max_nregs): New function. |
| (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook |
| instead of CLASS_MAX_NREGS macro. |
| (TARGET_CLASS_MAX_NREGS): Define. |
| * config/avr/avr.h (CLASS_MAX_NREGS): Remove. |
| * config/avr/avr-protos.h (class_max_nregs): Remove declaration. |
| * config/avr/avr.c (class_max_nregs): Remove function. |
| * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove. |
| * config/spu/spu.h (CLASS_MAX_NREGS): Remove. |
| * config/mep/mep.h (CLASS_MAX_NREGS): Remove. |
| * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove. |
| * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove. |
| * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove. |
| * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove. |
| * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove. |
| * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove. |
| * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove. |
| * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove. |
| * config/score/score.h (CLASS_MAX_NREGS): Remove. |
| * config/vax/vax.h (CLASS_MAX_NREGS): Remove. |
| * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove. |
| * config/v850/v850.h (CLASS_MAX_NREGS): Remove. |
| |
| 2011-07-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cif-code.def (OVERWRITABLE): Fix typo and move around. |
| (TARGET_OPTIMIZATION_MISMATCH): Delete. |
| (EH_PERSONALITY): Fix typo. |
| (NON_CALL_EXCEPTIONS): Fix message. |
| (OPTIMIZATION_MISMATCH): Adjust message. |
| * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH. |
| |
| 2011-07-19 Ian Lance Taylor <iant@google.com> |
| |
| * doc/install.texi (Configuration): Document |
| --enable-build-poststage1-with-cxx. |
| |
| 2011-07-19 Robert Millan <rmh@gnu.org> |
| |
| * config/mips/gnu-user.h: Copy from linux.h. Update comments. |
| (GLIBC_DYNAMIC_LINKER): Remove. |
| |
| * config/mips/gnu-user64.h: Copy from linux64.h. Update comments. |
| (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64) |
| (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32) |
| (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove. |
| (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32, |
| GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32. |
| |
| * config/mips/linux.h: Remove everything except for ... |
| (GLIBC_DYNAMIC_LINKER): ... this macro. |
| |
| * config/mips/linux64.h: Remove everything except for ... |
| (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64) |
| (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32) |
| (BIONIC_DYNAMIC_LINKERN32): ... these macros. |
| (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64) |
| (GNU_USER_LINK_EMULATIONN32): New macros. |
| |
| * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*): |
| Use the new headers. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs. |
| Add offset_known_p and size_known_p fields. |
| (MEM_OFFSET_KNOWN_P): Update accordingly. |
| (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise. |
| * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes. |
| (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset) |
| (clear_mem_offset, set_mem_size, clear_mem_size, change_address) |
| (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill) |
| (init_emit_regs): Likewise. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document. |
| (MEM_OFFSET): Change from returning an rtx to returning a |
| HOST_WIDE_INT. |
| * rtl.h (MEM_OFFSET_KNOWN_P): New macro. |
| (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx. |
| * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx. |
| (clear_mem_offset): Declare. |
| * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using |
| MEM_OFFSET_KNOWN_P to test whether the offset is known, and |
| MEM_OFFSET to get a HOST_WIDE_INT offset. |
| (nonoverlapping_memrefs_p): Likewise. Adjust calls to... |
| (adjust_offset_for_component_ref): Take a bool "known_p" |
| parameter and a HOST_WIDE_INT "offset" parameter. |
| * builtins.c (get_memory_rtx): As for ao_ref_from_mem. |
| Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather |
| than an rtx. Use clear_mem_offset to clear the offset. |
| * cfgcleanup.c (merge_memattrs): Likewise. |
| * dwarf2out.c (tls_mem_loc_descriptor): Likewise. |
| * function.c (assign_parm_find_stack_rtl): Likewise. |
| (assign_parm_setup_stack): Likewise. |
| * print-rtl.c (print_rtx): Likewise. |
| * reload.c (find_reloads_subreg_address): Likewise. |
| * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. |
| * var-tracking.c (INT_MEM_OFFSET): Likewise. |
| * emit-rtl.c (set_reg_attrs_from_value): Likewise. |
| (get_mem_align_offset): Likewise. |
| (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx. |
| (clear_mem_offset): New function. |
| * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT |
| offset rather than an rtx. Assume both the expressio and offset |
| are available. |
| (r10k_needs_protection_p_1): Update accordingly, checking the |
| expression and offset availability here instead. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document. |
| (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT. |
| * rtl.h (MEM_SIZE_KNOWN_P): New macro. |
| (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx. |
| * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. |
| (clear_mem_size): Declare. |
| * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. |
| (clear_mem_size): New function. |
| * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using |
| MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE |
| to get a HOST_WIDE_INT size. Adjust calls to set_mem_size, |
| passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size |
| to clear the size. |
| (nonoverlapping_memrefs_p): Likewise. |
| * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise. |
| (expand_builtin_init_trampoline): Likewise. |
| * calls.c (compute_argument_addresses): Likewise. |
| * cfgcleanup.c (merge_memattrs): Likewise. |
| * dce.c (find_call_stack_args): Likewise. |
| * dse.c (record_store, scan_insn): Likewise. |
| * dwarf2out.c (dw_sra_loc_expr): Likewise. |
| * expr.c (emit_block_move_hints): Likewise. |
| * function.c (assign_parm_find_stack_rtl): Likewise. |
| * print-rtl.c (print_rtx): Likewise. |
| * reload.c (find_reloads_subreg_address): Likewise. |
| * rtlanal.c (may_trap_p_1): Likewise. |
| * var-tracking.c (track_expr_p): Likewise. |
| * varasm.c (assemble_trampoline_template): Likewise. |
| * config/arm/arm.c (arm_print_operand): Likewise. |
| * config/h8300/h8300.c (h8sx_emit_movmd): Likewise. |
| * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise. |
| (expand_setmem_via_rep_stos, expand_constant_movmem_prologue) |
| (expand_constant_setmem_prologue): Likewise. |
| * config/mips/mips.c (mips_get_unaligned_mem): Likewise. |
| * config/rs6000/rs6000.c (expand_block_move): Likewise. |
| (adjacent_mem_locations): Likewise. |
| * config/s390/s390.c (s390_expand_setmem): Likewise. |
| (s390_expand_insv): Likewise. |
| * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise. |
| (*extendqi<mode>2_short_displ): Likewise. |
| * config/sh/sh.c (expand_block_move): Likewise. |
| * config/sh/sh.md (extv, extzv): Likewise. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * emit-rtl.c (mem_attrs_eq_p): New function, split out from... |
| (mem_attrs_htab_eq): ...here. |
| (find_mem_attrs): Replace with... |
| (set_mem_attrs): ...this function. Take a mem_attrs structure |
| rather than individual fields. |
| (set_mem_attributes_minus_bitpos, set_mem_alias_set) |
| (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset) |
| (set_mem_size, change_address, adjust_address_1, offset_address) |
| (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill): |
| Update accordingly. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE) |
| (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs. |
| Provide a dummy definition of MEM_ADDR_SPACE for generators. |
| (target_rtl): Add x_mode_mem_attrs. |
| (mode_mem_attrs): New macro. |
| (get_mem_attrs): New function. |
| * emit-rtl.c (get_mem_attrs): Rename to... |
| (find_mem_attrs): ...this. |
| (set_mem_attributes_minus_bitpos, set_mem_alias_set) |
| (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset) |
| (set_mem_size, change_address, adjust_address_1, offset_address) |
| (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill): |
| Update accordingly. |
| (init_emit_regs): Initialize mode_mem_attrs. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove |
| TRUTH_*_EXPR handling. |
| * tree-ssa-operands.c (get_expr_operands): Likewise. |
| * tree-ssa-pre.c (fully_constant_expression): Likewise. |
| * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre): |
| Likewise. |
| (is_and_or_or): Likewise. |
| (is_norm_cond_subset_of): Likewise. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (fold_build_pointer_plus_loc): New helper function. |
| (fold_build_pointer_plus_hwi_loc): Likewise. |
| (fold_build_pointer_plus): Define. |
| (fold_build_pointer_plus_hwi): Likewise. |
| * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus. |
| (fold_builtin_memory_op): Likewise. |
| (fold_builtin_stpcpy): Likewise. |
| (fold_builtin_memchr): Likewise. |
| (fold_builtin_strstr): Likewise. |
| (fold_builtin_strchr): Likewise. |
| (fold_builtin_strrchr): Likewise. |
| (fold_builtin_strpbrk): Likewise. |
| (fold_builtin_strcat): Likewise. |
| (expand_builtin_memory_chk): Likewise. |
| (fold_builtin_memory_chk): Likewise. |
| * c-typeck.c (build_unary_op): Likewise. |
| * cgraphunit.c (thunk_adjust): Likewise. |
| * fold-const.c (build_range_check): Likewise. |
| (fold_binary_loc): Likewise. |
| * omp-low.c (extract_omp_for_data): Likewise. |
| (expand_omp_for_generic): Likewise. |
| (expand_omp_for_static_nochunk): Likewise. |
| (expand_omp_for_static_chunk): Likewise. |
| * tree-affine.c (add_elt_to_tree): Likewise. |
| * tree-data-ref.c (split_constant_offset_1): Likewise. |
| * tree-loop-distribution.c (generate_memset_zero): Likewise. |
| * tree-mudflap.c (mf_xform_derefs_1): Likewise. |
| * tree-predcom.c (ref_at_iteration): Likewise. |
| * tree-ssa-address.c (tree_mem_ref_addr): Likewise. |
| (add_to_parts): Likewise. |
| (create_mem_ref): Likewise. |
| * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. |
| * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise. |
| (number_of_iterations_le): Likewise. |
| * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise. |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. |
| (vect_create_addr_base_for_vector_ref): Likewise. |
| * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise. |
| (vect_create_cond_for_alias_checks): Likewise. |
| * tree-vrp.c (extract_range_from_assert): Likewise. |
| * config/alpha/alpha.c (alpha_va_start): Likewise. |
| (alpha_gimplify_va_arg_1): Likewise. |
| * config/i386/i386.c (ix86_va_start): Likewise. |
| (ix86_gimplify_va_arg): Likewise. |
| * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. |
| * config/mep/mep.c (mep_expand_va_start): Likewise. |
| (mep_gimplify_va_arg_expr): Likewise. |
| * config/mips/mips.c (mips_va_start): Likewise. |
| (mips_gimplify_va_arg_expr): Likewise. |
| * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. |
| * config/rs6000/rs6000.c (rs6000_va_start): Likewise. |
| (rs6000_gimplify_va_arg): Likewise. |
| * config/s390/s390.c (s390_va_start): Likewise. |
| (s390_gimplify_va_arg): Likewise. |
| * config/sh/sh.c (sh_va_start): Likewise. |
| (sh_gimplify_va_arg_expr): Likewise. |
| * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise. |
| * config/spu/spu.c (spu_va_start): Likewise. |
| (spu_gimplify_va_arg_expr): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): |
| Likewise. |
| (xstormy16_gimplify_va_arg_expr): Likewise. |
| * config/xtensa/xtensa.c (xtensa_va_start): Likewise. |
| (xtensa_gimplify_va_arg_expr): Likewise. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling. |
| (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST |
| handling. |
| |
| PR middle-end/18908 |
| * expr.c (expand_expr_real_2): Do not unnecessarily truncate the |
| result of BIT_*_EXPR to bitfield precision. |
| |
| 2011-07-19 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/49742 |
| * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call |
| as a potential write. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h. |
| * tree-ssa-forwprop.c: Include gimple-pretty-print.h. |
| (forward_propagate_comparison): Simplify, remove obsolete code. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as |
| BIT_XOR_EXPR, same as the RTL expander does. |
| * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL. |
| (verify_gimple_assign_unary): Likewise. |
| * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR. |
| * tree-ssa-forwprop.c (forward_propagate_comparison): Handle |
| BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR. |
| |
| 2011-07-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49768 |
| * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL |
| if offset is smaller than bitoffset, but offset+size is bigger |
| than bitoffset. |
| |
| 2011-07-19 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49771 |
| * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of |
| zero step, set segment length to the size of the data-ref's type. |
| |
| 2011-07-18 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general |
| comments. |
| (ipcp_values_pool): Declare. |
| (ipcp_sources_pool): Likewise. |
| (ipcp_lattice): Changed to forward declaration. |
| (ipa_param_descriptor): Removed fields ipcp_lattice, types and |
| cannot_devirtualize. |
| (ipa_node_params): New fields descriptors, lattices, known_vals, |
| clone_for_all_contexts and node dead, removed fields params and |
| count_scale. |
| (ipa_set_param_count): Removed. |
| (ipa_get_param_count): Made to work with descriptors vector. |
| (ipa_get_param): Updated. |
| (ipa_param_cannot_devirtualize_p): Removed. |
| (ipa_param_types_vec_empty): Likewise. |
| (ipa_set_param_used): New function. |
| (ipa_get_param_used): Updated to use descriptors vector. |
| (ipa_func_list): Removed. |
| (ipa_init_func_list): Removed declaration. |
| (ipa_push_func_to_list_1): Likewise. |
| (ipa_pop_func_from_list): Likewise. |
| (ipa_push_func_to_list): Removed. |
| (ipa_lattice_from_jfunc): Remove declaration. |
| (ipa_get_jf_pass_through_result): Declare. |
| (ipa_get_jf_ancestor_result): Likewise. |
| (ipa_value_from_jfunc): Likewise. |
| (ipa_get_lattice): Update. |
| (ipa_lat_is_single_const): New function. |
| * ipa-prop.c (ipa_push_func_to_list_1): Removed. |
| (ipa_init_func_list): Likewise. |
| (ipa_pop_func_from_list): Likewise. |
| (ipa_get_param_decl_index): Fix coding style. |
| (count_formal_params): Removed. |
| (count_formal_params_1): Renamed to count_formal_params. |
| (ipa_populate_param_decls): Update to use descriptors vector. |
| (ipa_initialize_node_params): Likewise. |
| (visit_ref_for_mod_analysis): Use ipa_set_param_used. |
| (ipa_analyze_params_uses): Likewise. |
| (ipa_free_node_params_substructures): Likewise and free also lattices |
| and known values. |
| (duplicate_array): Removed. |
| (ipa_edge_duplication_hook): Add the new edge to the list of edge |
| clones. |
| (ipa_node_duplication_hook): Update to use new lattices. |
| (ipa_free_all_structures_after_ipa_cp): Free alloc pools. |
| (ipa_free_all_structures_after_iinln): Likewise. |
| (ipa_write_node_info): Update to use new lattices. |
| (ipa_read_node_info): Likewise. |
| (ipa_get_jf_pass_through_result): New function. |
| (ipa_get_jf_ancestor_result): Likewise. |
| (ipa_value_from_jfunc): Likewise. |
| (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc. |
| * ipa-cp.c: Reimplemented. |
| * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed. |
| (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter. |
| (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise. |
| * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies. |
| * doc/invoke.texi (devirt-type-list-size): Removed description. |
| (ipa-cp-value-list-size): Added description. |
| |
| 2011-07-18 Richard Henderson <rth@redhat.com> |
| |
| * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns |
| before calling create_basic_block. |
| |
| 2011-07-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49675 |
| * tree.c (build_common_builtin_nodes): Register |
| __builtin_return_address, __cyg_profile_func_enter |
| and __cyg_profile_func_exit. |
| |
| 2011-07-18 Richard Henderson <rth@redhat.com> |
| |
| * bb-reorder.c (emit_barrier_after_bb): Split out of ... |
| (add_labels_and_missing_jumps): ... here. |
| (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it. |
| |
| 2011-07-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47744 |
| * config/i386/i386.c (ix86_decompose_address): Allow only subregs |
| of DImode hard registers in PLUS address chains. |
| |
| 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/49769 |
| * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts. |
| (alpha*-*-freebsd*): Likewise. |
| (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, |
| i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, |
| i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o, |
| crtprec80.o, crtfastmath.o to extra_parts for all targets. |
| (ia64*-*-elf*): Remove extra_parts. |
| (sparc-*-linux*): Add crtfastmath.o to extra_parts. |
| (sparc64-*-linux*): Likewise. |
| (sparc64-*-freebsd*): Likewise. |
| |
| Revert: |
| * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts. |
| (ia64*-*-linux*): Likewise. |
| (mips64*-*-linux*): Likewise. |
| (mips*-*-linux*): Likewise. |
| |
| 2011-07-18 David Edelsohn <dje.gcc@gmail.com> |
| |
| * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug. |
| |
| 2011-07-18 Richard Guenther <rguenther@suse.de> |
| |
| * gimplify.c (gimplify_expr): Use input_location, not saved_location |
| when building new trees. |
| |
| 2011-07-18 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR |
| expansion result to bitfield precision if required. |
| |
| 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc (i[3456x]86-*-netware*): Remove. |
| |
| * gthr-nks.h: Remove. |
| * configure.ac (enable_threads): Remove nks. |
| * configure: Regenerate. |
| |
| * config/i386/i386.c (ix86_encode_section_info): Remove netware |
| reference. |
| * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove |
| <netware.h> reference. |
| |
| * config/i386/netware-libgcc.c, |
| gcc/config/i386/netware-libgcc.def, |
| gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c, |
| gcc/config/i386/netware.h, gcc/config/i386/netware.opt, |
| gcc/config/i386/nwld.c, gcc/config/i386/nwld.h, |
| gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove |
| |
| * doc/extend.texi (Function Attributes, |
| callee_pop_aggregate_return): Remove i?86-netware reference. |
| * doc/install.texi (Configuration, --enable-threads): Remove nks. |
| |
| 2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/49746 |
| Revert: |
| 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean |
| patterns. |
| |
| 2011-07-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/49732 |
| * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type. |
| |
| 2011-07-16 Matthias Klose <doko@ubuntu.com> |
| |
| * doc/install.texi: Document --enable-static-libjava. |
| |
| 2011-07-15 Richard Henderson <rth@redhat.com> |
| |
| * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): |
| Replace all three arguments by returning a VEC of edges. |
| (add_labels_and_missing_jumps): Accept a VEC of edges, not bare |
| pointers and counts. |
| (fix_edges_for_rarely_executed_code): Merge ... |
| (rest_of_handle_partition_blocks): ... into... |
| (partition_hot_cold_basic_blocks): ... here. Return todo items if |
| any work was performed. |
| (pass_partition_blocks): Clear todo_flags_finish. |
| |
| 2011-07-15 Paolo Carlini <paolo.carlini@oracle.com> |
| Jakub Jelinek <jakub@redhat.com> |
| Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| PR libstdc++/49745 |
| * gthr-posix.h: Do not include <unistd.h> unconditionally; use |
| _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS. |
| |
| 2011-07-15 Jason Merrill <jason@redhat.com> |
| |
| PR testsuite/49741 |
| * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts |
| rather than --tool_opts. |
| |
| 2011-07-15 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * doc/plugins.texi (Building GCC plugins): gengtype needs its |
| corresponding gtype.state. |
| |
| 2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/49723 |
| * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT. |
| |
| 2011-07-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/48220 |
| * doc/md.texi (Standard Names): Document window_save. |
| * cfgexpand.c (expand_debug_parm_decl): New function extracted from |
| expand_debug_expr and expand_debug_source_expr. If the target has |
| a window_save instruction, adjust the ENTRY_VALUE_EXP. |
| (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the |
| SSA_NAME_VAR is a parameter. |
| (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl. |
| * var-tracking.c (parm_reg_t): New type and associated vector type. |
| (windowed_parm_regs): New variable. |
| (adjust_insn): If the target has a window_save instruction and this |
| is the instruction, make its effect on parameter registers explicit. |
| (next_non_note_insn_var_location): New function. |
| (emit_notes_in_bb): Use it instead of NEXT_INSN throughout. |
| (vt_add_function_parameter): If the target has a window_save insn, |
| adjust the incoming RTL and record that in windowed_parm_regs. |
| (vt_finalize): Free windowed_parm_regs. |
| |
| 2011-07-15 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/invoke.texi (C6X Options): New section. |
| * doc/md.texi (TI C6X family): New section. |
| * config.gcc: Handle tic6x, in particular tic6x-*-elf and |
| tic6x-*-uclinux. |
| * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm, |
| count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME): |
| Provide C6X definitions. |
| * config/c6x/c6x.md: New file. |
| * config/c6x/constraints.md: New file. |
| * config/c6x/predicates.md: New file. |
| * config/c6x/c6x-sched.md.in: New file. |
| * config/c6x/c6x-sched.md: New file. |
| * config/c6x/gensched.sh: New file. |
| * config/c6x/c6x-mult.md.in: New file. |
| * config/c6x/genmult.sh: New file. |
| * config/c6x/c6x-mult.md: New file. |
| * config/c6x/sync.md: New file. |
| * config/c6x/c6x-protos.h: New file. |
| * config/c6x/sfp-machine.h: New file. |
| * config/c6x/c6x.c: New file. |
| * config/c6x/c6x.h: New file. |
| * config/c6x/crti.s: New file. |
| * config/c6x/crtn.s: New file. |
| * config/c6x/lib1funcs.asm: New file. |
| * config/c6x/c6x-modes.def: New file. |
| * config/c6x/genopt.sh: New file. |
| * config/c6x/c6x.opt: New file. |
| * config/c6x/c6x-tables.opt: New file. |
| * config/c6x/c6x-opts.h: New file. |
| * config/c6x/c6x-isas.def: New file. |
| * config/c6x/elf.h: New file. |
| * config/c6x/elf-common.h: New file. |
| * config/c6x/uclinux-elf.h: New file. |
| * config/c6x/t-c6x: New file. |
| * config/c6x/t-c6x-elf: New file. |
| * config/c6x/t-c6x-uclinux: New file. |
| * config/c6x/t-c6x-softfp: New file. |
| * config/c6x/gtd.c: New file. |
| * config/c6x/gtf.c: New file. |
| * config/c6x/ltd.c: New file. |
| * config/c6x/ltf.c: New file. |
| * config/c6x/ged.c: New file. |
| * config/c6x/gef.c: New file. |
| * config/c6x/led.c: New file. |
| * config/c6x/lef.c: New file. |
| * config/c6x/eqd.c: New file. |
| * config/c6x/eqf.c: New file. |
| * config/c6x/libgcc-c6xeabi.ver: New file. |
| |
| Revert |
| 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr> |
| PR rtl-optimization/11320 |
| * sched-int.h (struct deps) [reg_conditional_sets]: New field. |
| (struct sched_info) [compute_jump_reg_dependencies]: New prototype. |
| * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to |
| current_sched_info->compute_jump_reg_dependencies. Record which |
| registers are used and which registers are set by the jump. |
| Clear deps->reg_conditional_sets after a barrier. |
| Set deps->reg_conditional_sets if the insn is a COND_EXEC. |
| Clear deps->reg_conditional_sets if the insn is not a COND_EXEC. |
| (init_deps): Initialize reg_conditional_sets. |
| (free_deps): Clear reg_conditional_sets. |
| * sched-ebb.c (compute_jump_reg_dependencies): New prototype. |
| Mark registers live on entry of the fallthrough block and conditionally |
| set as set by the jump. Mark registers live on entry of non-fallthrough |
| blocks as used by the jump. |
| * sched-rgn.c (compute_jump_reg_dependencies): New prototype. |
| Mark new parameters as unused. |
| |
| 2011-07-14 Andrew Pinski <pinskia@gmail.com> |
| |
| PR tree-opt/49309 |
| * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>): |
| Use fold_build2_loc instead of build2. |
| Use the correct type for the new tree. |
| |
| 2011-07-14 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/11320 |
| * config/ia64/ia64.md (load_symptr_low): Show a MEM. |
| * config/ia64/ia64.c (ia64_expand_load_address): Generate it. |
| |
| 2011-07-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49487 |
| * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead |
| of REG. |
| (*rotw<mode>): Use const_int_operand for operand2. |
| Use match_scatch for operand3. |
| (*rotb<mode>): Ditto |
| * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH. |
| |
| 2011-07-14 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49651 |
| * tree-ssa-structalias.c (get_constraint_for_1): Properly |
| handle dereferences with subvariables. |
| |
| 2011-07-14 Richard Guenther <rguenther@suse.de> |
| |
| * gimple-fold.c (fold_gimple_assign): Remove operand swapping. |
| (fold_stmt_1): Do it here directly on gimple and as a first thing. |
| |
| 2011-07-14 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary_loc): Convert the !bool_var result, |
| not bool_var when folding bool_var != 1 or bool_var == 0. |
| |
| 2011-07-14 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c (schedule_insns): Remove outdated comment. |
| (schedule_block): When computing a known value for TODO_SPEC, |
| just set it rather than using logical operations. |
| (try_ready): Likewise. Use a local variable rather than a |
| pointer to TODO_SPEC. Reorder an if statement to move the |
| easy case to the then block. |
| * sched-deps.c (dep_spec_p): New static function. |
| (update_dep): Use it to decide whether to call |
| change_spec_dep_to_hard. |
| (get_back_and_forw_lists): Use it. |
| (sd_resolve_dep): Likewise. |
| (init_dep): If !USE_DEPS_LIST, use zero to initialize status. |
| (haifa_note_mem_dep): Likewise. |
| (check_dep): Likewise. |
| (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION. |
| (sched_free_deps): Free in two passes. |
| |
| 2011-07-14 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR middle-end/49736 |
| * expr.c (all_zeros_p): Undo bogus part of last change. |
| |
| 2011-07-14 Matthias Klose <doko@ubuntu.com> |
| |
| * doc/extend.texi (optimize attribute): Fix typo. |
| |
| 2011-07-14 Richard Guenther <rguenther@suse.de> |
| |
| * gimplify.c (gimplify_expr): Only do required conversions. |
| |
| 2011-07-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/43746 |
| * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove, |
| i.e. use default_elf_select_section. |
| (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove. |
| (READONLY_DATA_SECTION_ASM_OP): Remove. |
| (TARGET_ASM_NAMED_SECTION): Move from here... |
| * config/avr/avr.c: ...to here. |
| (avr_asm_init_sections): Set unnamed callback of readonly_data_section. |
| (avr_asm_named_section): Make static. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/49739 |
| * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o |
| and crtfastmath.o for Linux/x86. |
| |
| 2011-07-14 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c: Include "hashtab.h" |
| (sched_no_dce): New global variable. |
| (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN, |
| SHADOW_P): New macros. |
| (last_clock_var, cycle_issued_insns): Move declarations. |
| (must_backtrack): New static variable. |
| (struct delay_pair): New structure. |
| (delay_htab, delay_htab_i2): New static variables. |
| (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq, |
| record_delay_slot_pair, pair_delay, add_delay_dependencies): New |
| functions. |
| (dep_cost_1): If delay pairs exist, try to look up the insns and |
| use the correct pair delay if we find them. |
| (rank-for_schedule): Tweak priority for insns that must be scheduled |
| soon to avoid backtracking. |
| (queue_insn): Detect conditions which force backtracking. |
| (ready_add): Likewise. |
| (struct sched_block_state): Add member shadows_only_p. |
| (struct haifa_save_data): New structure. |
| (backtrack_queue): New static variable. |
| (mark_backtrack_feeds, copy_insn_list, save_backtrack_point, |
| unschedule_insns_until, restore_last_backtrack_point, |
| free_topmost_backtrack_point, free_backtrack_queue, |
| estimate_insn_tick, estimate_shadow_tick): New functions. |
| (prune_ready_list): New arg shadows_only_p. All callers changed. |
| If true, remove everything that isn't SHADOW_P. Look up delay |
| pairs and estimate ticks to avoid scheduling the first insn too early. |
| (verify_shadows): New function. |
| (schedule_block): Add machinery to enable backtracking. |
| (sched_init): Take sched_no_dce into account when setting |
| DF_LR_RUN_DCE. |
| (free_delay_pairs): New function. |
| (init_h_i_d): Initialize INSN_EXACT_TICK. |
| * Makefile.in (haifa-sched.o): Add $(HASHTAB_H). |
| * sched-deps.c (sd_unresolve_dep): New function. |
| * sched-int. (struct haifa_sched_info): New fields save_state |
| and restore_state. |
| (struct _haifa_insn_data): New fields exact_tick, tick_estimate, |
| feeds_backtrack_insn and shadow_p. |
| (DO_BACKTRACKING): New value in enum SCHED_FLAGS. |
| (sched_no_dce): Declare variable. |
| (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies, |
| sd_unresolve_dep): Declare functions. |
| * modulo-sched.c (sms_sched_info): Clear the two new fields. |
| * sched-rgn.c (rgn_const_sched_info): Likewise. |
| * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise. |
| * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions. |
| (ebb_sched_info): Add them for the two new fields. |
| (add_deps_for_risky_insns): Call add_delay_dependencies. |
| |
| 2011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-mpointers-to-nested-functions): |
| Rename -mr11. |
| * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto. |
| (rs6000_call_indirect_aix): Ditto. |
| * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto. |
| (call_indirect_aix<ptrsize>_internal): Ditto. |
| (call_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_indirect_aix<ptrsize>_internal2): Ditto. |
| (call_value_indirect_aix<ptrsize>): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal): Ditto. |
| (call_value_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal2): Ditto. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto. |
| |
| 2011-07-13 Jason Merrill <jason@redhat.com> |
| |
| * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts. |
| |
| 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2. |
| * config/spu/spu.md ("clrsb<mode>2"): New expander. |
| |
| 2011-07-13 Thomas Schwinge <thomas@schwinge.name> |
| |
| * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo. |
| * configure: Regenerate. |
| |
| 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define. |
| (asm_file_start): Remove. |
| (spu_machine_dependent_reorg): Call compute_bb_for_insn and |
| free_bb_for_insn around code that modifies insns before |
| restarting df analysis. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/49541 |
| * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ... |
| (LINK_SPEC): ... here. |
| |
| 2011-07-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c (struct sched_block_state): New. |
| (schedule_block): Move some local variables into such a structure. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/crtprec.c: Move to ../libgcc/config/i386. |
| * config/i386/t-crtpc: Remove. |
| * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove. |
| * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from |
| tmake_file. |
| (x86_64-*-darwin*): Likewise. |
| (i[34567]86-*-linux*): Likewise. |
| (x86_64-*-linux*): Likewise. |
| |
| * config/i386/sol2.h (ENDFILE_SPEC): Redefine. |
| Handle -mpc32, -mpc64, -mpc80. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha. |
| * config/alpha/t-crtfm: Remove. |
| * config/i386/crtfastmath.c: Move to ../libgcc/config/i386. |
| * config/i386/t-crtfm: Remove. |
| * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64. |
| * config/mips/crtfastmath.c: Move to ../libgcc/config/mips. |
| * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc. |
| * config/sparc/t-crtfm: Remove. |
| |
| * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file. |
| (alpha*-*-freebsd*): Likewise. |
| (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file. |
| (x86_64-*-darwin*): Likewise. |
| (i[34567]86-*-linux*): Likewise. |
| (x86_64-*-linux*): Likewise. |
| (x86_64-*-mingw*): Likewise. |
| (ia64*-*-elf*): Remove crtfastmath.o from extra_parts. |
| (ia64*-*-freebsd*): Likewise. |
| (ia64*-*-linux*): Likewise. |
| (mips64*-*-linux*): Likewise. |
| (mips*-*-linux*): Likewise. |
| (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file. |
| (sparc64-*-linux*): Likewise. |
| (sparc64-*-freebsd*): Likewise. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/darwin-crt2.c: Move to ../libgcc/config/rs6000. |
| * config/darwin-crt3.c: Move to ../libgcc/config. |
| * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove. |
| ($(T)crt3$(objext)): Remove. |
| * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove. |
| ($(T)crt2$(objext)): Remove. |
| * config.gcc (powerpc-*-darwin*): Remove extra_parts. |
| (powerpc64-*-darwin*): Likewise. |
| |
| 2011-07-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode. |
| |
| * config/i386/i386.md (*addsi_1_zext): Renamed to ... |
| (addsi_1_zext): This. |
| |
| 2011-07-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook. |
| * doc/tm.texi: Regenerate. |
| * target.def (mergeable_rodata_prefix): New defhookpod. |
| * varasm.c (mergeable_string_section, mergeable_constant_section): |
| Use it. Allocate name with alloca. |
| |
| 2011-07-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma. |
| |
| 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten |
| overlap check. |
| |
| 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree.h (categorize_ctor_elements): Remove comment. Fix long line. |
| (count_type_elements): Delete. |
| (complete_ctor_at_level_p): Declare. |
| * expr.c (flexible_array_member_p): New function, split out from... |
| (count_type_elements): ...here. Make static. Replace allow_flexarr |
| parameter with for_ctor_p. When for_ctor_p is true, return the |
| number of elements that should appear in the top-level constructor, |
| otherwise return an estimate of the number of scalars. |
| (categorize_ctor_elements): Replace p_must_clear with p_complete. |
| (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p. |
| (complete_ctor_at_level_p): New function, borrowing union logic |
| from old categorize_ctor_elements_1. |
| (mostly_zeros_p): Return true if the constructor is not complete. |
| (all_zeros_p): Update call to categorize_ctor_elements. |
| * gimplify.c (gimplify_init_constructor): Update call to |
| categorize_ctor_elements. Don't call count_type_elements. |
| Unconditionally prevent clearing for variable-sized types, |
| otherwise rely on categorize_ctor_elements to detect |
| incomplete initializers. |
| |
| 2011-07-13 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (simplify_conversion_using_ranges): Make sure |
| the final type is integral. |
| |
| 2011-07-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * sched-int.h (struct _dep): Add member cost. |
| (DEP_COST, UNKNOWN_DEP_COST): New macros. |
| * sched-deps.c (init_dep_1): Initialize DEP_COST. |
| * haifa-sched.c (dep_cost_1): Use and set DEP_COST. |
| (sched_change_pattern): Reset it for dependent insns. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (CRT0STUFF_T_CFLAGS): Remove. |
| ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove. |
| * config/i386/netware-crt0.c: Move to ../libgcc/config/i386. |
| * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove. |
| (CRT0_S, MCRT0_S): Remove. |
| ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def): |
| Remove. |
| (s-crt0): Remove. |
| * config.gcc (i[3456x]86-*-netware*): Remove extra_parts. |
| |
| 2011-07-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cse.c (insert_with_costs): Put semi-colon after empty loop body |
| on the next line. |
| * emit-rtl.c (push_to_sequence): Likewise. |
| * haifa-sched.c (max_issue): Likewise. |
| * matrix-reorg.c (add_allocation_site): Likewise. |
| * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. |
| * reload.c (alternative_allows_const_pool_ref): Likewise. |
| * sched-rgn.c (rgn_add_block): Likewise. |
| (rgn_fix_recovery_cfg): Likewise. |
| * tree.c (attribute_list_contained): Likewise. |
| |
| 2011-07-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c: Tidy processor feature bitmasks. |
| (m_P4_NOCONA): New. |
| |
| 2011-07-12 Andrew Pinski <pinskia@gmail.com> |
| |
| PR rtl-opt/49474 |
| * cprop.c (find_implicit_sets): Correct the condition. |
| |
| 2011-07-12 Richard Henderson <rth@redhat.com> |
| |
| PR target/49713 |
| * dwarf2out.h (dwarf_frame_regnum): Remove. |
| * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno |
| earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number. |
| * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New. |
| (execute_dwarf2_frame): Initialize them. |
| (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace |
| users of the macros with the variables. |
| (expand_builtin_dwarf_sp_column): Revert last change. |
| (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the |
| result of DWARF_FRAME_REGNUM into a local variable. |
| |
| 2011-07-12 Richard Henderson <rth@redhat.com> |
| |
| PR target/49714 |
| * config/i386/i386.c (x86_output_mi_thunk): Use |
| machopic_indirect_call_target instead of machopic_indirection_name |
| directly. |
| |
| 2011-07-12 Laurent GUERBY <laurent@guerby.net> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * prefix.h: Wrap up in extern "C" block. |
| |
| 2011-07-12 Harsha Jagasia <harsha.jagasia@amd.com> |
| |
| AMD bdver2 Enablement |
| * config.gcc (i[34567]86-*-linux* | ...): Add bdver2. |
| (case ${target}): Add bdver2. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Let |
| -march=native recognize bdver2 processors. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Add |
| bdver2 def_and_undef |
| * config/i386/i386.c (struct processor_costs bdver2_cost): New |
| bdver2 cost table. |
| (m_BDVER2): New definition. |
| (m_AMD_MULTIPLE): Includes m_BDVER2. |
| (initial_ix86_tune_features): Add bdver2 tuning. |
| (processor_target_table): Add bdver2 entry. |
| (static const char *const cpu_names): Add bdver2 entry. |
| (ix86_option_override_internal): Add bdver2 instruction sets. |
| (ix86_issue_rate): Add bdver2. |
| (ix86_adjust_cost): Add bdver2. |
| (has_dispatch): Add bdver2. |
| * config/i386/i386.h (TARGET_BDVER2): New definition. |
| (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2. |
| (enum processor_type): Add PROCESSOR_BDVER2. |
| * config/i386/i386.md (define_attr "cpu"): Add bdver2. |
| * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to |
| description. |
| |
| 2011-07-12 Richard Henderson <rth@redhat.com> |
| |
| PR target/49714 |
| * config/i386/i386.c (x86_output_mi_thunk): Fix mode for |
| destination address in memory on some paths. |
| |
| 2011-07-12 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention |
| TARGET_FUNCTION_ARG_ROUND_BOUNDARY. |
| (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook. |
| * function.c (locate_and_pad_parm): Take it into account. |
| * target.def (function_arg_round_boundary): New hook. |
| * targhooks.c (default_function_arg_round_boundary): New function. |
| * targhooks.h (default_function_arg_round_boundary): Declare. |
| * doc/tm.texi: Regenerate. |
| |
| 2011-07-12 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics. |
| Do not perform no-op changes. |
| |
| 2011-07-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/predicates.md (neon_struct_operand): Make a normal |
| predicate. |
| (neon_struct_or_register_operand): New predicate. |
| * config/arm/neon.md (movmisalign<mode>): Replace predicates |
| with neon_struct_or_register_operand. |
| (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use |
| neon_struct_operand instead of memory_operand. |
| |
| 2011-07-12 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (cgraph_get_node_or_alias): Removed declaration. |
| * cgraph.c (cgraph_get_node_or_alias): Removed. |
| (change_decl_assembler_name): Changed all calls to |
| cgraph_get_node_or_alias to a call to cgraph_get_node. |
| (cgraph_make_decl_local): Likewise. |
| * lto-symtab.c (lto_symtab_resolve_symbols): Likewise. |
| * varasm.c (default_binds_local_p_1): Likewise. |
| (decl_binds_to_current_def_p): Likewise. |
| |
| 2011-07-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49712 |
| * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF. |
| |
| 2011-07-11 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * genautomata.c (add_arc): Return void. All callers changed. |
| (make_automaton): Remove dead code. |
| |
| 2011-07-11 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New. |
| (DW_FRAME_POINTER_REGNUM): New. |
| (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum. |
| (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here. |
| (dwf_regno): New. |
| (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa, |
| dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register, |
| dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr): |
| Use it. |
| * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum. |
| * dwarf2out.h (dwarf_frame_regnum): New. |
| (struct cfa_loc): Document the domain of the reg member. |
| |
| 2011-07-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr. |
| Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE. |
| |
| 2011-07-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49676 |
| * dwarf2out.c (int_shift_loc_descriptor): New function. |
| (int_loc_descriptor): If shorter, emit i as |
| (i >> shift), shift, DW_OP_shl for suitable shift value. |
| Similarly, try to optimize large negative values using |
| DW_OP_neg of a positive value if shorter. |
| (size_of_int_shift_loc_descriptor): New function. |
| (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor |
| changes. |
| (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants |
| that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor + |
| DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former |
| is shorter. |
| (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large |
| addend as added DW_OP_plus if it is shorter. |
| |
| 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define. |
| (DTORS_SECTION_ASM_OP): Define. |
| |
| 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc. |
| * config/t-dfprules: Move to ../libgcc/config. |
| * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, |
| i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, |
| i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file. |
| (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): |
| Likewise. |
| (i[34567]86-*-cygwin*): Likewise. |
| (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. |
| (powerpc-*-linux*, powerpc64-*-linux*): Likewise. |
| * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove. |
| (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS, |
| D64PBIT_FUNCS, D128PBIT_FUNCS. |
| |
| 2011-07-11 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (simplify_conversion_using_ranges): Manually |
| translate the source value-range through the conversion chain. |
| |
| 2011-07-11 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * expr.c (expand_expr_real_1): Use expand_insn for movmisalign. |
| |
| 2011-07-11 Arthur Loiret <aloiret@debian.org> |
| |
| * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build |
| a bi-arch compiler defaulting to 31-bit. In this case: |
| (tmake_file): Add s390/t-linux64. |
| * doc/install.texi: Add s390-linux to the list of targets supporting |
| --enable-targets=all. |
| |
| 2011-07-11 Arthur Loiret <aloiret@debian.org> |
| Matthias Klose <doko@debian.org> |
| |
| * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build |
| a tri-arch compiler defaulting to 32-bit (ABI o32). In this case: |
| (tm_file): Add mips/linux64.h. |
| (tmake_file): Add mips/t-linux64. |
| (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32. |
| * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT |
| instead of hardcoded mabi=n32. |
| * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if |
| tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc |
| convention. |
| |
| 2011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * passes.c (init_optimization_passes): Add invariant motion pass |
| after induction variable optimization. |
| |
| 2011-07-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/39633 |
| * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only |
| offsets 1..5 set cc0 in a usable way. |
| |
| 2011-07-11 Romain Geissler <romain.geissler@gmail.com> |
| |
| * tree.h (call_expr_arg): Remove. |
| (call_expr_argp): Likewise. |
| |
| 2011-07-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (save_register_window_1): Rename to... |
| (window_save): ...this. |
| * config/sparc/sparc.c (emit_save_register_window): Rename to... |
| (emit_window_save): ...this. |
| (sparc_expand_prologue): Adjust to above renaming. |
| |
| 2011-07-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_trampoline_init): Use movl instead |
| of movabs for x32. |
| |
| 2011-07-10 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and |
| run final, instead of emitting text directly. |
| |
| 2011-07-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Turn on |
| OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and |
| small PIC models for TARGET_X32. |
| |
| 2011-07-10 Hans-Peter Nilsson <hp@axis.com> |
| |
| PR target/49684 |
| * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include |
| $(LIBGCC2_CFLAGS). |
| |
| PR bootstrap/49680 |
| * config/cris/cris.c (cris_asm_output_case_end): Robustify against |
| stray notes and debug insns by using prev_nonnote_nondebug_insn |
| instead of PREV_INSN. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE, |
| DWARF_TYPE_SIGNATURE_SIZE): Move from ... |
| * dwarf2out.c: ... here. |
| (output_all_cfis): Remove. |
| (dwarf2out_switch_text_section): Use output_cfis directly. |
| (size_of_locs): Export. |
| (output_loc_sequence, output_loc_sequence_raw): Export. |
| (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi, |
| output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc, |
| output_cfa_loc_raw): Move to ... |
| * dwarfcfi.c: ... here. |
| * dwarf2out.h: Update decls. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN, |
| DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ... |
| * dwarf2cfi.c: ... here. |
| (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove. |
| (DWARF_ROUND, DWARF_CIE_ID): Remove. |
| * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove. |
| (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove. |
| (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (cie_return_save): New. |
| (queue_reg_save): Use compare_reg_or_pc. |
| (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column. |
| (dwarf2out_frame_debug_expr): Likewise. |
| (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too. |
| (initial_return_save): Likewise. |
| (execute_dwarf2_frame): Save and restore initial return save from |
| the cie to the fde. |
| * config/mips/mips.c (mips_frame_set): Remove special case for |
| DWARF_FRAME_RETURN_COLUMN. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (lookup_cfa): Remove. |
| (execute_dwarf2_frame): Assert queues are empty on entry. |
| Setup initial cfa directly, not via lookup_cfa. |
| Don't clear args_size state here. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (add_cfi_vec): New. |
| (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec. |
| (def_cfa_1, reg_save): Remove for_cie argument. Update all callers. |
| (execute_dwarf2_frame): Set add_cfi_vec. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * defaults.h (ASM_COMMENT_START): Move here... |
| * dwarf2asm.c: ... from here. |
| * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates. |
| * toplev.c: Remove ifndef tests of ASM_COMMENT_START. |
| * varasm.c: Likewise. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49686 |
| * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here... |
| (create_cfi_notes): ... do it here instead. |
| |
| 2011-07-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49676 |
| * dwarf2out.c (size_of_int_loc_descriptor): New function. |
| (address_of_int_loc_descriptor): Use it. |
| (scompare_loc_descriptor): Optimize EQ/NE comparison with constant. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * config/pdp11/pdp11.md (define_c_enum "unspecv"): New. |
| (prologue, epilogue): New. |
| (return, *rts): New. |
| (blockage, setd, seti): New. |
| * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove. |
| (TARGET_ASM_FUNCTION_EPILOGUE): Remove. |
| (pdp11_saved_regno): New. |
| (pdp11_expand_prologue): Rename from pdp11_output_function_prologue; |
| generate rtl instead of text. |
| (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue. |
| (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno. |
| * config/pdp11/pdp11-protos.h: Update. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't |
| try to insert an rtl prologue here. |
| (rs6000_output_function_epilogue): Similarly. |
| * config/rs6000/rs6000.md (prologue): Emit a barrier to |
| satisfy !TARGET_SCHED_PROLOG. |
| (epilogue, sibcall_epilogue): Likewise. |
| |
| 2011-07-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around. |
| (FP_REG_P): Delete. |
| (IN_OR_GLOBAL_P): Likewise. |
| |
| 2011-07-08 Jason Merrill <jason@redhat.com> |
| |
| PR c++/45437 |
| * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in |
| compound assignment. |
| |
| * cgraph.c (cgraph_add_to_same_comdat_group): New. |
| * cgraph.h: Declare it. |
| * ipa.c (function_and_variable_visibility): Make sure thunks |
| have the right visibility. |
| |
| 2011-07-08 Richard Henderson <rth@redhat.com> |
| |
| PR bootstrap/49680 |
| * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after |
| any tablejump vector. |
| |
| PR bootstrap/49680 |
| * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the |
| end of the prologue. |
| |
| 2011-07-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/49621 |
| * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use |
| CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE. |
| * config/rs6000/vector.md (vector_select_<mode>, |
| vector_select_<mode>_uns): Change second operand of NE to |
| CONST0_RTX (<MODE>mode) instead of const0_rtx. |
| * config/rs6000/altivec.md (*altivec_vsel<mode>, |
| *altivec_vsel<mode>_uns): Expect second operand of NE to be |
| zero_constant of the corresponding vector mode. |
| * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): |
| Likewise. |
| |
| 2011-07-08 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c (build_alias_set_powerset): Remove |
| continue from loop, add one more assert. |
| |
| 2011-07-08 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/46779 |
| * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite. |
| In particular, allow 8-bit values in r28 and r29. |
| (avr_hard_regno_scratch_ok): Disallow any register that might be |
| part of the frame pointer. |
| (avr_hard_regno_rename_ok): Same. |
| (avr_legitimate_address_p): Don't allow SUBREGs. |
| |
| 2011-07-08 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in |
| big-endian mode. |
| (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>) |
| (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>) |
| (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>) |
| (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>) |
| (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>) |
| (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>) |
| (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q |
| registers in big-endian mode. |
| |
| 2011-07-08 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined |
| in terms of another. |
| (write_attr_value): Write a cast if necessary. |
| |
| * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default. |
| * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN. |
| (REG_WORDS_BIG_ENDIAN): Document. |
| * doc/tm.texi: Regenerate. |
| * reload.c (operands_match_p): Take it into account. |
| (reload_adjust_reg_for_mode): Likewise. |
| * rtlanal.c (subreg_get_info): Likewise. |
| |
| 2011-07-08 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index |
| folding. |
| |
| 2011-07-08 Kai Tietz <ktietz@redhat.com> |
| |
| * fold-const.c (fold_truth_andor): Factored out truth_andor |
| label from fold_binary as function. |
| (fold_binary_loc): Replace truth_andor lable |
| by function fold_truth_andor. |
| |
| 2011-07-08 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR middle-end/49519 |
| * calls.c (mem_overlaps_already_clobbered_arg_p): Additional |
| check if address is stored in register. If so - give up. |
| (check_sibcall_argument_overlap_1): Do not perform check of |
| overlapping when it is call to address. |
| |
| 2011-07-08 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead |
| of magic '31'. |
| |
| 2011-07-08 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of |
| GET_MODE_BITSIZE where appropriate. |
| (widen_leading, expand_parity, expand_ctz, expand_ffs, |
| expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump, |
| expand_float, expand_fix): Likewise. |
| * expr.c (convert_move, convert_modes, expand_expr_real_2, |
| expand_expr_real_1, reduce_to_bit_field_precision): Likewise. |
| * stor-layout.c (get_mode_bounds): Likewise. |
| * cfgexpand.c (convert_debug_memory_address, expand_debug_expr): |
| Likewise. |
| * convert.c (convert_to_integer): Likewise. |
| * expmed.c (expand_shift_1): Likewise. |
| |
| * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against |
| a bitsize. |
| |
| * optabs.c (expand_binop): Tighten conditions for doubleword |
| expansions. |
| (widen_bswap): Assert that mode bitsize and precision are the same. |
| * stor-layout.c (get_best_mode): Skip modes that have lower |
| precision than bitsize. |
| * recog.c (simplify_while_replacing): Assert that bitsize and |
| precision are the same. |
| |
| 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (LIBGCOV): Remove. |
| (libgcc.mvars): Remove LIBGCOV. |
| * libgov.c: Move to ../libgcc. |
| |
| 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc. |
| |
| 2011-07-08 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (analyze_all_variable_accesses): Dump that a struture |
| is too big for total scalarization. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef. |
| (DBX_DEBUGGING_INFO): Undef. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter. |
| Handle some opcodes specially for debugging. |
| * print-rtl.c: Include dwarf2out.h |
| (print_rtx): Handle NOTE_INSN_CFI. |
| * Makefile.in (print-rtl.o): Update. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * tree-pass.h (pass_dwarf2_frame): Declare. |
| * passes.c (init_optimization_passes): Add it. |
| * dwarf2cfi.c (dwarf2out_frame_debug): Make static. |
| (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue; |
| make static, do not call add_cfis_to_fde. |
| (dwarf2out_frame_debug_init, dwarf2cfi_function_init, |
| dwarf2out_frame_init): Merge into... |
| (execute_dwarf2_frame): ... here. New function. |
| (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change |
| saved_do_cfi_asm to a tri-state variable. |
| (gate_dwarf2_frame, pass_dwarf2_frame): New. |
| * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde |
| if it has yet to be done. Don't call dwarf2cfi_function_init. |
| * dwarf2out.h, debug.h: Update decls. |
| * final.c (final_start_function): Don't call |
| dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue. |
| * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init. |
| * toplev.c (lang_dependent_init): Likewise. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use, |
| FDE_TABLE_INCREMENT): Replace with... |
| (fde_vec): ... this, a new vector. |
| (current_fde): Remove. Replace all users with cfun->fde. |
| (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec. |
| (size_of_aranges, dwarf2out_finish): Likewise. |
| (dwarf2out_alloc_current_fde): Break out from ... |
| (dwarf2out_begin_prologue): ... here. |
| (dwarf2out_frame_init): Remove. |
| * dwarf2cfi.c: Update all users of current_fde. |
| (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init. |
| * dwarf2out.h: Update decls. |
| (dw_fde_node): Add fde_index member. |
| * function.h (struct function): Add fde member. |
| |
| 2011-07-07 Bernd Schmidt <bernds@codesourcery.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (add_cfi): Remove. |
| (dwarf2out_cfi_label): Remove force argument. Only generate the |
| label name. |
| (add_fde_cfi): Simplify the different code paths. |
| (add_cie_cfi): New. |
| (old_cfa, old_cfa_remember): New. |
| (def_cfa_1, reg_save): Remove label, add for_cie parameter. |
| (last_reg_save_label): Remove. |
| (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save, |
| dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, |
| dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, |
| dwarf2out_frame_debug_cfa_expression, |
| dwarf2out_frame_debug_cfa_restore, |
| dwarf2out_frame_debug_cfa_window_save, |
| dwarf2out_frame_debug_expr): Remove label parameter. |
| (cfi_label_required_p, add_cfis_to_fde): New. |
| (dwarf2out_frame_debug_after_prologue): New. |
| (dwarf2cfi_frame_init): Initialize old_cfa. |
| (dwarf2out_frame_debug_restore_state): Likewise. |
| * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm. |
| (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here. |
| * final.c (final_start_function): Call |
| dwarf2out_frame_debug_after_prologue. |
| |
| 2011-07-07 Bernd Schmidt <bernds@codesourcery.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (cfi_insn): New. |
| (dwarf2out_cfi_label): Don't emit cfi label here. |
| (add_fde_cfi): Create a NOTE_INSN_CFI. |
| (dwarf2out_frame_debug): Setup cfi_insn. |
| (dwarf2out_frame_debug_init): Loop over insns creating CFI notes. |
| (dwarf2out_cfi_begin_epilogue): Make static. |
| (dwarf2out_frame_debug_restore_state): Make static. |
| * dwarf2out.c (output_cfi_directive): Make static. |
| (dwarf2out_emit_cfi): New. |
| * dwarf2out.h: Update. |
| * final.c (final): Remove CFI notes. |
| (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue, |
| dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug. |
| Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL. |
| * insn-notes.def (NOTE_INSN_CFI): New. |
| (NOTE_INSN_CFI_LABEL): New. |
| * rtl.h (union rtunion_def): Add rt_cfi member. |
| (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c: New file. |
| * Makefile.in (OBJS): Add it. |
| (GTFILES): Add dwarf2cfi.c and dwarf2out.h. |
| * gengtype.c (open_base_files): Include dwarf2out.h. |
| * coretypes.h (enum var_init_status): Move from ... |
| * rtl.h: ... here. |
| * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame, |
| dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num, |
| expand_builtin_dwarf_sp_column, init_return_column_size, |
| expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi, |
| dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi, |
| lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size, |
| old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save, |
| stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1, |
| compute_barrier_args_size, dwarf2out_args_size, |
| dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust, |
| queued_reg_saves, reg_saved_in_data, regs_saved_in_regs, |
| compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label, |
| queue_reg_save, dwarf2out_flush_queued_reg_saves, |
| clobbers_queued_reg_save, reg_saved_in, cfa_temp, |
| dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, |
| dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, |
| dwarf2out_frame_debug_cfa_expression, |
| dwarf2out_frame_debug_cfa_restore, |
| dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr, |
| dwarf2out_frame_debug, dwarf2out_frame_debug_init, |
| dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state, |
| get_cfa_from_loc_descr): Move to dwarf2cfi.c. |
| (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type, |
| dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node, |
| dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref, |
| dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node, |
| dw_loc_descr_node): Move to dwarf2out.h. |
| (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode, |
| mem_loc_descriptor): Export. |
| (build_cfa_aligned_loc): Export. Take CFA as a parameter. |
| (dwarf2out_frame_init): Extract CIE generation code to |
| dwarf2cfi_frame_init. |
| |
| 2011-07-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/49660 |
| * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add |
| MASK_V8PLUS, remove commented out flag and reorder. |
| |
| 2011-07-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/49644 |
| * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with |
| one non-complex and one complex argument, call c_save_expr on both |
| operands. |
| |
| 2011-07-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/49495 |
| * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function. |
| (verify_cgraph_node): Some functinality moved to |
| verify_edge_corresponds_to_fndecl, call it. |
| |
| 2011-07-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (*local*): Remove. |
| * doc/install-old.texi: Don't mention local configurations. |
| |
| 2011-07-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49522 |
| * df-problems.c (dead_debug_reset): Remove dead_debug_uses |
| referencing debug insns that have been reset. |
| (dead_debug_insert_before): Don't assert reg is non-NULL, |
| instead return immediately if it is NULL. |
| |
| 2011-07-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove. |
| |
| 2011-07-07 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * hw-doloop.c: New file. |
| * hw-doloop.h: New file. |
| * Makefile.in (OBJS): Add hw-doloop.o. |
| (hw-doloop.o): New rule. |
| ($(obj_out_file)): Add hw-doloop.h dependency. |
| * config/bfin/bfin.c: Include "hw-doloop.h". |
| (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove. |
| (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove. |
| (hwloop_optimize): Renamed from bfin_optimize_loop. Argument |
| type changed to hwloop_info. Return bool, true if the loop was |
| successfully optimized. Remove code that was moved to |
| hw-doloop.c, and adjust other parts. |
| (hwloop_fail): New static function, containing parts that used |
| to be in bfin_optimize_loop. |
| (bfin_discover_loop, bfin_discover_loops, free_loops, |
| bfin_reorder_loops): Remove. |
| (hwloop_pattern_reg): New static function. |
| (bfin_doloop_hooks): New variable. |
| (bfin_reorg_loops): Remove most code, call reorg_loops. |
| * config/bfin/bfin.md (doloop_end splitter): Also enable if |
| loop counter is a memory_operand. |
| |
| 2011-07-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config.gcc: Support --with-multilib-list for x86 Linux targets. |
| |
| * configure.ac: Mention x86-64 for --with-multilib-list. |
| * configure: Regenerated. |
| |
| * config/i386/gnu-user64.h (SPEC_64): Support x32. |
| (SPEC_32): Likewise. |
| (ASM_SPEC): Likewise. |
| (LINK_SPEC): Likewise. |
| (TARGET_THREAD_SSP_OFFSET): Likewise. |
| (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise. |
| (SPEC_X32): New. |
| |
| * config/i386/i386.h (TARGET_X32): New. |
| (TARGET_LP64): New. |
| (LONG_TYPE_SIZE): Likewise. |
| (POINTER_SIZE): Likewise. |
| (POINTERS_EXTEND_UNSIGNED): Likewise. |
| (OPT_ARCH64): Support x32. |
| (OPT_ARCH32): Likewise. |
| |
| * config/i386/i386.opt (mx32): New. |
| |
| * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New. |
| (GLIBC_DYNAMIC_LINKERX32): Likewise. |
| * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise. |
| (GLIBC_DYNAMIC_LINKERX32): Likewise. |
| |
| * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New. |
| (BIONIC_DYNAMIC_LINKERX32): Likewise. |
| (GNU_USER_DYNAMIC_LINKERX32): Likewise. |
| |
| * config/i386/t-linux64: Support TM_MULTILIB_CONFIG. |
| |
| * doc/install.texi: Document --with-multilib-list for Linux/x86-64. |
| |
| * doc/invoke.texi: Document -mx32. |
| |
| 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/invoke.texi (mwords-little-endian): Deprecate. |
| * config/arm/arm.opt (mwords-little-endian): Likewise. |
| * config/arm/arm.c (arm_option_override): Warn about the deprecation |
| of -mwords-little-endian. |
| |
| 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * reload1.c (choose_reload_regs): Use mode sizes to check whether |
| an old reload register completely defines the required value. |
| |
| 2011-07-07 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_unary_loc): Do not strip sign-changes |
| for NEGATE_EXPR. |
| |
| 2011-07-07 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (simplify_conversion_using_ranges): New function. |
| (simplify_stmt_using_ranges): Call it. |
| |
| 2011-07-07 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-forwprop.c (truth_valued_ssa_name): New function. |
| (lookup_logical_inverted_value): Likewise. |
| (simplify_bitwise_binary_1): Likewise. |
| (simplify_bitwise_binary): Use simplify_bitwise_binary_1. |
| |
| 2011-07-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * gcc.c (%[Spec]): Don't document. |
| (struct spec_list): Update comment. |
| (do_spec_1): Don't handle %[Spec]. |
| * doc/invoke.texi (%[@var{name}]): Remove documentation of spec. |
| |
| 2011-07-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't |
| default based on TARGET_ASM_NAMED_SECTION. |
| * common/common-target.def (have_named_sections): Default to true. |
| * common/config/default-common.c: Don't include tm.h. |
| * common/config/picochip/picochip-common.c |
| (TARGET_HAVE_NAMED_SECTIONS): Don't define. |
| * common/config/m32c/m32c-common.c: Remove. |
| * config.gcc (m32c*-*-*): Set target_has_targetm_common=no. |
| * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| |
| 2011-07-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49640 |
| * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands |
| and last COMPONENT_REF operand call gimplify_expr on it if non-NULL. |
| |
| 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR libmudflap/49550 |
| * gcc.c (MFWRAP_SPEC): Also wrap mmap64. |
| |
| 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/39150 |
| * configure.ac (gcc_cv_as_hidden): Also accept |
| x86_64-*-solaris2.1[0-9]*. |
| (gcc_cv_as_cfi_directive): Likewise. |
| (gcc_cv_as_comdat_group_group): Likewise. |
| (set_have_as_tls): Likewise. |
| * configure: Regenerate. |
| * config.gcc (i[34567]86-*-solaris2*): Also handle |
| x86_64-*-solaris2.1[0-9]*. |
| * config.host (i[34567]86-*-solaris2*): Likewise. |
| * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove. |
| * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine. |
| [USE_GLD] (ARCH_DEFAULT_EMULATION): Define. |
| (TARGET_LD_EMULATION): Use it. |
| * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define. |
| (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default. |
| * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define. |
| (ASM_CPU64_DEFAULT_SPEC): Define. |
| (ASM_CPU_SPEC): Use %(asm_cpu_default). |
| (ASM_SPEC): Redefine. |
| (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT. |
| * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce. |
| * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document. |
| (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]* |
| configuration. |
| (Specific, x86_64-*-solaris2.1[0-9]*): Document. |
| |
| 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (ASM_SPEC): Split into ... |
| (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this. |
| * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE. |
| * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine. |
| (ASM_SPEC): Use ASM_SPEC_BASE. |
| * config/sparc/sol2.h (ASM_SPEC): Redefine. |
| |
| 2011-07-07 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (*reload_insi): Change predicate #1 to |
| const_int_operand. Ditto for peep2 producing this insn. |
| Add argument to output_reload_insisf call. |
| (*movsi,*movsf): Add argument to output_movsisf call. |
| (*reload_insf): New insn and new peep2 to produce it. |
| * config/avr/avr-protos.h (output_movsisf): Change prototype. |
| (output_reload_insisf): Change prototype. |
| * config/avr/avr.c (avr_asm_len): New function. |
| (output_reload_insisf): Rewrite. |
| (output_movsisf): Change prototype. output_reload_insisf for |
| all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory. |
| (adjust_insn_length): Add argument to output_movsisf and |
| output_reload_insisf call. |
| |
| 2011-07-07 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * emit-rtl.c (paradoxical_subreg_p): New function. |
| * rtl.h (paradoxical_subreg_p): Declare. |
| * combine.c (set_nonzero_bits_and_sign_copies, get_last_value, |
| apply_distributive_law, simplify_comparison, simplify_set): Use it. |
| * cse.c (record_jump_cond, cse_insn): Likewise. |
| * expr.c (force_operand): Likewise. |
| * rtlanal.c (num_sign_bit_copies1): Likewise. |
| * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise. |
| * reload.c (push_secondary_reload, find_reloads_toplev): Likewise. |
| (push_reload): Use precision to check for paradoxical subregs. |
| * expmed.c (extract_bit_field_1): Likewise. |
| |
| * machmode.h (HWI_COMPUTABLE_MODE_P): New macro. |
| * combine.c (set_nonzero_bits_and_sign_copies): Use it. |
| (find_split-point, combine_simplify_rtx, simplify_if_then_else, |
| simplify_set, simplify_logical, expand_compound_operation, |
| make_extraction, force_to_mode, if_then_else_cond, extended_count, |
| try_widen_shift_mode, simplify_shift_const_1, simplify_comparison, |
| record_value_for_reg): Likewise. |
| * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise. |
| * simplify-rtx. c (simplify_unary_operation_1, |
| simplify_binary_operation_1, simplify_const_relational_operation): |
| Likewise. |
| |
| * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION |
| instead of GET_MODE_BITSIZE where appropriate. |
| * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1, |
| num_sign_bit_copies1, canonicalize_condition, low_bitmask_len, |
| init_num_sign_bit_copies_in_rep): Likewise. |
| * cse.c (fold_rtx, cse_insn): Likewise. |
| * loop-doloop.c (doloop_modify, doloop_optimize): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1, |
| simplify_const_unary_operation, simplify_binary_operation_1, |
| simplify_const_binary_operation, simplify_ternary_operation, |
| simplify_const_relational_operation, simplify_subreg): Likewise. |
| * combine.c (try_combine, find_split_point, combine_simplify_rtx, |
| simplify_if_then_else, simplify_set, expand_compound_operation, |
| expand_field_assignment, make_extraction, if_then_else_cond, |
| make_compound_operation, force_to_mode, make_field_assignment, |
| reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine, |
| extended_count, try_widen_shift_mode, simplify_shift_const_1, |
| simplify_comparison, record_promoted_value, simplify_compare_const, |
| record_dead_and_set_regs_1): Likewise. |
| |
| Revert: |
| * simplify-rtx.c (simplify_const_binary_operation): Use the |
| shift_truncation_mask hook instead of performing modulo by width. |
| Compare against mode precision, not bitsize. |
| * combine.c (combine_simplify_rtx, simplify_shift_const_1): |
| Use shift_truncation_mask instead of constructing the value manually. |
| |
| 2011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New |
| declaration. |
| (rs6000_save_toc_in_prologue_p): Ditto. |
| |
| * config/rs6000/rs6000.opt (-mr11): New switch to disable loading |
| up the static chain (r11) during indirect function calls. |
| (-msave-toc-indirect): New undocumented debug switch. |
| |
| * config/rs6000/rs6000.c (struct machine_function): Add |
| save_toc_in_prologue field to note whether the prologue needs to |
| save the TOC value in the reserved stack location. |
| (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need |
| to save the TOC in the prologue, do so. |
| (rs6000_trampoline_init): Don't allow creating AIX style |
| trampolines if -mno-r11 is in effect. |
| (rs6000_call_indirect_aix): New function to create AIX style |
| indirect calls, adding support for -mno-r11 to suppress loading |
| the static chain, and saving the TOC in the prologue instead of |
| the call body. |
| (rs6000_save_toc_in_prologue_p): Return true if we are saving the |
| TOC in the prologue. |
| |
| * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed |
| register numbers. |
| (TOC_REGNUM): Ditto. |
| (STATIC_CHAIN_REGNUM): Ditto. |
| (ARG_POINTER_REGNUM): Ditto. |
| (SFP_REGNO): Delete, unused. |
| (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and |
| function descriptor offsets. |
| (TOC_SAVE_OFFSET_64BIT): Ditto. |
| (AIX_FUNC_DESC_TOC_32BIT): Ditto. |
| (AIX_FUNC_DESC_TOC_64BIT): Ditto. |
| (AIX_FUNC_DESC_SC_32BIT): Ditto. |
| (AIX_FUNC_DESC_SC_64BIT): Ditto. |
| (ptrload): New mode attribute for the appropriate load of a pointer. |
| (call_indirect_aix32): Delete, rewrite AIX indirect function calls. |
| (call_indirect_aix64): Ditto. |
| (call_value_indirect_aix32): Ditto. |
| (call_value_indirect_aix64): Ditto. |
| (call_indirect_nonlocal_aix32_internal): Ditto. |
| (call_indirect_nonlocal_aix32): Ditto. |
| (call_indirect_nonlocal_aix64_internal): Ditto. |
| (call_indirect_nonlocal_aix64): Ditto. |
| (call): Rewrite AIX indirect function calls. Add support for |
| eliminating the static chain, and for moving the save of the TOC |
| to the function prologue. |
| (call_value): Ditto. |
| (call_indirect_aix<ptrsize>): Ditto. |
| (call_indirect_aix<ptrsize>_internal): Ditto. |
| (call_indirect_aix<ptrsize>_internal2): Ditto. |
| (call_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_value_indirect_aix<ptrsize>): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal2): Ditto. |
| (call_value_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_nonlocal_aix32): Relocate in the rs6000.md file. |
| (call_nonlocal_aix64): Ditto. |
| |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and |
| -mno-r11 documentation. |
| |
| 2011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| PR other/49658 |
| * doc/extend.texi (Compound Literals): Fix typo. |
| |
| 2011-07-06 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP. |
| |
| 2011-07-06 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * configure.ac (plugin-version.h): Generate |
| GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR, |
| GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer |
| macros. |
| |
| * configure: Regenerate. |
| |
| * doc/plugins.texi (Building GCC plugins): Mention |
| GCCPLUGIN_VERSION ... constant macros in plugin-version.h. |
| |
| 2011-07-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro. |
| * combine.c (make_extraction, gen_lowpart_or_truncate, |
| apply_distributive_law, simplify_comparison, |
| reg_truncated_to_mode, record_truncated_value): Use it. |
| * cse.c (notreg_cost): Likewise. |
| * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise. |
| * expr.c (convert_move, convert_modes): Likewise. |
| * optabs.c (expand_binop, expand_unop): Likewise. |
| * postreload.c (move2add_last_label): Likewise. |
| * regmove.c (optimize_reg_copy_3): Likewise. |
| * rtlhooks.c (gen_lowpart_general): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| |
| 2011-07-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define. |
| |
| 2011-07-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * cse.c (find_comparison_args): Use val_mode_signbit_set_p. |
| * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION. |
| (val_mode_signbit_p, val_mode_signbit_set_p): New functions. |
| (simplify_const_unary_operation, simplify_binary_operation_1, |
| simplify_const_binary_operation, simplify_const_relational_operation): |
| Use them. Use GET_MODE_MASK for masking and sign-extensions. |
| * combine.c (set_nonzero_bits_and_sign_copies, simplify_set, |
| combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine, |
| simplify_shift_const_1, simplify_comparison): Likewise. |
| * expr.c (convert_modes): Likewise. |
| * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise. |
| * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise. |
| * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare. |
| |
| * simplify-rtx.c (simplify_ternary_operation): Remove dead code. |
| |
| 2011-07-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49645 |
| * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global |
| register variables. |
| * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences |
| in type qualification here ... |
| (copy_reference_ops_from_ref): ... not here. |
| (vn_reference_lookup_3): ... or here. |
| (copy_reference_ops_from_ref): Record decl bases as MEM[&decl]. |
| (vn_reference_lookup): Do the lookup with a valueized ao-ref. |
| |
| 2011-07-06 Ian Lance Taylor <iant@google.com> |
| |
| * doc/install.texi (Configuration): It's |
| --enable-gnu-indirect-function, not --enable-indirect-function. |
| |
| 2011-07-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * simplify-rtx.c (simplify_const_binary_operation): Use the |
| shift_truncation_mask hook instead of performing modulo by width. |
| Compare against mode precision, not bitsize. |
| * combine.c (combine_simplify_rtx, simplify_shift_const_1): |
| Use shift_truncation_mask instead of constructing the value manually. |
| |
| 2011-07-06 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/47383 |
| * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for |
| address computation and convert to address_mode if needed. |
| |
| 2011-07-06 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (build_common_tree_nodes_2): Merge with |
| build_common_tree_nodes. |
| * tree.h (build_common_tree_nodes): Adjust prototype. |
| (build_common_tree_nodes_2): Remove. |
| * doc/tm.texi.in (lang_hooks.builtin_function): Adjust. |
| * doc/tm.texi (lang_hooks.builtin_function): Regenerate. |
| |
| 2011-07-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49618 |
| * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK |
| t recurse on the decl. |
| <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls |
| return true if expr isn't known to be defined in current |
| TU or some other LTO partition. |
| |
| 2011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to |
| override CASE_VALUES_THRESHOLD. |
| |
| * stmt.c (toplevel): Include params.h. |
| (case_values_threshold): Use the --param case-values-threshold |
| value if non-zero, otherwise use machine dependent value. |
| (expand_case): Use case_values_threshold. |
| |
| * Makefile.in (stmt.o): Add $(PARAMS_H) dependency. |
| |
| * doc/invoke.texi (--param case-values-threshold): Document. |
| |
| 2011-07-05 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (dwarf2out_cfi_label): Make static. |
| (dwarf2out_flush_queued_reg_saves): Make static. |
| (dwarf2out_reg_save): Remove. |
| (dwarf2out_return_save): Remove. |
| (dwarf2out_return_reg): Remove. |
| (dwarf2out_reg_save_reg): Remove. |
| (dwarf2out_def_cfa): Merge into ... |
| (dwarf2out_frame_init): ... here. |
| * dwarf2out.h, tree.h: Remove declarations as necessary. |
| |
| 2011-07-05 Richard Henderson <rth@redhat.com> |
| |
| * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove. |
| (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. |
| (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for |
| the alloc insn. |
| |
| * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove. |
| (IA64_CHANGE_CFA_IN_EPILOGUE): Remove. |
| (process_epilogue): Don't call dwarf2out_def_cfa. |
| |
| * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to |
| indicate the return address save. |
| (process_cfa_register): Likewise. |
| |
| * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove. |
| (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it. |
| |
| * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER |
| for ar.pfs save at alloc insn. |
| |
| 2011-07-05 Richard Henderson <rth@redhat.com> |
| |
| * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove. |
| (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. |
| (arm_expand_prologue): Use REG_CFA_REGISTER to mark the |
| stack pointer save. |
| (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN. |
| (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit |
| proper unwind info for a REG_CFA_REGISTER save of stack pointer. |
| * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove. |
| |
| 2011-07-05 Richard Henderson <rth@redhat.com> |
| |
| * config/vax/vax.md (define_c_enum unspecv): New. Define the |
| VUNSPEC_* constants here instead of via define_constants. |
| (VUNSPEC_PEM): New constant. |
| (procedure_entry_mask): New insn. |
| (prologue): New expander. |
| * config/vax/vax.c (vax_add_reg_cfa_offset): New. |
| (vax_expand_prologue): Rename from vax_output_function_prologue; |
| emit rtl instead of text. |
| (TARGET_ASM_FUNCTION_PROLOGUE): Remove. |
| (print_operand): Add 'x' prefix. |
| |
| 2011-07-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/47715 |
| * calls.c (precompute_register_parameters): Promote the function |
| argument before checking non-legitimate constant. |
| |
| 2011-07-05 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/47654 |
| * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool. |
| (lst_do_strip_mine_loop): Return an int. |
| (lst_do_strip_mine): Same. |
| (scop_do_strip_mine): Same. |
| (scop_do_block): Loop blocking should strip-mine at least two loops. |
| * graphite-interchange.c (lst_interchange_select_outer): Return an int. |
| (scop_do_interchange): Same. |
| * graphite-poly.h (scop_do_interchange): Update declaration. |
| (scop_do_strip_mine): Same. |
| |
| 2011-07-05 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (precision_for_value): Removed. |
| (precision_for_interval): Removed. |
| (gcc_type_for_interval): Use mpz_sizeinbase. |
| |
| 2011-07-05 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-ppl.h (value_max): Correct computation of max. |
| |
| 2011-07-05 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space. |
| |
| 2011-07-05 Richard Guenther <rguenther@suse.de> |
| |
| * c-decl.c (c_init_decl_processing): Defer building common |
| tree nodes to c_common_nodes_and_builtins. |
| |
| 2011-07-05 Razya Ladelsky <razya@il.ibm.com> |
| |
| PR tree-optimization/49580 |
| * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of |
| the loop's number of iterations. |
| * tree-parloops.c (transform_to_exit_first_loop): Add the |
| handling of the loop's number of iterations before the call |
| to gimple_duplicate_sese_tail. |
| Insert the stmt caclculating the new rhs of the loop's |
| condition stmt to the preheader instead of iters_bb. |
| |
| 2011-07-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/47449 |
| * fwprop.c (forward_propagate_subreg): Don't propagate hard |
| register nor zero/sign extended hard register. |
| |
| 2011-07-05 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49518 |
| PR tree-optimization/49628 |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip |
| irrelevant and invariant data-references. |
| (vect_analyze_data_ref_access): For invariant loads clear the |
| group association. |
| |
| 2011-07-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/49619 |
| * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification |
| pass VOIDmode as op0_mode to recursive call, and return temp even |
| when different from tor, just if it is not IOR of the original |
| PLUS arguments. |
| |
| PR rtl-optimization/49472 |
| * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When |
| negating MULT, negate the second operand instead of first. |
| (simplify_binary_operation_1) <case MULT>: If one operand is |
| a NEG and the other is MULT, don't attempt to optimize by negation |
| of the MULT operand if it only moves the NEG operation around. |
| |
| PR debug/49602 |
| * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard |
| get_current_def return value if it can't be trusted to be |
| the current value of the variable in the current bb. |
| |
| 2011-07-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49600 |
| * config/i386/i386.md (SSE2 int->float split): Push operand 1 in |
| general register to memory for !TARGET_INTER_UNIT_MOVES. |
| |
| 2011-07-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/44643 |
| * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY |
| instead of TREE_READONLY. |
| |
| 2011-07-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/extend.texi (AVR Built-in Functions): Update documentation |
| of __builtin_avr_fmul*. |
| * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL. |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto. |
| * config/avr/avr.md (fmul): Rename to fmul_insn. |
| (fmuls): Rename to fmuls_insn. |
| (fmulsu): Rename to fmulsu_insn. |
| (fmul,fmuls,fmulsu): New expander. |
| (*fmul.call,*fmuls.call,*fmulsu.call): New Insn. |
| * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu. |
| * config/avr/libgcc.S (__fmul): New function. |
| (__fmuls): New function. |
| (__fmulsu,__fmulsu_exit): New function. |
| |
| 2011-07-04 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49615 |
| * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix |
| basic-block index check. |
| |
| 2011-07-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| * longlong.h (count_leading_zeros, count_trailing_zeros, |
| COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16 |
| resp. 64. |
| |
| 2011-07-03 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49610 |
| * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has |
| a basic block. |
| |
| 2011-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| Nicolas Setton <setton@adacore.com> |
| |
| * tree.h (TYPE_ARTIFICIAL): New flag. |
| * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to |
| the DIE of the type if it is artificial. |
| (gen_array_type_die): Likewise. |
| (gen_enumeration_type_die): Likewise. |
| (gen_struct_or_union_type_die): Likewise. |
| * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL. |
| * lto-streamer-out.c (pack_ts_base_value_fields): Likewise. |
| |
| 2011-07-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-object-size.c (pass_through_call): Handle |
| BUILT_IN_ASSUME_ALIGNED. |
| |
| 2011-07-01 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs. |
| |
| 2011-07-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/48016 |
| * explow.c (update_nonlocal_goto_save_area): Use proper mode |
| for stack save area. |
| * function.c (expand_function_start): Likewise. |
| |
| 2011-07-01 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/49596 |
| * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes |
| may have unknown refs. |
| |
| 2011-07-01 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo. |
| |
| 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5. |
| * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it. |
| (Specific, mips-sgi-irix6): Likewise. |
| |
| 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR libmudflap/49549 |
| * doc/sourcebuild.texi (Effective-Target Keywords): Document gld. |
| |
| 2011-07-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print |
| [idx]= and [idx1 ... idx2]= before initializers if needed for |
| array initializers. |
| |
| 2011-07-01 Chen Liqin <liqin.gcc@gmail.com> |
| |
| * config.gcc (score-*-elf): Remove score7.o. |
| * config/score/t-score-elf: Likewise. |
| * config/score/score.c: Merge score7 to score.c and |
| remove forwarding functions. |
| * config/score/score7.c: Deleted. |
| * config/score/score7.h: Deleted. |
| |
| 2011-07-01 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49603 |
| * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert. |
| |
| 2011-06-30 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (struct access): Rename total_scalarization to |
| grp_total_scalarization |
| (completely_scalarize_var): New function. |
| (sort_and_splice_var_accesses): Set total_scalarization in the |
| representative access. |
| (analyze_access_subtree): Propagate total scalarization accross the |
| tree, no holes in totally scalarized trees, simplify coverage |
| computation. |
| (analyze_all_variable_accesses): Call completely_scalarize_var instead |
| of completely_scalarize_record. |
| |
| 2011-06-30 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove. |
| (TARGET_DEEP_BRANCH_PREDICTION): Remove. |
| * config/i386/i386.c: Don't include dwarf2out.h. |
| (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION. |
| (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete |
| all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves. |
| (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn. |
| (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION. |
| |
| 2011-06-30 Richard Henderson <rth@redhat.com> |
| |
| * reg-notes.def (REG_CFA_FLUSH_QUEUE): New. |
| * dwarf2out.c (dwarf2out_frame_debug): Handle it. |
| * final.c (final_scan_insn): Look for it, and invoke |
| dwarf2out_frame_debug before the insn if found. |
| |
| 2011-06-30 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX |
| as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN. |
| |
| 2011-06-30 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (struct reg_saved_in_data): Provide a typedef. |
| Define a vector of this type. |
| (regs_saved_in_regs): Use a VEC. |
| (num_regs_saved_in_regs): Remove. |
| (compare_reg_or_pc): New. |
| (record_reg_saved_in_reg): Split out from... |
| (dwarf2out_flush_queued_reg_saves): ... here. |
| (clobbers_queued_reg_save): Update for VEC. |
| (reg_saved_in): Likewise. |
| (dwarf2out_frame_debug_init): Likewise. |
| (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg. |
| (dwarf2out_frame_debug_cfa_register): Likewise. |
| |
| 2011-06-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/49572 |
| * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the |
| type of the RHS instead of that of the LHS for the expression type. |
| |
| 2011-06-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro |
| unconditionally. |
| |
| 2011-06-30 Richard Guenther <rguenther@suse.de> |
| |
| * opts.c (finish_options): Do not disable IPA-PTA during ltrans. |
| * tree-ssa-structalias.c (create_variable_info_for): Do not |
| add initial constraints for non-var-decls. Properly handle |
| globals in other ltrans partitions. |
| (intra_create_variable_infos): Manually create constraints for |
| the fake no-alias parameter. |
| (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly |
| and assert there are no clones. |
| |
| 2011-06-30 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/46787 |
| * tree-data-ref.c (dr_address_invariant_p): Remove. |
| (find_data_references_in_stmt): Invariant accesses are ok now. |
| * tree-vect-stmts.c (vectorizable_load): Handle invariant loads. |
| * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow |
| invariant loads. |
| |
| 2011-06-30 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/49094 |
| * tree-sra.c (tree_non_mode_aligned_mem_p): New function. |
| (build_accesses_from_assign): Use it. |
| |
| 2011-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix |
| handling of BUILT_IN_ASSUME_ALIGNED. |
| |
| PR debug/49364 |
| * dwarf2out.c (output_abbrev_section): Don't return early |
| if abbrev_die_table_in_use is 1. |
| (dwarf2out_finish): Instead don't call output_abbrev_section |
| nor emit abbrev_section_label in that case. |
| |
| 2011-06-30 Nick Clifton <nickc@redhat.com> |
| |
| * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling |
| for the V850E. |
| |
| 2011-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix |
| handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK. |
| |
| 2011-06-30 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Handle |
| both pattern and original statements if necessary. |
| (vect_transform_loop): Likewise. |
| * tree-vect-patterns.c (vect_pattern_recog): Update documentation. |
| * tree-vect-stmts.c (vect_mark_relevant): Add new argument. |
| Mark the pattern statement only if the original statement doesn't |
| have its own uses. |
| (process_use): Call vect_mark_relevant with additional parameter. |
| (vect_mark_stmts_to_be_vectorized): Likewise. |
| (vect_get_vec_def_for_operand): Use vectorized pattern statement. |
| (vect_analyze_stmt): Handle both pattern and original statements |
| if necessary. |
| (vect_transform_stmt): Don't store vectorized pattern statement |
| in the original statement. |
| (vect_is_simple_use_1): Use related pattern statement only if the |
| original statement is irrelevant. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. |
| |
| 2011-06-29 Changpeng Fang <changpeng.fang@amd.com> |
| |
| * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask |
| option. |
| * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL |
| entry. |
| (TARGET_AVX128_OPTIMAL): New definition. |
| * config/i386/i386.c (initial_ix86_tune_features): Initialize |
| X86_TUNE_AVX128_OPTIMAL entry. |
| (ix86_option_override_internal): Enable the generation |
| of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set. |
| (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128. |
| (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128. |
| |
| 2011-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/49539 |
| * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA |
| names by means of stmt_references_abnormal_ssa_name. |
| (associate_plusminus): Call can_propagate_from before propagating |
| from definition statements. |
| (ssa_forward_propagate_and_combine): Remove superfluous newline. |
| |
| 2011-06-29 Richard Guenther <rguenther@suse.de> |
| |
| * doc/invoke.texi: Document -scev dump modifier. |
| * tree-pass.h (TDF_SCEV): New dump flag. |
| * tree-dump.c (dump_option_value_in): Add scev. |
| * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV. |
| * tree-scalar-evolution.c: Likewise. |
| |
| 2011-06-29 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/arm/unwind-arm.c (enum __cxa_type_match_result): New. |
| (cxa_type_match): Correct declaration. |
| (__gnu_unwind_pr_common): Reconstruct additional indirection |
| when __cxa_type_match returns succeeded_with_ptr_to_base. |
| |
| 2011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR rtl-optimization/49114 |
| * reload.c (struct replacement): Remove SUBREG_LOC member. |
| (push_reload): Do not set it. |
| (push_replacement): Likewise. |
| (subst_reload): Remove dead code. |
| (copy_replacements): Remove assertion. |
| (copy_replacements_1): Do not handle SUBREG_LOC. |
| (move_replacements): Likewise. |
| (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode. |
| Detect subregs via recursive descent instead of via SUBREG_LOC. |
| |
| 2011-06-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_encode_section_info): Dispatch to |
| default_encode_section_info. |
| |
| 2011-06-29 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/49545 |
| * builtins.c (get_object_alignment_1): Update function comment. |
| Do not use DECL_ALIGN for functions, but test |
| TARGET_PTRMEMFUNC_VBIT_LOCATION instead. |
| * fold-const.c (get_pointer_modulus_and_residue): Don't check |
| for functions here. |
| * tree-ssa-ccp.c (get_value_from_alignment): Likewise. |
| |
| 2011-06-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49567 |
| * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for |
| non-MODE_INT modes instead of asserting the mode has MODE_INT class. |
| |
| 2011-06-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/34734 |
| * config/avr/avr.c (avr_handle_progmem_attribute): Move warning |
| about uninitialized data attributed 'progmem' from here... |
| (avr_encode_section_info): ...to this new function. |
| (TARGET_ENCODE_SECTION_INFO): New define. |
| (avr_section_type_flags): For data in ".progmem.data", remove |
| section flag SECTION_WRITE. |
| |
| 2011-06-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3, |
| _xmulhisi3_exit. |
| * config/avr/libgcc.S (_xmulhisi3_exit): New Function. |
| (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp. |
| (__umulhisi3): Ditto. |
| * config/avr/avr.md (mulhisi3): New insn expender. |
| (umulhisi3): New insn expender. |
| (*mulhisi3_call): New insn. |
| (*umulhisi3_call): New insn. |
| |
| 2011-06-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED. |
| |
| 2011-06-28 Richard Henderson <rth@redhat.com> |
| |
| * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete |
| all code and arguments that handled pushes. Update all callers. |
| |
| 2011-06-28 Richard Henderson <rth@redhat.com> |
| |
| * config/arm/arm.c (arm_output_function_prologue): Don't call |
| thumb1_output_function_prologue. |
| (arm_expand_prologue): Avoid dead store. |
| (number_of_first_bit_set): Use ctz_hwi. |
| (thumb1_emit_multi_reg_push): New. |
| (thumb1_expand_prologue): Merge thumb1_output_function_prologue |
| to emit the entire prologue as rtl. |
| (thumb1_output_interwork): Split out from |
| thumb1_output_function_prologue. |
| (thumb1_output_function_prologue): Remove. |
| (arm_attr_length_push_multi): Handle thumb1. |
| * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New. |
| (prologue_thumb1_interwork): New. |
| (*push_multi): Allow thumb1; use push_mult_memory_operand. |
| * config/arm/predicates.md (push_mult_memory_operand): New. |
| |
| 2011-06-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sync.md (*stbar): Delete. |
| (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8. |
| |
| 2011-06-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-dom.c (initialize_hash_element): Fix oversight. |
| |
| 2011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove. |
| (TARGET_64BIT_DEFAULT): Define. |
| * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front |
| of tm_file. |
| * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define. |
| |
| 2011-06-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * common.opt (in_lto_p): New Variable entry. |
| * flags.h (in_lto_p): Move to common.opt. |
| * gcc.c: Include params.h. |
| (set_option_handlers): Also use common_handle_option and |
| target_handle_option. |
| (main): Call global_init_params, finish_params and init_options_struct. |
| * opts.c (debug_type_names): Move from toplev.c. |
| (print_filtered_help): Access quiet_flag through opts pointer. |
| (common_handle_option): Return early in the driver for some options. |
| Access in_lto_p, dwarf_version and warn_maybe_uninitialized through |
| opts pointer. |
| * toplev.c (in_lto_p): Move to common.opt. |
| (debug_type_names): Move to opts.c. |
| * Makefile.in (OBJS): Remove opts.o. |
| (OBJS-libcommon-target): Add opts.o. |
| (gcc.o): Update dependencies. |
| |
| 2011-06-28 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking. |
| |
| 2011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier |
| with '=' constraint modifier. |
| (*divdf3_vfp): Likewise. |
| ("*mulsf3_vfp"): Likewise. |
| ("*muldf3_vfp"): Likewise. |
| ("*mulsf3negsf_vfp"): Likewise. |
| ("*muldf3negdf_vfp"): Likewise. |
| |
| 2011-06-28 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker |
| relaxation when performing an incremental link. |
| |
| 2011-06-28 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-math-opts.c (execute_optimize_bswap): Search |
| within BB from last to first. |
| |
| 2011-06-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * genattr-common.c: New. Based on genattr.c. |
| * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h. |
| (MOSTLYCLEANFILES): Add insn-attr-common.h. |
| (opts.o): Update dependencies. |
| (.PRECIOUS): Add insn-attr-common.h. |
| (simple_rtl_generated_h): Add insn-attr-common.h. |
| (build/genattr-common.o): New. |
| (genprogrtl): Add attr-common. |
| * genattr.c (main): Include insn-attr-common.h. Don't generate |
| definitions of DELAY_SLOTS or INSN_SCHEDULING. |
| * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h. |
| |
| 2011-06-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config.gcc (tm_file): Add elfos.h and avr/elf.h for |
| avr-*-* and avr-*-rtems* targets. |
| |
| * config/avr/elf.h: New file. |
| (ASM_OUTPUT_BEFORE_CASE_LABEL): Define. |
| (TARGET_ASM_SELECT_SECTION): Define. |
| (INIT_SECTION_ASM_OP): Undefine. |
| (FINI_SECTION_ASM_OP): Undefine. |
| (READONLY_DATA_SECTION_ASM_OP): Undefine. |
| (PCC_BITFIELD_TYPE_MATTERS): Undefine. |
| (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine. |
| * config/avr/avr.h: |
| (PREFERRED_DEBUGGING_TYPE): Move to elf.h. |
| (TARGET_ASM_NAMED_SECTION): Move to elf.h. |
| (MAX_OFILE_ALIGNMENT): Move to elf.h. |
| (STRING_LIMIT): Move to elf.h. |
| (ASM_DECLARE_FUNCTION_NAME): Move to elf.h. |
| (ASM_DECLARE_OBJECT_NAME): Remove. |
| (ESCAPES): Remove. |
| (ASM_OUTPUT_SKIP): Remove. |
| (DWARF2_DEBUGGING_INFO): Remove. |
| (OBJECT_FORMAT_ELF): Remove. |
| (USER_LABEL_PREFIX): Remove. |
| (ASM_OUTPUT_EXTERNAL): Remove. |
| (ASM_OUTPUT_ASCII): Remove. |
| (TYPE_ASM_OP): Remove. |
| (SIZE_ASM_OP): Remove. |
| (WEAK_ASM_OP): Remove. |
| (STRING_ASM_OP): Remove. |
| (SET_ASM_OP): Remove. |
| (ASM_WEAKEN_LABEL): Remove. |
| (TYPE_OPERAND_FMT): Remove. |
| (ASM_DECLARE_FUNCTION_SIZE): Remove. |
| (ASM_FINISH_DECLARE_OBJECT): Remove. |
| (NO_DOLLAR_IN_LABEL): Remove. |
| (ASM_GENERATE_INTERNAL_LABEL): Remove. |
| (ASM_OUTPUT_CASE_LABEL): Remove. |
| * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use |
| ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON. |
| (gas_output_ascii): Remove. |
| (gas_output_limited_string): Remove. |
| (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove. |
| * config/avr/avr-protos.h |
| (gas_output_ascii): Remove prototye. |
| (gas_output_limited_string): Remove prototype. |
| |
| 2011-06-27 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/48637 |
| * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid |
| asm operands. |
| |
| 2011-06-27 Jan Hubicka <jh@suse.cz> |
| |
| * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of |
| node instead of references in node. |
| |
| 2011-06-27 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition. |
| * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins |
| inside ifdef. |
| |
| 2011-06-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * c-decl.c (union lang_tree_node): Use it in chain_next expression. |
| |
| * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New. |
| * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin. |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call, |
| find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED. |
| * tree-ssa-ccp.c (bit_value_assume_aligned): New function. |
| (evaluate_stmt, execute_fold_all_builtins): Handle |
| BUILT_IN_ASSUME_ALIGNED. |
| * tree-ssa-dce.c (propagate_necessity): Likewise. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, |
| call_may_clobber_ref_p_1): Likewise. |
| * builtins.c (is_simple_builtin, expand_builtin): Likewise. |
| (expand_builtin_assume_aligned): New function. |
| * doc/extend.texi (__builtin_assume_aligned): Document. |
| |
| PR debug/49544 |
| * cselib.c (promote_debug_loc): If cselib_preserve_constants |
| and l has two DEBUG_INSN owned locs instead of just one, adjust |
| the second location's setting_insn too. |
| |
| 2011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR libmudflap/38738 |
| * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define. |
| |
| 2011-06-27 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert |
| bit position of highest bit set into a count of the high zero bits. |
| |
| 2011-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types. |
| |
| 2011-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR lto/48492 |
| * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list |
| to a NULL parent. |
| |
| 2011-06-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49394 |
| * passes.c (execute_one_pass): Restore current_pass after |
| applying IPA transforms. |
| |
| 2011-06-27 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-math-opts.c (do_shift_rotate): Zero bits |
| out of type precision after operation. |
| (find_bswap): Take for limit value the integer auto-promotion |
| into account. |
| |
| 2011-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the |
| forward scan as well. |
| |
| 2011-06-27 Tristan Gingold <gingold@adacore.com> |
| |
| PR target/44241 |
| * config/vms/vms-protos.h: New file. |
| * config/vms/vms-crtlmap.map: New file. |
| * config/vms/vms.c: New file. |
| * config/vms/make-crtlmap.awk: New file. |
| * config/vms/vms-crtl.h: File removed. |
| * config/vms/vms-crtl-64.h: File removed. |
| * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets. |
| * config/alpha/vms64.h: Do not include vms-crtl-64.h |
| * config/alpha/alpha.c (alpha_init_builtins): Remove code to |
| clear some builtins on VMS. Calls vms_patch_builtins. |
| (avms_asm_output_external): Remove. |
| * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove. |
| (struct crtl_name_spec): Remove |
| (DO_CTRL_NAMES): Remove. |
| * config/ia64/vms.h (struct crtl_name_spec): Remove |
| (DO_CTRL_NAMES): Remove. |
| * config/ia64/ia64.c (alpha_init_builtins): Remove code to |
| clear some builtins on VMS. Calls vms_patch_builtins. |
| (ia64_asm_output_external): Remove DO_CRTL_NAME. |
| * config/ia64/vms64.h: Do not include vms-crtl-64.h |
| * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file. |
| |
| 2011-06-27 Tristan Gingold <gingold@adacore.com> |
| |
| * config/alpha/alpha.c (alpha_end_function): Always generate .end |
| directive on VMS. |
| |
| 2011-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if |
| the function receives nonlocal gotos. |
| |
| 2011-06-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49536 |
| * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): |
| For non-scalar inner types use a scalar type according to |
| the scalar inner mode. |
| |
| 2011-06-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49365 |
| * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9. |
| |
| 2011-06-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49169 |
| * fold-const.c (get_pointer_modulus_and_residue): Don't rely on |
| the alignment of function decls. |
| |
| 2011-06-26 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR target/47997 |
| * config/darwin.c (darwin_mergeable_string_section): Place string |
| constants in '.cstring' rather than '.const' when CF/NSStrings are |
| active. |
| |
| 2011-06-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment. |
| (emit_save_register_window): Likewise. |
| (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables. |
| (sparc_flat_expand_prologue): Add comment. Always emit blockage. |
| Swap back %o7/%i7 in register naming. |
| |
| 2011-06-25 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR driver/49371 |
| * config/darwin.c (darwin_override_options): Improve warning when |
| mdynamic-no-pic is given together with fPIC/fpic, also warn when it |
| is given with fpie/fPIE. |
| * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC. |
| * config/darwin9.h (PIE_SPEC): New. |
| |
| 2011-06-25 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * timevar.c (timevar_print): Increase width for display of timevar |
| name. |
| |
| 2011-06-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/46400 |
| * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT |
| instead of TYPE_CHAIN for chain_next for types. |
| |
| 2011-06-24 Richard Henderson <rth@redhat.com> |
| |
| * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove. |
| (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove. |
| * config/sparc/sparc.c (gen_create_flat_frame_1): Remove. |
| (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove. |
| (sparc_flat_expand_prologue): Emit individual instructions |
| instead of one of the above. |
| |
| 2011-06-24 Easwaran Raman <eraman@google.com> |
| |
| PR rtl-optimization/49429 |
| PR target/49454 |
| * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and |
| MEM_EXPR(y) addressable if emit_block_move_via_libcall is |
| used to copy y into x. |
| * calls.c (initialize_argument_information): Mark |
| an argument addressable if it is passed by invisible reference. |
| (emit_library_call_value_1): Mark MEM_EXPR (val) addressable |
| if it is passed by reference. |
| |
| 2011-06-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/49504 |
| * rtlanal.c (nonzero_bits1): Properly handle addition or |
| subtraction of a pointer in Pmode if pointers extend unsigned. |
| (num_sign_bit_copies1): Likewise. |
| |
| 2011-06-24 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimizations/49516 |
| * tree-sra.c (sra_modify_assign): Choose the safe path for |
| aggregate copies if we also did scalar replacements. |
| |
| 2011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/49335 |
| * config/arm/predicates.md (add_operator): New. |
| * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2. |
| |
| 2011-06-24 Andi Kleen <ak@linux.intel.com> |
| |
| * tree-sra.c (type_internals_preclude_sra_p): Add msg |
| parameter. Split up ifs and report reason in *msg. |
| (reject): Add. |
| (find_var_candiate): Add msg variable. |
| Split up ifs and report reason to reject. |
| (find_param_candidates): Add msg variable. |
| Pass msg to type_internals_preclude_sra_p. |
| |
| 2011-06-23 Jeff Law <law@redhat.com> |
| |
| PR middle-end/48770 |
| * reload.h (reload): Change to return a bool. |
| * ira.c (ira): If requested by reload, run a fast DCE pass after |
| reload has completed. Fix comment typo. |
| * reload1.c (need_dce): New file scoped static. |
| (reload): Set reload_completed here. Return whether or not a DCE |
| pass after reload is needed. |
| (delete_dead_insn): Set need_dce as needed. |
| |
| PR middle-end/49465 |
| * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition |
| to detect threading through joiner block. If there was already |
| an edge to the new target, then do not change the PHI nodes. |
| |
| 2011-06-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use |
| get_pointer_alignment to see if base isn't sufficiently aligned. |
| |
| 2011-06-23 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimize/49373 |
| * tree-pass.h (all_late_ipa_passes): Declare. |
| * cgraphunit.c (init_lowered_empty_function): Fix properties. |
| (cgraph_optimize): Execute late passes; remove unreachable funcions |
| after materialization. |
| * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or |
| LTOing. |
| * passes.c (all_late_ipa_passes): Declare. |
| (dump_passes, register_pass): Handle late ipa passes. |
| (init_optimization_passes): Move ipa_pta to late passes; schedule |
| fixup_cfg at beggining of all_passes. |
| (apply_ipa_transforms): New function. |
| (execute_one_pass): When doing simple ipa pass, apply all transforms. |
| |
| 2011-06-23 Joseph Myers <joseph@codesourcery.com> |
| |
| * params.c: Include common/common-target.h. Don't include tm.h. |
| (lang_independent_params): Move from toplev.c. |
| (global_init_params): New. |
| * params.h (global_init_params): Declare. |
| * target.def (default_params): Move to common-target.def. |
| * toplev.c (lang_independent_options): Remove. |
| (lang_independent_params): Move to params.c. |
| (general_init): Use global_init_params. |
| * common/common-target.def (option_default_params): Move from |
| target.def. |
| * common/config/ia64/ia64-common.c: Include params.h. |
| (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move |
| from ia64.c. |
| * common/config/rs6000/rs6000-common.c: Include params.h. |
| (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move |
| from rs6000.c. |
| * common/config/sh/sh-common.c: Include params.h. |
| (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move |
| from sh.c. |
| * common/config/spu/spu-common.c: Include params.h. |
| (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move |
| from spu.c. |
| * config/ia64/ia64.c (ia64_option_default_params, |
| TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c. |
| * config/rs6000/rs6000.c (rs6000_option_default_params, |
| TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c. |
| * config/sh/sh.c (sh_option_default_params, |
| TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c. |
| * config/spu/spu.c (spu_option_default_params, |
| TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c. |
| * Makefile.in (OBJS): Remove params.o. |
| (OBJS-libcommon-target): Add params.o. |
| (params.o, $(common_out_object_file)): Update dependencies. |
| * doc/tm.texi: Regenerate. |
| |
| 2011-06-23 Alan Modra <amodra@gmail.com> |
| |
| PR bootstrap/49383 |
| * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph |
| invocation for 2011-06-09 changes. |
| |
| 2011-06-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR libgomp/49490 |
| * omp-low.c (expand_omp_for_static_nochunk): Only |
| use n ceil/ nthreads size for the first n % nthreads threads in the |
| team instead of all threads except for the last few ones which |
| get less work or none at all. |
| |
| PR debug/49496 |
| * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug |
| uses. |
| |
| 2011-06-22 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49493 |
| * tree-ssa-structalias.c (get_constraint_for_ssa_var): |
| Refer to the alias target of variables. |
| (associate_varinfo_to_alias_1): Remove. |
| (ipa_pta_execute): Do not associate aliases with anything. |
| * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors. |
| (cgraph_function_node): Likewise. |
| (cgraph_function_or_thunk_node): Likewise. |
| (varpool_variable_node): Likewise. |
| |
| 2011-06-22 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo. |
| * config.gcc (arm*-*-linux*): Default to gnu tls. |
| (arm*-*-*): Add --with-tls option. |
| (all_defaults): Add 'tls'. |
| |
| 2011-06-22 Richard Henderson <rth@redhat.com> |
| |
| * reg-notes.def (REG_CFA_WINDOW_SAVE): New. |
| * dwarf2out.c (dwarf2out_frame_debug): Handle it. |
| (dwarf2out_frame_debug_cfa_window_save): Rename from |
| dwarf2out_window_save; make static. |
| * tree.h (dwarf2out_window_save): Don't declare. |
| |
| * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove. |
| (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. |
| (emit_save_register_window): Rename from gen_save_register_window; |
| emit the insn and add REG_CFA_* notes. |
| (sparc_expand_prologue): Update to match. |
| * config/sparc/sparc.md (save_register_window_1): Simplify from |
| save_register_window<P:mode>. |
| |
| 2011-06-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/49497 |
| * config/i386/i386.md (*lea_general_2): Always allow SImode. |
| (*lea_general_2_zext): Likewise. |
| (imul to lea peepholes): Use const359_operand and check |
| TARGET_PARTIAL_REG_STALL. |
| |
| * config/i386/predicates.md (const359_operand): New. |
| |
| 2011-06-22 Michael Matz <matz@suse.de> |
| |
| * cgraphunit.c (assemble_thunk): Use correct return type. |
| |
| 2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru> |
| Dmitry Melnik <dm@ispras.ru> |
| |
| * config/arm/arm.c (neon_immediate_valid_for_shift): New function. |
| (neon_output_shift_immediate): Ditto. |
| * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New |
| prototype. |
| (neon_output_shift_immediate): Ditto. |
| * config/arm/neon.md (vashl<mode>3): Modified constraint. |
| (vashr<mode>3_imm): New insn pattern. |
| (vlshr<mode>3_imm): Ditto. |
| (vashr<mode>3): Modified constraint. |
| (vlshr<mode>3): Ditto. |
| * config/arm/predicates.md (imm_for_neon_lshift_operand): New |
| predicate. |
| (imm_for_neon_rshift_operand): Ditto. |
| (imm_lshift_or_reg_neon): Ditto. |
| (imm_rshift_or_reg_neon): Ditto. |
| |
| * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr. |
| |
| 2011-06-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for |
| builtin calls even if likelyvalue is not CONSTANT. |
| Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC. |
| Return get_value_for_expr of first operand |
| for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle |
| BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like |
| their non-checking counterparts. |
| (call_may_clobber_ref_p_1): Likewise. |
| (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK |
| like their non-checking counterparts. |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): |
| Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK |
| like their non-checking counterparts. |
| (find_func_clobbers): Likewise. |
| * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK |
| like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC. |
| |
| * dwarf2out.c (size_of_loc_descr, output_loc_operands, |
| mark_base_types, hash_loc_operands, compare_loc_operands): Allow |
| DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead |
| of base type reference as argument. |
| (resolve_addr_in_expr): Likewise. Fix keep computation. |
| (convert_descriptor_to_signed): Renamed to... |
| (convert_descriptor_to_mode): ... this. For wider types convert to |
| unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped. |
| (typed_binop): New function. |
| (scompare_loc_descriptor, ucompare_loc_descriptor, |
| minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes |
| default to unsigned type instead of signed. |
| |
| PR debug/47858 |
| * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND. |
| (gimple_build_debug_source_bind_stat): New prototype. |
| (gimple_build_debug_source_bind): Define. |
| (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var, |
| gimple_debug_source_bind_get_value, |
| gimple_debug_source_bind_get_value_ptr, |
| gimple_debug_source_bind_set_var, |
| gimple_debug_source_bind_set_value): New inlines. |
| * gimple.c (gimple_build_debug_source_bind_stat): New function. |
| * gimple-pretty-print.c (dump_gimple_debug): Handle |
| GIMPLE_DEBUG_SOURCE_BIND. |
| * sese.c (rename_uses): Handle gimple_debug_source_bind_p. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. |
| * tree-parloops.c (eliminate_local_variables, |
| separate_decls_in_region): Likewise. |
| (separate_decls_in_region_debug): Renamed from |
| separate_decls_in_region_debug_bind. Handle |
| gimple_debug_source_bind_p. |
| * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New |
| prototypes. |
| (DECL_HAS_DEBUG_ARGS_P): Define. |
| (struct tree_function_decl): Add has_debug_args_flag field. |
| * tree.c (debug_args_for_decl): New variable. |
| (decl_debug_args_lookup, decl_debug_args_insert): New functions. |
| * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts. |
| (rewrite_debug_stmt_uses): New function. |
| (rewrite_stmt): Use it to rewrite debug stmt uses. |
| * rtl.def (DEBUG_PARAMETER_REF): New. |
| * rtl.h (DEBUG_PARAMETER_REF_DECL): Define. |
| * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle |
| DEBUG_PARAMETER_REF. |
| * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise. |
| * print-rtl.c (print_rtx): Likewise. |
| * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of |
| SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind |
| debug stmts in the first bb. |
| * tree-inline.c (remap_ssa_name): If remapping default def |
| of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in |
| a source bind debug stmt. |
| (remap_gimple_stmt): Handle gimple_debug_source_bind_p. |
| (maybe_move_debug_stmts_to_successors): Likewise. |
| (copy_debug_stmt): Likewise. Avoid shadowing a variable. |
| (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy |
| debug args vector from old_decl to new_decl. |
| * ipa-prop.c (ipa_modify_call_arguments): For optimized away |
| or modified parameters, add debug bind stmts before call |
| setting DEBUG_EXPR_DECL which is remembered in debug args vector. |
| * cfgexpand.c (expand_call_stmt): Call expand_debug_expr |
| on DECL_DEBUG_EXPRs from debug args vector. |
| (expand_debug_source_expr): New function. |
| (expand_debug_locations): Use it for source bind insns. |
| (expand_gimple_basic_block): Handle gimple_debug_source_bind_p. |
| * var-tracking.c (prepare_call_arguments): Add debug args |
| to call_arguments if any. |
| * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr, |
| output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr, |
| compare_loc_operands): Handle DW_OP_GNU_parameter_ref. |
| (get_ref_die_offset, parameter_ref_descriptor): New functions. |
| (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF. |
| (gen_subprogram_die): Handle parameters identified by |
| DEBUG_PARAMETER_REF. |
| |
| 2011-06-22 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * doc/invoke.texi (ARM Options): Document -mtls-dialect option. |
| * doc/install.texi (Configuration): Document --with-tls. |
| * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ. |
| (arm_call_tls_get_addr): Clean up. Assert not tls descriptor. |
| (arm_tls_descseq_addr): New. |
| (legitimize_tls_address): Add tlsdesc support. |
| (arm_cannot_copy_insn_p): Check for tlscall. |
| (arm_emit_tls_decoration): Likewise. |
| * config/arm/arm.h (TARGET_GNU2_TLS): New. |
| (OPTION_DEFAULT_SPECS): Add with-tls support. |
| * config/arm/arm.md (R1_REGNUM): Define. |
| (tlscall): New. |
| * config/arm/arm.opt (tls_type): New enumeration type and values. |
| (mtls-dialect): New switch. |
| * config/arm/arm-opts.h (enum tls_type): New. |
| |
| 2011-06-21 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * attribs.c (register_attribute): Added assert to check that all |
| attribute specs are registered with a name that is not empty and |
| does not start with '_'. |
| (decl_attributes): Avoid the lookup of the "naked" attribute spec |
| if the function has no attributes. |
| * tree.c (is_attribute_with_length_p): Removed. |
| (is_attribute_p): Removed. |
| (private_is_attribute_p): New. |
| (private_lookup_attribute): New. |
| (lookup_attribute): Removed. |
| (lookup_ident_attribute): New. |
| (remove_attribute): Require the first argument to be in the form |
| 'text', not '__text__'. Updated asserts. |
| (merge_attributes): Use lookup_ident_attributes instead of |
| lookup_attribute. |
| (merge_dllimport_decl_attributes): Use remove_attribute. |
| (attribute_list_contained): Likewise. |
| (attribute_list_equal): Immediately return 1 if the arguments are |
| identical pointers. |
| * tree.h (is_attribute_p): Made inline. Return a 'bool', not an |
| 'int'. Require the first argument to be in the form 'text', not |
| '__text__'. Require the second argument to be an identifier. |
| (lookup_attribute): Made inline. Require the first argument to be |
| in the form 'text', not '__text__'. |
| (private_is_attribute_p, private_lookup_attribute): New. |
| Updated comments. |
| |
| 2011-06-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| * builtins.c: Add sync_ or SYNC__ to builtin names. |
| * sync-builtins.def: Add sync_ or SYNC__ to builtin names. |
| * omp-low.c: Add sync_ or SYNC__ to builtin names. |
| |
| 2011-06-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/33049 |
| * config/avr/avr.md (extzv): New expander. |
| (*extzv): New insn. |
| (*extzv.qihi1, *extzv.qihi2): New insn-and-split. |
| * config/avr/constraints.md (C04): New constraint. |
| * doc/md.texi (Machine Constraints): Document it. |
| |
| 2011-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49489 |
|