OSDN Git Service

PR debug/49831
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 62293be..31c140d 100644 (file)
+2011-07-24  Richard Henderson  <rth@redhat.com>
+
+       PR debug/49831
+       * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
+       them entirely.
+
+2011-07-24  Richard Henderson  <rth@redhat.com>
+
+       PR debug/49825
+       * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
+       (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
+
+2011-07-24  Richard Henderson  <rth@redhat.com>
+
+       PR debug/49827
+       * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
+
+2011-07-24  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
+       Zero args_size for abnormal edges.  Adjust all callers.
+
+2011-07-24  Richard Henderson  <rth@redhat.com>
+
+       PR debug/49825
+       * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
+
+2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR bootstrap/49835
+       * collect2.c (demangle_flag): Removed.
+
+2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * configure.ac (demangler_in_ld): Default to yes.
+       * configure: Regenerated.
+       * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
+       mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
+       --no-demangle options straight through to ld.  When
+       HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
+       way that has the intended effect on Windows.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c: Include basic-block.h.
+       (dw_label_info): Remove.
+       (trace_work_list, trace_index): New.
+       (remember_row, emit_cfa_remember): Remove.
+       (dw_trace_info_hash, dw_trace_info_eq): New.
+       (get_trace_index, get_trace_info): New.
+       (save_point_p): New.
+       (free_cfi_row): Remove.
+       (add_cfi): Do not emit DW_CFA_remember_state.
+       (cfa_row_equal_p): New.
+       (barrier_args_size): Remove.
+       (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
+       (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
+       (maybe_record_trace_start, create_trace_edges, scan_trace): New.
+       (dwarf2out_cfi_begin_epilogue): Remove.
+       (dwarf2out_frame_debug_restore_state): Remove.
+       (connect_traces, create_pseudo_cfg): New.
+       (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
+       * Makefile.in (dwarf2cfi.o): Update.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (dw_trace_info): New.
+       (dw_label_info): New.
+       (cie_return_save): New.
+       (cur_trace): New.
+       (queued_args_size): Rename from args_size.  Update all users.
+       (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
+       (def_cfa_1): Use cur_trace instead of cfa_*.
+       (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
+       (clobbers_queued_reg_save, reg_saved_in): Likewise.
+       (dwarf2out_frame_debug_expr): Likewise.
+       (create_cie_data): Split out from ...
+       (execute_dwarf2_frame): ... here.  Initialize cur_trace.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
+       Update all users to match.
+       (execute_dwarf2_frame): Free reg_saved_in_data.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
+       (queued_reg_saves): Don't GTY.  Change to a VEC.
+       (queue_reg_save): Update to match.
+       (dwarf2out_flush_queued_reg_saves): Likewise.
+       (clobbers_queued_reg_save): Likewise.
+       (reg_saved_in): Likewise.
+       (execute_dwarf2_frame): Free queued_reg_saves.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (add_cfi_args_size): Split out from...
+       (dwarf2out_args_size): ... here.
+       (add_cfi_restore): Split out from ...
+       (dwarf2out_frame_debug_cfa_restore): ... here.
+       (def_cfa_0): Split out from ...
+       (def_cfa_1): ... here.
+       (cfi_oprnd_equal_p, cfi_equal_p): New.
+       (change_cfi_row): New.
+       (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
+       (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
+       (output_cfis): Remove.
+       * dwarf2out.c (output_fde): Simplify output_cfi loop.
+       (dwarf2out_switch_text_section): Don't call output_cfis.
+       (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
+       * dwarf2out.h: Update decls.
+       (enum dw_val_class): Add dw_val_class_none.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (update_row_reg_save): New.
+       (dwarf2out_frame_debug_cfa_expression): Use it.
+       (dwarf2out_frame_debug_cfa_restore): Likewise.
+       (reg_save): Likewise.  Do not emit DW_CFA_same_value.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
+       (cie_cfi_row): New.
+       (new_cfi_row, copy_cfi_row, free_cfi_row): New.
+       (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
+       (cur_row, remember_row): New.
+       (def_cfa_1): Use cur_row instead of the old_* variables.
+       (dwarf2out_frame_debug_restore_state): Similarly.
+       (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
+       (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
+       (dwarf2out_frame_debug_adjust_cfa): Likewise.
+       (dwarf2out_frame_debug_cfa_offset): Likewise.
+       (dwarf2out_frame_debug_expr): Likewise.
+       (execute_dwarf2_frame): Set up cur_row.
+       * dwarf2out.h (struct cfa_loc): Mark for GTY.
+
+2011-07-23  Richard Henderson  <rth@redhat.com>
+
+       * basic-block.h (EDGE_PRESERVE): New.
+       (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
+       * bb-reorder.c: Include except.h.
+       (fix_up_crossing_landing_pad): New.
+       (find_rarely_executed_basic_blocks_and_crossing_edges): Place 
+       landing pads in the right partition.  Duplicate as necessary.
+       (partition_hot_cold_basic_blocks): Fix up DF info after
+       duplicating landing pads.
+       * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
+       * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
+       is set properly.  Validate that EH edges are not CROSSING.
+       * except.c (expand_dw2_landing_pad_for_region): Split out from ...
+       (dw2_build_landing_pads): ... here.
+       (convert_to_eh_region_ranges): Remove code to fixup crossing
+       landing pads.
+       * except.h (expand_dw2_landing_pad_for_region): Declare.
+       * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
+
+2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/49816
+       * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
+
+2011-07-22  Jason Merrill  <jason@redhat.com>
+
+       * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
+
+2011-07-22  Richard Henderson  <rth@redhat.com>
+
+       * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
+
+2011-07-22  Richard Henderson  <rth@redhat.com>
+
+       * jump.c (maybe_propagate_label_ref): Split out of...
+       (mark_all_labels): ... here.  Do not attempt label_ref
+       propagation while in cfglayout mode.
+
+2011-07-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
+       (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
+       (dwarf_attr_name): Handle DW_AT_GNU_macros.
+       (dwarf2out_define): If the vector is empty and
+       lineno is 0, emit a dummy entry first.
+       (dwarf2out_undef): Likewise.  Remove redundant semicolon.
+       (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
+       optimize_macinfo_range): New functions.
+       (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
+       mergeable, optimize longer strings using
+       DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
+       optimize longer sequences of define/undef ops from headers
+       using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
+       emit a section headers.
+       (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
+       and macinfo_section_label to DEBUG_MACRO_SECTION
+       resp. DEBUG_MACRO_SECTION_LABEL.
+       (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
+       instead of DW_AT_macro_info.
+
+       PR other/32998
+       * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
+       options.
+       * dwarf2out.c: Include opts.h.
+       (dchar_p): New typedef.  Define heap VEC for it.
+       (producer_string): New variable.
+       (gen_producer_string): New function.
+       (gen_compile_unit_die): Use it.
+       (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer
+       if needed.
+       * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
+       * doc/invoke.texi: Document -grecord-gcc-switches and
+       -gno-record-gcc-switches, add a -grecord-gcc-switches reference
+       to -frecord-gcc-switches description.
+
+2011-07-22  Jason Merrill  <jason@redhat.com>
+
+       PR c++/30112
+       * c-decl.c (c_linkage_bindings): Define.
+
+2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR debug/49815
+       * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
+
+2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_option_override_internal): Disallow
+       MS ABI in x32 mode.
+       (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
+       only for TARGET_LP64.
+       (ix86_handle_abi_attribute): Check TARGET_LP64 instead of
+       TARGET_64BIT.
+
+2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
+       avoid warnings when GCC is built with a C++ compiler.
+
+2011-07-22  Martin Jambor  <mjambor@suse.cz>
+
+       PR lto/49796
+       * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
+       if decl node is in another partition, call cgraph_get_node only
+       once.
+
+2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config.gcc (x86_64-*-linux*): Set
+       default_gnu_indirect_function to yes.
+
+2011-07-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/45819
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
+       preserve volatile and notrap flags.
+
+2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+           Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       PR bootstrap/49794
+       * configure.ac: Test AM_ICONV with CXX.
+       * configure: Regenerate.
+       * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
+
+2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR bootstrap/49797
+       * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
+       (set_cloog_options): Use it.
+
+2011-07-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/49756
+       * gcc.c (main): Call stack_limit_increase (64MB).
+       * toplev.c (toplev_main): Likewise.
+
+2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
+       instead of force_reg.
+
+2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
+       needed and use force_reg after convert.
+       (ix86_expand_call): Likewise.
+       (ix86_expand_special_args_builtin): Likewise.
+       (ix86_expand_builtin): Likewise.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       PR middle-end/47654
+       PR middle-end/49649
+       * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
+       in parameter.  Initialize v1 and v2 based on the values returned
+       by clast_name_to_lb_ub.
+       (type_for_clast_red): Pass v1 and v2 in parameter, and set their
+       values.
+       (type_for_clast_bin): Same.
+       (type_for_clast_expr): Same.
+       (type_for_clast_eq): Update calls to type_for_clast_expr.
+       (type_for_clast_for): Same.
+       (build_iv_mapping): Same.
+       * graphite-ppl.h (value_min): New.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (type_for_interval): Generate signed
+       types whenever possible.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
+       and ub fields.
+       (new_clast_name_index): Add lb and ub parameters.
+       (free_clast_name_index): New.
+       (clast_name_to_lb_ub): New.
+       (save_clast_name_index): Add lb and ub parameters.
+       (compute_bounds_for_param): New.
+       (type_for_level): Removed.
+       (type_for_clast_for): Removed level parameter.  Do not call
+       type_for_level.
+       (graphite_create_new_loop): Store the lb and ub for the clast_name
+       of the iterator of the loop that has been generated.
+       (graphite_create_new_loop_guard): Remove parameter level.
+       (create_params_index): Store the lb and ub of each parameter.
+       (gloog): Use free_clast_name_index.  Pass to create_params_index
+       the current scop.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
+       (max_precision_type): Inline max_signed_precision_type.
+       (type_for_clast_red): Use max_precision_type.
+       (type_for_clast_bin): Same.
+       (type_for_clast_for): Same.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
+       type_for_interval.
+       (gcc_type_for_value): Renamed type_for_value.
+       (gcc_type_for_clast_term): Renamed type_for_clast_term.
+       (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
+       (gcc_type_for_clast_red): Renamed type_for_clast_red.
+       (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
+       (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
+       (graphite_translate_clast_equation): Update calls.
+       (compute_type_for_level): Renamed type_for_level.
+       (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
+       (build_iv_mapping): Update calls.
+       (graphite_create_new_loop_guard): Same.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
+       comment.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (struct ivs_params): New.
+       (clast_name_to_gcc): Use ivs_params to pass around parameters.
+       (clast_to_gcc_expression): Same.
+       (clast_to_gcc_expression_red): Same.
+       (gcc_type_for_clast_term): Same.
+       (gcc_type_for_clast_expr): Same.
+       (gcc_type_for_clast_red): Same.
+       (gcc_type_for_clast_bin): Same.
+       (gcc_type_for_clast_eq): Same.
+       (graphite_translate_clast_equation): Same.
+       (graphite_create_guard_cond_expr): Same.
+       (graphite_create_new_guard): Same.
+       (graphite_create_new_loop): Same.
+       (build_iv_mapping): Same.
+       (translate_clast_user): Same.
+       (graphite_create_new_loop_guard): Same.
+       (translate_clast): Same.
+       (translate_clast_for_loop): Same.
+       (translate_clast_for): Same.
+       (translate_clast_guard): Same.
+       (initialize_cloog_names): Fix typo.
+       (gloog): Initialize an ivs_params struct, pass it to translate_clast.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
+       (new_clast_name_index): Add level parameter.
+       (clast_name_to_level): New.
+       (save_clast_name_index): Add level parameter.
+       (newivs_to_depth_to_newiv): Removed.
+       (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
+       (graphite_create_new_loop): Add level parameter.  Pass level to
+       save_clast_name_index.
+       (translate_clast_for_loop): Pass level to graphite_create_new_loop.
+       (create_params_index): Pass level to save_clast_name_index.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
+       recompute type, lb, and ub.  Get them from...
+       (graphite_create_new_loop_guard): ...here.  Pass in parameter
+       pointers to type, lb, and ub.
+       (translate_clast_for_loop): Update function calls.
+       (translate_clast_for): Same.
+
+2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
+       psct_dynamic_dim.
+       (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
+       (gcc_type_for_iv_of_clast_loop): Update use of level.
+       (gloog): Start counting nesting level from 0.
+       * graphite-clast-to-gimple.h (get_scattering_level): Removed.
+       * graphite-dependences.c (graphite_carried_dependence_level_k): Call
+       psct_dynamic_dim on level.
+
+2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (ix86_legitimize_address): Convert to
+       Pmode if needed.
+
+2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (function_value_64): Always return pointers
+       in Pmode.
+       (ix86_promote_function_mode): New.
+       (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
+
+2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       PR tree-optimization/49749
+       * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
+       remove no-longer-used maxrank variable.
+
+2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
+
+2011-07-21  Jason Merrill  <jason@redhat.com>
+
+       * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
+       * recog.h (struct insn_data_d): Check it instead of
+       HAVE_DESIGNATED_INITIALIZERS.
+       * genoutput.c (output_insn_data): Likewise.
+
+2011-07-21  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/49770
+       * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
+       valueized any operand.  Renamed from ...
+       (valueize_refs): ... this.  New wrapper around valueize_refs_1.
+       (valueize_shared_reference_ops_from_ref): Return whether we
+       valueized any operand.
+       (vn_reference_lookup): Only when we valueized any operand
+       use the valueized reference for alias analysis.  Do not preserve
+       the original reference tree in this case.
+
+2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_decompose_address): Reject all but
+       register operands and subregs of DImode hard registers in index.
+
+2011-07-21  Kai Tietz  <ktietz@redhat.com>
+
+       * fold-const.c (fold_unary_loc): Preserve indirect
+       comparison cast to none-boolean type.
+       * tree-ssa.c (useless_type_conversion_p): Preserve cast
+       from/to boolean-type.
+       * gimplify.c (gimple_boolify): Handle boolification of comparisons.
+       (gimplify_expr): Boolifiy non aggregate-typed comparisons.
+       * tree-cfg.c (verify_gimple_comparison): Check result
+       type of comparison expression.
+       * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
+       of condition result and disallow type-cast sinking into comparison.
+
+2011-07-21  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-forwprop.c (combine_conversions): Return whether
+       we have to run cfg-cleanup.  Properly remove dead stmts.
+       (ssa_forward_propagate_and_combine): Adjust.
+
+2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
+
+2011-07-21  Kai Tietz  <ktietz@redhat.com>
+
+       * tree-ssa-propagate.c (substitute_and_fold): Use
+       do_dce flag to deside, if BB's statements are scanned
+       in last to first, or first to last order.
+
+2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
+
+2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
+           Uros Bizjak  <ubizjak@gmail.com>
+           Richard Henderson  <rth@redhat.com>
+
+       * config/i386/constraints.md (w): New.
+
+       * config/i386/i386.c (ix86_output_addr_vec_elt): Check
+       TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
+
+       * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
+       instead of TARGET_64BIT.
+
+       * config/i386/i386.md (indirect_jump): Replace
+       nonimmediate_operand with indirect_branch_operand.
+       (*indirect_jump): Likewise.  Replace constraint "m" with "w".
+       (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
+       Convert operand 0 to Pmode for x32 if not PIC.
+       (*tablejump_1): Replace nonimmediate_operand with
+       indirect_branch_operand.  Replace constraint "m" with "w".
+       (*call_vzeroupper): Replace constraint "m" with "w".
+       (*call): Likewise.
+       (*call_rex64_ms_sysv_vzeroupper): Likewise.
+       (*call_rex64_ms_sysv): Likewise.
+       (*call_value_vzeroupper): Likewise.
+       (*call_value): Likewise.
+       (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
+       (*call_value_rex64_ms_sysv): Likewise.
+       (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
+
+       * config/i386/predicates.md (indirect_branch_operand): New.
+       (call_insn_operand): Support x32.
+
+2011-07-20  Michael Eager  <eager@eagercon.com>
+
+       * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
+
+2011-07-20  Richard Henderson  <rth@redhat.com>
+
+       * cfg.c (dump_bb_info): Dump basic_block->flags.
+       * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
+
+2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_decompose_address): Allow only subregs
+       of DImode hard registers in index.
+       (ix86_legitimate_address_p): Allow subregs of base and index to span
+       more than a word.  Assert that subregs of base and index satisfy
+       register_no_elim_operand predicates.  Reject addresses where
+       base and index have different modes.
+
+2011-07-20  Robert Millan  <rmh@gnu.org>
+
+       * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
+
+2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
+       removing now-unnecessary assignment.
+
+2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
+       memory address space to the type's address space.
+
+2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/36467
+       PR target/49687
+       * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
+       and expand appropriately if there is a CONST_INT in operand2.
+       (usmulqihi3): New insn.
+       (*sumulqihi3): New insn.
+       (*osmulqihi3): New insn.
+       (*oumulqihi3): New insn.
+       (*muluqihi3.uconst): New insn_and_split.
+       (*muluqihi3.sconst): New insn_and_split.
+       (*mulsqihi3.sconst): New insn_and_split.
+       (*mulsqihi3.uconst): New insn_and_split.
+       (*mulsqihi3.oconst): New insn_and_split.
+       (*ashifthi3.signx.const): New insn_and_split.
+       (*ashifthi3.signx.const7): New insn_and_split.
+       (*ashifthi3.zerox.const): New insn_and_split.
+       (mulsqihi3): New insn.
+       (muluqihi3): New insn.
+       (muloqihi3): New insn.
+       * config/avr/predicates.md (const_2_to_7_operand): New.
+       (const_2_to_6_operand): New.
+       (u8_operand): New.
+       (s8_operand): New.
+       (o8_operand): New.
+       (s9_operand): New.
+       (register_or_s9_operand): New.
+
+2011-07-20  Kai Tietz  <ktietz@redhat.com>
+
+       * builtins.c (fold_builtin_expect): See through the cast
+       from truthvalue_type_node to long.
+
+2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
+       where we can use them from the standard and altivec instruction
+       sets, instead of always using the 3 operand VSX forms that require
+       the destination to overlap one of the inputs.
+       (vsx_fms*): Ditto.
+       (vsx_fnma*): Ditto.
+       (vsx_fnms*): Ditto.
+
+       * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
+       for DF types.
+       (fmsdf4_fpr): Ditto.
+       (nfmadf4_fpr): Ditto.
+       (nfmsdf4_fpr): Ditto.
+
+2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * genrecog.c (make_insn_sequence): Correct position numbering
+       when filtering out match_scratch and match_dup.
+
+2011-07-20  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
+       against already removed statements.
+       (forward_propagate_into_comparison): Remove dead defining stmts.
+       (forward_propagate_into_gimple_cond): Likewise.
+       (forward_propagate_into_cond): Simplify.
+       (ssa_forward_propagate_and_combine): Handle changed cfg from
+       forward_propagate_into_comparison.
+       * tree-ssa-phiopt.c (conditional_replacement): Use proper
+       locations for newly built statements.
+
+2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
+
+       * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
+
+2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.c (s390_class_max_nregs): Fix return type.
+       * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
+
+2011-07-20  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/18908
+       * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
+       * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
+       ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
+
+2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * config/frv/frv.c (frv_register_move_cost): Define explicitly
+       costs for subclasses of GR_REGS.
+
+2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/49780
+       * config/i386/predicates.md (no_seg_addres_operand): No more special.
+       * config/i386/i386.c (ix86_decompose_address): Allow only subregs
+       of DImode hard registers in base.
+       (ix86_legitimate_address_p): Allow SImode and DImode base and index
+       registers.
+
+2011-07-20  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
+       (unify_nodes): Deal with that.
+       (solve_graph): Likewise.
+
+2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       * config/arm/arm.c (arm_canonicalize_comparison): Add case to
+       canonicalize left operand from ZERO_EXTEND to AND.
+
+2011-07-20  Anatoly Sokolov  <aesok@post.ru>
+
+       * target.def (class_max_nregs): New hook.
+       * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
+       * doc/tm.texi: Regenerate.
+       * targhooks.c (default_class_max_nregs): New function.
+       * targhooks.h (default_class_max_nregs): Declare.
+       * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
+       x_ira_reg_class_min_nregs arrays to unsigned char.
+       * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
+       hook instead of CLASS_MAX_NREGS macro.
+       * reginfo.c (restore_register_info): Ditto.
+       * ira-conflicts.c (process_regs_for_copy): Use
+       ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
+       Change type rclass and aclass vars to reg_class_t.
+       * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
+       array instead of CLASS_MAX_NREGS macro. Change type rclass var to
+       reg_class_t.
+       * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
+       Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
+
+       * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
+       * config/i386/i386.c (ix86_class_max_nregs): New function.
+       (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
+       instead of CLASS_MAX_NREGS macro.
+       (TARGET_CLASS_MAX_NREGS): Define.
+       * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
+       * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
+       * config/avr/avr.c (class_max_nregs): Remove function.
+       * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
+       * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
+       * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
+       * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
+       * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
+       * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
+       * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
+       * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
+       * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
+       * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
+       * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
+       * config/score/score.h (CLASS_MAX_NREGS): Remove.
+       * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
+       * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
+       * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
+
+2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * cif-code.def (OVERWRITABLE): Fix typo and move around.
+       (TARGET_OPTIMIZATION_MISMATCH): Delete.
+       (EH_PERSONALITY): Fix typo.
+       (NON_CALL_EXCEPTIONS): Fix message.
+       (OPTIMIZATION_MISMATCH): Adjust message.
+       * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
+
+2011-07-19  Ian Lance Taylor  <iant@google.com>
+
+       * doc/install.texi (Configuration): Document
+       --enable-build-poststage1-with-cxx.
+
+2011-07-19  Robert Millan  <rmh@gnu.org>
+
+       * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
+       (GLIBC_DYNAMIC_LINKER): Remove.
+
+       * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
+       (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
+       (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
+       (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
+       (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
+       GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
+
+       * config/mips/linux.h: Remove everything except for ...
+       (GLIBC_DYNAMIC_LINKER): ... this macro.
+
+       * config/mips/linux64.h: Remove everything except for ...
+       (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
+       (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
+       (BIONIC_DYNAMIC_LINKERN32): ... these macros.
+       (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
+       (GNU_USER_LINK_EMULATIONN32): New macros.
+
+       * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
+       Use the new headers.
+
+2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
+       Add offset_known_p and size_known_p fields.
+       (MEM_OFFSET_KNOWN_P): Update accordingly.
+       (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
+       * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
+       (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
+       (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
+       (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
+       (init_emit_regs): Likewise.
+
+2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
+       (MEM_OFFSET): Change from returning an rtx to returning a
+       HOST_WIDE_INT.
+       * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
+       (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
+       * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
+       (clear_mem_offset): Declare.
+       * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
+       MEM_OFFSET_KNOWN_P to test whether the offset is known, and
+       MEM_OFFSET to get a HOST_WIDE_INT offset.
+       (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
+       (adjust_offset_for_component_ref): Take a bool "known_p"
+       parameter and a HOST_WIDE_INT "offset" parameter.
+       * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
+       Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
+       than an rtx.  Use clear_mem_offset to clear the offset.
+       * cfgcleanup.c (merge_memattrs): Likewise.
+       * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
+       * function.c (assign_parm_find_stack_rtl): Likewise.
+       (assign_parm_setup_stack): Likewise.
+       * print-rtl.c (print_rtx): Likewise.
+       * reload.c (find_reloads_subreg_address): Likewise.
+       * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
+       * var-tracking.c (INT_MEM_OFFSET): Likewise.
+       * emit-rtl.c (set_reg_attrs_from_value): Likewise.
+       (get_mem_align_offset): Likewise.
+       (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
+       (clear_mem_offset): New function.
+       * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
+       offset rather than an rtx.  Assume both the expressio and offset
+       are available.
+       (r10k_needs_protection_p_1): Update accordingly, checking the
+       expression and offset availability here instead.
+
+2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
+       (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
+       * rtl.h (MEM_SIZE_KNOWN_P): New macro.
+       (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
+       * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
+       (clear_mem_size): Declare.
+       * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
+       (clear_mem_size): New function.
+       * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
+       MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
+       to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
+       passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
+       to clear the size.
+       (nonoverlapping_memrefs_p): Likewise.
+       * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
+       (expand_builtin_init_trampoline): Likewise.
+       * calls.c (compute_argument_addresses): Likewise.
+       * cfgcleanup.c (merge_memattrs): Likewise.
+       * dce.c (find_call_stack_args): Likewise.
+       * dse.c (record_store, scan_insn): Likewise.
+       * dwarf2out.c (dw_sra_loc_expr): Likewise.
+       * expr.c (emit_block_move_hints): Likewise.
+       * function.c (assign_parm_find_stack_rtl): Likewise.
+       * print-rtl.c (print_rtx): Likewise.
+       * reload.c (find_reloads_subreg_address): Likewise.
+       * rtlanal.c (may_trap_p_1): Likewise.
+       * var-tracking.c (track_expr_p): Likewise.
+       * varasm.c (assemble_trampoline_template): Likewise.
+       * config/arm/arm.c (arm_print_operand): Likewise.
+       * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
+       * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
+       (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
+       (expand_constant_setmem_prologue): Likewise.
+       * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
+       * config/rs6000/rs6000.c (expand_block_move): Likewise.
+       (adjacent_mem_locations): Likewise.
+       * config/s390/s390.c (s390_expand_setmem): Likewise.
+       (s390_expand_insv): Likewise.
+       * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
+       (*extendqi<mode>2_short_displ): Likewise.
+       * config/sh/sh.c (expand_block_move): Likewise.
+       * config/sh/sh.md (extv, extzv): Likewise.
+
+2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
+       (mem_attrs_htab_eq): ...here.
+       (find_mem_attrs): Replace with...
+       (set_mem_attrs): ...this function.  Take a mem_attrs structure
+       rather than individual fields.
+       (set_mem_attributes_minus_bitpos, set_mem_alias_set)
+       (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
+       (set_mem_size, change_address, adjust_address_1, offset_address)
+       (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
+       Update accordingly.
+
+2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
+       (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
+       Provide a dummy definition of MEM_ADDR_SPACE for generators.
+       (target_rtl): Add x_mode_mem_attrs.
+       (mode_mem_attrs): New macro.
+       (get_mem_attrs): New function.
+       * emit-rtl.c (get_mem_attrs): Rename to...
+       (find_mem_attrs): ...this.
+       (set_mem_attributes_minus_bitpos, set_mem_alias_set)
+       (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
+       (set_mem_size, change_address, adjust_address_1, offset_address)
+       (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
+       Update accordingly.
+       (init_emit_regs): Initialize mode_mem_attrs.
+
+2011-07-19  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
+       TRUTH_*_EXPR handling.
+       * tree-ssa-operands.c (get_expr_operands): Likewise.
+       * tree-ssa-pre.c (fully_constant_expression): Likewise.
+       * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
+       Likewise.
+       (is_and_or_or): Likewise.
+       (is_norm_cond_subset_of): Likewise.
+
+2011-07-19  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (fold_build_pointer_plus_loc): New helper function.
+       (fold_build_pointer_plus_hwi_loc): Likewise.
+       (fold_build_pointer_plus): Define.
+       (fold_build_pointer_plus_hwi): Likewise.
+       * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
+       (fold_builtin_memory_op): Likewise.
+       (fold_builtin_stpcpy): Likewise.
+       (fold_builtin_memchr): Likewise.
+       (fold_builtin_strstr): Likewise.
+       (fold_builtin_strchr): Likewise.
+       (fold_builtin_strrchr): Likewise.
+       (fold_builtin_strpbrk): Likewise.
+       (fold_builtin_strcat): Likewise.
+       (expand_builtin_memory_chk): Likewise.
+       (fold_builtin_memory_chk): Likewise.
+       * c-typeck.c (build_unary_op): Likewise.
+       * cgraphunit.c (thunk_adjust): Likewise.
+       * fold-const.c (build_range_check): Likewise.
+       (fold_binary_loc): Likewise.
+       * omp-low.c (extract_omp_for_data): Likewise.
+       (expand_omp_for_generic): Likewise.
+       (expand_omp_for_static_nochunk): Likewise.
+       (expand_omp_for_static_chunk): Likewise.
+       * tree-affine.c (add_elt_to_tree): Likewise.
+       * tree-data-ref.c (split_constant_offset_1): Likewise.
+       * tree-loop-distribution.c (generate_memset_zero): Likewise.
+       * tree-mudflap.c (mf_xform_derefs_1): Likewise.
+       * tree-predcom.c (ref_at_iteration): Likewise.
+       * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
+       (add_to_parts): Likewise.
+       (create_mem_ref): Likewise.
+       * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
+       * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
+       (number_of_iterations_le): Likewise.
+       * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
+       * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
+       (vect_create_addr_base_for_vector_ref): Likewise.
+       * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
+       (vect_create_cond_for_alias_checks): Likewise.
+       * tree-vrp.c (extract_range_from_assert): Likewise.
+       * config/alpha/alpha.c (alpha_va_start): Likewise.
+       (alpha_gimplify_va_arg_1): Likewise.
+       * config/i386/i386.c (ix86_va_start): Likewise.
+       (ix86_gimplify_va_arg): Likewise.
+       * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
+       * config/mep/mep.c (mep_expand_va_start): Likewise.
+       (mep_gimplify_va_arg_expr): Likewise.
+       * config/mips/mips.c (mips_va_start): Likewise.
+       (mips_gimplify_va_arg_expr): Likewise.
+       * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
+       * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
+       (rs6000_gimplify_va_arg): Likewise.
+       * config/s390/s390.c (s390_va_start): Likewise.
+       (s390_gimplify_va_arg): Likewise.
+       * config/sh/sh.c (sh_va_start): Likewise.
+       (sh_gimplify_va_arg_expr): Likewise.
+       * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
+       * config/spu/spu.c (spu_va_start): Likewise.
+       (spu_gimplify_va_arg_expr): Likewise.
+       * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
+       Likewise.
+       (xstormy16_gimplify_va_arg_expr): Likewise.
+       * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
+       (xtensa_gimplify_va_arg_expr): Likewise.
+
+2011-07-19  Richard Guenther  <rguenther@suse.de>
+
+       * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
+       (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
+       handling.
+
+       PR middle-end/18908
+       * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
+       result of BIT_*_EXPR to bitfield precision.
+
+2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       PR tree-optimization/49742
+       * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
+       as a potential write.
+
+2011-07-19  Richard Guenther  <rguenther@suse.de>
+
+       * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
+       * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
+       (forward_propagate_comparison): Simplify, remove obsolete code.
+
+2011-07-19  Richard Guenther  <rguenther@suse.de>
+
+       * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
+       BIT_XOR_EXPR, same as the RTL expander does.
+       * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
+       (verify_gimple_assign_unary): Likewise.
+       * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
+       * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
+       BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
+
+2011-07-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/49768
+       * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
+       if offset is smaller than bitoffset, but offset+size is bigger
+       than bitoffset.
+
 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
 
        PR tree-optimization/49771
 
        * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
        * doc/tm.texi: Regenerate.
-       * target.def (mergeable_rodata_prefix: New defhookpod.
+       * target.def (mergeable_rodata_prefix): New defhookpod.
        * varasm.c (mergeable_string_section, mergeable_constant_section):
        Use it. Allocate name with alloca.