X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=f0cb27ab9301154b20f63294eb9abc168cd96851;hb=45dd47e2c8727c552cfe66e0a9e5b6610e73f115;hp=bfefccb9ed46f3c3c6625c326431472730a4e97a;hpb=260d0713a7b3d63e1cb20151f8c25b095065957c;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bfefccb9ed4..f0cb27ab930 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,771 @@ -2011-11-21 David Edelsohn +2011-12-06 Richard Guenther + + 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 + + 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 + + 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 + + * config/rs6000/rs6000.c (darwin_rs6000_override_options): Initialize + rs6000_current_abi. + +2011-12-06 Richard Guenther + + 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 + + PR target/50906 + * config/rs6000/rs6000.c (rs6000_emit_prologue ): + 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 ): 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 ): Add sp_offset + adjustment when !saving_GPRs_inline. Correct register mode + used in address calcs. + (rs6000_emit_epilogue ): Similarly when + !restoring_GPRs_inline. + +2011-12-06 Ramana Radhakrishnan + + * config/arm/vfp.md (*combine_vcvt_f64_): Fix + formatting character for vmov.f64 case. + +2011-12-05 Jakub Jelinek + + 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 + + * resource.c (init_resource_info): Only consider EXIT_IGNORE_STACK + if there is in epilogue. + +2011-12-05 Richard Sandiford + + * 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 + + 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 + + PR target/51408 + * config/arm/arm.md (*minmax_arithsi): Always require the else + clause in the MINUS case. + +2011-12-05 Richard Guenther + + 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 + + * 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 + + * 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 + + * 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_): New. + (*combine_vcvt_f64_): New. + +2011-12-05 Richard Guenther + + * 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 + Eric Botcazou + + 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 + + * 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 + + * 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 + + 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 + + PR target/51393 + * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second + parameter as long long. + +2011-12-04 Richard Sandiford + + PR middle-end/51351 + * optabs.c (init_sync_libfuncs): Use "or" rather than "ior" + in the external names. + +2011-12-03 Jack Howarth + + * 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 + + * 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 + + * 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 + + * 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 + + PR target/51387 + * config/i386/sse.md (mul3 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 + + * 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 + + * 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 + + 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 + + Revert: + + 2008-09-18 Andrew Pinski + + 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 + + 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 + + PR lto/47259 + * ipa.c (varpool_externally_visible_p): Register variables + are always externally visible. + +2011-12-02 Sameera Deshpande + + * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if + non-NULL. + +2011-12-02 Martin Jambor + + 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 + + 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 + + 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 + + PR bootstrap/51346 + Revert + + 2011-11-29 Diego Novillo + + * 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 + + PR gcov-profile/51113 + * coverage.c (build_var): Keep coverage variables static. + +2011-12-01 Jakub Jelinek + + 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 + + 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 + + PR lto/51198 + * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's + DECL_INITIAL also. + +2011-12-01 Jakub Jelinek + + 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 + + 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 + + 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 + + * predict.c (expr_expected_value_1): Assume compare-and-swap builtin + boolean return is true. + +2011-11-30 Jakub Jelinek + + 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 + + PR c/51321 + * c-parser.c (c_parser_postfix_expression): Check groktypename results + before looking at the main variant. + +2011-11-30 Jakub Jelinek + + 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 + + * 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 + + * config/sparc/sync.md (I124MODE): New mode iterator. + (memory_barrier): Remove. + (atomic_exchangesi): New. + (swapsi): Rename from *swapsi. + (atomic_test_and_set): New. + (ldstubqi): Rename from *ldstubqi, merge with expander. + (ldstub): Rename from *ldstub, merge with expander. + (sync_lock_test_and_setsi): Remove. + (sync_lock_test_and_set): Remove. + +2011-11-30 Richard Henderson + + * 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): New. + (atomic_compare_and_swap_1): Rename from + *sync_compare_and_swap, use mem_noofs_operand. + (*atomic_compare_and_swapdi_v8plus): Rename from + *sync_compare_and_swapdi_v8plus, use mem_noofs_operand. + (sync_compare_and_swap): Remove. + (sync_compare_and_swap): Remove. + +2011-11-30 Richard Henderson + + * config/sparc/predicates.md (register_or_v9_zero_operand): New. + * config/sparc/sparc.md (UNSPEC_ATOMIC): New. + * config/sparc/sync.md (atomic_load): New. + (atomic_loaddi_1, atomic_store, atomic_storedi_1): New. + +2011-11-30 Richard Henderson + + * 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 + + * 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 + + * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed. + +2011-11-30 Iain Sandoe + + * 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 + + * 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 + + 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 + + * 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 + + 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 + + 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 + + * 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 + + * config/i386/i386.md (*floathi2_i387_with_temp): Do not + allocate scratch memory for alternative 0. + +2011-11-29 Michael Meissner + + * 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 (unsfloat2): 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 + + * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair. + (maybe_unwind_expanded_macro_loc): Adjust. + +2011-11-29 David Edelsohn Aldy Hernandez * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl @@ -11,22 +778,21 @@ code checking for a clobber of a condition register when deciding whether to predicate. -2011-11-29 Diego Novillo +2011-11-29 Diego Novillo * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h. - Update field call_stmt_cannot_inline_p from call graph edge, if - needed. + 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 * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE. - (movdf_soft_insn): Likewise. + (movdf_soft_insn): Likewise. * config/arm/fpa.md (thumb2_movdf_fpa): Likewise. * config/arm/neon.md (neon_mov): Likewise. * config/arm/vfp.md (movdi_vfp): Likewise. - (movdi_vfp_cortexa8): Likewise. - (movdf_vfp): Likewise. + (movdi_vfp_cortexa8): Likewise. + (movdf_vfp): Likewise. 2011-11-29 Jakub Jelinek @@ -159,8 +925,7 @@ (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. + * 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. @@ -6945,7 +7710,7 @@ (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. + 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. @@ -8101,18 +8866,18 @@ (remove_duplicate_close_phi): Detect and repair creation of duplicate close-phis for a containing loop. -2011-09-27 Andi Kleen +2011-09-27 Andi Kleen * 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 +2011-09-26 Andi Kleen * toplev.c (init_local_tick): Try reading random seed from /dev/urandom. -2011-09-26 Andi Kleen +2011-09-26 Andi Kleen * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add. * lto-streamer.c (lto_get_section_name): Remove crc32_string. @@ -9220,13 +9985,13 @@ 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 +2011-09-15 Jan Hubicka 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 +2011-09-15 Diego Novillo * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from @SYSROOT_CFLAGS_FOR_TARGET@. @@ -12441,7 +13206,7 @@ separately. * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust. -2011-08-11 Kazuhiro Inaoka +2011-08-11 Kazuhiro Inaoka * config/rx/rx.md (movsicc): Allow register to register transfers. (*movsicc): Likewise. @@ -12449,7 +13214,7 @@ (*stcc_reg): New pattern. Works for any comparison but only for register transfers. -2011-08-11 Diego Novillo +2011-08-11 Diego Novillo * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call stream_write_tree instead of output_record_start. @@ -12787,7 +13552,7 @@ * tree-sra.c (access_precludes_ipa_sra_p): Also check access memory alignment. -2011-08-08 Diego Novillo +2011-08-08 Diego Novillo * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H. (DATA_STREAMER_H): New. @@ -13114,7 +13879,7 @@ (TARGET_INSTANTIATE_DECLS): New define. 2011-08-06 Paolo Bonzini - Mikael Morin + Mikael Morin * Makefile.in (INCLUDES_FOR_TARGET): New. (LIBGCC2_CFLAGS): Use it. @@ -13548,12 +14313,12 @@ * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify maybe_suffix. -2011-08-03 David Li +2011-08-03 David Li * tree-optimize.c (execute_fixup_cfg): Fix up entry outgoing edge counts after inlining. -2011-08-03 David Li +2011-08-03 David Li * profile.c (compute_branch_probabilities): Compute function frequency after profile annotation. @@ -20094,8 +20859,8 @@ * config/arm/neon.md (vec_pack_trunc): Set the lengths correctly for the case with Quad vectors. -2011-06-13 Jakub Jelinek - Ira Rosen +2011-06-13 Jakub Jelinek + Ira Rosen PR tree-optimization/49352 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at @@ -21067,7 +21832,7 @@ * calls.c (emit_call_1): Prefer the __builtin declaration of builtin functions. -2011-06-03 Diego Novillo +2011-06-03 Diego Novillo * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts. (lto_input_tree_pointers): Likewise. @@ -25065,7 +25830,7 @@ * config/m68k/m68k.c (m68k_expand_prologue): Set current_function_static_stack_size. -2011-05-02 Jan Hubicka +2011-05-02 Jan Hubicka * lto-streamer.c (lto_streamer_cache_insert_1, lto_streamer_cache_lookup, lto_streamer_cache_create,