+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
+ * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
+ zero step, set segment length to the size of the data-ref's type.
+
+2011-07-18 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
+ comments.
+ (ipcp_values_pool): Declare.
+ (ipcp_sources_pool): Likewise.
+ (ipcp_lattice): Changed to forward declaration.
+ (ipa_param_descriptor): Removed fields ipcp_lattice, types and
+ cannot_devirtualize.
+ (ipa_node_params): New fields descriptors, lattices, known_vals,
+ clone_for_all_contexts and node dead, removed fields params and
+ count_scale.
+ (ipa_set_param_count): Removed.
+ (ipa_get_param_count): Made to work with descriptors vector.
+ (ipa_get_param): Updated.
+ (ipa_param_cannot_devirtualize_p): Removed.
+ (ipa_param_types_vec_empty): Likewise.
+ (ipa_set_param_used): New function.
+ (ipa_get_param_used): Updated to use descriptors vector.
+ (ipa_func_list): Removed.
+ (ipa_init_func_list): Removed declaration.
+ (ipa_push_func_to_list_1): Likewise.
+ (ipa_pop_func_from_list): Likewise.
+ (ipa_push_func_to_list): Removed.
+ (ipa_lattice_from_jfunc): Remove declaration.
+ (ipa_get_jf_pass_through_result): Declare.
+ (ipa_get_jf_ancestor_result): Likewise.
+ (ipa_value_from_jfunc): Likewise.
+ (ipa_get_lattice): Update.
+ (ipa_lat_is_single_const): New function.
+ * ipa-prop.c (ipa_push_func_to_list_1): Removed.
+ (ipa_init_func_list): Likewise.
+ (ipa_pop_func_from_list): Likewise.
+ (ipa_get_param_decl_index): Fix coding style.
+ (count_formal_params): Removed.
+ (count_formal_params_1): Renamed to count_formal_params.
+ (ipa_populate_param_decls): Update to use descriptors vector.
+ (ipa_initialize_node_params): Likewise.
+ (visit_ref_for_mod_analysis): Use ipa_set_param_used.
+ (ipa_analyze_params_uses): Likewise.
+ (ipa_free_node_params_substructures): Likewise and free also lattices
+ and known values.
+ (duplicate_array): Removed.
+ (ipa_edge_duplication_hook): Add the new edge to the list of edge
+ clones.
+ (ipa_node_duplication_hook): Update to use new lattices.
+ (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
+ (ipa_free_all_structures_after_iinln): Likewise.
+ (ipa_write_node_info): Update to use new lattices.
+ (ipa_read_node_info): Likewise.
+ (ipa_get_jf_pass_through_result): New function.
+ (ipa_get_jf_ancestor_result): Likewise.
+ (ipa_value_from_jfunc): Likewise.
+ (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
+ * ipa-cp.c: Reimplemented.
+ * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
+ (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
+ (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
+ * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
+ * doc/invoke.texi (devirt-type-list-size): Removed description.
+ (ipa-cp-value-list-size): Added description.
+
2011-07-18 Richard Henderson <rth@redhat.com>
* bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
* 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.