+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
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>