OSDN Git Service

dwarf2: Move CFI output routines to dwarf2cfi.c.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 6a9d81a..436e037 100644 (file)
@@ -1,5 +1,208 @@
+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'.
 
        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 
+       * 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
+       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>