OSDN Git Service

* ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 98bda5c..5fdd01e 100644 (file)
@@ -1,3 +1,776 @@
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
+       similarly to DECL_COMDAT.
+       * cgraphunit.c (cgraph_analyze_function): Likewise.
+       * ipa.c (function_and_variable_visibility): Likewise.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
+       BINFO_VIRTUALS when streaming for ltrans unit.
+
+2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
+
+       * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
+       (movdi_internal64): Same.
+
+2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
+
+       * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern
+       with a set of similar patterns, where the MATCH_OPERAND for the
+       function argument is replaced with individual references to hardware
+       registers.
+       (save_fpregs_<mode>): Ditto
+       (restore_gpregs_<mode>): Ditto
+       (return_and_restore_gpregs_<mode>): Ditto
+       (return_and_restore_fpregs_<mode>): Ditto
+       (return_and_restore_fpregs_aix_<mode>): Ditto
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-utils.c (postorder_stack): New structure.
+       (ipa_reverse_postorder): Handle aliases.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (reset_edge_caches): Walk aliases.
+       (update_caller_keys): Do not test inlinability of aliases.
+       * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
+       (do_estimate_growth): Fix typo.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
+       (can_remove_node_now_p): ... here; handle same comdat groups.
+       (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
+       (inline_call): Update use of can_remove_node_now_p.
+
+2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
+
+       * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
+       condition to disallow non-identical memory locations.
+       (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
+       preference to bit manipulation instructions.
+
+2011-06-13  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_for_node_thunks_and_aliases,
+       cgraph_for_node_and_aliases): Fix thinko in recursive walking.
+       (nonremovable_p): New function.
+       (cgraph_can_remove_if_no_direct_calls_p): New function.
+       (used_from_object_file_p): New functoin.
+       (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
+       references from aliases.
+       * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
+       * ipa-inline.c (check_caller_edge): New function.
+       (want_inline_function_called_once_p): Use it; accept aliases called
+       once, too.
+       * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
+
+2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       PR target/48454
+       * config/arm/neon.md (vec_pack_trunc): Set the lengths
+       correctly for the case with Quad vectors.
+
+2011-06-13 Jakub Jelinek  <jakub@redhat.com>
+          Ira Rosen  <ira.rosen@linaro.org>
+
+       PR tree-optimization/49352
+       * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
+       all, make sure loop_use_stmt after the loop is a def stmt of a used
+       SSA_NAME that is the only one defined inside of the loop.  Don't
+       check for COND_EXPR and GIMPLE_BINARY_RHS.
+       (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
+       check_reduction is true.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/49373
+       * ipa.c (cgraph_externally_visible_p): Check resolution info.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/48836
+       * ipa-inline-transform.c: Include tree-pass.h
+       (inline_transform): Set TODO_update_ssa_only_virtuals.
+       * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/49378
+       * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
+       aliases and thunks.
+
+2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
+
+       * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
+       Take number of iterations to peel into account for equally frequent
+       misalignment values.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * lto-streamer-out.c (produce_symtab): Stream out the newly represented
+       aliases.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting varying
+       args.
+       (ipa_update_after_lto_read): Likewise.
+       (ipa_write_node_info): Do not sream call_with_var_arguments.
+       (ipa_read_node_info): Likewise.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
+       * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
+       (lto_symtab_resolve_can_prevail_p): Likewise.
+       (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
+       * cgraph.c (same_body_aliases_done): New global var.
+       (cgraph_same_body_alias_1): Rename to ...
+       (cgraph_create_function_alias): ... this one; reorg to new
+       representation.
+       (cgraph_same_body_alias): Use cgraph_create_function_alias;
+       record references when asked to.
+       (cgraph_add_thunk): Fix formating.
+       (cgraph_get_node): Kill same body alias code.
+       (cgraph_node_for_asm): Likewise.
+       (cgraph_remove_same_body_alias): Remove.
+       (cgraph_remove_node): Kill same body alias code.
+       (cgraph_mark_address_taken_node): Mark also the aliased function
+       as having address taken.
+       (dump_cgraph_node): Dump same body aliases.
+       (cgraph_for_node_thunks_and_aliases): Update for new alias
+       representation.
+       (cgraph_for_node_and_aliases): Likewise.
+       * cgraph.h (same_body): Kll pointer.
+       (same_body_alias): Update comment.
+       (same_body_aliases_done): Declare.
+       (cgraph_remove_same_body_alias): Remove declaration.
+       (cgraph_create_function_alias): Declare.
+       (cgraph_process_same_body_aliases): Declare.
+       (cgraph_function_with_gimple_body_p): Check for alias.
+       (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
+       (cgraph_alias_aliased_node): New function.
+       (cgraph_function_node): Update for new aliases.
+       (cgraph_function_or_thunk_node): Likewise.
+       * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
+       (inline_call): Remove dead aliases.
+       * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
+       name hack for same body aliases.
+       (clone_of_p): Look through aliases.
+       (verify_cgraph_node): Verify aliases.
+       (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
+       (cgraph_process_same_body_aliases): New function.
+       (process_function_and_variable_attributes): Disable weakref warning on
+       alias.
+       (cgraph_analyze_functions): Handle aliases.
+       (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
+       (assemble_thunks): Rename to ...
+       (assemble_thunks_and_aliases): ... this one; handle aliases, too.
+       (cgraph_expand_function): Remove alias output code.
+       (cgraph_output_in_order): Skip aliases.
+       (cgraph_preserve_function_body_p): Aliases don't need preserving.
+       * ipa-ref.c (ipa_ref_use_name): Add alias reference.
+       (ipa_record_reference): Do not assert on alias references.
+       (ipa_ref_has_aliases_p): New function.
+       * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
+       (ipa_ref_has_aliases_p): Declare.
+       * lto-cgraph.c (lto_output_node): Handle aliases.
+       (input_node): Likewise.
+       * lto-streamer-out.c (lto_output): Skip aliases.
+       (produce_symtab): Kill same_body_alias code.
+       * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
+       (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
+       * ipa-inline.c (update_caller_keys): Walk aliases.
+       (inline_small_functions): Fix thinko in previous patch.
+       * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
+       (function_and_variable_visibility): Do not walk same body aliases.
+       * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
+       (ipa_pta_execute): Use it.
+
+2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
+       (*vec_dupv2df): Rename from vec_dupv2df.
+       (vec_dupv2df): New expander.
+
+2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
+
+2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md: Use default value in "isa" attribute.
+       * config/i386/sse.md: Ditto.
+       * config/i386/mmx.md: Ditto.
+
+2011-06-10  Wei Guozhi  <carrot@google.com>
+
+       PR target/45335
+       * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
+       stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
+       (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
+       related peephole2.
+       (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
+       related peephole2.
+       * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
+       (arm_legitimate_ldrd_p): New prototype.
+       (arm_output_ldrd): New prototype.
+       * config/arm/arm.c (arm_check_ldrd_operands): New function.
+       (arm_legitimate_ldrd_p): New function.
+       (arm_output_ldrd): New function.
+
+2011-06-10  David Li  <davidxl@google.com>
+
+       * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
+       * passes.c (passr_eq): New function.
+       (create_pass_tab): New function.
+       (pass_traverse): New function.
+       (dump_one_pass): New function.
+       (dump_pass_list): New function.
+       (dump_passes): New function.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
+       setting the nothrow flag.
+       * ipa-reference.c (propagate): Skip aliases.
+       * ipa-pure-const.c (propagate_pure_const): Skip aliases.
+       (propagate_nothrow): Skip aliases; do not update cgraph.
+       (local_pure_const): Do not update cgraph.
+       * tree-profile.c (tree_profiling): Do fixup_cfg.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
+       (cgraph_local_node_p): ... here; handle aliases.
+       (has_addr_references_p): Break out from ...;
+       (cgraph_remove_unreachable_nodes) ... here.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * opts.c (default_options): Enlist OPT_finline_functions_called_once.
+       * common.opt (flag_inline_functions_called_once): Do not
+       initialize to 1.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
+       (ipcp_initialize_node_lattices): Do not deal with aliases;
+       Do not try to propagate through thunks.
+       (ipcp_change_tops_to_bottom): Do not deal with aliases.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-prop.c (ipa_write_node_info): Stream jump functions
+       for indirect calls.
+       (ipa_read_node_info): Likewise.
+
+2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR lto/49302
+       * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
+       (build_and_insert_call): Likewise.
+       (build_and_insert_ref): New.
+       (gimple_expand_builtin_pow): Minor cleanup.
+       (gimple_expand_builtin_cabs): New.
+       (execute_cse_sincos): Add case for BUILT_IN_CABS.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
+       (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
+       (ipcp_initialize_node_lattices): We don't propagate through an aliases.
+       (ipcp_propagate_stage): Skip aliases when propagating.
+       (ipcp_need_redirect_p): Skip aliases.
+       (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
+       collect_callers_of_node.
+       * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
+       for aliases.
+       (ipa_compute_jump_functions): Look through aliases.
+
+2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
+
+2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
+
+       * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
+       Adjust comments.
+       * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-cp.c (ipcp_process_devirtualization_opportunities):
+       Update call of gimple_get_virt_method_for_binfo.
+       * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
+       refuse_thunks parameter.
+       (gimple_fold_call): Update.
+       * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
+       (not_all_callers_have_enough_arguments_p): ... this one; turn into
+       worker for cgraph_for_node_and_aliases.
+       (convert_callers_for_node): Break out from ...
+       (convert_callers): ... here.
+       (modify_function): Use collect_callers_of_node.
+       (ipa_early_sra): Use cgraph_for_node_and_aliases.
+
+2011-06-10  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/49361
+       * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
+       when not already in gimple form.
+
+2011-06-10  Richard Guenther  <rguenther@suse.de>
+
+       PR bootstrap/49344
+       * tree-ssa-math-opts.c (convert_mult_to_fma): Use
+       FOR_EACH_PHI_OR_STMT_USE.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
+       (clone_inlined_nodes): ... here.
+       (inline_call): Use cgraph_function_or_thunk_node; redirect edge
+       to real destination prior inlining.
+       * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
+       can_early_inline_edge_p, want_early_inline_function_p,
+       want_early_inline_function_p, want_inline_small_function_p,
+       want_inline_self_recursive_call_p, want_inline_function_called_once_p,
+       edge_badness, update_all_callee_keys, lookup_recursive_calls,
+       add_new_edges_to_heap, inline_small_functions, flatten_function,
+       inline_always_inline_functions, early_inline_small_functions): Use
+       cgraph_function_or_thunk_node.
+       * ipa-inline-analysis.c (evaluate_conditions_for_edge,
+       dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
+       (do_estimate_edge_growth_1): Break out from ...
+       (do_estimate_growth) ... here; walk aliases.
+       (inline_generate_summary): Skip aliases.
+
+2011-06-10  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
+       forward when combining, visit inserted stmts when a stmt was changed.
+
+2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * tree.h (error_operand_p): Add.
+       * dbxout.c (dbxout_type_fields): Use the latter.
+       * c-decl.c (add_stmt): Likewise.
+       * gimplify.c (omp_add_variable, omp_notice_variable,
+       gimplify_scan_omp_clauses): Likewise.
+
+2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
+       when a value is actually passed in regs.
+
+2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+           Laurent RougĂ©  <laurent.rouge@menta.fr>
+
+       * doc/invoke.texi (SPARC options): Add -mflat.
+       * config/sparc/sparc.opt: Likewise.
+       * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
+       (sparc_flat_expand_prologue): Declare.
+       (sparc_flat_expand_epilogue): Likewise.
+       * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
+       (CPP_ENDIAN_SPEC): Replace with...
+       (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
+       (CPP_SPEC): Adjust to above change.
+       (EXTRA_SPECS): Likewise.
+       (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
+       (INCOMING_REGNO): Likewise.
+       (OUTGOING_REGNO): Likewise.
+       (LOCAL_REGNO): Likewise.
+       (SETUP_FRAME_ADDRESSES): Likewise.
+       (FIXED_REGISTERS): Set 0 for %fp.
+       (CALL_USED_REGISTERS): Likewise.
+       (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
+       (EXIT_IGNORE_STACK): Define to 1 unconditionally.
+       (RETURN_ADDR_REGNUM): Define.
+       (RETURN_ADDR_RTX): Use it.
+       (INCOMING_RETURN_ADDR_REGNUM): Define.
+       (INCOMING_RETURN_ADDR_RTX): Use it.
+       (DWARF_FRAME_RETURN_COLUMN): Likewise.
+       (EH_RETURN_REGNUM): Define.
+       (EH_RETURN_STACKADJ_RTX): Use it.
+       (EH_RETURN_HANDLER_RTX): Delete.
+       (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
+       * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
+       Delete.
+       (struct machine_function): Add frame_size, apparent_frame_size,
+       frame_base_reg, frame_base_offset, n_global_fp_regs and
+       save_local_in_regs_p fields.
+       (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
+       sparc_frame_base_offset, sparc_n_global_fp_regs,
+       sparc_save_local_in_regs_p): New macros.
+       (sparc_option_override): Error out if -fcall-saved-REG is specified
+       for Out registers.
+       (eligible_for_restore_insn): Fix formatting.
+       (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
+       (eligible_for_sibcall_delay): Likewise.
+       (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
+       (sparc_legitimate_address_p): Adjust to above change.
+       (save_global_or_fp_reg_p): New predicate.
+       (return_addr_reg_needed_p): Likewise.
+       (save_local_or_in_reg_p): Likewise.
+       (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
+       (SORR_SAVE, SORR_RESTORE): Delete.
+       (sorr_pred_t): New typedef.
+       (sorr_act_t): New enum.
+       (save_or_restore_regs): Rename to...
+       (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
+       parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
+       ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
+       mechanism.  Add CFI information for double-word saves in 32-bit mode.
+       (emit_adjust_base_to_offset): New function extracted from...
+       (emit_save_or_restore_regs): ...this.  Rename the rest to...
+       (emit_save_or_restore_regs_global_fp_regs): ...this.
+       (emit_save_or_restore_regs_local_in_regs): New function.
+       (gen_create_flat_frame_[123]): New functions.
+       (sparc_expand_prologue): Use SIZE local variable.  Adjust.
+       (sparc_flat_expand_prologue): New function.
+       (sparc_asm_function_prologue): Add TARGET_FLAT handling.
+       (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
+       (sparc_flat_expand_epilogue): New function.
+       (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
+       (output_return): Likewise.
+       (output_sibcall): Likewise.
+       (sparc_output_mi_thunk): Likewise.
+       (sparc_frame_pointer_required): Likewise.
+       (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
+       function optimization.
+       * config/sparc/sparc.md (flat): New attribute.
+       (prologue): Add TARGET_FLAT handling.
+       (save_register_window): Disable if TARGET_FLAT.
+       (create_flat_frame_[123]): New patterns.
+       (epilogue): Add TARGET_FLAT handling.
+       (sibcall_epilogue): Likewise.
+       (eh_return): New expander.
+       (eh_return_internal): New insn and splitter.
+       (return_internal): Add TARGET_FLAT handling.
+       (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
+       (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
+       (nonlocal_goto): Add TARGET_FLAT handling.
+       * config/sparc/t-elf: Add -mflat multilib.
+       * config/sparc/t-leon: Likewise.
+
+2011-06-10  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
+       * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
+       (self_recursive_p): Use cgraph_function_node.
+       (propagate_pure_const): Likewise.
+       (propagate_nothrow): Likewise.
+       * ipa-reference.c (ipa_reference_get_not_read_global): Use
+       cgraph_function_node.
+       (propagate_bits): Likewise.
+       (propagate): Likewise.
+
+2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+           Richard Earnshaw  <rearnsha@arm.com>
+
+       * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
+       * config/arm/vfp.md (*arm_movdi_vfp): Delete.
+       (*thumb2_movdi_vfp): Delete.
+       (*arm_movdi_vfp_cortexa8): Delete.
+       (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
+       (*movdi_vfp_cortexa8): Likewise.
+
+2011-06-10  Richard Guenther  <rguenther@suse.de>
+
+       * stor-layout.c (initialize_sizetypes): Give names to all
+       sizetype kinds.
+
+2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
+
+       PR tree-optimization/49318
+       * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
+       irrelevant pattern statements.
+
+2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
+
+       * system.h (SETJMP_VIA_SAVE_AREA): Poison.
+
+       PR bootstrap/49354
+       * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
+       to last assignment.
+
+2011-06-09  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
+       do not recompute reachable flag.
+       (cgraph_finalize_function, cgraph_analyze_functions): Set
+       redefined_extern_inline here.
+
+2011-06-09  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
+       (cgraph_only_called_directly_p): ... this one; bring offline.
+       (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
+       varpool_used_from_object_file_p): Drop names from the declaratoin.
+       (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
+       collect_callers_of_node): New.
+       (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
+       (cgraph_edge_recursive_p): Use cgraph_function_node.
+       * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
+       (cgraph_node_cannot_be_local_p_1): Break out from ...
+       (cgraph_node_can_be_local_p): ... here; walk aliases.
+       (cgraph_for_node_thunks_and_aliases): New function.
+       (cgraph_for_node_and_aliases): New function.
+       (cgraph_make_node_local_1): Break out from ...
+       (cgraph_make_node_local) ... here; use
+       cgraph_for_node_thunks_and_aliases.
+       (cgraph_set_nothrow_flag_1): Break out from ...
+       (cgraph_set_nothrow_flag) ... here;
+       use cgraph_for_node_thunks_and_aliases.
+       (cgraph_set_const_flag_1): Break out from ...
+       (cgraph_set_const_flag) ... here;
+       use cgraph_for_node_thunks_and_aliases.
+       (cgraph_set_pure_flag_1): Break out from ...
+       (cgraph_set_pure_flag) ... here;
+       use cgraph_for_node_thunks_and_aliases.
+       (cgraph_propagate_frequency_1): Break out from ...
+       (cgraph_propagate_frequency) ... here; use
+       cgraph_for_node_thunks_and_aliases.
+       (cgraph_used_from_object_file_p): Do not care about aliases.
+       (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
+       New functions.
+       (collect_callers_of_node_1, collect_callers_of_node): New functions.
+
+2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR rtl-optimization/49154
+       * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
+       (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
+       (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
+       (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
+       * config/cris/cris.h (cris_register_move_cost): Remove
+       !TARGET_V32 code.  Tweak comments.
+
+2011-06-09  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphbuild.c (record_eh_tables): Mark personality function as having
+       address taken.
+
+2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR rtl-optimization/49154
+       * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
+       is a matching slot in the hashtable, assign it to classes_ptr.
+
+       PR rtl-optimization/49154
+       * doc/tm.texi.in (Register Classes): Document rule for the narrowest
+       register classes.
+       * doc/tm.texi: Regenerate.
+
+2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/49307
+       * config/sh/sh.md (UNSPEC_CHKADD): New.
+       (chk_guard_add): New define_insn_and_split.
+       (symGOT_load): Use chk_guard_add instead of blockage.
+
+2011-06-09  Kai Tietz  <ktietz@redhat.com>
+
+       * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
+
+2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
+
+2011-06-09  Wei Guozhi  <carrot@google.com>
+
+       PR target/46975
+       * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
+       (peephole2 for conditional move): Generate 16 bit instructions.
+
+2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*movdi_internal_rex64): Merge
+       alternatives 6 and 8.
+
+2011-06-09  David Li  <davidxl@google.com>
+
+       * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
+       * passes.c (passr_eq): New function.
+       (create_pass_tab): New function.
+       (pass_traverse): New function.
+       (dump_one_pass): New function.
+       (dump_pass_list): New function.
+       (dump_passes): New function.
+
+2011-06-09  David Li  <davidxl@google.com>
+
+       * tree-complex.c (tree_lower_complex): Gate cleanup.
+       * tree-stdarg.c (check_all_va_list_escapes): Ditto.
+       (execute_optimize_stdarg): Ditto.
+       * tree-eh.c (execute_lower_eh_dispatch): Ditto.
+       (execute_cleanup_eh_1): Ditto.
+       (execute_cleanup_eh): Ditto.
+       * gcse.c (gate_rtl_pre): Ditto.
+       (execute_rtl_pre): Ditto.
+       * except.c (finish_eh_generation): Ditto.
+       (convert_to_eh_region_ranges): Ditto.
+       * cprop.c (one_cprop_pass): Ditto.
+
+2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR target/48673
+       * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
+       in all basic blocks.
+
+2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
+       (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       [IN_LIBGCC2]: Don't include <windows.h>.
+       * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
+       * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
+       (HAVE_ENABLE_EXECUTE_STACK): Define.
+       * config/alpha/alpha.c (alpha_trampoline_init): Test
+       HAVE_ENABLE_EXECUTE_STACK.
+       * config/i386/i386.c (ix86_trampoline_init): Likewise.
+       * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
+       (sparc64_initialize_trampoline): Likewise.
+       * libgcc2.c [L_enable_execute_stack]: Remove.
+       * system.h (ENABLE_EXECUTE_STACK): Poison.
+       * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
+       * doc/tm.texi: Regenerate.
+       * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
+
+2011-06-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/49308
+       * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
+       variable.  After resetting and rescanning insn continue with previous
+       statement.
+
+2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
+       (gcc_cv_ld_hidden): Likewise.
+       * configure: Regenerate.
+       * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
+       (ix86_stack_protect_fail): Mark unused.
+       (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
+       * config/rs6000/rs6000.c (rs6000_assemble_visibility)
+       [TARGET_MACHO]: Don't define.
+       (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
+       (TARGET_STACK_PROTECT_FAIL): Likewise.
+       (rs6000_stack_protect_fail): Mark unused.
+       * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
+       USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
+
+2011-06-08  Andi Kleen  <ak@linux.intel.com>
+
+       * varasm.c (get_section): Print location of other conflict
+       for section conflicts.
+
+2011-06-08  Andi Kleen  <ak@linux.intel.com>
+
+       * config/i386/driver-i386.c (host_detect_local_cpu):
+       Add model 0x2d Intel CPU.
+
+2011-06-08  Andi Kleen  <ak@linux.intel.com>
+
+       * reginfo.c (global_regs_decl): Add.
+       (globalize_reg): Add decl parameter. Compute location.  Pass location
+       to warnings and add inform. Store decl in global_regs_decl.
+       * rtl.h (globalize_reg): Update prototype.
+       * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
+
+2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
+
+       * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
+
+2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/49305
+       * config/sh/predicates.md (general_movsrc_operand): Check
+       mode for memory with indexed address for QI and HImode.
+       (general_movdst_operand): Likewise.
+
+2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
+
+2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
+       (num_ssa_operands): Likewise.
+       (op_iter_init_phiuse): Forward-declare.
+       (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
+
+2011-06-08  Nick Clifton  <nickc@redhat.com>
+
+       * doc/invoke.texi (ARM Options): Update description of
+       -mthumb-interwork.
+
+2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/driver-i386.c (host_detect_local_cpu): Support
+       unknown Intel family 0x6 CPUs.
+
+2011-06-08  Martin Jambor  <mjambor@suse.cz>
+
+       * tree-sra.c (mark_rw_status): Removed.
+       (analyze_access_subtree): New parameter parent instead of
+       mark_read and mark_write, propagate from that.
+
+2011-06-08  Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
+       for double-precision helper functions in hard-float mode if only
+       single-precision arithmetic is supported in hardware.
+
+2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
+
+       PR rtl-optimization/49303
+       * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
+       code_motion_path_driver returned 0 or 1.
+       (sel_region_finish): Clear h_d_i_d.
+
+2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (prepare_move_operands): Set pic register
+       appropriately for global and local dynamic tls models even
+       if flag_pic is unset.
+
+2011-06-07  Jason Merrill  <jason@redhat.com>
+
+       * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
+
 2011-06-07  Xinliang David Li  <davidxl@google.com>
        * passes.c (enable_disable_pass): Handle assembler name.
        (is_pass_explicitly_enabled_or_disabled): Ditto.
        to use gimple_val_nonnegative_real_p.
        * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
        * gimple.h (gimple_val_nonnegative_real_p): New declaration.
-       
+
 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/i386/i386.md (*movsf_internal): Optimize AVX check.
 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
 
        PR gcov-profile/49299
-       * value-prof.c (gimple_ic): Don't assume icall has
-       a fallthru edge.
+       * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
 
 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
 
        PR c++/49264
        * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
        if stmt folded into nothing.
-       * tree-inline.c (fold_marked_statements): If a builtin at the
-       end of a bb folded into nothing, just update cgraph edges
-       and move to next bb.
+       * tree-inline.c (fold_marked_statements): If a builtin at the end of
+       a bb folded into nothing, just update cgraph edges and move to next bb.
        * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
        to be NULL.  Don't compute count and frequency if new_call is NULL.
 
        Move initialization code to lto/lto.c.
        * lto-streamer-out.c (pack_value_fields): Call
        streamer_hooks.pack_value_fields if set.
-       (lto_output_tree_ref): For tree nodes that are not
-       normally indexable, call streamer_hooks.indexable_with_decls_p
-       before giving up.
+       (lto_output_tree_ref): For tree nodes that are not normally indexable,
+       call streamer_hooks.indexable_with_decls_p before giving up.
        (lto_output_ts_decl_common_tree_pointers): Move handling
-       for FUNCTION_DECL and TRANSLATION_UNIT_DECL to
-       lto_streamer_write_tree.
-       (lto_output_tree_header): Call streamer_hooks.is_streamable
-       instead of lto_is_streamable.
-       Call lto_streamer_hooks.output_tree_header if set.
-       (lto_write_tree): Call lto_streamer_hooks.write_tree if
-       set.
+       for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
+       (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
+       lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
+       (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
        (lto_streamer_write_tree): New.
        (lto_output): Call lto_streamer_init directly.
        (lto_writer_init): Remove.
        (expand_builtin_pow): Remove.
        (expand_builtin_powi): Eliminate handling of constant exponent.
        (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
-       
+
 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
 
        * cprop.c (local_cprop_pass): Don't set changed for debug insns.
 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
 
        PR target/49285
-       * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct
-       predicate to nonimmediate_operand from memory_operand for the
-       operand that is to be forced to memory by the expander.  Lose
-       the constraints.
+       * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
+       to nonimmediate_operand from memory_operand for the operand that is to
+       be forced to memory by the expander.  Lose the constraints.
 
 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
 
 2011-06-04  Jan Hubicka  <jh@suse.cz>
 
        PR lto/48954
-       * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args bitmaps.
+       * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
+       bitmaps.
 
 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
        * config/ia64/unwind-ia64.c: Likewise.
        * config/xtensa/unwind-dw2-xtensa.c: Likewise.
 
-2011-06-03  Jack Howarth <howarth@bromo.med.uc.edu>
+2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
 
        * varpool.c (varpool_extra_name_alias): Return NULL, not false.
 
        (avr_function_value): Make static. Rename 'func' argument to
        'fn_decl_or_type', forward it to avr_libcall_value. Call
        avr_ret_register function instead of RET_REGISTER macro.
-       (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
+       (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
 
 2011-03-18  Jason Merrill  <jason@redhat.com>