+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
+ * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
+ one non-complex and one complex argument, call c_save_expr on both
+ operands.
+
+2011-07-07 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/49495
+ * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
+ (verify_cgraph_node): Some functinality moved to
+ verify_edge_corresponds_to_fndecl, call it.
+
+2011-07-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (*local*): Remove.
+ * doc/install-old.texi: Don't mention local configurations.
+
+2011-07-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/49522
+ * df-problems.c (dead_debug_reset): Remove dead_debug_uses
+ referencing debug insns that have been reset.
+ (dead_debug_insert_before): Don't assert reg is non-NULL,
+ instead return immediately if it is NULL.
+
+2011-07-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa:
+ Remove.
+
+2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
+
+ * hw-doloop.c: New file.
+ * hw-doloop.h: New file.
+ * Makefile.in (OBJS): Add hw-doloop.o.
+ (hw-doloop.o): New rule.
+ ($(obj_out_file)): Add hw-doloop.h dependency.
+ * config/bfin/bfin.c: Include "hw-doloop.h".
+ (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
+ (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
+ (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
+ type changed to hwloop_info. Return bool, true if the loop was
+ successfully optimized. Remove code that was moved to
+ hw-doloop.c, and adjust other parts.
+ (hwloop_fail): New static function, containing parts that used
+ to be in bfin_optimize_loop.
+ (bfin_discover_loop, bfin_discover_loops, free_loops,
+ bfin_reorder_loops): Remove.
+ (hwloop_pattern_reg): New static function.
+ (bfin_doloop_hooks): New variable.
+ (bfin_reorg_loops): Remove most code, call reorg_loops.
+ * config/bfin/bfin.md (doloop_end splitter): Also enable if
+ loop counter is a memory_operand.
+
+2011-07-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.gcc: Support --with-multilib-list for x86 Linux
+ targets.
+
+ * configure.ac: Mention x86-64 for --with-multilib-list.
+ * configure: Regenerated.
+
+ * config/i386/gnu-user64.h (SPEC_64): Support x32.
+ (SPEC_32): Likewise.
+ (ASM_SPEC): Likewise.
+ (LINK_SPEC): Likewise.
+ (TARGET_THREAD_SSP_OFFSET): Likewise.
+ (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
+ (SPEC_X32): New.
+
+ * config/i386/i386.h (TARGET_X32): New.
+ (TARGET_LP64): New.
+ (LONG_TYPE_SIZE): Likewise.
+ (POINTER_SIZE): Likewise.
+ (POINTERS_EXTEND_UNSIGNED): Likewise.
+ (OPT_ARCH64): Support x32.
+ (OPT_ARCH32): Likewise.
+
+ * config/i386/i386.opt (mx32): New.
+
+ * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
+ (GLIBC_DYNAMIC_LINKERX32): Likewise.
+ * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
+ (GLIBC_DYNAMIC_LINKERX32): Likewise.
+
+ * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
+ (BIONIC_DYNAMIC_LINKERX32): Likewise.
+ (GNU_USER_DYNAMIC_LINKERX32): Likewise.
+
+ * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
+
+ * doc/install.texi: Document --with-multilib-list for
+ Linux/x86-64.
+
+ * doc/invoke.texi: Document -mx32.
+
+2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * doc/invoke.texi (mwords-little-endian): Deprecate.
+ * config/arm/arm.opt (mwords-little-endian): Likewise.
+ * config/arm/arm.c (arm_option_override): Warn about the deprecation
+ of -mwords-little-endian.
+
+2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * reload1.c (choose_reload_regs): Use mode sizes to check whether
+ an old reload register completely defines the required value.
+
+2011-07-07 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (fold_unary_loc): Do not strip sign-changes
+ for NEGATE_EXPR.
+
+2011-07-07 Richard Guenther <rguenther@suse.de>
+
+ * tree-vrp.c (simplify_conversion_using_ranges): New function.
+ (simplify_stmt_using_ranges): Call it.
+
+2011-07-07 Kai Tietz <ktietz@redhat.com>
+
+ * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
+ (lookup_logical_inverted_value): Likewise.
+ (simplify_bitwise_binary_1): Likewise.
+ (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
+
+2011-07-07 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.c (%[Spec]): Don't document.
+ (struct spec_list): Update comment.
+ (do_spec_1): Don't handle %[Spec].
+ * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
+
+2011-07-07 Joseph Myers <joseph@codesourcery.com>
+
+ * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
+ default based on TARGET_ASM_NAMED_SECTION.
+ * common/common-target.def (have_named_sections): Default to true.
+ * common/config/default-common.c: Don't include tm.h.
+ * common/config/picochip/picochip-common.c
+ (TARGET_HAVE_NAMED_SECTIONS): Don't define.
+ * common/config/m32c/m32c-common.c: Remove.
+ * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
+ * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to
+ false.
+ * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
+ false.
+ * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
+ false.
+ * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
+ * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to
+ false.
+ * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
+ false.
+
+2011-07-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/49640
+ * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF
+ operands and last COMPONENT_REF operand call gimplify_expr on it
+ if non-NULL.
+
+2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR libmudflap/49550
+ * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
+
+2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/39150
+ * configure.ac (gcc_cv_as_hidden): Also accept
+ x86_64-*-solaris2.1[0-9]*.
+ (gcc_cv_as_cfi_directive): Likewise.
+ (gcc_cv_as_comdat_group_group): Likewise.
+ (set_have_as_tls): Likewise.
+ * configure: Regenerate.
+ * config.gcc (i[34567]86-*-solaris2*): Also handle
+ x86_64-*-solaris2.1[0-9]*.
+ * config.host (i[34567]86-*-solaris2*): Likewise.
+ * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
+ * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
+ [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
+ (TARGET_LD_EMULATION): Use it.
+ * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
+ (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
+ * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
+ (ASM_CPU64_DEFAULT_SPEC): Define.
+ (ASM_CPU_SPEC): Use %(asm_cpu_default).
+ (ASM_SPEC): Redefine.
+ (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
+ * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
+ * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*):
+ Document.
+ (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
+ configuration.
+ (Specific, x86_64-*-solaris2.1[0-9]*): Document.
+
+2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/sol2.h (ASM_SPEC): Split into ...
+ (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
+ * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
+ * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
+ (ASM_SPEC): Use ASM_SPEC_BASE.
+ * config/sparc/sol2.h (ASM_SPEC): Redefine.
+
+2011-07-07 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.md (*reload_insi): Change predicate #1 to
+ const_int_operand. Ditto for peep2 producing this insn.
+ Add argument to output_reload_insisf call.
+ (*movsi,*movsf): Add argument to output_movsisf call.
+ (*reload_insf): New insn and new peep2 to produce it.
+ * config/avr/avr-protos.h (output_movsisf): Change prototype.
+ (output_reload_insisf): Change prototype.
+ * config/avr/avr.c (avr_asm_len): New function.
+ (output_reload_insisf): Rewrite.
+ (output_movsisf): Change prototype. output_reload_insisf for
+ all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
+ (adjust_insn_length): Add argument to output_movsisf and
+ output_reload_insisf call.
+
+2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
+
+ * emit-rtl.c (paradoxical_subreg_p): New function.
+ * rtl.h (paradoxical_subreg_p): Declare.
+ * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
+ apply_distributive_law, simplify_comparison, simplify_set): Use it.
+ * cse.c (record_jump_cond, cse_insn): Likewise.
+ * expr.c (force_operand): Likewise.
+ * rtlanal.c (num_sign_bit_copies1): Likewise.
+ * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
+ * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
+ (push_reload): Use precision to check for paradoxical subregs.
+ * expmed.c (extract_bit_field_1): Likewise.
+
+ * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
+ * combine.c (set_nonzero_bits_and_sign_copies): Use it.
+ (find_split-point, combine_simplify_rtx, simplify_if_then_else,
+ simplify_set, simplify_logical, expand_compound_operation,
+ make_extraction, force_to_mode, if_then_else_cond, extended_count,
+ try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
+ record_value_for_reg): Likewise.
+ * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
+ * simplify-rtx. c (simplify_unary_operation_1,
+ simplify_binary_operation_1, simplify_const_relational_operation):
+ Likewise.
+
+ * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
+ instead of GET_MODE_BITSIZE where appropriate.
+ * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
+ num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
+ init_num_sign_bit_copies_in_rep): Likewise.
+ * cse.c (fold_rtx, cse_insn): Likewise.
+ * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
+ * simplify-rtx.c (simplify_unary_operation_1,
+ simplify_const_unary_operation, simplify_binary_operation_1,
+ simplify_const_binary_operation, simplify_ternary_operation,
+ simplify_const_relational_operation, simplify_subreg): Likewise.
+ * combine.c (try_combine, find_split_point, combine_simplify_rtx,
+ simplify_if_then_else, simplify_set, expand_compound_operation,
+ expand_field_assignment, make_extraction, if_then_else_cond,
+ make_compound_operation, force_to_mode, make_field_assignment,
+ reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
+ extended_count, try_widen_shift_mode, simplify_shift_const_1,
+ simplify_comparison, record_promoted_value, simplify_compare_const,
+ record_dead_and_set_regs_1): Likewise.
+
+ Revert:
+ * simplify-rtx.c (simplify_const_binary_operation): Use the
+ shift_truncation_mask hook instead of performing modulo by
+ width. Compare against mode precision, not bitsize.
+ * combine.c (combine_simplify_rtx, simplify_shift_const_1):
+ Use shift_truncation_mask instead of constructing the value
+ manually.
+
+2011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
+ declaration.
+ (rs6000_save_toc_in_prologue_p): Ditto.
+
+ * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
+ up the static chain (r11) during indirect function calls.
+ (-msave-toc-indirect): New undocumented debug switch.
+
+ * config/rs6000/rs6000.c (struct machine_function): Add
+ save_toc_in_prologue field to note whether the prologue needs to
+ save the TOC value in the reserved stack location.
+ (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
+ to save the TOC in the prologue, do so.
+ (rs6000_trampoline_init): Don't allow creating AIX style
+ trampolines if -mno-r11 is in effect.
+ (rs6000_call_indirect_aix): New function to create AIX style
+ indirect calls, adding support for -mno-r11 to suppress loading
+ the static chain, and saving the TOC in the prologue instead of
+ the call body.
+ (rs6000_save_toc_in_prologue_p): Return true if we are saving the
+ TOC in the prologue.
+
+ * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
+ register numbers.
+ (TOC_REGNUM): Ditto.
+ (STATIC_CHAIN_REGNUM): Ditto.
+ (ARG_POINTER_REGNUM): Ditto.
+ (SFP_REGNO): Delete, unused.
+ (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
+ function descriptor offsets.
+ (TOC_SAVE_OFFSET_64BIT): Ditto.
+ (AIX_FUNC_DESC_TOC_32BIT): Ditto.
+ (AIX_FUNC_DESC_TOC_64BIT): Ditto.
+ (AIX_FUNC_DESC_SC_32BIT): Ditto.
+ (AIX_FUNC_DESC_SC_64BIT): Ditto.
+ (ptrload): New mode attribute for the appropriate load of a
+ pointer.
+ (call_indirect_aix32): Delete, rewrite AIX indirect function
+ calls.
+ (call_indirect_aix64): Ditto.
+ (call_value_indirect_aix32): Ditto.
+ (call_value_indirect_aix64): Ditto.
+ (call_indirect_nonlocal_aix32_internal): Ditto.
+ (call_indirect_nonlocal_aix32): Ditto.
+ (call_indirect_nonlocal_aix64_internal): Ditto.
+ (call_indirect_nonlocal_aix64): Ditto.
+ (call): Rewrite AIX indirect function calls. Add support for
+ eliminating the static chain, and for moving the save of the TOC
+ to the function prologue.
+ (call_value): Ditto.
+ (call_indirect_aix<ptrsize>): Ditto.
+ (call_indirect_aix<ptrsize>_internal): Ditto.
+ (call_indirect_aix<ptrsize>_internal2): Ditto.
+ (call_indirect_aix<ptrsize>_nor11): Ditto.
+ (call_value_indirect_aix<ptrsize>): Ditto.
+ (call_value_indirect_aix<ptrsize>_internal): Ditto.
+ (call_value_indirect_aix<ptrsize>_internal2): Ditto.
+ (call_value_indirect_aix<ptrsize>_nor11): Ditto.
+ (call_nonlocal_aix32): Relocate in the rs6000.md file.
+ (call_nonlocal_aix64): Ditto.
+
+ * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
+ -mno-r11 documentation.
+
+2011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR other/49658
+ * doc/extend.texi (Compound Literals): Fix typo.
+
+2011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
+
+ * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add
+ __ARM_FEATURE_DSP.
+
+2011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
+
+ * configure.ac (plugin-version.h): Generate
+ GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
+ GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
+ macros.
+
+ * configure: Regenerate.
+
+ * doc/plugins.texi (Building GCC plugins): Mention
+ GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
+
+2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
+
+ * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
+ * combine.c (make_extraction, gen_lowpart_or_truncate,
+ apply_distributive_law, simplify_comparison,
+ reg_truncated_to_mode, record_truncated_value): Use it.
+ * cse.c (notreg_cost): Likewise.
+ * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
+ * expr.c (convert_move, convert_modes): Likewise.
+ * optabs.c (expand_binop, expand_unop): Likewise.
+ * postreload.c (move2add_last_label): Likewise.
+ * regmove.c (optimize_reg_copy_3): Likewise.
+ * rtlhooks.c (gen_lowpart_general): Likewise.
+ * simplify-rtx.c (simplify_unary_operation_1): Likewise.
+
+2011-07-06 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
+
+2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
+
+ * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
+ * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
+ (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
+ (simplify_const_unary_operation, simplify_binary_operation_1,
+ simplify_const_binary_operation,
+ simplify_const_relational_operation): Use them. Use
+ GET_MODE_MASK for masking and sign-extensions.
+ * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
+ combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
+ simplify_shift_const_1, simplify_comparison): Likewise.
+ * expr.c (convert_modes): Likewise.
+ * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
+ * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag):
+ Likewise.
+ * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
+
+ * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
+
+2011-07-06 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/49645
+ * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
+ register variables.
+ * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
+ in type qualification here ...
+ (copy_reference_ops_from_ref): ... not here.
+ (vn_reference_lookup_3): ... or here.
+ (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
+ (vn_reference_lookup): Do the lookup with a valueized ao-ref.
+
+2011-07-06 Ian Lance Taylor <iant@google.com>
+
+ * doc/install.texi (Configuration): It's
+ --enable-gnu-indirect-function, not --enable-indirect-function.
+
+2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
+
+ * simplify-rtx.c (simplify_const_binary_operation): Use the
+ shift_truncation_mask hook instead of performing modulo by
+ width. Compare against mode precision, not bitsize.
+ * combine.c (combine_simplify_rtx, simplify_shift_const_1):
+ Use shift_truncation_mask instead of constructing the value
+ manually.
+
+2011-07-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/47383
+ * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
+ address computation and convert to address_mode if needed.
+
+2011-07-06 Richard Guenther <rguenther@suse.de>
+
+ * tree.c (build_common_tree_nodes_2): Merge with
+ build_common_tree_nodes.
+ * tree.h (build_common_tree_nodes): Adjust prototype.
+ (build_common_tree_nodes_2): Remove.
+ * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
+ * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
+
+2011-07-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/49618
+ * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
+ t recurse on the decl.
+ <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
+ return true if expr isn't known to be defined in current
+ TU or some other LTO partition.
+
+2011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
+ override CASE_VALUES_THRESHOLD.
+
+ * stmt.c (toplevel): Include params.h.
+ (case_values_threshold): Use the --param case-values-threshold
+ value if non-zero, otherwise use machine dependent value.
+ (expand_case): Use case_values_threshold.
+
+ * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
+
+ * doc/invoke.texi (--param case-values-threshold): Document.
+
+2011-07-05 Richard Henderson <rth@redhat.com>
+
+ * dwarf2out.c (dwarf2out_cfi_label): Make static.
+ (dwarf2out_flush_queued_reg_saves): Make static.
+ (dwarf2out_reg_save): Remove.
+ (dwarf2out_return_save): Remove.
+ (dwarf2out_return_reg): Remove.
+ (dwarf2out_reg_save_reg): Remove.
+ (dwarf2out_def_cfa): Merge into ...
+ (dwarf2out_frame_init): ... here.
+ * dwarf2out.h, tree.h: Remove declarations as necessary.
+
2011-07-05 Richard Henderson <rth@redhat.com>
+ * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
+ (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
+ (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
+ the alloc insn.
+
+ * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
+ (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
+ (process_epilogue): Don't call dwarf2out_def_cfa.
+
+ * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
+ indicate the return address save.
+ (process_cfa_register): Likewise.
+
* config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
(process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
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>