OSDN Git Service

* doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 51249f2..6640792 100644 (file)
@@ -1,5 +1,147 @@
+2010-08-06  Alan Modra  <amodra@gmail.com>
+
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
+       and -mrelocatable-lib description.
+
+2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
+
+       From Martin Thuresson  <martint@google.com>
+       * postreload.c (reload_cse_simplify_operands): Use
+       SET_REGNO_RAW instead of SET_REGNO.
+       * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
+       SET_REGNO.
+       * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
+       instead of SET_REGNO.
+       * rtl.h (SET_REGNO_RAW): New macro.
+
+2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
+       computations.  Fix formatting issues.
+       (num_sign_bit_copies1): Likewise.
+       (canonicalize_condition): Likewise.
+
+2010-08-05  Richard Henderson  <rth@redhat.com>
+
+       * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
+       (floor_log2): Use clz_hwi.
+       (exact_log2): Use ctz_hwi.
+       * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
+       * builtins.c (fold_builtin_bitop): Use them.
+       * simplify-rtx.c (simplify_const_unary_operation): Likewise.
+       * combine.c (get_pos_from_mask): Use ctz_hwi.
+       * double-int.c (double_int_ctz): Likewise.
+       * explow.c (force_reg): Likewise.
+       * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
+
+2010-08-05  Richard Henderson  <rth@redhat.com>
+
+       PR target/45189
+       * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
+       the alignment constant is properly sign-extended.
+
+2010-08-05  Richard Guenther  <rguenther@suse.de>
+
+       * expr.c (store_expr): Use emit_block_move only if both
+       source and target are MEMs.  Use store_bit_field if only
+       the target is a MEM.
+
+2010-08-05  Richard Henderson  <rth@redhat.com>
+
+       PR debug/45188
+       * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
+       (INCOMING_RETURN_ADDR_RTX): Likewise.
+       (dwarf2out_do_frame): Remove conditional compilation.
+       (dwarf2out_frame_init): Likewise.
+
+2010-08-05  Nicolas Setton  <setton@adacore.com>
+
+       * gcov.c (flag_display_progress): New static variable.
+       (main): Display progress info on standard output if requested.
+       (options): Add -d/--display-progress.
+       (print_usage): Print them.
+       (process_args): Handle them.
+       * doc/gcov.texi: Document them.
+
+2010-08-05  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
+       (ipcp_insert_stage): Redirect only edges not flagged with
+       indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
+       discovered constants.
+
+2010-08-05  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.h (enum ipa_lattice_type): Changed comments.
+       (struct ipa_param_descriptor): New fields types and
+       cannot_devirtualize.
+       (ipa_param_cannot_devirtualize_p): New function.
+       (ipa_param_types_vec_empty): Likewise.
+       (ipa_make_edge_direct_to_target): Declare.
+       * ipa-cp.c: Fixed first stage driver name in initial comment,
+       described devirtualization there too.
+       (ipcp_analyze_node): Call ipa_analyze_params_uses.
+       (ipcp_print_all_lattices): Print devirtualization info.
+       (ipa_set_param_cannot_devirtualize): New function.
+       (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
+       lattice to BOTTOM.
+       (ipcp_init_stage): Merged into...
+       (ipcp_generate_summary): ...its caller.
+       (ipcp_change_tops_to_bottom): Also process type lists.
+       (ipcp_add_param_type): New function.
+       (ipcp_copy_types): Likewise.
+       (ipcp_propagate_types): Likewise.
+       (ipcp_propagate_stage): Also propagate types.
+       (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
+       Also return true if propagated types require it.
+       (ipcp_update_callgraph): Dump redirection info.
+       (ipcp_process_devirtualization_opportunities): New function.
+       (ipcp_const_param_count): Include known type information.
+       (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
+       on new node.  Fixed formatting.
+       * ipa-prop.c (make_edge_direct_to_target): Renamed to
+       ipa_make_edge_direct_to_target and changed all callers.  Made
+       externally visible.
+       (ipa_node_duplication_hook): Duplicate types vector.
+       * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
+       redirect outgoing calls for which we can't get a decl from the
+       statement.  Check that we can get a decl from the call statement.
+       * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
+       ipa_analyze_params_uses only when ipa-cp is disabled.
+       * tree-inline.c (get_indirect_callee_fndecl): Removed.
+       (expand_call_inline): Do not call get_indirect_callee_fndecl.
+       * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
+       * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
+
+2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
+       temporary. Emit move from temporary to accum, so REG_EQUAL note will
+       be attached to this insn in correct mode.
+
+2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
+       using REGNO of base_reg directly.
+
+2010-08-05  Jie Zhang  <jie@codesourcery.com>
+
+       PR tree-optimization/45144
+       * tree-sra.c (type_consists_of_records_p): Return false
+       if the record contains bit-field.
+
 2010-08-04  Richard Henderson  <rth@redhat.com>
 
+       * config/i386/i386.c (struct ix86_frame): Remove padding and
+       to_allocate members.
+       (ix86_compute_frame_layout): Don't store them.
+       (ix86_can_use_return_insn_p): Use a more direct and more obviously
+       correct condition for the position of the stack pointer.
+       (ix86_expand_prologue): Compute remaining stack allocation based
+       on the ultimate stack pointer offset.
+       (ix86_expand_epilogue): Use more obvious expressions testing for
+       the stack pointer already pointing to the saved registers.
+
        * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
        duplication deconstructing the frame pointer.  Simplify
        deallocation of the local stack frame.
 
        * config/i386/i386.h (struct machine_frame_state): Rename from
        machine_cfa_state.  Add members tracking SP and FP regardless
-       of the current CFA register.  
+       of the current CFA register.
        (ix86_cfa_state): Remove.
        * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
        and sse_reg_save_offset members.
        * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
        * tree-ssa-ccp.c: ... here.
        * tree-ssa-copy.c: ... and here.
-       * tree-ssa-propagate.h (enum value_range_type, struct value_range_d, 
+       * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
        value_range_t): Move ...
        * tree-vrp.c: ... here.
        * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.