2012-12-27  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_deligitimze_address): Do not
	delegitimize TLS addresses on AIX.
	(rs6000_legitimize_tls_address_aix): Append TLS symbol qualifier.
	Set SYMBOL_FLAG_LOCAL on module symbol.
	(output_toc): Do not append TLS symbol qualifier here.
	* config/rs6000/rs6000.md (tls_get_addr_internal): Add GPR 4 to
	clobbers.

2012-12-27  Andreas Schwab  <schwab@linux-m68k.org>

	* target.def (supports_function_versions): Fix typo.

2012-12-26  Sriraman Tallam  <tmsriram@google.com>

	* doc/tm.texi.in (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Document
	new target hook.
	* doc/tm.texi: Regenerate.
	* c-family/c-common.c (handle_target_attribute): Retain target attribute
	for targets that support versioning.
	* target.def (supports_function_versions): New hook.
	* cp/class.c (add_method): Remove calls
	to DECL_FUNCTION_SPECIFIC_TARGET.
	* config/i386/i386.c (ix86_function_versions): Use target string
	to check for function versions instead of target flags.
	* (ix86_supports_function_versions): New function.
	* (is_function_default_version): Check target string.
	* TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS: New macro.

2012-12-27  Steven Bosscher  <steven@gcc.gnu.org>

	* cgraph.c (verify_cgraph_node): Don't allocate/free visited_nodes set.

2012-12-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/53789
	* config/pa/pa.md (movsi): Reject expansion of TLS symbol references
	after reload starts.

2012-12-22  Jan Hubicka  <jh@suse.cz>

	PR lto/54728
	* cgraph.h (symtab_real_symbol_p): Drop code looking for external functions.
	* lto-streamer-out.c (output_symbol_p): New function.
	(produce_symtab) Use it.

2012-12-21  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55355
	* tree-sra.c (type_internals_preclude_sra_p): Also check that
	bit_position is small enough to fit a single HOST_WIDE_INT.

2012-12-21  Eric Botcazou  <ebotcazou@adacore.com>

	* rtlanal.c (volatile_insn_p): Delete commented out code.
	(side_effects_p): Likewise.
	(may_trap_p_1) <UNSPEC_VOLATILE>: Return 1 again.
	* target.def (unspec_may_trap_p): Adjust comment.
	* targhooks.c (default_unspec_may_trap_p): Don't handle UNSPEC_VOLATILE.
	* config/ia64/ia64.c (ia64_unspec_may_trap_p): Adjust to above change.

2012-12-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/55775
	* lra-assigns.c (improve_inheritance): Do nothing after
	LRA_MAX_INHERITANCE_PASSES pass.
	* lra-constraints.c (MAX_CONSTRAINT_ITERATION_NUMBER): Rename to
	LRA_MAX_CONSTRAINT_ITERATION_NUMBER.  Move to lra-int.h.
	(MAX_INHERITANCE_PASSES): Rename to LRA_MAX_INHERITANCE_PASSES.
	Move to lra-int.h.
	* lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Move from
	lra-constraints.c.
	(LRA_MAX_INHERITANCE_PASSES): Ditto.

2012-12-21  Steve Ellcey  <sellcey@mips.com>

	PR bootstrap/54128
	* ira.c (build_insn_chain): Check only NONDEBUG instructions for
	register usage.

2012-12-21  David Edelsohn  <dje.gcc@gmail.com>

	* varasm.c (bss_initializer_p): Remove static.
	* output.h (bss_initializer_p): Declare.
	* xcoffout.c (xcoff_tbss_section_name): Define.
	* xcoffout.h (xcoff_tbss_section_name): Declare.
	* config/rs6000/xcoff.h (TARGET_ENCODE_SECTION_INFO): Define.
	(ASM_OUTPUT_TLS_COMMON): Merge strings.
	* config/rs6000/rs6000.c (tls_private_data_section): New.
	(output_toc): Only output CSECT decoration for TLS.
	Output appropriate CSECT for data or bss.
	(rs6000_xcoff_asm_init_sections) Define tls_private_data_section.
	(rs6000_xcoff_select_section): Handle TLS bss and private data.
	(rs6000_xcoff_file_start): Generate xcoff_tbss_section_name.
	(rs6000_xcoff_encode_section_info): Strip SYMBOL_FLAG_HAS_BLOCK_INFO
	from native TLS symbols.

2012-12-21  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/52996
	* cprop.c (bypass_block): When loops are to be preserved
	do not bypass loop headers.  Revert earlier kludge to remove
	loops when doing that.

2012-12-21  Richard Biener  <rguenther@suse.de>

	PR bootstrap/54659
	* system.h: Include gmp.h.
	* tree-ssa-loop-niter.c: Do not include gmp.h here.
	* double-int.h: Likewise.
	* realmpfr.h: Likewise.

2012-12-21  Greta Yorsh  <Greta.Yorsh@arm.com>

        * config/arm/cortex-a7.md: New file.
        * config/arm/t-arm (MD_INCLUDES): Add cortex-a7.md.
        * config/arm/arm.md: Include cortex-a7.md.
        (generic_sched): Don't use generic scheduler for Cortex-A7.
        (generic_vfp): Likewise.
        * config/arm/arm.c: (TARGET_SCHED_REORDER): Use arm_sched_reorder.
        (arm_sched_reorder,cortexa7_sched_reorder): New function.
        (cortexa7_older_only,cortexa7_younger): Likewise.
        (arm_issue_rate): Add Cortex-A7.

2012-12-20  Ian Bolton  <ian.bolton@arm.com>

	* gcc/config/aarch64/aarch64.md
	(*addsi3_aarch64_uxtw): New pattern.
	(*addsi3_compare0_uxtw): New pattern.
	(*add_<shift>_si_uxtw): New pattern.
	(*add_<optab><SHORT:mode>_si_uxtw): New pattern.
	(*add_<optab><SHORT:mode>_shft_si_uxtw): New pattern.
	(*add_<optab><SHORT:mode>_mult_si_uxtw): New pattern.
	(*add_<optab>si_multp2_uxtw): New pattern.
	(*addsi3_carryin_uxtw): New pattern.
	(*addsi3_carryin_alt1_uxtw): New pattern.
	(*addsi3_carryin_alt2_uxtw): New pattern.
	(*addsi3_carryin_alt3_uxtw): New pattern.
	(*add_uxtsi_multp2_uxtw): New pattern.
	(*subsi3_uxtw): New pattern.
	(*subsi3_compare0_uxtw): New pattern.
	(*sub_<shift>_si_uxtw): New pattern.
	(*sub_mul_imm_si_uxtw): New pattern.
	(*sub_<optab><SHORT:mode>_si_uxtw): New pattern.
	(*sub_<optab><SHORT:mode>_shft_si_uxtw): New pattern.
	(*sub_<optab>si_multp2_uxtw): New pattern.
	(*sub_uxtsi_multp2_uxtw): New pattern.
	(*negsi2_uxtw): New pattern.
	(*negsi2_compare0_uxtw): New pattern.
	(*neg_<shift>_si2_uxtw): New pattern.
	(*neg_mul_imm_si2_uxtw): New pattern.
	(*mulsi3_uxtw): New pattern.
	(*maddsi_uxtw): New pattern.
	(*msubsi_uxtw): New pattern.
	(*mulsi_neg_uxtw): New pattern.
	(*<su_optab>divsi3_uxtw): New pattern.

2012-12-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/55750
	* gimplify.c (gimplify_self_mod_expr): Don't force lvalue to
	pass is_gimple_min_lval.

2012-12-20  Richard Henderson  <rth@redhat.com>
	    Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/constraints.md (NxxDq, NxxSq): New.
	* config/s390/predicates.md (contiguous_bitmask_operand): New.
	* config/s390/s390.c (print_operand) ['e', 'f', 's', 't']: New
	operand letters.
	* config/s390/s390.md (bfstart, bfend): New mode attrs.
	(*insv<GPR>_zEC12_noshift): Use them.
	(*insv<GPR>_z10_noshift): Likewise.
	(*insv<GPR>_or_z10_noshift): Likewise.

	* config/s390/s390.md (*insv_l_di_reg_extimm): Un-macroize from :P.

	* config/s390/s390.md (*anddi3_cc): Add risbg alternative.
	(*anddi3_cconly, *anddi3): Likewise.
	(*andsi3, *andsi3_cconly, *andsi3_zarch): Likewise.

	* config/s390/s390.md (bitsize): New mode attr.
	(*extzv<GPR>, *extzv<GPR>, *insv<GPR>_zEC12, *insv<GPR>_z10): Use it.
	(extend<HQI><DSI>2, zero_extend<HQI>si2): Likewise.
	(zero_extend<HQI>di2, fixuns_trunc<BFP><GPR>2): Likewise.

	* config/s390/predicates.md (nonzero_shift_count_operand): New.
	* config/s390/s390-protos.h (s390_extzv_shift_ok): Declare.
	* config/s390/s390.c (s390_extzv_shift_ok): New function.
	* config/s390/s390.md (extzv): New expander.
	(*extzv<GPR>_zEC12, *extzv<GPR>_z10): New insns.
	(*pre_z10_extzv<GPR>): Rename from *extzv<GPR>; simplify with
	nonzero_shift_count_operand.
	(*extzv_<GPR>_srl, *extzv_<GPR>_sll): New insns.

	* config/s390/s390.md (IXOR): New code iterator.
	(*r<IXOR>sbg_<GPR>_noshift): Rename from *insv<GPR>_or_z10_noshift;
	macro-ize to handle XOR too.
	(*r<IXOR>sbg_di_rotl, *r<IXOR>sbg_<GPR>_srl, *r<IXOR>sbg_<GPR>_sll):
	New patterns.

	* config/s390/s390.md (*insv_rnsbg_noshift, *insv_rnsbg_srl): New.

2012-12-20  Thomas Schwinge  <thomas@codesourcery.com>

	PR bootstrap/55202
	* configure.ac <PLUGIN_LD_SUFFIX>: Use POSIX shell syntax.
	* configure: Regenerate.

2012-12-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/55754
	* config/arm/arm.c (arm_canonicalize_comparison): Remove
	op0_preserve_value check for zero_extend to and transformation.

2012-12-20  Teresa Johnson  <tejohnson@google.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/55734
	* gcov-io.c (gcov_read_summary): Use __builtin_popcount instead
	of __builtin_popcountll when building libgcov.a, otherwise use
	popcount_hwi.
	(gcov_histo_index): When not building libgcov.a, use floor_log2
	instead of __builtin_clzll.

2012-12-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/55740
	* cfghooks.c (merge_blocks): Properly handle merging of
	two loop headers.

2012-12-20  Roland Stigge  <stigge@debian.org>
	    Matthias Klose  <doko@ubuntu.com>

	* config/rs6000/t-spe (MULTIARCH_DIRNAME): Remove.
	* config/rs6000/t-linux (MULTIARCH_DIRNAME): Define name for
	powerpc-linux-gnuspe.

2012-12-19  Matthias Klose  <doko@ubuntu.com>

	* config/i386/t-kfreebsd (MULTIARCH_DIRNAME): Add comma to
	separate arguments in make function.

2012-12-19  Uros Bizjak  <ubizjak@gmail.com>
	    Yuri Rumyantsev  <ysrumyan@gmail.com>

	* config/i386/i386.h (enum ix86_tune_indices): Add
	X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE.
	(TARGET_AVOID_MEM_OPND_FOR_CMOVE): New define.
	* config/i386/i386.c (initial_ix86_tune_features)
	<X86TUNE_AVOID_MEM_OPND_FOR_CMOVE>: Initialize.
	* config/i386/i386.md (splitters to avoid cmove memory operands): New.
	(peephole2s to avoid cmove memory operands): New.

2012-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (f_minmaxs, f_minmaxd): New types.
	* config/arm/vfp.md (smax<mode>3): New pattern.
	(smin<mode>3): Likewise.

2012-12-19  Richard Biener  <rguenther@suse.de>

	* targhooks.h (default_canonicalize_comparison): Fix prototype.
	* targhooks.c (default_canonicalize_comparison): Define.

2012-12-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55736
	PR tree-optimization/55703
	* gimplify.c (prune_expr_location): New function.
	(unshare_expr_without_location): Likewise.
	* tree.h (unshare_expr_without_location): Declare.
	* ipa-prop.c (prune_expression_for_jf): Remove.
	(prune_expression_for_jf_1): Likewise.
	(ipa_set_jf_constant): Use unshare_expr_without_location.
	(ipa_set_jf_arith_pass_through): Likewise.
	(determine_known_aggregate_parts): Likewise.
	* tree-switch-conversion.c (build_constructors): Use
	unshare_expr_without_location on all constructor elements.

2012-12-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* target.def: Define canonicalize_comparison hook.
	* targhooks.h (default_canonicalize_comparison): New prototype.
	* targhooks.c (default_canonicalize_comparison): New function.
	* doc/tm.texi: Add documentation for the new target hook.
	* doc/tm.texi.in: Likewise.
	* combine.c (try_combine): Adjust to use the target hook.
	* config/alpha/alpha.h (CANONICALIZE_COMPARISON): Remove macro
	definition.
	* config/alpha/alpha.c (alpha_canonicalize_comparison): New function.
	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
	* config/arm/arm-protos.h (arm_canonicalize_comparison): Remove
	prototype.
	* config/arm/arm.c (arm_canonicalize_comparison): Add new parameter.
	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
	* config/arm/arm.h (CANONICALIZE_COMPARISON): Remove macro definition.
	* config/s390/s390-protos.h (s390_canonicalize_comparison): Remove
	prototype.
	* config/s390/s390.c (s390_canonicalize_comparison): Add new parameter.
	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
	* config/s390/s390.h (CANONICALIZE_COMPARISON): Remove macro definition.
	* config/sh/sh-protos.h (sh_canonicalize_comparison): Remove prototype.
	* config/sh/sh.c (sh_canonicalize_comparison): Add new prototype.  New
	function overloading the old one.
	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
	* config/sh/sh.h (CANONICALIZE_COMPARISON): Remove macro definition.
	* config/spu/spu.c (spu_canonicalize_comparison): New function.
	(TARGET_CANONICALIZE_COMPARISON): New macro definition.
	* config/spu/spu.h (CANONICALIZE_COMPARISON): Remove macro definition.

2012-12-19  Jakub Jelinek  <jakub@redhat.com>

	PR debug/55730
	* dwarf2out.c (mem_loc_descriptor): Ignore CLOBBER.
	* valtrack.c (gen_lowpart_for_debug): New function.
	(propagate_for_debug): Temporarily set rtl_hooks.gen_lowpart_no_emit
	to gen_lowpart_for_debug.

2012-12-18  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/55683
	* ipa-prop.c (try_make_edge_direct_virtual_call): Look into constants
	for binfo.

2012-12-19  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.c (thumb_find_work_register): Check argument
	register number based on current PCS.

2012-12-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/55562
	* sbitmap.c (bitmap_and, bitmap_xor, bitmap_ior): Return whether
	dst sbitmap changed even if it doesn't have popcount.

2012-12-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md (insv_imm<mode>): Add modes
	for source operands.

2012-12-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
	Remove unused variables.
	(aarch64_split_compare_and_swap): Likewise.

2012-12-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/driver-arm.c (arm_cpu_table): Add Cortex-A7.

2012-12-18  Aldy Hernandez  <aldyh@redhat.com>

	PR other/54324
	* doc/install.texi (Tools/packages necessary for building GCC):
	Suggest --disable-stage1-checking for older GCC's.

2012-12-18  Aldy Hernandez  <aldyh@redhat.com>

	PR other/54324
	* tree-ssa-coalesce.c (struct ssa_name_var_hash): Remove "union"
	from template parameter.

2012-12-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/54838
	* cfgloopmanip.c (fix_loop_structure): Re-discover latch
	edges first and mark loops for removal if no latch edges remain.
	Properly re-create LOOPS_HAVE_FALLTHRU_PREHEADERS.
	* loop-init.c (loop_optimizer_finalize): Set
	LOOPS_MAY_HAVE_MULTIPLE_LATCHES.

2012-12-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55555
	* tree-ssa-loop-niter.c (idx_infer_loop_bounds): Properly
	analyze evolution of the index for the loop it is used in.
	* tree-scalar-evolution.c (instantiate_scev_name): Take
	inner loop we will be creating a chrec for.  Generalize
	fix for PR40281 and prune invalid SCEVs.
	(instantiate_scev_poly): Likewise - pass down inner loop
	we will be creating a chrec for.
	(instantiate_scev_binary): Take and pass through inner loop.
	(instantiate_array_ref): Likewise.
	(instantiate_scev_convert): Likewise.
	(instantiate_scev_not): Likewise.
	(instantiate_scev_3): Likewise.
	(instantiate_scev_2): Likewise.
	(instantiate_scev_1): Likewise.
	(instantiate_scev_r): Likewise.
	(resolve_mixers): Adjust.
	(instantiate_scev): Likewise.

2012-12-18  Jakub Jelinek  <jakub@redhat.com>

	PR debug/55717
	* rtlhooks-def.h (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Define to
	gen_lowpart_if_possible.
	(gen_lowpart_no_emit_general): Remove prototype.
	* rtlhooks.c (gen_lowpart_no_emit_general): Removed.
	* simplify-rtx.c (simplify_unary_operation_1,
	simplify_binary_operation_1): Continue simplifying if
	rtl_hooks.gen_lowpart_no_emit returns NULL_RTX.
	* dwarf2out.c (mem_loc_descriptor) <case TRUNCATE>: Handle
	truncation like lowpart SUBREG.

2012-12-17  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Update Kaveh Ghazi's entry;
	remove broken link to Rutgers University.

2012-12-17  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* varasm.c (pending_assemble_externals_processed): Guard
	with ASM_OUTPUT_EXTERNAL.

2012-12-17  Andrew Stubbs  <ams@codesourcery.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* config/arm/arm.md (zero_extend<mode>di2): Add extra alternatives
	for NEON registers.
	Add alternative for one-instruction extend-in-place.
	(extend<mode>di2): Likewise.
	Add constraints for Thumb-mode memory loads.
	Prevent extend splitters doing NEON alternatives.
	* config/arm/iterators.md (qhs_extenddi_cstr, qhs_zextenddi_cstr):
	Adjust constraints to add new alternatives.
	* config/arm/neon.md: Add splitters for zero- and sign-extend.

2012-12-17  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.md (type): Add "simple_alu_shift" to attribute "type".
	(core_cycles): Update for simple_alu_shift.
	(thumb1_zero_extendhisi2,arm_zero_extendhisi2_v6): Use simple_alu_shift
	instead of a CPU-speicific condition for "type" attribute.
	(thumb1_zero_extendqisi2_v6,arm_zero_extendqisi2_v6): Likewise.
	(thumb1_extendhisi2,arm_extendhisi2_v6,arm_extendqisi_v6): Likewise.
	(thumb1_extendqisi2): Likewise.
	* config/arm/thumb2.md (thumb2_extendqisi_v6): Likewise.
	(thumb2_zero_extendhisi2_v6,thumb2_zero_extendqisi2_v6) Likewise.
	* config/arm/arm1020e.md (alu_shift_op): Use simple_alu_shift.
	* config/arm/arm1026ejs.md (alu_shift_op): Likewise.
	* config/arm/arm1136jfs.md (11_alu_shift_op): Likewise.
	* config/arm/arm926ejs.md (9_alu_op): Likewise.
	* config/arm/cortex-a15.md (cortex_a15_alu_shift): Likewise.
	* config/arm/cortex-a5.md (cortex_a5_alu_shift): Likewise.
	* config/arm/cortex-a8.md (cortex_a8_alu_shift,cortex_a8_mov): Likewise.
	* config/arm/cortex-a9.md (cortex_a9_dp,cortex_a9_dp_shift): Likewise.
	* config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
	* config/arm/cortex-r4.md (cortex_r4_alu_shift): Likewise.
	* config/arm/fa526.md (526_alu_shift_op): Likewise.
	* config/arm/fa606te.md (fa606te_core): Likewise.
	* config/arm/fa626te.md (626te_alu_shift_op): Likewise.
	* config/arm/fa726te.md (726te_alu_shift_op): Likewise.
	* config/arm/fmp626.md (mp626_alu_shift_op): Likewise.

2012-12-17  Richard Biener  <rguenther@suse.de>

	PR middle-end/54781
	* alias.c (ao_ref_from_mem): More appropriately constrain the
	base object we feed to the tree oracle.  Remove dead code.

2012-12-17  James Greenhalgh  <james.greenhalgh@arm.com>
	    Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_autovectorize_vector_sizes): New.
	(TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.

2012-12-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/55709
	Forward port from 4.7 branch:
	2012-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/52894
	* varasm.c (process_pending_assemble_externals): Set
	pending_assemble_externals_processed true.
	(assemble_external): Call assemble_external_real if the pending
	assemble externals have been processed.

2012-12-16  Eric Botcazou  <ebotcazou@adacore.com>
	    Tomash Brechko  <tomash.brechko@gmail.com>

	PR target/55673
	* config/sparc/sparc.c (sparc_emit_membar_for_model): Fix reversed
	handling of before and after cases.
	* config/sparc/sync.md (atomic_store): Fix pasto.

2012-12-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/55630
	* expr.c (expand_assignment): Do not call copy_blkmode_to_reg to move
	BLKmode return values to the return register.

2012-12-15  Alexandre Oliva <aoliva@redhat.com>

	PR libmudflap/53952
	* expr.c (mem_ref_refers_to_non_mem_p): Factor out
	implementation into...
	(addr_expr_of_non_mem_decl_p_1): ... this new function.
	(addr_expr_of_non_mem_decl_p): New.
	* tree.h (addr_expr_of_non_mem_decl_p): Declare.
	* tree-mudflap.c (mf_xform_derefs_1): Don't change MEM_REFs
	and TARGET_MEM_REFs that have an ADDR_EXPR of a non-mem DECL
	as base operand.

2012-12-14  Yvan Roux  <yvan.roux@linaro.org>

	* optabs.c (expand_atomic_store): Elide redundant model test.

2012-12-14  Teresa Johnson  <tejohnson@google.com>

	PR gcov-profile/55674
	* lto-cgraph.c (merge_profile_summaries): Set min correctly the
	first time we merge into a histogram entry.

2012-12-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55684
	* tree-ssa-loop-ivcanon.c (remove_redundant_iv_tests): Handle
	gracefully the case where we cannot compute the number of
	iterations at an exit.

2012-12-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55687
	* tree-chrec.h (no_evolution_in_loop_p): Properly use
	tree_contains_chrecs.

2012-12-13  Richard Henderson  <rth@redhat.com>

	PR middle-end/55492
	* optabs.c (expand_atomic_load): Emit acquire barrier after the load.

2012-12-13  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_pad_function_end): Consider barriers
	when looking for NOTE_INSN_CALL_ARG_LOCATION.

2012-12-13  Richard Biener  <rguenther@suse.de>

	PR middle-end/53476
	* varpool.c (varpool_remove_unreferenced_decls): Revert to 4.7
	behavior.

2012-12-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/unspecs.md: Add copyright notice.

2012-12-13  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Avoid
	-Wsign-compare warning.

2012-12-13  Richard Biener  <rguenther@suse.de>

	PR lto/55660
	* tree-streamer.c (record_common_node): Check that we are not
	recursively pre-loading nodes we want to skip.  Handle
	char_type_node appearing as part of va_list_type_node.

2012-12-13  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/55650
	* coverage.c (coverage_obj_init): Return false if no functions
	are being emitted.

2012-12-13  Steven Bosscher  <steven@gcc.gnu.org>

	* bitmap.c (struct bitmap_descriptor): Remove forward declaration.
	(struct bitmap_head_def): Remove desc pointer.  Add descriptor_id
	field.  Reorder fields for pointer alignment.
	* bitmap.c: Include vec.h.
	(struct bitmap_descriptor): Rename to bitmap_descriptor_d.
	(bitmap_descriptor): New typedef, pointer to bitmap_descriptor_d.
	Update all struct bitmap_descriptor references.
	(next_bitmap_desc_id): New running index for bitmap desciptors.
	(bitmap_descriptors): Vec of all bitmap descriptors by descriptor id.
	(hash_descriptor, eq_descriptor): Update for struct bitmap_descriptor
	change.
	(bitmap_descriptor): Rename function to get_bitmap_descriptor.
	Stuff newly allocated bitmap descriptor into bitmap_descriptors.
	Set the bitmap descriptor id.
	(bitmap_register): Lookup bitmap desciptor and store its ID in
	the passed bitmap.
	(register_overhead): Likewise.
	(bitmap_find_bit): Lookup descriptor by id in bitmap_descriptors.
	(print_statistics): Update for struct bitmap_descriptor change.

	* Makefile.in: Fix bitmap.o dependencies.

2012-12-13  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (get_representative_for): Adjust dumping.
	Mark created SSA names for release.
	(eliminate_bb): Insert only when expr is not NULL.

2012-12-12  Jakub Jelinek  <jakub@redhat.com>

	PR debug/55665
	* tree-inline.c (remap_decls): Change nonlocalized_list
	to pointer to pointer to vector from pointer to vector.
	(remap_block): Pass address of BLOCK_NONLOCALIZED_VARS.

	PR sanitizer/55508
	* builtin-attrs.def (ATTR_TMPURE_NOTHROW_LEAF_LIST,
	ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST): New.
	* asan.c (ATTR_TMPURE_NOTHROW_LEAF_LIST,
	ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST): Define.
	* sanitizer.def: Make __asan_report_* and __asan_handle_no_return
	builtins tm pure.

2012-12-12  Steve Ellcey  <sellcey@mips.com>

	* config/mips/mips.c (mips_option_override): Set
	mips_dbx_regno entries to IGNORED_DWARF_REGNUM by default.

2012-12-12  Steven Bosscher  <steven@gcc.gnu.org>

	* graph.c: Include sbitmap.h and cfgloop.h.
	(draw_cfg_nodes_no_loops): New function to dump basic blocks in
	topological order if the function does not have a loop tree.
	Handle unreachable blocks also.
	(draw_cfg_nodes_for_loop): New function to dump basic blocks in
	one loop tree node as a named cluster of nodes.
	(draw_cfg_nodes): New function to draw all CFG nodes.
	(draw_cfg_edges): New function to draw all CFG edges.
	(print_graph_cfg): Simplify using the new functions.
	* Makefile.in (graph.o): Fix dependencies.

2012-12-12  Steven Bosscher  <steven@gcc.gnu.org>

	* dumpfile.h (enum tree_dump_index): Remove TDI_vcg.
	* dumpfile.c (dump_files[]): Remove entry for TDI_vcg.
	* tree-cfg.c (gimple_cfg2vcg): Remove.
	(build_gimple_cfg): Don't call it.
	* doc/invoke.texi (-fdump-tree-vcg): Remove documentation.
	Correct GraphViz documentation, it does handle multiple functions
	in a single dump.

2012-12-12  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/55481
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fall
	back to general rewriting if we cannot leave an original biv
	definition alone.

2012-12-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/55659
	Revert
	2012-12-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/43631
	* var-tracking.c (emit_note_insn_var_location): If insn is followed
	by BARRIER, put note after the BARRIER.
	(next_non_note_insn_var_location): Skip over BARRIERs.
	(emit_notes_in_bb): If call is followed by BARRIER, put note after
	the BARRIER.

	2012-12-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/43631
	* var-tracking.c (emit_note_insn_var_location, emit_notes_in_bb):
	Clear BLOCK_FOR_INSN on notes emitted in between basic blocks,
	don't adjust BB_END when inserting note after BB_END of some bb.

2012-12-12  Steven Bosscher  <steven@gcc.gnu.org>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/52640
	* varasm.c (pending_assemble_externals_set): New pointer set.
	(process_pending_assemble_externals): Destroy the pointer set.
	(assemble_external): See if decl is in pending_assemble_externals_set,
	and add it to pending_assemble_externals if necessary.
	(init_varasm_once): Allocate pending_assemble_externals_set.

2012-12-12  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/55633
	* tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
	Ignore bounds on which bound += double_int_one overflowed.

2012-12-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/54121
	* config/sparc/sparc.md (tldo_stb_sp32): Fix pasto.
	(tldo_stb_sp64): Likewise.
	(tldo_sth_sp32): Likewise.
	(tldo_sth_sp64): Likewise.
	(tldo_stw_sp32): Likewise.
	(tldo_stw_sp64): Likewise.
	(tldo_stx_sp64): Likewise.

2012-12-11  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/55193
	* lra-constraints.c (loc_equivalence_callback): New function.
	(lra_constraints): Call simplify_replace_fn_rtx instead of
	loc_equivalence_change_p on DEBUG_INSNs.

2012-12-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/55642
	* config/arm/thumb2.md (*thumb2_abssi2):
	Set ce_count attribute to 2.
	(*thumb2_neg_abssi2): Likewise.

2012-12-11  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (get_variable_section): Don't return lcomm_section
	for asan_protect_global decls.
	* asan.c (asan_protect_global): Only avoid public common variables.
	Don't call get_variable_section here.

	PR middle-end/43631
	PR bootstrap/55615
	* var-tracking.c (emit_note_insn_var_location): If insn is followed
	by BARRIER, put note after the BARRIER.
	(next_non_note_insn_var_location): Skip over BARRIERs.
	(emit_notes_in_bb): If call is followed by BARRIER, put note after
	the BARRIER.

	* sanitizer.def: Add comment about importance of ordering of
	BUILT_IN_ASAN_REPORT* builtins.
	* cfgcleanup.c (old_insns_match_p): Don't cross-jump __asan_report_*
	builtins.

	* sanitizer.def (BUILT_IN_ASAN_HANDLE_NO_RETURN): New builtin.
	* asan.c (instrument_builtin_call): Change is_gimple_builtin_call
	gcc_assert to gcc_checking_assert.
	(maybe_instrument_call): Imit __builtin___asan_handle_no_return ()
	before noreturn calls other than __builtin_trap () and
	__builtin_unreachable ().

2012-12-11  Richard Biener  <rguenther@suse.de>

	PR other/54324
	* doc/install.texi (Tools/packages necessary for building GCC):
	State ISO C++98 host compiler requirement.  Increment minimum
	GCC version required for building all languages for a cross-compiler
	to 3.4 or later.

2012-12-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55079
	* tree-vrp.c (extract_range_from_binary_expr_1): Handle MAX/MIN_EXPR
	for more cases.
	(register_edge_assert_for_2): Register asserts for post-in/decrement
	tests.
	(check_array_ref): Dump what expression we emit array bound
	warnings for.
	(search_for_addr_array): Likewise.

2012-12-11  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-ivopts.c (prepare_decl_rtl) <ADDR_EXPR>: Generate RTL
	only for a DECL which HAS_RTL_P.

2012-12-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/predicates.md ("execute_operation"): New predicate.
	* config/s390/s390.md ("*execute_rl", "*execute"): Use the new
	predicate.

2012-12-10  Xinliang David Li  <davidxl@google.com>

	* config/i386/i386.c: Enable push/pop in pro/epilogue for modern CPUs.

2012-12-10  Steve Ellcey  <sellcey@mips.com>

	* config/mips/gnu-user.h (NO_SHARED_SPECS): Add space before option.

2012-12-10  Steve Ellcey  <sellcey@mips.com>

	PR target/54061
	* rtl.h (IGNORED_DWARF_REGNUM): New.
	* dwarf2out.c (reg_loc_descriptor): Check for IGNORED_DWARF_REGNUM.
	(mem_loc_descriptor): Ditto.
	* config/mips/mips.h (ALL_COP_REG_FIRST): New.
	(ALL_COP_REG_LAST): New.
	(ALL_COP_REG_NUM): Redefine using above macros.
	* config/mips/mips.c (mips_option_override): Set mips_dbx_regno
	coprocessor entries to IGNORED_DWARF_REGNUM.

2012-12-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/55466
	* lto-symtab.c (lto_symtab_merge_decls_1): Don't record the
	prevailing variable.

2012-12-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55107
	* tree-ssa-pre.c (struct pre_stats): Remove constified field.
	(bitmap_set_replace_value): Add gcc_unreachable.
	(do_regular_insertion): Re-write all_same handling.  Insert
	an assignment instead of a PHI in this case.
	(eliminate_bb): Record availability also for SSA names defined
	by a constant.
	(do_pre): Do not record constified events.
	(execute_fre): Likewise.

2012-12-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/spu/spu.md: Replace "operands" with "operands != NULL" in
	insn conditions.

2012-12-10  Jakub Jelinek  <jakub@redhat.com>

	* asan.c (asan_init_shadow_ptr_types): Move earlier in the file.
	Call initialize_sanitizer_builtins at the end.
	(asan_pp_string): Use TREE_TYPE (shadow_ptr_types[0])
	as character type instead of char_type_node.
	(asan_emit_stack_protection): Call asan_init_shadow_ptr_types
	if shadow_ptr_types isn't initialized.
	(asan_protect_global): Return true for STRING_CSTs except those
	created by asan_pp_string.
	(count_string_csts, add_string_csts): New functions.
	(struct asan_add_string_csts_data): New type.
	(asan_finish_file): Clear flag_asan at the beginning, restore at the
	end.  Traverse constant_pool_htab () to look for protected
	STRING_CSTs.  Don't call initialize_sanitizer_builtins,
	instead call asan_init_shadow_ptr_types if shadow_ptr_types isn't
	initialized yet.
	(asan_instrument): Don't call initialize_sanitizer_builtins.
	* varasm.c (output_constant_def_contents): If STRING_CST should be
	asan protected, align it sufficiently and emit padding after it.
	(categorize_decl_for_section): If flag_asan, don't put STRING_CSTs
	that should be asan protected into mergeable sections.  For
	-fmerge-all-constants, ignore it for -fmudflap or if decl is
	asan protected.

2012-12-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/neon.ml (opcode): Add Vrintn, Vrinta, Vrintp, Vrintm,
	Vrintz to type.
	(type features): Add Requires_arch type constructor.
	(ops): Define Vrintn, Vrinta, Vrintp, Vrintm, Vrintz features.
	* config/arm/neon-docgen.ml (intrinsic_groups): Define Vrintn,
	Vrinta, Vrintp, Vrintm, Vrintz, Vrintx.
	* config/arm/neon-testgen.ml (effective_target): Define check for
	Requires_arch 8.
	* config/arm/neon-gen.ml (print_feature_test_start): Handle
	Requires_arch.
	(print_feature_test_end): Likewise.
	Add 2012 to Copyright notice.
	* doc/arm-neon-intrinsics.texi: Regenerate.
	* config/arm/arm_neon.h: Regenerate.

2012-12-10 Kai Tietz  <ktietz@redhat.com>

	* stmt.c (expand_sjlj_dispatch_table): Fix off by one.

	PR target/53912
	* stmt.c (compute_cases_per_edge): Cast from pointer via intptr_t.
	(expand_case): Likewise.

	PR target/53912
	* print-tree.c (print_node): Cast from pointer via uintptr_t.

2012-12-10  Jakub Jelinek  <jakub@redhat.com>

	* asan.c (instrument_derefs): Handle bitfield COMPONENT_REFs
	accesses as reads/writes to their DECL_BIT_FIELD_REPRESENTATIVE.

2012-12-08  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-streamer-out.c (lto_write_tree): Do not reset the DECL_INITIAL of
	variables in the global constant pool.

2012-12-08  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/55158
	* sched-rgn.c (bb_state_array, bb_state): Add some explaining
	comment, and initialize to NULL explicitly.
	(realloc_bb_state_array): New function.
	(free_bb_state_array): New function.
	(schedule_region): Call realloc_bb_state_array after schedule_block.
	(sched_rgn_init): Use realloc_bb_state_array to initialize bb_state.
	(sched_rgn_finish): Use free_bb_state_array to free it.

2012-12-08  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-im.c (for_each_index) <CONST_DECL>: New case.

2012-12-07  Sriraman Tallan  <tmsriram@google.com>

	* toplev.c (process_options): Do not warn when -ffunction-sections
	and -fprofile are used together.

2012-12-07  Steven Bosscher  <steven@gcc.gnu.org>

	* ree.c (struct ext_cand): Remove GTY markers.

2012-12-07  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55141
	* lra-constraints.c (lra_constraints): Use biggest mode for
	df_set_regs_ever_live.

2012-12-07  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add UPPER_BOUND
	parameter.
	(try_unroll_loop_completely) Update.

2012-12-07  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/55395
	* varpool.c (varpool_remove_node): Don't drop DECL_INITIAL
	for -g for any kind of debug info.

2012-12-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54886
	* graphite-sese-to-poly.c (build_loop_iteration_domains): Properly
	free all memory.

2012-12-07  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/55078
	* ipa-inline-transform.c (inline_call): Turn #if 0 to
	#ifdef ENABLE_CHECKING.
	* ipa-prop.c (try_make_edge_direct_simple_call): Use
	ipa_value_from_jfunc.
	(try_make_edge_direct_virtual_call): Likewise.
	(update_indirect_edges_after_inlining): Lookup new_root_info and pass
	it to the functions above.

2012-12-07  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55590
	* tree-sra.c (build_ref_for_offset): Use get_object_alignment_1 to
	get base alignment.

2012-12-06  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/55597
	* config/i386/i386.c (legitimize_tls_address): Zero-extend x to Pmode,
	before using it as insn or call equivalent.

2012-12-06  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/sysv4.h (TARGET_ASAN_SHADOW_OFFSET): Define.
	* config/rs6000/rs6000.c (rs6000_asan_shadow_offset): New function.
	* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Disable if using ASAN.

2012-12-06  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/55395
	* varpool.c (varpool_remove_node): Don't drop DECL_INITIAL
	if -g and emitting DWARF2+.

2012-12-06  Pat Haugen <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Set
	default loop peeling limits.

2012-12-06  Jason Merrill  <jason@redhat.com>

	PR c++/55032
	PR c++/55245
	* tree.c (build_array_type_1): Re-layout if we found it in the
	hash table.

2012-12-06  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR 55599/sanitizer
	* config/darwin.h (LINK_COMMAND_SPEC_A): Remove static libasan support.

2012-12-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/43631
	* var-tracking.c (emit_note_insn_var_location, emit_notes_in_bb):
	Clear BLOCK_FOR_INSN on notes emitted in between basic blocks,
	don't adjust BB_END when inserting note after BB_END of some bb.

	PR c++/55137
	* fold-const.c (fold_binary_loc) <associate>: Don't introduce
	TREE_OVERFLOW through reassociation.  If type doesn't have defined
	overflow, but one or both of the operands do, use the wrapping type
	for reassociation and only convert to type at the end.

2012-12-06  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_stmt_1): Remove code handling folding stmts away.

2012-12-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* doc/sourcebuild.texi: Document arm_v8_neon_ok.

2012-12-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (neon_itype): Define NEON_RINT enum element.
	(neon_builtin_data): Register vrintn, vrinta, vrintp, vrintm,
	vrintz,	vrintx neon builtins.
	(arm_init_neon_builtins): Handle NEON_RINT.
	(arm_expand_neon_builtin): Likewise.
	* config/arm/unspecs.md: New file.
	* config/arm/arm.md ("unspec"): Move to unspecs.md.
	* config/arm/iterators.md (NEON_VRINT): New int iterator.
	(nvrint_variant): New int attribute.
	* config/arm/neon.md
	(neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): New pattern.
	("unspec"): Move to unspecs.md.
	* config/arm/iwmmxt2.md ("unspec"): Move to unspecs.md.

2012-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.md: Use "const_int 0" instead of match_test to simplify
	opaque cond in all call insns.

2012-12-05  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/55604
	* lra-lives.c (lra_create_live_ranges): If there are no referenced
	pseudos left, do not compute live ranges.

2012-12-05  Steven Bosscher  <steven@gcc.gnu.org>

	* doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Update documentation.
	* doc/tm.texi: Regenerate.
	* regs.h (REG_LIVE_LENGTH): Update comments to not refer to no longer
	existing files global.c and local-alloc.c.
	* regmove.c (copy_src_to_dest): Likewise.
	* function.h (struct rtl_data): Likewise.
	* ira-color.c (allocno_priority_compare_func): Likewise.
	* regstat.c (regstat_compute_ri): Likewise.
	* config/epiphany/epiphany.h, config/vax/vax.h, config/cris/cris.h,
	config/h8300/h8300.h, config/alpha/alpha.h, config/sparc/sparc.h,
	config/rs6000/rs6000.h, config/pdp11/pdp11.h, config/pa/pa.h,
	config/v850/v850.h, config/mn10300/mn10300.h, config/m32r/m32r.h,
	config/i386/i386.h, config/mcore/mcore.h, config/sh/sh.h,
	config/arm/arm.h (REGNO_OK_FOR_BASE_P): Likewise.

2012-12-05  Aldy Hernandez  <aldyh@redhat.com>

	PR target/54160
	* config/t-darwin (darwin-c.o): Depend on $(CPP_INTERNAL_H).
	* config/darwin-c.c (darwin_cpp_builtins): Only set __OBJC2__ when
	in obj mode.
	Include libcpp/internal.h.

2012-12-05  Michael Eager  <eager@eagercon.com>

	PR rtl-optimization/54739
	* config/microblaze/microblaze.md: (anddi3, iordi3, xordi3): Delete
	patterns.

2012-12-05  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add new builtins.
	* config/aarch64/aarch64-simd.md (simd_type): Add uzp.
	(aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): New.
	* config/aarch64/aarch64.c (aarch64_evpc_trn): New.
	(aarch64_evpc_uzp): Likewise.
	(aarch64_evpc_zip): Likewise.
	(aarch64_expand_vec_perm_const_1): Check for trn, zip, uzp patterns.
	* config/aarch64/iterators.md (unspec): Add neccessary unspecs.
	(PERMUTE): New.
	(perm_insn): Likewise.
	(perm_hilo): Likewise.

2012-12-05  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_split_combinev16qi): New.
	(aarch64_expand_vec_perm): Likewise.
	(aarch64_expand_vec_perm_const): Likewise.
	* config/aarch64/aarch64-simd.md (vec_perm_const<mode>): New.
	(vec_perm<mode>): Likewise.
	(aarch64_tbl1<mode>): Likewise.
	(aarch64_tbl2v16qi): Likewise.
	(aarch64_combinev16qi): New.
	* config/aarch64/aarch64.c
	(aarch64_vectorize_vec_perm_const_ok): New.
	(aarch64_split_combinev16qi): Likewise.
	(MAX_VECT_LEN): Define.
	(expand_vec_perm_d): New.
	(aarch64_expand_vec_perm_1): Likewise.
	(aarch64_expand_vec_perm): Likewise.
	(aarch64_evpc_tbl): Likewise.
	(aarch64_expand_vec_perm_const_1): Likewise.
	(aarch64_expand_vec_perm_const): Likewise.
	(aarch64_vectorize_vec_perm_const_ok): Likewise.
	(TARGET_VECTORIZE_VEC_PERM_CONST_OK): Likewise.
	* config/aarch64/iterators.md
	(unspec): Add UNSPEC_TBL, UNSPEC_CONCAT.
	(V_cmp_result): Add mapping for V2DF.

2012-12-05  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/aarch64/aarch64.c (aarch64_simd_mangle_map_entry): New
	typedef.
	(aarch64_simd_mangle_map): New table.
	(aarch64_mangle_type): Locate and return the mangled name for
	a given AdvSIMD vector type.

2012-12-05  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/aarch64/aarch64.c (aarch64_mangle_type): New function.
	(TARGET_MANGLE_TYPE): Define.

2012-12-05  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): New.
	* config/aarch64/aarch64-protos.h
	(aarch64_builtin_vectorized_function): Declare.
	* config/aarch64/aarch64-simd-builtins.def (frintz, frintp): Add.
	(frintm, frinti, frintx, frinta, fcvtzs, fcvtzu): Likewise.
	(fcvtas, fcvtau, fcvtps, fcvtpu, fcvtms, fcvtmu): Likewise.
	* config/aarch64/aarch64-simd.md
	(aarch64_frint_<frint_suffix><mode>): New.
	(<frint_pattern><mode>2): Likewise.
	(aarch64_fcvt<frint_suffix><su><mode>): Likewise.
	(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Likewise.
	* config/aarch64/aarch64.c (TARGET_VECTORIZE_BUILTINS): Define.
	(TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
	* config/aarch64/aarch64.md
	(btrunc<mode>2, ceil<mode>2, floor<mode>2)
	(round<mode>2, rint<mode>2, nearbyint<mode>2): Consolidate as...
	(<frint_pattern><mode>2): ...this.
	(lceil<su_optab><mode><mode>2, lfloor<su_optab><mode><mode>2)
	(lround<su_optab><mode><mode>2)
	(lrint<su_optab><mode><mode>2): Consolidate as...
	(l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): ... this.
	* config/aarch64/iterators.md (fcvt_target): New.
	(FCVT_TARGET): Likewise.
	(FRINT): Likewise.
	(FCVT): Likewise.
	(frint_pattern): Likewise.
	(frint_suffix): Likewise.
	(fcvt_pattern): Likewise.

2012-12-05  Steven Bosscher  <steven@gcc.gnu.org>

	* passes.c (pass_init_dump_file): Only open a clean graph dump file if
	the dump was not already initialized.

	Revert:
	2012-12-03  Steven Bosscher  <steven@gcc.gnu.org>
	* passes.c (finish_optimization_passes): Don't finish graph dumps here.
	(pass_fini_dump_file): Wrap in TV_DUMP.  Finish graph dumps.
	(execute_one_pass): Don't set up graph dumps here.

2012-12-05  Richard Biener  <rguenther@suse.de>

	PR lto/55525
	* gimple-streamer-in.c (input_gimple_stmt): Fixup ARRAY_REFs as well.

2012-12-04  Ian Lance Taylor  <iant@google.com>

	* godump.c (find_dummy_types): Output a dummy type if we couldn't
	output the real type.

2012-12-04  Steven Bosscher  <steven@gcc.gnu.org>

	* rtl.h (print_insn_with_notes): Remove prototype.
	(rtl_dump_bb_for_graph): New prototype.
	* sched-vis.c (print_insn_with_notes): Make static again.  Fix
	printing of notes.
	(rtl_dump_bb_for_graph): New function.
	* cfghooks.h (struct cfg_hooks) <dump_bb_for_graph>: New hook.
	(dump_bb_for_graph): New prototype.
	* cfghooks.c (dump_bb_for_graph): New function.
	* tree-cfg.c (gimple_cfg_hooks): Register gimple_dump_bb_for_graph
	as dump_bb_for_graph hook implementation for GIMPLE.
	* cfgrtl.c (rtl_cfg_hooks): Likewise for rtl_dump_bb_for_graph.
	(cfg_layout_rtl_cfg_hooks): Likewise.
	* graph.c (draw_cfg_node): Don't include sbitmap.h, rtl.h, tree.h,
	gimple.h, and gimple-pretty-print.h.
	(draw_cfg_node, draw_cfg_node_succ_edges): Use the uniqe function
	definition number instead of the function declaration UID.
	(print_graph_cfg): Take a struct function instead of a tree.
	Use the dump_bb_for_graph hook to dump the basic block content.
	* graph.h (print_graph_cfg): Update prototype.
	* passes.c (execute_function_dump): Update print_graph_cfg call.
	* Makefile.in (graph.o): Fixup dependencies.

2012-12-04  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Set
	TYPE_STUB_DECL.

2012-12-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_select_ccmode): Enable using CC of
	x + imm for higher immediates on z9-109 upwards.

2012-12-04  Richard Earnshaw  <rearnsha@arm.com>

	* arm.opt (cirrus-fix-invalid-insns): Delete option.
	* invoke.texi (cirrus-fix-invalid-insns): Remove documentation.

2012-12-04  Jakub Jelinek  <jakub@redhat.com>

	* tsan.c (instrument_expr): If expr_ptr isn't a gimple val, first
	store it into a SSA_NAME.

	PR sanitizer/55439
	* Makefile.in (tsan.o): Depend on tree-ssa-propagate.h.
	* sanitizer.def: Add __tsan_atomic* builtins.
	* asan.c (initialize_sanitizer_builtins): Adjust to also
	initialize __tsan_atomic* builtins.
	* tsan.c: Include tree-ssa-propagate.h.
	(enum tsan_atomic_action): New enum.
	(tsan_atomic_table): New table.
	(instrument_builtin_call): New function.
	(instrument_gimple): Take pointer to gimple_stmt_iterator
	instead of gimple_stmt_iterator.  Call instrument_builtin_call
	on builtin call stmts.
	(instrument_memory_accesses): Adjust instrument_gimple caller.
	* builtin-types.def (BT_FN_BOOL_VPTR_PTR_I1_INT_INT,
	BT_FN_BOOL_VPTR_PTR_I2_INT_INT, BT_FN_BOOL_VPTR_PTR_I4_INT_INT,
	BT_FN_BOOL_VPTR_PTR_I8_INT_INT, BT_FN_BOOL_VPTR_PTR_I16_INT_INT): New.

2012-12-04  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64.c (aarch64_simd_vector_alignment,
	aarch64_simd_vector_alignment_reachable): New.
	(TARGET_VECTOR_ALIGNMENT, TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE):
	Define.

2012-12-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55124
	* tree-ssa-pre.c (find_or_generate_expression): Instead of
	ICEing when we are not able to generate an expression defer it
	by signalling failure.  Fix possible wrong-code issue by
	not picking random REFERENCE expressions as fallback.
	(create_component_ref_by_pieces_1): Adjust.  Add failure paths.
	(create_expression_by_pieces): Likewise.
	(insert_into_preds_of_block): When expression generation failed
	for one edge make sure to not insert a PHI node.

2012-12-03  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.c (ia64_compute_frame_size): Allocate the scratch
	area if the function allocates dynamic stack space.
	(ia64_initial_elimination_offset): Adjust offsets to above change.

2012-12-03  Steven Bosscher  <steven@gcc.gnu.org>

	* gcse.c (struct reg_use): Remove unused struct.
	(gcse_emit_move_after): Do not create REG_EQUAL notes that reference
	the SET_DEST of the instruction the note would be attached to.
	* cse.c (cse_main): Add the DF_NOTE problem.

2012-12-03  Jakub Jelinek  <jakub@redhat.com>

	* sanitizer.def: Add Address Sanitizer builtins.
	Rename BUILT_IN_TSAN_READ_* to BUILT_IN_TSAN_READ* and
	BUILT_IN_TSAN_WRITE_* to BUILT_IN_TSAN_WRITE*.
	* Makefile.in (asan.o): Depend on langhooks.h.
	(tsan.o): Depend on asan.h.
	* asan.h (initialize_sanitizer_builtins): New prototype.
	* asan.c: Include langhooks.h.
	(report_error_func): Use builtin_decl_implicit of corresponding
	BUILT_IN_ASAN_REPORT_{LOAD,STORE}*.
	(asan_init_func): Removed.
	(initialize_sanitizer_builtins): New function.
	(asan_finish_file): Call it.  Use builtin_decl_implicit
	on BUILT_IN_ASAN_{INIT,{,UN}REGISTER_GLOBALS}.
	(asan_instrument): Call initialize_sanitizer_builtins.
	* builtins.def (DEF_SANITIZER_BUILTIN): Change condition to
	(flag_asan || flag_tsan).
	* tsan.c: Include asan.h and tsan.h.
	(get_memory_access_decl): Rename BUILT_IN_TSAN_{READ,WRITE}_*
	to BUILT_IN_TSAN_{READ,WRITE}*.
	(tsan_pass): Call initialize_sanitizer_builtins.
	(tsan_gate, tsan_gate_O0): Don't check if
	builtin_decl_implicit_p (BUILT_IN_TSAN_INIT) is true.
	(tsan_finish_file): Call initialize_sanitizer_builtins.
	* builtin-types.def (BT_FN_VOID_PTR_PTRMODE): New fn type.

2012-12-03  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/55401
	* trans-mem.c (get_tm_region_blocks): Exclude uninstrumented
	blocks from vector if requested.
	(collect_bb2reg): Pass new argument to get_tm_region_blocks.
	(get_bb_regions_instrumented): Add INCLUDE_UNINSTRUMENTED_P
	argument, and pass it to expand_regions.
	(execute_tm_mark): Pass new argument to get_bb_regions_instrumented.
	(execute_tm_edges): Same.

2012-12-03  Jakub Jelinek  <jakub@redhat.com>

	* asan.c (instrument_mem_region_access): Don't instrument
	if base doesn't have pointer type or len integral type.
	Add cast if len doesn't have size_t compatible type.
	(instrument_builtin_call): Don't instrument BUILT_IN_ATOMIC_LOAD,
	BUILT_IN_ATOMIC_TEST_AND_SET, BUILT_IN_ATOMIC_CLEAR,
	BUILT_IN_ATOMIC_EXCHANGE, BUILT_IN_ATOMIC_COMPARE_EXCHANGE
	and BUILT_IN_ATOMIC_STORE.

	* asan.c (instrument_assignment): Instrument lhs only
	for gimple_store_p and rhs1 only for gimple_assign_load_p.

2012-12-03  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* Makefile.in: Add target mddump, build/genmddump.o.  Extend
	genprogrtl with mddump.
	* genmddump.c: New.

2012-12-03  Steven Bosscher  <steven@gcc.gnu.org>

	* rtl.h (print_insn_with_notes): Prototype.
	* sched-vis.c (print_insn_with_notes): Export it.

	* gimple-pretty-print.h (gimple_dump_bb_for_graph): Prototype.
	* gimple-pretty-print.c (print_gimple_expr): Flush the buffer.
	(pp_gimple_stmt_1): Don't do it here.
	(gimple_dump_bb_for_graph): New function.
	* tree-pretty-print.c (print_generic_expr): Flush the buffer here.
	(dump_generic_node): Don't flush the buffer here.

	* graph.h (print_rtl_graph_with_bb): Rename to print_graph_cfg.
	* graph.c: Include gimple.h, dumpfile.h, and gimple-pretty-print.h.
	(draw_cfg_node): Handle GIMPLE basic blocks also.
	(print_rtl_graph_with_bb): Rename to print_graph_cfg.
	* passes.c (finish_optimization_passes): Don't finish graph dumps here.
	(execute_function_dump): Use print_graph_cfg. Enable dumping the CFG
	for GIMPLE also.
	(pass_init_dump_file): Wrap in TV_DUMP.  Set up CFG graph dumps.
	(pass_fini_dump_file): Wrap in TV_DUMP.  Finish graph dumps.
	(execute_one_pass): Don't set up graph dumps here.

2012-12-03  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa.c (warn_uninitialized_var): Use OPT_Wmaybe_uninitialized tag
	in the non-always executed case.

2012-12-03  Sofiane Naci  <sofiane.naci@arm.com>

	* config/aarch64/aarch64.c (aarch64_build_constant): Update prototype.
	Call emit_move_insn instead of printing movi/movn/movz instructions.
	Call gen_insv_immdi instead of printing movk instruction.
	(aarch64_add_constant): Update prototype.
	Generate RTL instead of printing add/sub instructions.
	(aarch64_output_mi_thunk): Update calls to aarch64_build_constant
	and aarch64_add_constant.

2012-12-03 Kai Tietz  <ktietz@redhat.com>

	PR target/53912
	* ggc-common.c (POINTER_HASH): Cast from pointer via intptr_t.

	PR target/53912
	* tree-dump.c (dump_pointer): Print pointer via HOST_WIDE_INT_PRINT.

	PR target/53912
	* pointer-set.c (hash1): Cast from pointer via uintptr_t.

2012-12-02  Marek Polacek  <polacek@redhat.com>

	PR middle-end/54838
	* cprop.c (bypass_block): Determine number of latches.  Return
	when there is more than one latch edge.

2012-12-02  Teresa Johnson  <tejohnson@google.com>

	PR gcov-profile/55551
	* lto-cgraph.c (merge_profile_summaries): Handle scaled histogram
	entries that map to the same index.

2012-12-02  Steven Bosscher  <steven@gcc.gnu.org>

	* optabs.c (add_equal_note): Do not create self-referencing REG_EQUAL
	notes.
	* fwprop.c (forward_propagate_and_simplify): Likewise.

2012-12-02  Steven Bosscher  <steven@gcc.gnu.org>

	* function.h (struct rtl_data): Remove epilogue_delay_list.
	* reorg.c (find_end_label): Simplify always-true test.
	(optimize_skip): Likewise.
	* final.c (leaf_function_p): Don't loop over epilogue_delay_list.
	(leaf_renumber_regs): Likewise.
	* varasm.c (mark_constant_pool): Likewise.
	* except.c (set_nothrow_function_flags): Likewise.
	* cfgrtl.c (print_rtl_with_bb): Likewise.

2012-12-02  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_function_value): Set the mode of the
	returned PARALLEL to that of the return-value, not VOIDmode.

2012-12-02  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Various corrections to punctuation and grammar
	throughout the file.  Use consistent terminology and proper names.
	Correct some minor markup issues.

2010-12-01  Xinliang David Li  <davidxl@google.com>

	* config/i386/i386.c: Allow sign extend instructions (cltd etc)
	on modern CPUs.

2012-12-02  Steven Bosscher  <steven@gcc.gnu.org>

	* reorg.c: Remove an obsolete comment.
	* config/pa/pa.md: Add back the HP-PA comment here, with details.

2012-11-30  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
	Deal with degenerate cases where the bitsize isn't positive.
	Rework comment.

2012-11-30  David Edelsohn  <dje.gcc@gmail.com>

	* xcoffout.c (xcoff_tls_data_section_name): Define.
	* xcoffout.h (xcoff_tls_data_section_name): Declare.
	* config/rs6000/rs6000.c (tls_data_section): Define.
	(TARGET_USE_BLOCKS_FOR_DECL_P): Define.
	(rs6000_legitimize_tls_address_aix): New function.
	(rs6000_legitimize_tls_address): Use new function for AIX.
	(rs6000_cannot_force_const_mem): No sum in TLS TOC symbols.
	Allow TLS symbol in constant pool other than ELF.
	(rs6000_legitimate_address_p): Allow TLS symbol other than ELF.
	(rs6000_assemble_visibility): Do not emit anything on AIX.
	(output_toc): Handle alias of TLS general-dynamic symbols.
	Emit TLS decorations on symbols.
	(rs6000_use_blocks_for_decl_p): New function.
	(rs6000_xcoff_output_tls_section_asm_op): New function.
	(rs6000_xcoff_asm_init_sections): Initialize tls_data_section.
	(rs6000_xcoff_select_section): Choose tls_data_section for
	thread-local storage.
	(rs6000_xcoff_file_start): Generate xcoff_tls_data_section_name.
	(rs6000_legitimate_constant_p): Allow TLS symbol other than ELF.
	* config/rs6000/rs6000.md (tls_tls_): Restrict to ELF.
	(tls_get_tpointer): New.
	(tle_get_tpointer_internal): New.
	(tls_get_addr<mode>): New.
	(tls_get_addr_internal<mode>): New.
	* config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Define.

2012-11-30  Teresa Johnson  <tejohnson@google.com>

	* lto-cgraph.c (output_profile_summary): Stream out sum_all
	and histogram.
	(input_profile_summary): Stream in sum_all and histogram.
	(merge_profile_summaries): Merge sum_all and histogram, and
	change to use RDIV.
	(input_symtab): Call compute_working_sets after merging summaries.
	* gcov-io.c (gcov_histo_index): Make extern for compiler.
	* gcov-io.h (gcov_histo_index): Ditto.
	* profile.c (compute_working_sets): Remove static keyword.
	* profile.h (compute_working_sets): Ditto.
	* Makefile.in (lto-cgraph.o): Depend on profile.h.

2012-11-30  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/52890
	PR tree-optimization/55415
	PR tree-optimization/54386
	PR target/55448
	* ipa-prop.c (ipa_modify_call_arguments): Be optimistic when
	get_pointer_alignment_1 returns false and the base was not a
	dereference.
	* tree-sra.c (access_precludes_ipa_sra_p): New parameter req_align,
	added check for required alignment.  Update the user.

2012-11-30  Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com>
	    Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.md (type): Subdivide "alu" into "alu_reg"
	and "simple_alu_imm".
	(core_cycles): Use new names.
	(arm_addsi3): Set type of patterns to use to alu_reg and simple_alu_imm.
	(addsi3_compare0, addsi3_compare0_scratch): Likewise.
	(addsi3_compare_op1, addsi3_compare_op2, compare_addsi2_op0): Likewise.
	(compare_addsi2_op1, arm_subsi3_insn, subsi3_compare0): Likewise.
	(subsi3_compare, arm_decscc,arm_andsi3_insn): Likewise.
	(thumb1_andsi3_insn, andsi3_compare0_scratch): Likewise.
	(zeroextractsi_compare0_scratch,iorsi3_insn,iorsi3_compare0): Likewise.
	(iorsi3_compare0_scratch, arm_xorsi3, thumb1_xorsi3_insn): Likewise.
	(xorsi3_compare0, xorsi3_compare0_scratch): Likewise.
	(thumb1_zero_extendhisi2,arm_zero_extendhisi2_v6): Likewise.
	(thumb1_zero_extendqisi2_v, arm_zero_extendqisi2_v6): Likewise.
	(thumb1_extendhisi2, arm_extendqisi_v6): Likewise.
	(thumb1_extendqisi2, arm_movsi_insn): Likewise.
	(movsi_compare0, movhi_insn_arch4, movhi_bytes): Likewise.
	(arm_movqi_insn, thumb1_movqi_insn, arm_cmpsi_insn): Likewise.
	(movsicc_insn, if_plus_move, if_move_plus): Likewise.
	* config/arm/neon.md (neon_mov<mode>/VDX): Likewise.
	(neon_mov<mode>/VQXMOV): Likewise.
	* config/arm/arm1020e.md (1020alu_op): Likewise.
	* config/arm/fmp626.md (mp626_alu_op): Likewise.
	* config/arm/fa726te.md (726te_alu_op): Likewise.
	* config/arm/fa626te.md (626te_alu_op): Likewise.
	* config/arm/fa606te.md (606te_alu_op): Likewise.
	* config/arm/fa526.md (526_alu_op): Likewise.
	* config/arm/cortex-r4.md (cortex_r4_alu, cortex_r4_mov): Likewise.
	* config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
	* config/arm/cortex-a9.md (cprtex_a9_dp): Likewise.
	* config/arm/cortex-a8.md (cortex_a8_alu, cortex_a8_mov): Likewise.
	* config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
	* config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
	* config/arm/arm926ejs.md (9_alu_op): Likewise.
	* config/arm/arm1136jfs.md (11_alu_op): Likewise.
	* config/arm/arm1026ejs.md (alu_op): Likewise.

2012-11-30  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (get_expr_value_id): Do not allocate value-ids here.

2012-11-30  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (run_scc_vn): Remove iteration propagating
	value_ids.

2012-11-30  Steven Bosscher  <steven@gcc.gnu.org>

	* coretypes.h (struct pretty_print_info): Make a coretype.
	(typedef pretty_printer): Likewise.
	* pretty-print.h (typedef pretty_printer): Not needed here anymore.
	* pretty-print.c (pp_write_text_as_dot_label_to_stream): New function.
	* rtl.h (str_pattern_slim): New prototype.
	(print_value, print_pattern, print_insn): Adjust prototypes to take
	a pretty-printer rather than a char buffer.
	* sched-vis.c (safe_concat): Remove.
	(print_exp): Print into a pretty-printer.
	(print_value): Likewise.
	(print_pattern): Likewise.
	(print_insn): Likewise.
	(print_insn_with_notes): New static function.
	(init_rtl_slim_pretty_print): New function.
	(dump_value_slim): Simplify.  Print into and flush a pretty-printer.
	(dump_insn_slim): Likewise.
	(dump_rtl_slim): Likewise.
	(str_pattern_slim): New function.
	* haifa-sched.c (model_recompute): Use str_pattern_slim instead of
	static buffers.
	(model_record_pressures): Likewise.
	(schedule_insn): Likewise.
	* sel-sched-dump.c (dump_insn_rtx_1): Likewise.
	(sel_prepare_string_for_dot_label): Refer to graph.c CFG dumper code.
	* graph.c: Include pretty-print.h.
	(init_graph_slim_pretty_print): New function.
	(print_escaped_line): Removed here, and reincarnated as
	pp_write_text_as_dot_label_to_stream.
	(draw_cfg_node): Print into a pretty printer.
	(draw_cfg_node_succ_edges): Likewise.
	(print_rtl_graph_with_bb): Likewise.
	* Makefile.in (graph.o): Fix dependencies.
	(tree-optimize.o, toplev.o, sched-vis.o): Likewise.

2012-11-30  Jakub Jelinek  <jakub@redhat.com>

	* tsan.c (is_load_of_const_p): Removed.
	(instrument_expr): Use result of get_inner_reference
	instead of get_base_address, avoid some unnecessary tests,
	use !pt_solution_includes and !may_be_aliased tests to
	check whether base might escape current function.

2012-11-30  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* gensupport.c (maybe_eval_c_test): Remove not-null check for expr.
	* read-rtl.c (apply_iterators): Initialize condition with "" instead
	of NULL.

2012-11-30  Kai Tietz  <ktietz@redhat.com>

	* config/i386/host-mingw32.c (va_granularity): Make none-const.
	(mingw32_gt_pch_alloc_granularity): Return OS' allocation granularity.
	(mingw32_gt_pch_use_address): Retry mapping of used address
	as multiple instances might interfer.

	* config/i386/mingw32.h (SHARED_LIBGCC_SPEC): Synchronize with
	cygwin-host.

2012-11-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/55321
	* calls.c (emit_library_call_value_1): Mark as no-nonlocal if no-throw.

2012-11-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/55456
	* lra-int.h (lra_new_regno_start): New external.
	* lra.c (lra_new_regno_start): New global.
	(lra): Set up lra_new_regno_start.
	* lra-constraints.c (match_reload): Sync values only for original
	pseudos.

2012-11-29 Kai Tietz  <ktietz@redhat.com>

	PR target/53912
	* prefix.c (lookup_key): Replace xmalloc/xrealloc
	use by XNEWVEC/XRESIZEVEC.

2012-11-29  Richard Earnshaw  <rearnsha@arm.com>

	PR target/55073
	* config/arm/neon.md (neon_vtrn<mode>_internal): Split into expand
	and insn patterns.  Re-order insn arguments to tie inputs to outputs.
	(neon_vzip<mode>_internal): Likewise.
	(neon_vuzp<mode>_internal): Likewise.

2012-11-29  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53094
	* fold-const.c (fold): Replace a CONSTRUCTOR with a VECTOR_CST.

2012-11-29  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (get_expr_value_id): Do not add expr
	to the set of value expressions here.
	(add_to_exp_gen, make_values_for_phi): Fold into ...
	(compute_avail): ... here, and avoid useless work.  Dump
	avail sets in processing order.
	(do_pre): Do not dump avail sets here.

2012-11-29  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>

	PR target/54974
	* config/arm/arm.md (thumb2_pool_range, pool_range): Add comment on
	Thumb pool ranges.
	(thumb1_extendhisi2): Reduce Thumb pool range.
	(arm_movdi): Likewise.
	(thumb1_movdi_insn): Likewise.
	(thumb1_movsi_insn): Likewise.
	(pic_load_addr_unified): Likewise.
	(pic_load_addr_32bit): Likewise.
	(pic_load_addr_thumb1): Likewise.
	(thumb1_movhf): Likewise.
	(arm_movsf_soft_insn): Likewise.
	(thumb1_movsf_soft_insn): Likewise.
	(movdf_soft_insn): Likewise.
	(thumb1_movdf_soft_insn): Likewise.
	* config/arm/neon.md (*neon_mov<mode>): Likewise.
	(*neon_mov<mode>): Likwise.
	* config/arm/thumb2.md: (*thumb2_movsi_insn): Likewise.
	(*thumb2_movhi_insn): Likewise.
	(*thumb2_extendqisi_v6): Likewise.
	(*thumb2_zero_extendqisi_v6): Likewise.
	(*thumb2_zero_extendqisi2_v6): Likewise.
	* config/arm/vfp.md: (*thumb2_movsi_vfp): Likewise.
	(*movdi_vfp): Likewise.
	(*movdi_vfp_cortexa8): Likewise.
	(*thumb2_movsf_vfp): Likewise.
	(*thumb2_movdf_vfp): Likewise.

2012-11-29  Kai Tietz  <ktietz@redhat.com>

	PR target/55171
	* config/i386/i386.c (get_scratch_register_on_entry): Handle
	thiscall-convention.
	(split_stack_prologue_scratch_regno): Likewise.
	(ix86_static_chain): Likewise.
	(x86_output_mi_thunk): Likewise.

2012-11-29  Marek Polacek  <polacek@redhat.com>

	* cprop.c (bypass_block): Improve debug message.

2012-11-29  Oleg Raikhman  <oleg@adapteva.com>

	* config/epiphany/epiphany.h (FIXED_REGISTERS, CALL_USED_REGISTERS):
	Make r40..r43 call-used.
	(REG_ALLOC_ORDER): Sort r40..r43 into the call-used registers.

2012-11-29  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/predicates.md (addsub_operator): New predicate.
	* config/epiphany/epiphany-sched.md (sched_use_fpu): New attribute.
	* config/epiphany/epiphany.md (isub_i+1): New peephole2.
	* config/epiphany/epiphany-protos.h (get_attr_sched_use_fpu): Declare.

	* config/epiphany/epiphany.h (EPIPHANY_LIBRARY_EXTRA_SPEC): Define.
	(EXTRA_SPECS, DRIVER_SELF_SPECS): Likewise.
	* config/epiphany/t-epiphany (SPECS): Set.
	(specs): New rule.

	* config/epiphany/epiphany.md (isub_i+1): Work around generator bug.

	* config/epiphany/epiphany.c (epiphany_adjust_cost): Use
	reg_overlap_mentioned_p.

2012-11-28  Jakub Jelinek  <jakub@redhat.com>

	PR debug/36728
	PR debug/55467
	PR middle-end/55507
	PR bootstrap/55511
	* cselib.c (cselib_process_insn): If cselib_preserve_constants,
	don't reset table and exit early on volatile insns and setjmp.
	Reset table afterwards on setjmp.

2012-11-28  Andrew Pinski  <apinski@cavium.com>

	PR bootstrap/54279
	* Makefile.in (${QMTEST_DIR}/context): Use xg++ instead of g++.

2012-11-28  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/55052
	* simplify-rtx.c (simplify_subreg): Restore SCALAR_INT_MODE_P check.

2012-11-28  David Edelsohn  <dje.gcc@gmail.com>

	* target.def (use_blocks_for_decl_p): New hook.
	* varasm.c (use_blocks_for_decl_p): Apply hook as final condition.
	* doc/tm.texi.in (USE_BLOCKS_FOR_DECL_P): New description.
	* doc/tm.texi: Regenerated.

2012-11-28  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/55438
	* expmed.c (simple_mem_bitfield_p): New function, extracted from
	store_bit_field_1 and extract_bit_field_1.  Use GET_MODE_ALIGNMENT
	rather than bitsize when checking the alignment.
	(store_bit_field_1, extract_bit_field_1): Call it.
	* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
	Don't limit ALIGN_.  Assume that memory is mapped in chunks of at
	least word size, regardless of BIGGEST_ALIGNMENT.
	(bit_field_mode_iterator::get_mode): Use GET_MODE_ALIGNMENT rather
	than unit when checking the alignment.
	(get_best_mode): Use GET_MODE_ALIGNMENT.

2012-11-28  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55512
	* lra-assigns.c (assign_by_spills): Assigned arbitrary hard regs
	to failed reload pseudos instead of changing asm pattern.
	* lra-constraints.c (MAX_CONSTRAINT_ITERATION_NUMBER): Increase value.

2012-11-28  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR other/55358
	* dse.c (rest_of_handle_dse): Remove superfluous clearing.

2012-11-28  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/predicates.md (move_double_src_operand):
	Check that misaligned addresses are offsettable.
	(move_dest_operand): Likewise.
	* config/epiphany/epiphany.c (REG_OK_FOR_BASE_P): Don't force a
	misaligned stack address to reg+index.

	* config/epiphany/epiphany.opt (mfp-iarith): New option.
	* config/epiphany/epiphgany.md (addsi3): Check for TARGET_FP_IARITH.
	(subsi3, iadd, isub): Rename to ..
	(subsi3_i, iadd_i, isub_i): .. This.
	(subsi3, iadd, isub): New define_expands.

	* config/epiphany/epiphgany.md (attribute type): Add v2fp.
	(attribute fp_mode): Test for v2fp.
	(<float_operation:insn_opname>v2sf3_i): Change type to v2fp.
	* config/epiphany/epiphany-sched.md (fp_arith_nearest,
	fp_arith_trunc): Combine to ..
	(fp_arith): .. this.
	(v2fp_arith): New insn reservation.

	* config/epiphany/epiphgany.md (maddsi_combine): Fix output pattern.

2012-11-28  Oleg Raikhman  <oleg@adapteva.com>

	* config/epiphany/epiphany.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define.

2012-11-28  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.h (HARD_REGNO_RENAME_OK): Define.
	* config/epiphany/epiphany-protos.h (epiphany_regno_rename_ok):
	Declare.
	* config/epiphany/epiphany.c (epiphany_regno_rename_ok): New function.

	* config/epiphany/epiphany.md (mov<mode>, *mov<mode>_insn): Check
	for misaligned memory operands.
	* config/epiphany/predicates.md (misaligned_operand): New predicate.

	* config/epiphany/epiphany.opt (-may-round-for-trunc): New option.
	* config/epiphany/epiphany.md (*fix_truncsfsi2_i): Take it
	into account.

2012-11-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54547
	* tree-vrp.c (set_and_canonicalize_value_range): Handle
	1-bit anti-ranges explicitely.
	(extract_range_from_assert): Properly canonicalize all
	built anti-ranges.

2012-11-28  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (layout_type) <ARRAY_TYPE>: Do not clear TREE_OVERFLOW
	on overflowed zeroes, except in one specific case.

2012-11-28  Marc Glisse  <marc.glisse@inria.fr>

	PR middle-end/55266
	* fold-const.c (fold_ternary_loc) [BIT_FIELD_REF]: Handle
	CONSTRUCTOR with vector elements.
	* tree-ssa-propagate.c (valid_gimple_rhs_p): Handle CONSTRUCTOR
	and BIT_FIELD_REF.

2012-11-28  Richard Biener  <rguenther@suse.de>

	PR c/35634
	* gimple.h (gimplify_self_mod_expr): Declare.
	* gimplify.c (gimplify_self_mod_expr): Export.  Take a different
	type for performing the arithmetic in.
	(gimplify_expr): Adjust.
	* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Strip
	sign conversions we can re-apply after adjusting the IV.

2012-11-28  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/55006
	* loop-unroll.c (struct iv_to_split): Add new 'orig_var' member.
	(analyze_iv_to_split_insn): Record it.
	(maybe_strip_eq_note_for_split_iv): New function to remove REG_EQUAL
	notes that refer to IVs that are being split.
	(apply_opt_in_copies): Use maybe_strip_eq_note_for_split_iv.  Twice.
	Use FOR_BB_INSNS_SAFE.

2012-11-27  Steven Bosscher  <steven@gcc.gnu.org>

	* rtl.h (debug_bb_n_slim, debug_bb_slim, debug_insn_slim): Remove
	prototypes.
	(debug_rtl_slim): Rename to dump_rtl_slim.
	(print_value_slim): Rename to dump_value_slim.
	* ira.c (ira_update_equiv_info_by_shuffle_insn): Update
	print_value_slim user.
	* lra.c (lra_process_new_insns): Use dump_insn_slim to dump single
	insns.  Use dump_rtl_slim for insn chains.
	* lra-constraints.c (get_reload_reg): Update print_value_slim user.
	(process_addr_reg): Likewise.
	(equiv_address_substitution): Likewise.
	(inherit_reload_reg): Likewise.  Use dump_insn_slim to dump single
	insns.
	(check_and_process_move): Likewise.
	(lra_constraints): Likewise.
	(split_reg): Likewise.
	(update_ebb_live_info): Likewise.
	(remove_inheritance_pseudos): Likewise.
	* sched-vis.c: Don't include sched-int.h.
	Remove #ifdef INSN_SCHEDULING tests.
	(print_value_slim): Rename to dump_value_slim.  Simplify a few
	cases using GET_RTX_NAME.
	(print_pattern): Do not handle UNSPEC and UNSPECV here, explain why.
	(print_insn): Reorganize code to be independent of INSN_SCHEDULING.
	Always print CALL_INSN patterns.  Harmonize INSN_UID dumping template.
	Handle NOTE_INSN_CALL_ARG_LOCATION.
	(dump_rtl_slim): Copied from debug_rtl_slim.
	(debug_rtl_slim): Wrapper around dump_rtl_slim to stderr.
	* haifa-sched.c (schedule_insn): Update print_insn user.

2012-11-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55458
	* lra-assigns.c: Include rtl-error.h.
	(assign_by_spills): Report about asm impossible constraints.
	* Makefile.in (lra-assigns.c): Add $(RTL_ERROR_H).

2012-11-27  Paolo Bonzini  <pbonzini@redhat.com>

	PR rtl-optimization/55489
	* gcse.c (compute_transp): Precompute a canonical version
	of XEXP (x, 0), and pass it to canon_true_dependence.

	* alias.c (init_alias_analysis): Fix allocation of reg_known_value.

2012-11-27  Diego Novillo  <dnovillo@google.com>

	* vec.h: Replace 'class vec' with 'struct vec' everywhere.
	(ggc_internal_cleared_alloc_stat): Remove.
	(va_gc::reserve): Add PASS_MEM_STAT to ggc_realloc_stat call.
	(va_stack::reserve): Add PASS_MEM_STAT to va_heap::reserve call.
	(vec<T, A, vl_embed>::copy): Replace ALONE_MEM_STAT_DECL with
	ALONE_CXX_MEM_STAT_INFO.
	(vec_safe_reserve): Replace MEM_STAT_DECL with CXX_MEM_STAT_INFO.
	(vec_safe_reserve_exact): Likewise.
	(vec_alloc): Likewise.
	(vec_safe_grow): Likewise.
	(vec_safe_grow_cleared): Likewise.
	(vec_safe_push): Likewise.
	(vec_safe_insert): Likewise.
	(vec_safe_splice): Likewise.
	(vec_alloc): Likewise.
	(vec_check_alloc): Likewise.

2012-11-27  Marc Glisse  <marc.glisse@inria.fr>

	* tree-cfg.c (verify_gimple_comparison): Verify that vector
	comparison returns a vector.

2012-11-27  Meador Inge  <meadori@codesourcery.com>

	* collect2.c (main): Call find_file_set_debug.
	(find_a_find, add_prefix, prefix_from_env, prefix_from_string):
	Factor out into ...
	* file-find.c (New file): ... here and ...
	* file-find.h (New file): ... here.
	* gcc-ar.c (standard_exec_prefix): New variable.
	(standard_libexec_prefix): Ditto.
	(tooldir_base_prefix) Ditto.
	(self_exec_prefix): Ditto.
	(self_libexec_prefix): Ditto.
	(self_tooldir_prefix): Ditto.
	(target_version): Ditto.
	(path): Ditto.
	(target_path): Ditto.
	(setup_prefixes): New function.
	(main): Rework how wrapped programs are found.
	* Makefile.in (OBJS-libcommon-target): Add file-find.o.
	(AR_OBJS): New variable.
	(gcc-ar$(exeext)): Add dependency on $(AR_OBJS).
	(gcc-nm$(exeext)): Ditto.
	(gcc-ranlib(exeext)): Ditto.
	(COLLECT2_OBJS): Add file-find.o.
	(collect2.o): Add file-find.h prerequisite.
	(file-find.o): New rule.

2010-11-27  Dehao Chen  <dehao@google.com>

	* ipa-prop.c (ipa_modify_call_arguments): Set loc correctly.
	* emit-rtl.c (last_location): Remove unused variable.

2012-11-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md
	(*jcc<X87MODEF:mode>_<SWI24:mode>_i387 splitters): Remove
	unneeded temporary.

2012-11-27  Dehao Chen  <dehao@google.com>

	* cfgrtl.c (rtl_merge_blocks): Check with UNKNOWN_LOCATION correctly.
	(cfg_layout_merge_blocks): Likewise.

2012-11-27  Jakub Jelinek  <jakub@redhat.com>

	* passes.c (init_optimization_passes): Add pass_asan and pass_tsan
	to -Og optimization passes.

2012-11-27  H.J. Lu  <hongjiu.lu@intel.com>
	    Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR lto/54795
	* lto-opts.c (lto_write_options): Also handle
	OPT_SPECIAL_unknown, OPT_SPECIAL_ignore and
	OPT_SPECIAL_program_name.

	PR lto/55474
	* lto-wrapper.c (merge_and_complain): Handle
	OPT_SPECIAL_unknown, OPT_SPECIAL_ignore,
	OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.

2012-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/52650
	* function.c (instantiate_virtual_regs_in_insn): Don't delete invalid
	asm gotos, instead just clear their template and inputs.

	PR tree-optimization/55110
	* tree-vect-loop.c (vectorizable_reduction): Don't assert
	that STMT_VINFO_RELATED_STMT of orig_stmt is stmt.

2012-11-27  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_stmt_1): Remove unnecessary code.

2012-11-27  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/arm.c (thumb1_reorg): New function.
	(arm_reorg): Call thumb1_reorg.
	(thumb1_final_prescan_insn): Record src operand in thumb1_cc_op0.
	* config/arm/arm.md : Remove peephole2 patterns which rewrite move
	into subtract of ZERO.

2012-11-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/55331
	* gimple-fold.c (gimplify_and_update_call_from_tree): Replace
	stmt with a NOP instead of removing it.

2012-11-27  Steven Bosscher  <steven@gcc.gnu.org>

	* loop-invariant.c (check_invariant_table_size): Take sizeof of
	the right type.

	* reorg.c (resource_conflicts_p): Use hard_reg_set_intersect_p.
	(rare_destination): Remove.
	(mostly_true_jump): Simplify.  Base result on REG_BR_PROP notes if
	available, otherwise assume branches are not taken.
	(fill_eager_delay_slots): Update mostly_true_jump call.
	(relax_delay_slots): Likewise.

2012-11-26  Eric Botcazou  <ebotcazou@adacore.com>

	* reorg.c (redundant_insn): Do not handle DEBUG_INSNs.

2012-11-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/55277
	* lra-constraints.c (in_class_p): Check reg class contents too.

2012-11-26  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_builtin_decls): New.
	(aarch64_init_simd_builtins): Store declaration after builtin
	initialisation.
	(aarch64_builtin_decl): New.
	* config/aarch64/aarch64-protos.h (aarch64_builtin_decl): New.
	* config/aarch64/aarch64.c (TARGET_BUILTIN_DECL): Define.

2012-11-26  Steven Bosscher  <steven@gcc.gnu.org>

	* doc/invoke.texi: Remove -dv documentation.  Fix up graph dump related
	documentation.  Document the '-graph' dump option.  Complete the '-slim'
	dump option documentation.

	* common.opt (Variable graph_dump_format): Remove.
	* flag-types.h (enum graph_dump_types): Remove.
	* flags.h (dump_for_graph): Remove.
	* opts.c (decode_d_option): Remove -dv handling.
	* sched-int.h (print_insn, print_pattern, print_value): Move prototypes
	from here ...
	* rtl.h: ...to here.  Add note that these functions ought to be in
	another file.
	* sched-vis.c (print_insn): Add detailed dump for insn notes.
	* print-rtl.c (dump_for_graph): Remove.
	(print_rtx): Remove dump_for_graph related code.
	* graph.c: Almost complete re-write to dump DOT (GraphViz) dumps
	instead of VCG dumps.
	* graph.h (print_rtl_graph_with_bb): Update prototype.
	* passes.c (finish_optimization_passes): Fix profile dump finishing.
	Unconditionally loop over graph dumps to finalize.
	(execute_function_dump): Split code to dump graphs to separate block.
	(execute_one_pass): Don't set TDF_GRAPH here, let the dump option
	decoders do their job.

	* ddg.c (vcg_print_ddg): Make it a DEBUG_FUNCTION.
	* toplev.c: Don't include graph.h.
	* tree-optimize.c: Don't include graph.h.

2012-11-26  Marek Polacek  <polacek@redhat.com>

	* cprop.c (hash_set): Remove variable.  Use regno variable directly.

2012-11-26  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (DECL_RESTRICTED_P): Delete.
	(DECL_READ_P): Add comment.
	(DECL_NONSHAREABLE): Likewise.
	(TYPE_NO_FORCE_BLK): Fix comment.
	(struct tree_decl_common): Remove decl_restricted_flag, add decl_flag_3.
	* tree-emutls.c (new_emutls_decl): Do not deal with DECL_RESTRICTED_P.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.

	* alias.c (nonoverlapping_component_refs_p): Fix thinko.

2012-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* doc/sourcebuild.texi: Document arm_v8_vfp_ok.

2012-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.h (TARGET_FPU_ARMV8): New macro.
	* config/arm/arm.md (UNSPEC_VRINTZ, UNSPEC_VRINTP, UNSPEC_VRINTM)
	(UNSPEC_VRINTR, UNSPEC_VRINTX, UNSPEC_VRINTA): New unspecs.
	(f_rints, f_rintd): New types.
	* config/arm/iterators.md (VRINT): New int iterator.
	(F_fma_type): Remove.
	(vfp_type): New mode attribute.
	(vfp_double_cond): Likewise.
	(vrint_pattern, vrint_variant, vrint_predicable): New int attribute.
	* config/arm/vfp.md (fma<SDF:mode>4): Use vfp_type iterator
	instead of F_fma_type.
	(*fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4): Likewise.
	(<vrint_pattern><SDF:mode>2): New pattern.

2012-11-26  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (const_binop): Adjust comment.
	(extract_muldiv_1): Likewise.
	(fold_comparison): Likewise.
	* stor-layout.c (place_field): Fix typo.
	* tree.c (double_int_fits_to_tree_p): Remove obsolete comment.
	(force_fit_type_double): Likewise.  Fix long line.

2012-11-26  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.h (TARGET_LDRD): Reject Thumb1 targets.

2012-11-26  Matthias Klose  <doko@ubuntu.com>

	* config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix unbalanced
	parentheses.

2012-11-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/54471
	* tree-vrp.c (extract_range_from_binary_expr_1): For MULT_EXPR,
	don't canonicalize range if min2 is zero.

2012-11-26  Hans-Peter Nilsson  <hp@bitrange.com>

	PR middle-end/55030
	* builtins.c (expand_builtin_setjmp_receiver): Update comment
	regarding purpose of blockage.
	* emit-rtl.c [!HAVE_blockage] (gen_blockage): Similarly for
	the head comment.
	* rtlanal.c (volatile_insn_p): Ditto.
	* doc/md.texi (blockage): Update similarly.  Change wording to
	require one of two forms, rather than implying a wider choice.
	* cse.c (cse_insn): Where checking for blocking insns, use
	volatile_insn_p instead of manual check for volatile ASM.
	* dse.c (scan_insn): Ditto.
	* cselib.c (cselib_process_insn): Ditto.

2012-11-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (<sse>_loadu<ssemodesuffix><avxsizesuffix>):
	Do not depend on TARGET_SSE_TYPELESS_STORES.
	(<sse2>_loaddqu<avxsizesuffix>): Ditto.
	(<sse>_storeu<ssemodesuffix><avxsizesuffix>): Fix handling of
	TARGET_SSE_TYPELESS_STORES.
	(<sse2>_storedqu<avxsizesuffix>): Ditto.

2012-11-25  Steven Bosscher  <steven@gcc.gnu.org>

	* doc/tm.texi.in (DELAY_SLOTS_FOR_EPILOGUE): Remove documentation.
	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
	* doc/tm.texi: Regenerate.
	* reorg.c (fill_simple_delay_slots): Remove code conditional on
	DELAY_SLOTS_FOR_EPILOGUE being defined.
	(make_return_insns, dbr_schedule): Likewise.
	* system.h (DELAY_SLOTS_FOR_EPILOGUE): Poison.
	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.

2012-11-24  Jack Howarth <howarth@bromo.med.uc.edu>

	* config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fsanitize=address.

2012-11-24  Matthias Klose  <doko@ubuntu.com>

	* configure.ac (multiarch): Use $enableval instead of $withval.
	* configure: Regenerate.
	* config/i386/t-kfreebsd (MULTILIB_OSDIRNAMES): Filter out x32.
	* gcc/config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use
	x86_64-linux-gnux32 as multiarch name for x32.

2012-11-23  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-fsanitize=address): Remove obsolete remark.

2012-11-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/54046
	* Makefile.in (gimple-low.o): Depend on langhooks.h.
	* gimple-low.c: Include langhooks.c.
	(block_may_fallthru): Handle TARGET_EXPR and ERROR_MARK,
	by default call lang_hooks.block_may_fallthru.
	* langhooks.h (struct lang_hooks): Add block_may_fallthru langhook.
	* langhooks-def.h (LANG_HOOKS_BLOCK_MAY_FALLTHRU): Define.
	(LANG_HOOKS_INITIALIZER): Use it.

2012-11-23  Jan Hubicka  <jh@suse.cz>

	* i386-c.c (ix86_target_macros_internal): Update handling of core
	chips.
	* i386.c (DUMMY_STRINGOP_ALGS): Update
	(*_cost): Update.
	(core_cost): Copy from generic64_cost; fix stringop descriptors.
	(m_CORE2_32, m_CORE2_64, m_COREI7_32, m_COREI7_64, m_CORE2I7_32,
	m_CORE2I7_64): Remove.
	(m_CORE2, m_COREI7, m_CORE2I7): Update.
	(initial_ix86_tune_features): Update.
	(processor_target): Update.
	(ix86_option_override_internal): Update.
	(ix86_option_override_internal): Remove PROCESSOR_CORE2_64,
	PROCESSOR_COREI7_64 special cases.
	(decide_alg): Add noalign parameter; set it.
	(ix86_expand_movmem, ix86_expand_setmem): Update noalign handling.
	(ix86_issue_rate): Update.
	(ia32_multipass_dfa_lookahead): Update.
	(ix86_sched_init_global): Update.
	(get_builtin_code_for_version): Update.
	* i386.h (stringop_strategy): Add noalign flag.
	(TARGET_CORE2_32, TARGET_CORE2_64, TARGET_COREI7_32, TARGET_COREI7_64):
	Remove.
	(TARGET_CORE2, TARGET_COREI7): New.
	(enum processor_type): Remove PROCESSOR_CORE2_32, PROCESSOR_CORE2_64,
	PROCESSOR_COREI7_32, PROCESSOR_COREI7_64; add PROCESSOR_CORE2,
	PROCESSOR_COREI7.

2012-11-23  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/55388
	* alias.c (nonoverlapping_component_refs_p): Handle bitfields.
	* emit-rtl.c (adjust_address_1): Deal with VOIDmode early.
	* expmed.c (store_bit_field): Turn the call to adjust_address
	into a call to adjust_bitfield_address_size.

2012-11-23  Vladimir Makarov  <vmakarov@redhat.com>

	* lra.c (lra): Move init_reg_info and expand_reg_info calls before
	init_insn_recog_data.

2012-11-23  Jakub Jelinek  <jakub@redhat.com>

	* tsan.c: Fix up comment formatting.
	(instrument_gimple): Ignore gimple_clobber_p stmts.
	(pass_tsan, pass_tsan_O0): Remove TODO_update_address_taken
	from todo_flags_finish.

	PR sanitizer/55435
	* asan.c (gate_asan): Don't instrument functions with
	no_address_safety_analysis attribute.
	(gate_asan_O0): Use !optimize && gate_asan ().
	* doc/extend.texi (no_address_safety_analysis): Document new
	function attribute.

2012-11-22  Teresa Johnson  <tejohnson@google.com>
	    Jan Hubicka  <jh@suse.cz>

	* predict.c (maybe_hot_count_p): Use threshold from profiled working
	set instead of hard limit.
	(cgraph_maybe_hot_edge_p): Invoke maybe_hot_count_p() instead of
	directly checking limit.
	* params.def (HOT_BB_COUNT_FRACTION): Remove.
	(HOT_BB_COUNT_WS_PERMILLE): New parameter.
	* doc/invoke.texi (hot-bb-count-fraction): Remove.
	(hot-bb-count-ws-permille): Document.

2012-11-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/55430
	* lra.c: Move #include "hard-reg-set.h" before #include "rtl.h".
	(new_insn_reg): Update biggest_mode.
	(collect_non_operand_hard_regs): Check eliminable regs too.
	(initialize_lra_reg_info_element): Initialize biggest_mode.
	(add_regs_to_insn_regno_info): Ignore non-allocatable
	non-eliminable hard regs.
	(lra.c): Move setting lra_no_alloc_regs before
	init_insn_recog_data.
	* lra-constraints.c (simplify_operand_subreg): Add a comment.
	(lra_constraints): Ignore equivalent memory of
	regs occuring in paradoxical subregs.
	* lra-lives.c (lra_create_live_ranges): Add a comment.

2012-11-22  Dmitry Vyukov  <dvyukov@google.com>
	    Wei Mi  <wmi@google.com>

	* builtins.def (DEF_SANITIZER_BUILTIN): Define tsan builtins.
	* sanitizer.def: Ditto.
	* Makefile.in (tsan.o): Add tsan.o target.
	(BUILTINS_DEF): Add sanitizer.def.
	* passes.c (init_optimization_passes): Add tsan passes.
	* tree-pass.h (register_pass_info): Ditto.
	* toplev.c (compile_file): Ditto.
	* doc/invoke.texi: Document tsan related options.
	* gcc.c (LINK_COMMAND_SPEC): Add LIBTSAN_SPEC in link command if
	-fsanitize=thread.
	* tsan.c: New file about tsan.
	* tsan.h: Ditto.
	* common.opt: Add -fsanitize=thread.

2012-11-22  Uros Bizjak  <ubizjak@gmail.com>

	* doc/md.texi (RTL Templates Transformation): Use @pxref for
	cross-reference in parentheses.

2012-11-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* doc/md.texi (AArch64 family): Remove Utf.

2012-11-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*jcc<mode>_0_i387): Macroize insn
	from *fp_jcc_3_387 using X87MODEF mode iterator.
	(*jcc<mode>_0_r_i387): New.
	(*jccxf_i387): Ditto.
	(*jccxf_r_i387): Ditto.
	(*jcc<mode>_i387): Macroize insn from *fp_jcc_1_387 using
	MODEF mode iterator.
	(*jcc<mode>_r_i387): Macroize insn from *fp_jcc_1r_387 using
	MODEF mode iterator.
	(*jccu<mode>_i387): Macroize insn from *fp_jcc_2_387 using
	X87MODEF mode iterator.
	(*jccu<mode>_r_i387): Macroize insn from *fp_jcc_2r_387 using
	X87MODEF mode iterator.
	(*jcc{,u}<mode>_i387 splitters): Macroize splitters using
	X87MODEF mode iterator.
	(*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Macroize insn
	from *fp_jcc_4_<mode>_387 using X87MODEF mode iterator.
	(*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): New.
	(*jcc<X87MODEF:mode>_<SWI24:mode>_i387 splitters): Macroize
	splitters using X87MODEF and SWI24 mode iterators.

2012-11-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (FPCMP): New mode iterator.
	(unord): New mode attribute.
	(*cmp<mode>_0_i387): Macroize insn from *cmpfp_0
	using X87MODEF mode iterator.
	(*cmp<mode>_0_cc_i387): Macroize insn from *cmpfp_0_cc using
	X87MODEF mode iterator.
	(*cmpxf_i387): Rename from *cmpfp_xf.
	(*cmpxf_cc_i387): Rename from *cmpfp_xf_cc.
	(*cmp<mode>_i387): Rename from *cmpfp_<mode>.
	(*cmp<mode>_cc_i387): Rename from *cmpfp_<mode>_cc.
	(*cmpu<mode>_i387): Macroize insn from *cmpfp_u using X87MODEF
	mode iterator.
	(*cmpu<mode>_cc_i387): Macroize insn from *cmpfp_u_cc using X87MODEF
	mode iterator.
	(*cmp<X87MODEF:mode>_<SWI24:mode>_i387): Macroize_insn from
	*cmpfp_<mode> using X87MODEF mode iterator.
	(*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Macroize_insn from
	*cmpfp_<mode>_cc using X87MODEF mode iterator.
	(*cmpi<FPCMP:unord><MODEF:mode>_mixed): Macroize insn from
	*cmpfp_i{,u}_mixed using FPCMP and MODEF mode iterators.
	(*cmpi<FPCMP:unord><MODEF:mode>_mixed): Macroize insn from
	*cmpfp_i{,u}_sse using FPCMP and MODEF mode iterators.
	(*cmpi<CCFPCMP:unord><X87MODEF:mode>_i387): Macroize insn from
	*cmpfp_i{,u}_387 using FPCMP and X87MODEF mode iterators.

2012-11-22  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.md (bswaphi2): New pattern.

2012-11-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR sanitizer/55379
	* gcc.c (LINK_COMMAND_SPEC): Issue an error for -static with
	-fsanitize=address.

2012-11-22  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.c (ADD_STATIC_LIBASAN_LIBS): New macro.  Defined
	with STATIC_LIBASAN_LIBS.
	(LIBASAN_SPEC): Add STATIC_LIBASAN_LIBS.
	* config/gnu-user.h (STATIC_LIBASAN_LIBS): New macro.

2012-11-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (*arm_abssi2): Define predicable attribute.
	(*arm_neg_abssi2): Likewise.
	* config/arm/thumb2.md (*thumb2_abssi2): Likewise.
	(*thumb2_neg_abssi2): Likewise.

2012-11-22  Jakub Jelinek  <jakub@redhat.com>

	* ree.c (struct ext_modified): Add ATTRIBUTE_PACKED.

2012-11-22  Georg-Johann Lay  <avr@gjlay.de>

	Adjust decimal point of signed accum mode to GCC default.

	PR target/54222
	* config/avr/avr-modes.def (HA, SA, DA): Remove mode adjustments.
	(TA): Move decimal point one bit to the right.
	* config/avr/avr.c (avr_out_fract): Rewrite.

2012-11-21  Matthias Klose  <doko@ubuntu.com>

	* config/alpha/t-linux: New file; define MULTIARCH_DIRNAME.
	* config.gcc <alpha*-*-linux*> (tmake_file): Include alpha/t-linux.

2012-11-21  Matthias Klose  <doko@ubuntu.com>

	* config/m68k/t-linux: Define MULTIARCH_DIRNAME.

2012-11-21  Matthias Klose  <doko@ubuntu.com>

	* config/ia64/t-linux: New file; define MULTIARCH_DIRNAME.
	* config.gcc <ia64*-*-linux*> (tmake_file): Include ia64/t-linux.

2012-11-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55414
	* lra-constraints.c (Index): New function.
	(lra_constraints): Check dead equiv init insns.

2012-11-21  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (extvmisaligndi): Rename from extv; update
	mode of operand 1; remove ancient extract_bit_field workaround.
	(insvmisaligndi): Rename from insv and update similarly.
	(extzvmisaligndi): Rename from extzv and update similarly; split out...
	(extzvdi): New expander.

2012-11-21  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/cpp.texi: Document __SANITIZE_ADDRESS__.

2012-11-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/55397
	* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
	Define __SANITIZE_ADDRESS__ for flag_asan.

2012-11-21  Wei Mi  <wmi@google.com>

	* common.opt: Change faddress-sanitizer to fsanitize=address.
	* toplev.c (process_options): Likewise.
	* gcc.c (LINK_COMMAND_SPEC): Likewise.
	* testsuite/lib/asan-dg.exp
	(check_effective_target_faddress_sanitizer): Likewise.
	(asan_init): Likewise.
	* doc/invoke.texi (-fsanitize=address): Document.

2012-11-21  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_node_params): Rename clone_for_all_contexts to
	do_clone_for_all_contexts.  Update all uses.  New flag
	is_all_contexts_clone.
	* ipa-cp.c (cgraph_edge_brings_value_p): Also consider the case when cs
	leads to the clone for all contexts.
	(perhaps_add_new_callers): Likewise.
	(decide_whether_version_node): Remove bogus !plats->aggs test.  Set
	is_all_contexts_clone when cloning for all contexts.

2012-11-21  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55260
	* ipa-cp.c (intersect_aggregates_with_edge): New function.
	(find_aggregate_values_for_callers_subset): Part moved to the function
	above.  Call it.
	(cgraph_edge_brings_all_agg_vals_for_node): Reimplemented using
	intersect_aggregates_with_edge.

2012-11-21  Matthias Klose  <doko@ubuntu.com>

	* config/s390/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.

2012-11-21  Teresa Johnson  <tejohnson@google.com>

	PR gcov-profile/55417
	* profile.c (compute_working_sets): Check index first
	to avoid out-of-bounds array access.

2012-11-21  Matthias Klose  <doko@ubuntu.com>

	* config/aarch64/t-aarch64-linux: Define MULTIARCH_DIRNAME for
	linux target.

2012-11-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md
	(*float<SWI48x:mode><MODEF:mode>2_mixed_with_temp): Use SWI48 mode
	iterator instead of SWI48x.  Update insn constraint.
	(*float<SWI48x:mode><MODEF:mode>2_mixed_interunit): Ditto.
	(*float<SWI48x:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
	(*float<SWI48x:mode><MODEF:mode>2_sse_with_temp): Ditto.
	(*float<SWI48x:mode><MODEF:mode>2_sse_interunit): Ditto.
	(*float<SWI48x:mode><MODEF:mode>2_sse_nointerunit): Ditto.
	(*float<SWI48x:mode><MODEF:mode>2 splitters): Ditto.
	(lrint<MODEF:mode><SWI48x:mode>2): Ditto.

2012-11-21  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* Makefile.in (gengtype-lex.o): Add dependency on $(BCONFIG_H).

2012-11-21  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/arm-cores.def (cortex-m1, cortex-m0)
	(cortex-m0plus): Use v6m.
	* config/arm/arm-protos.h (tune_params): Add
	logical_op_non_short_circuit.
	* config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
	(arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune)
	(arm_cortex_tune, arm_cortex_a15_tune, arm_cortex_a5_tune)
	(arm_cortex_a9_tune, arm_fa726te_tune): Set
	logical_op_non_short_circuit field.
	(arm_v6m_tune): New tune_params struct.
	* config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.

2012-11-20  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Substitute `with_cpu'.
	* configure: Regenerate.
	* Makefile.in: Define `with_cpu'.
	* config/rs6000/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
	* config/rs6000/t-linux: New file; define MULTIARCH_DIRNAME.
	* config/rs6000/t-fprules (SOFT_FLOAT_CPUS): New macro. Add e300c2
	to the list.
	(MULTILIB_MATCHES_FLOAT): Define in terms of SOFT_FLOAT_CPUS.
	* config/rs6000/t-spe: Define MULTIARCH_DIRNAME.
	* config.gcc <powerpc-*-linux* | powerpc64-*-linux*> (tmake_file):
	Include rs6000/t-linux for 32bit non-biarch configurations.

2012-11-20  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Move multiarch paragraph out of multilib
	documentation.

2012-11-20  Matthias Klose  <doko@ubuntu.com>

	* config/arm/t-linux-eabi: Define MULTIARCH_DIRNAME for linux target.

2012-11-20  Richard Sandiford  <rdsandiford@googlemail.com>

	* stor-layout.c (bit_field_mode_iterator::next_mode): Fix signedness.

2012-11-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55396
	* lra-constraints.c (get_reload_reg): Change class if it is
	different from reg class.

2012-11-20  Jakub Jelinek  <jakub@redhat.com>

	* vec.h (class vec_prefix): Change into struct.
	Rename field alloc_PRIVATE_ back to alloc_.
	Rename field num_PRIVATE_ to num_.
	Update all users.
	(class vec<T, A, vl_embed>): Rename field pfx_PRIVATE_ to vecpfx_.
	Rename field data_PRIVATE_ to vecdata_.
	Update all users.
	(class vec<T, A, vl_ptr>): Make every field public.
	Rename field vec_PRIVATE_ back to vec_.
	Update all users.

2012-11-20  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/55403
	PR middle-end/55391
	* expmed.c (store_bit_field_1): Use adjust_bitfield_address_size
	rather than adjust_bitfield_address to change the mode of a reference.
	(extract_bit_field_1): Likewise.

2012-11-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (movdf_hardfloat32): Add a comment
	explaining the register ordering preferences.

2012-11-20  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/55350
	* gimple-ssa-strength-reduction.c (replace_dependent): Handle
	POINTER_PLUS_EXPR correctly.

2012-11-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (fix_trunc<MODEF:mode><SWI48:mode>_sse): Macroize
	insn from fix_trunc<mode>{si,di}_sse using SWI48 mode iterator.
	(peephole2 to avoid vector decoded forms): Macroize peephole2
	using MODEF mode iterator.  Use SWI48 mode iterator instead of SWI48x.

2012-11-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/19398
	* config/i386/i386.md
	(peephole2 to shorten x87->SSE reload sequences): Remove peephole2.
	* config/i386/i386.h (enum ix86_tune_indices)
	<IX86_TUNE_SHORTEN_X87_SSE>: Remove.
	(TARGET_SHORTEN_X87_SSE): Remove.
	* config/i386/i386.c (initial_ix86_tune_features): Update.

2012-11-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/19398
	* lra-constraints.c (process_alt_operands): Discourage reloads
	through secondary memory.

2012-11-20  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.md (largetoc_low): Revert.
	(largetoc_low_aix<mode>): New.

2012-11-20  Diego Novillo  <dnovillo@google.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* vec.h (struct vnull): Declare.
	(vNULL): Declare.
	* vec.c (vNULL): Define.
	* bb-reorder.c: Replace all vec<T, A>() initializers with vNULL.
	* cfgexpand.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cgraph.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/i386/i386.c: Likewise.
	* df-core.c: Likewise.
	* dominance.c: Likewise.
	* dwarf2out.c: Likewise.
	* except.c: Likewise.
	* function.c: Likewise.
	* gcse.c: Likewise.
	* genautomata.c: Likewise.
	* graphds.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite.c: Likewise.
	* haifa-sched.c: Likewise.
	* ifcvt.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* ira-build.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-symtab.c: Likewise.
	* opts-global.c: Likewise.
	* passes.c: Likewise.
	* ree.c: Likewise.
	* sched-deps.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched-ir.h: Likewise.
	* sel-sched.c: Likewise.
	* stor-layout.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-diagnostic.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* value-prof.c: Likewise.
	* varasm.c: Likewise.

2012-11-20  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (tlink.o): Add dependency on VEC_H.

2012-11-20  Diego Novillo  <dnovillo@google.com>

	PR middle-end/55398
	* vec.h (class vec_prefix): Make every field public.
	Rename field alloc_ to alloc_PRIVATE_.
	Rename field num_ to num_PRIVATE_.
	Update all users.
	(class vec<T, A, vl_embed>): Make every field public.
	Rename field pfx_ to pfx_PRIVATE_.
	Rename field data_ to data_PRIVATE_.
	Update all users.
	(class vec<T, A, vl_ptr>): Make every field public.
	Rename field vec_ to vec_PRIVATE_.
	Update all users.

2012-11-20  Kai Tietz  <ktietz@redhat.com>

	PR target/55268
	* i386.c (ix86_mangle_decl_assembler_name): Use
	SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME if defined.
	* cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Rename
	to SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME.

2012-11-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_call): Emit CLOBBERs in VOIDmode.

2012-11-20  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.c (F): New function.  Mark the given insn as
	being frame related.
	(v850_all_frame_related): New function.  Mark the given push insn
	as being frame related.
	(v850_pass_by_reference): When using the RH850 ABI do not pass
	arguments by reference.
	(v850_strict_argument_naming): Delete function.
	(v850_function_arg): Use word alignment with the RH850 ABI.
	(v850_arg_partial_bytes): Likewise.
	(v850_function_arg_advance): Likewise.
	(v850_print_operand): Handle CONST_INT and CONST_DOUBLE.
	(compute_register_save_size): Use df_regs_ever_live_p.
	(increment_stack): Mark prologue adjustments as being frame related.
	(expand_prologue): Handle pretend args.  Mark insns generated as
	being frame related.
	(expand_epilogue): Likewise.
	(v850_return_in_memory): When using the RH850 ABI return
	aggregates in memory.
	(v850_setup_incoming_varargs): Delete function.
	(v850_option_override): New function.
	(TARGET_DEBUG_UNWIND_INFO): Delete definition.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/v850/v850.h (ASM_SPEC): Pass 8byte-align and gcc-abi
	options on to assembler.
	(LINK_SPEC): Likewise.
	(TARGET_CPU_CPP_BUILTINS): Define __V850_8BYTE_ALIGN__ and
	__V850_GCC_ABI__.
	(STACK_BOUNDARY): Set to BIGGEST_ALIGNMENT.
	(FUNCTION_BOUNDARY): With the RH850 ABI always 32-bit alignment.
	(BIGGEST_ALIGNMENT): With -8byte-align set to 64-bits.
	(BIGGEST_FIELD_ALIGNMENT): Likewise.
	(enum reg_class): Swap EVEN_REGS and GENERAL_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(struct cum_arg): Delete anonymous_args field.
	(INIT_CUMULATIVE_ARGS): Update.
	(PREFERRED_DEBUG): Set to DWARF2_DEBUG.
	(DWARF2_FRAME_INFO): Define.
	(DWARF2_UNWIND_INFO): Define.
	(INCOMING_RETURN_ADDR_RTX): Define.
	(DWARF_FRAME_RETURN_COLUMN): Define.
	(TARGET_USE_FPU): Define.
	* config/v850/v850.md: Replace TARGET_V850E2V3 in floating point
	insns with TARGET_USE_FPU.
	(fixuns_truncsfsi2): New pattern.
	(fixuns_truncdfsi2): New pattern.
	(fix_truncsfdi2): New pattern.
	(fixuns_truncsfdi2): New pattern.
	(fix_truncdfdi2): New pattern.
	(fixuns_truncdfdi2): New pattern.
	(unsfloatsisf2): New pattern.
	(unsfloatsidf2): New pattern.
	(floatdisf2): New pattern.
	(unsfloatdisf2): New pattern.
	(floatdidf2): New pattern.
	(unsfloatdidf2): New pattern.
	(fnmasf4): Fix RTl description.
	(fnmssf4): Likewise.
	* config/v850/v850.opt (mrelax): New option.
	(mlong-jumps): Likewise.
	(msoft-float): Likewise.
	(mhard-float): Likewise.
	(mrh850-abi): Likewise.
	(mgcc-abi): Likewise.
	(m8byte-align): Likewise.
	* config/v850/t-v850 (MULTILIB_OPTIONS): Update multilib options.
	(MULTILIB_DIRNAMES): Likewise.

2012-11-20  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_function_arg_boundary): When using the RX ABI
	align stack arguments to their natural alignment.
	(rx_narrow_volatile_bitfield): New function.  Allows narrow
	volatile bitfields.
	(rx_ok_to_inline): New function.  Do not inline functions with
	local variables into a naked caller.
	(TARGET_NARROW_VOLATILE_BITFIELD): Define.
	(TARGET_CAN_INLINE_P): Define.
	* config/rx/rx.c (TARGET_CPU_CPP_BUILTINS): Define __RX_ABI__ or
	__RX_GC_ABI__.
	(ASM_SPEC): Pass -mgcc-abi on to the assembler.
	(STRICT_ALIGNMENT): Set to false.
	(CTORS_SECTION_ASM_OP): Add executable attribute.
	(DTORS_SECTION_ASM_OP): Add executable attribute.
	(INIT_ARRAY_SECTION_ASM_OP): Add executable attribute.
	(FINI_ARRAY_SECTION_ASM_OP): Add executable attribute.
	* config/rx/rx.md (subdi3): Don't allow MEMs as the third operand,
	as it causes too much reload pressure.
	* config/rx/rx.opt (mgcc-abi): New option.
	(mrx-abi): New option.
	* config/rx/t-rx (MULTILIB_OPTIONS): Show how to add an ABI multilib.
	(MULTILIB_DIRNAMES): Likewise.

2012-11-20  James Greenhalgh  <james.greenhalgh@arm.com>
	    Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_simd_builtin_type_bits): Rename to...
	(aarch64_simd_builtin_type_mode): ...this, make sequential.
	(aarch64_simd_builtin_datum): Refactor members.
	(VAR1, VAR2, ..., VAR12): Update accordingly.
	(aarch64_simd_builtin_data): Include from aarch64-simd-builtins.def.
	(aarch64_builtins): Update accordingly.
	(init_aarch64_simd_builtins): Refactor, rename to...
	(aarch64_init_simd_builtins): ...this.
	(aarch64_simd_builtin_compare): Remove.
	(locate_simd_builtin_icode): Likewise.
	* config/aarch64/aarch64-protos.h (aarch64_init_builtins): New.
	(aarch64_expand_builtin): New.
	* config/aarch64/aarch64-simd-builtins.def: New file.
	* config/aarch64/aarch64.c (aarch64_init_builtins):
	Move to aarch64-builtins.c.
	(aarch64_expand_builtin): Likewise.
	* config/aarch64/aarch64.h
	(aarch64_builtins): Move to aarch64-builtins.c.

2012-11-20  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55260
	* ipa-cp.c (find_aggregate_values_for_callers_subset): Rename info to
	dest_info, use caller_info instead of info when determining whether
	callee is a clone.

2012-11-20  Andrey Turetskiy  <andrey.turetskiy@gmail.com>

	* config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3): Merge
	*avx2_pmulhrswv16hi3 and *ssse3_pmulhrswv8hi3 into one pattern.

2012-11-20  Sofiane Naci  <sofiane.naci@arm.com>

	* config/aarch64/aarch64.md
	(define_attr "sync_*"): Remove.
	(define_attr "length"): Update.
	Include atomics.md.
	* config/aarch64/aarch64-protos.h
	(aarch64_expand_compare_and_swap): Add function prototype.
	(aarch64_split_compare_and_swap): Likewise.
	(aarch64_split_atomic_op): Likewise.
	(aarch64_expand_sync): Remove function prototype.
	(aarch64_output_sync_insn): Likewise.
	(aarch64_output_sync_lock_release): Likewise.
	(aarch64_sync_loop_insns): Likewise.
	(struct aarch64_sync_generator): Remove.
	(enum aarch64_sync_generator_tag): Likewise.
	* config/aarch64/aarch64.c
	(aarch64_legitimize_sync_memory): Remove function.
	(aarch64_emit): Likewise.
	(aarch64_insn_count): Likewise.
	(aarch64_output_asm_insn): Likewise.
	(aarch64_load_store_suffix): Likewise.
	(aarch64_output_sync_load): Likewise.
	(aarch64_output_sync_store): Likewise.
	(aarch64_output_op2): Likewise.
	(aarch64_output_op3): Likewise.
	(aarch64_output_sync_loop): Likewise.
	(aarch64_get_sync_operand): Likewise.
	(aarch64_process_output_sync_insn): Likewise.
	(aarch64_output_sync_insn): Likewise.
	(aarch64_output_sync_lock_release): Likewise.
	(aarch64_sync_loop_insns): Likewise.
	(aarch64_call_generator): Likewise.
	(aarch64_expand_sync): Likewise.
	(* emit_f): Remove variable.
	(aarch64_insn_count): Likewise.
	(FETCH_SYNC_OPERAND): Likewise.
	(aarch64_emit_load_exclusive): New function.
	(aarch64_emit_store_exclusive): Likewise.
	(aarch64_emit_unlikely_jump): Likewise.
	(aarch64_expand_compare_and_swap): Likewise.
	(aarch64_split_compare_and_swap): Likewise.
	(aarch64_split_atomic_op): Likewise.
	* config/aarch64/iterators.md
	(atomic_sfx): New mode attribute.
	(atomic_optab): New code attribute.
	(atomic_op_operand): Likewise.
	(atomic_op_str): Likewise.
	(syncop): Rename to atomic_op.
	* config/aarch64/sync.md: Delete.
	* config/aarch64/atomics.md: New file.

2012-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/55094
	* builtins.c (expand_builtin_trap): Add REG_ARGS_SIZE note
	on the trap insn for !ACCUMULATE_OUTGOING_ARGS.
	* cfgcleanup.c (outgoing_edges_match): Don't look at debug insns
	on the first old_insns_match_p call.  For !ACCUMULATE_OUTGOING_ARGS
	fail if the last real insn doesn't have REG_ARGS_SIZE note.

	PR rtl-optimization/54921
	* cselib.h (fp_setter_insn): New prototype.
	* cselib.c (fp_setter_insn): New function.
	(cselib_process_insn): If frame_pointer_needed,
	call cselib_invalidate_rtx (stack_pointer_rtx) after
	processing a frame pointer setter.
	* var-tracking.c (fp_setter): Removed.
	(vt_initialize): Use fp_setter_insn instead of fp_setter.

2012-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (movdf_hardfloat32): Reorder move
	constraints so that the traditional floating point loads, stores,
	and moves are done first, then the VSX loads, stores, and moves,
	and finally the GPR loads, stores, and moves so that reload
	chooses FPRs over GPRs, and uses the traditional load/store
	instructions which provide an offset.
	(movdf_hardfloat64): Likewise.

2012-11-19  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/55359
	* simplify-rtx.c (simplify_subreg): Return null for invalid offsets.

2012-11-19  Aldy Hernandez  <aldyh@redhat.com>

	* trans-mem.c (execute_tm_mark): Release bb_regions.

2012-11-19  Aldy Hernandez  <aldyh@redhat.com>

	* trans-mem (collect_bb2reg): Stop scanning at irrevocable blocks.
	(get_bb_regions_instrumented): Add new traverse_clone argument and
	use it.
	(expand_regions_1): Same.
	(expand_region): Same.
	(execute_tm_mark): Pass new argument to expand_regions.
	(expand_block_edges): Pass new argument to get_bb_regions_instrumented.

2012-11-19  Sofiane Naci  <sofiane.naci@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_output_mi_thunk): Refactor to generate RTL patterns.

2012-11-19  Mans Rullgard  <mans@mansr.com>

	PR target/55276
	* config/rs6000/rs6000.c (rs6000_stack_info): Always set vrsave_mask
	for TARGET_ALTIVEC_ABI.  Zero vrsave_save_offset if
	!TARGET_ALTIVEC_VRSAVE.
	(rs6000_emit_prologue): For SAVE_INLINE_VLRs, check vrsave_size
	not vrsave_mask.

2012-11-19  David Edelsohn  <dje.gcc@gmail.com>

	PR bootstrap/55384
	* system.h (vec_free): Undef.

2012-11-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/54630
	* tree-ssa-coalesce.c (coalesce_ssa_name): Remove static
	keyword from ssa_name_hash var.

2012-11-19  Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* doc/md.texi: Document define_subst.
	* gensupport.c (MAX_OPERANDS): New define.
	(operand_data): New.
	(match_operand_entries_in_pattern): New.
	(used_operands_numbers): New.
	(subst_true): New.
	(subst_false): New.
	(define_subst_queue): New.
	(define_subst_tail): New.
	(define_subst_attr_queue): New.
	(define_subst_attr_tail): New.
	(has_subst_attribute): New.
	(subst_pattern_match): New.
	(get_alternatives_number): New.
	(alter_output_for_subst_insn): New.
	(alter_attrs_for_subst_insn): New.
	(process_substs_on_one_elem): New.
	(subst_dup): New.
	(process_define_subst): New.
	(duplicate_alternatives): New.
	(duplicate_each_alternative): New.
	(constraints_handler_t): New typedef.
	(alter_constraints): New.
	(adjust_operands_numbers): New.
	(replace_duplicating_operands_in_pattern): New.
	(remove_from_queue): New.
	(process_rtx): Handle define_subst and define_subst_attr.
	(change_subst_attribute): New.
	(alter_predicate_for_insn): Fix formatting.
	(alter_attrs_for_insn): Likewise.
	(alter_output_for_insn): Likewise.
	(mark_operands_from_match_dup): New.
	(mark_operands_used_in_match_dup): New.
	(find_first_unused_number_of_operand): New.
	(renumerate_operands_in_pattern): New.
	(generate_match_dup): New.
	(check_define_attr_duplicates): New.
	(init_rtx_reader_args_cb): Add checking for duplicated attrs and
	processing of define_subst.
	(read_md_rtx): Handle define_subst.
	* read-rtl.c (struct subst_attr_to_iter_mapping): New.
	(substs): New global.
	(apply_subst_iterator): New.
	(bind_subst_iter_and_attr): New.
	(find_subst_iter_by_attr): New.
	(map_attr_string): Handle subst-iterators.
	(add_condition_to_rtx): Handle define_subst.
	(apply_iterators): Likewise.
	(initialize_iterators): Likewise.
	(add_define_attr_for_define_subst): New.
	(add_define_subst_attr): New.
	(read_subst_mapping): New.
	(read_rtx): Handle define_subst_attr.
	(read_rtx_code): Add subst-attributes recognition during reading of
	strings.
	* rtl.def (DEFINE_EXPAND): Add vector of attributes.
	(DEFINE_SUBST): New.
	(DEFINE_SUBST_ATTR): New.

2012-11-19  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/55315

	* rtlanal.c (nonzero_address_p): Don't assume a nonzero address plus a
	const is a nonzero address.

2012-11-18  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Use @smallexample consistently.  Add @noindent
	when continuing a sentence or paragraph past an example.  Change
	tabs to spaces in examples.

2012-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi (extv@var{m}, extvmisalign@var{m}, extzv@var{m})
	(extzvmisalign@var{m}, insv@var{m}, insvmisalign@var{m}): Document.
	(insv, extv, extzv): Deprecate.
	* optabs.def (insv_optab, extv_optab, extzv_optab)
	(insvmisalign_optab, extvmisalign_optab, extzvmisalign_optab):
	New optabs.
	* optabs.c (get_optab_extraction_insn): New function.
	(get_extraction_insn): Use it.
	* config/mips/mips.md (extv): Split into...
	(extvmisalign<mode>, extv<mode>): ...these new patterns.  Rename
	existing extv<mode> pattern to...
	(*extv<mode>): ...this.
	(extzv): Split into...
	(extzvmisalign<mode>, extzv<mode>): ...these new patterns.  Rename
	existing extzv<mode> pattern to...
	(*extzv<mode>): ...this.
	(insv): Split into...
	(insvmisalign<mode>, insv<mode>): ...these new patterns.  Rename
	existing insv<mode> pattern to...
	(*insv<mode>): ...this.  Use const_int_operand rather than
	immediate_operand.
	* config/mips/mips.c (mips_block_move_straight): Use set_mem_size
	to set the size of BLKmode accesses.
	(mips_get_unaligned_mem): Require OP0 to be a BLKmode memory,
	turning it from an "rtx *" to an rtx.
	(mips_expand_ext_as_unaligned_load): Simplify for new optab
	interface.  Update call to mips_get_unaligned_mem.
	(mips_expand_ins_as_unaligned_store): Update call to
	mips_get_unaligned_mem.

2012-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (recog.o): Add insn-codes.h.
	* expr.h (extraction_pattern): Move to optabs.h.
	(mode_for_extraction): Delete.
	* optabs.h (extraction_insn): New structure.
	(extraction_pattern): Moved from expr.h.
	(get_best_reg_extraction_insn, get_best_mem_extraction_insn): Declare.
	* optabs.c (HAVE_insv, CODE_FOR_insv, HAVE_extv, CODE_FOR_extv)
	(HAVE_extzv, CODE_FOR_extzv): Provide defaults.
	(extraction_type): New enum.
	(get_traditional_extraction_insn, get_extraction_insn)
	(get_best_reg_extraction_insn, get_best_mem_extraction_insn):
	New functions.
	* combine.c (make_extraction): Use get_best_reg_extraction_insn
	instead of mode_for_extraction.
	* expmed.c (HAVE_insv, CODE_FOR_insv, gen_insv, HAVE_extv)
	(CODE_FOR_extv, gen_extv, HAVE_extzv, CODE_FOR_extzv, gen_extzv):
	Remove fallback definitions.
	(mode_for_extraction): Delete.
	(adjust_bit_field_mem_for_reg): New function.
	(store_bit_field_using_insv): Replace OP_MODE parameter with
	an extraction_insn.  Pass struct_mode to narrow_bit_field_mem.
	(extract_bit_field_using_extv): Likewise EXT_MODE.
	(store_bit_field_1): Use get_best_reg_extraction_insn and
	get_best_mem_extraction_insn instead of mode_for_extraction.
	Use adjust_bit_field_mem_for_reg when forcing memory to a
	register and doing a register insertion.  Update calls to
	store_bit_field_using_insv.
	(extract_bit_field_1): Likewise extractions and calls to
	extract_bit_field_using_extv.
	(store_Bit_field): When narrowing to a bitregion, don't use the
	insv mode as a limit.
	* recog.c: (HAVE_extv, CODE_FOR_extv, HAVE_extzv, CODE_FOR_extzv):
	Provide defaults.
	(simplify_while_replacing): Use insn_data instead of
	mode_for_extraction.

2012-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
	Set up a default value of bitregion_end_.
	(bit_field_mode_iterator::next_mode): Always apply bitregion_end_
	check.  Include SLOW_UNALIGNED_ACCESS in the alignment check.
	(get_best_mode): Ignore modes that are wider than the alignment.

2012-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* machmode.h (bit_field_mode_iterator): New class.
	(get_best_mode): Change final parameter to bool.
	* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator)
	(bit_field_mode_iterator::next_mode): New functions, split out from...
	(get_best_mode): ...here.  Change final parameter to bool.
	Use bit_field_mode_iterator.

2012-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (narrow_bit_field_mem): New function.
	(store_bit_field_using_insv, store_bit_field_1, store_fixed_bit_field)
	(extract_bit_field_1): Use it.

2012-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* expr.h (adjust_address_1): Add a size parameter.
	(adjust_address, adjust_address_nv, adjust_bitfield_address)
	(adjust_bitfield_address_nv): Adjust accordingly.
	(adjust_bitfield_address_size): Define.
	* emit-rtl.c (adjust_address_1): Add a size parameter.
	Use it to set the size if MODE has no size.  Check whether
	the size matches before returning the original memref.
	Require the size to be known for adjust_object.
	(adjust_automodify_address_1, widen_memory_access): Update calls
	to adjust_address_1.

2012-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine.c (make_extraction): Handle TRUNCATEd INNERs.

2012-11-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* expr.c (expand_assignment): Don't set MEM_KEEP_ALIAS_SET_P here.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle DECL_BIT_FIELDs,
	using their size instead of the COMPONENT_REF's.

2012-11-17  Matthias Klose  <doko@ubuntu.com>

	* config/mips/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.

2012-11-17  Diego Novillo  <dnovillo@google.com>

	VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)

	* vec.c (register_overhead): Convert it into
	member function of vec_prefix.
	(release_overhead): Likewise.
	(calculate_allocation): Likewise.
	(vec_heap_free): Remove.
	(vec_gc_o_reserve_1): Remove.
	(vec_heap_o_reserve_1): Remove.
	(vec_stack_o_reserve_1): Remove.
	(vec_stack_o_reserve_exact): Remove.
	(register_stack_vec): New.
	(stack_vec_register_index): New.
	(unregister_stack_vec): New.
	(vec_assert_fail): Remove.
	* vec.h: Conditionally include ggc.h.  Document conditional hackery.
	Update top-level documentation.
	(ALONE_VEC_CHECK_INFO): Remove.
	(VEC_CHECK_INFO): Remove.
	(ALONE_VEC_CHECK_DECL): Remove.
	(VEC_CHECK_DECL): Remove.
	(ALONE_VEC_CHECK_PASS): Remove.
	(VEC_CHECK_PASS): Remove.
	(VEC_ASSERT): Remove.
	(vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and va_stack.
	Mark fields alloc_ and num_ as protected.
	(struct vec_t): Remove.  Remove all function members.
	(struct vl_embed): Declare.
	(struct vl_ptr): Declare.
	(free): Remove.
	(reserve_exact): Remove.
	(reserve): Remove.
	(safe_splice): Remove.
	(safe_push): Remove.
	(safe_grow): Remove.
	(safe_grow_cleared): Remove.
	(safe_insert): Remove.
	(DEF_VEC_I): Remove.
	(DEF_VEC_ALLOC_I): Remove.
	(DEF_VEC_P): Remove.
	(DEF_VEC_ALLOC_P): Remove.
	(DEF_VEC_O): Remove.
	(DEF_VEC_ALLOC_O): Remove.
	(DEF_VEC_ALLOC_P_STACK): Remove.
	(DEF_VEC_ALLOC_O_STACK): Remove.
	(DEF_VEC_ALLOC_I_STACK): Remove.
	(DEF_VEC_A): Remove.
	(DEF_VEC_ALLOC_A): Remove.
	(vec_stack_p_reserve_exact_1): Remove.
	(vec_stack_o_reserve): Remove.
	(vec_stack_o_reserve_exact): Remove.
	(VEC_length): Remove.
	(VEC_empty): Remove.
	(VEC_address): Remove.
	(vec_address): Remove.
	(VEC_last): Remove.
	(VEC_index): Remove.
	(VEC_iterate): Remove.
	(VEC_embedded_size): Remove.
	(VEC_embedded_init): Remove.
	(VEC_free): Remove.
	(VEC_copy): Remove.
	(VEC_space): Remove.
	(VEC_reserve): Remove.
	(VEC_reserve_exact): Remove.
	(VEC_splice): Remove.
	(VEC_safe_splice): Remove.
	(VEC_quick_push): Remove.
	(VEC_safe_push): Remove.
	(VEC_pop): Remove.
	(VEC_truncate): Remove.
	(VEC_safe_grow): Remove.
	(VEC_replace): Remove.
	(VEC_quick_insert): Remove.
	(VEC_safe_insert): Remove.
	(VEC_ordered_remove): Remove.
	(VEC_unordered_remove): Remove.
	(VEC_block_remove): Remove.
	(VEC_lower_bound): Remove.
	(VEC_alloc): Remove.
	(VEC_qsort): Remove.

	(va_heap): Declare.
	(va_heap::default_layout): New typedef to vl_ptr.
	(va_heap::reserve): New.
	(va_heap::release): New.
	(va_gc): Declare.
	(va_gc::default_layout): New typedef to vl_embed.
	(va_gc::reserve): New.
	(va_gc::release): New.
	(va_gc_atomic): Declare.  Inherit from va_gc.
	(va_stack): Declare.
	(va_stack::default_layout): New typedef to vl_ptr.
	(va_stack::alloc): New.
	(va_stack::reserve): New.
	(va_stack::release): New.
	(register_stack_vec): Declare.
	(stack_vec_register_index): Declare.
	(unregister_stack_vec): Declare.

	(vec<T, A = va_heap, L = typename A::default_layout>): Declare
	empty vec template.
	(vec<T, A, vl_embed>): Partial specialization for embedded
	layout.
	(vec<T, A, vl_embed>::allocated): New.
	(vec<T, A, vl_embed>::length): New.
	(vec<T, A, vl_embed>::is_empty): New.
	(vec<T, A, vl_embed>::address): New.
	(vec<T, A, vl_embed>::operator[]): New.
	(vec<T, A, vl_embed>::last New.
	(vec<T, A, vl_embed>::space): New.
	(vec<T, A, vl_embed>::iterate): New.
	(vec<T, A, vl_embed>::iterate): New.
	(vec<T, A, vl_embed>::copy): New.
	(vec<T, A, vl_embed>::splice): New.
	(vec<T, A, vl_embed>::quick_push New.
	(vec<T, A, vl_embed>::pop New.
	(vec<T, A, vl_embed>::truncate): New.
	(vec<T, A, vl_embed>::quick_insert): New.
	(vec<T, A, vl_embed>::ordered_remove): New.
	(vec<T, A, vl_embed>::unordered_remove): New.
	(vec<T, A, vl_embed>::block_remove): New.
	(vec<T, A, vl_embed>::qsort): New.
	(vec<T, A, vl_embed>::lower_bound): New.
	(vec<T, A, vl_embed>::embedded_size): New.
	(vec<T, A, vl_embed>::embedded_init): New.
	(vec<T, A, vl_embed>::quick_grow): New.
	(vec<T, A, vl_embed>::quick_grow_cleared): New.
	(vec_safe_space): New.
	(vec_safe_length): New.
	(vec_safe_address): New.
	(vec_safe_is_empty): New.
	(vec_safe_reserve): New.
	(vec_safe_reserve_exact): New.
	(vec_alloc): New.
	(vec_free): New.
	(vec_safe_grow): New.
	(vec_safe_grow_cleared): New.
	(vec_safe_iterate): New.
	(vec_safe_push): New.
	(vec_safe_insert): New.
	(vec_safe_truncate): New.
	(vec_safe_copy): New.
	(vec_safe_splice): New.

	(vec<T, A, vl_ptr>): New partial specialization for the space
	efficient layout.
	(vec<T, A, vl_ptr>::exists): New.
	(vec<T, A, vl_ptr>::is_empty): New.
	(vec<T, A, vl_ptr>::length): New.
	(vec<T, A, vl_ptr>::address): New.
	(vec<T, A, vl_ptr>::operator[]): New.
	(vec<T, A, vl_ptr>::operator!=): New.
	(vec<T, A, vl_ptr>::operator==): New.
	(vec<T, A, vl_ptr>::last): New.
	(vec<T, A, vl_ptr>::space): New.
	(vec<T, A, vl_ptr>::iterate): New.
	(vec<T, A, vl_ptr>::copy): New.
	(vec<T, A, vl_ptr>::reserve): New.
	(vec<T, A, vl_ptr>::reserve_exact): New.
	(vec<T, A, vl_ptr>::splice): New.
	(vec<T, A, vl_ptr>::safe_splice): New.
	(vec<T, A, vl_ptr>::quick_push): New.
	(vec<T, A, vl_ptr>::safe_push): New.
	(vec<T, A, vl_ptr>::pop): New.
	(vec<T, A, vl_ptr>::truncate): New.
	(vec<T, A, vl_ptr>::safe_grow): New.
	(vec<T, A, vl_ptr>::safe_grow_cleared): New.
	(vec<T, A, vl_ptr>::quick_grow): New.
	(vec<T, A, vl_ptr>::quick_grow_cleared): New.
	(vec<T, A, vl_ptr>::quick_insert): New.
	(vec<T, A, vl_ptr>::safe_insert): New.
	(vec<T, A, vl_ptr>::ordered_remove): New.
	(vec<T, A, vl_ptr>::unordered_remove): New.
	(vec<T, A, vl_ptr>::block_remove): New.
	(vec<T, A, vl_ptr>::qsort): New.
	(vec<T, A, vl_ptr>::lower_bound): New.
	(vec_stack_alloc): Define.
	(FOR_EACH_VEC_SAFE_ELT): Define.
	* vecir.h: Remove.  Update all users.
	* vecprim.h: Remove.  Update all users.
	Move uchar to coretypes.h.

	* Makefile.in (VEC_H): Add $(GGC_H).
	Remove vecir.h and vecprim.h dependencies everywhere.

2012-11-16  Diego Novillo  <dnovillo@google.com>

	* gengtype-lex.l (VEC): Remove.
	Add characters in the set [\!\>\.-].
	* gengtype-parse.c (token_names): Remove "VEC".
	(require_template_declaration): Remove handling of VEC_TOKEN.
	(type): Likewise.
	Call create_user_defined_type when parsing GTY((user)).
	* gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED.
	(write_state_undefined_type): New.
	(write_state_type): Call write_state_undefined_type for TYPE_UNDEFINED.
	(read_state_type): Call read_state_undefined_type for TYPE_UNDEFINED.
	* gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED.
	(create_user_defined_type): Make extern.
	(type_for_name): Factor out of resolve_typedef.
	(create_undefined_type): New
	(resolve_typedef): Call it when we cannot find a previous
	typedef and the type is not a template.
	(find_structure): Accept TYPE_UNDEFINED.
	(set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES,
	default to false.
	Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or
	ALLOWED_UNDEFINED_TYPES is set.
	Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT.
	(filter_type_name): Accept templates with more than one argument.
	(output_mangled_typename): Handle TYPE_UNDEFINED
	(walk_type): Likewise.
	(write_types_process_field): Likewise.
	(write_func_for_structure): If CHAIN_NEXT is set, ORIG_S
	should not be a user-defined type.
	(write_types_local_user_process_field): Handle TYPE_ARRAY,
	TYPE_NONE and TYPE_UNDEFINED.
	(write_types_local_process_field): Likewise.
	(contains_scalar_p): Return 0 for TYPE_USER_STRUCT.
	(write_root): Reject user-defined types that are not pointers.
	Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT
	and TYPE_PARAM_STRUCT.
	(output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and TYPE_ARRAY.
	(dump_typekind): Handle TYPE_UNDEFINED.
	* gengtype.h (enum typekind): Add TYPE_UNDEFINED.
	(create_user_defined_type): Declare.
	(enum gty_token): Remove VEC_TOKEN.

2012-11-16  Diego Novillo  <dnovillo@google.com>

	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)

	* coretypes.h (uchar): Define.
	* alias.c: Use new vec API in vec.h.
	* asan.c: Likewise.
	* attribs.c: Likewise.
	* basic-block.h: Likewise.
	* bb-reorder.c: Likewise.
	* builtins.c: Likewise.
	* calls.c: Likewise.
	* cfg.c: Likewise.
	* cfganal.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfghooks.h: Likewise.
	* cfgloop.c: Likewise.
	* cfgloop.h: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraph.h: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine.c: Likewise.
	* compare-elim.c: Likewise.
	* coverage.c: Likewise.
	* cprop.c: Likewise.
	* data-streamer.h: Likewise.
	* dbxout.c: Likewise.
	* dce.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* dominance.c: Likewise.
	* domwalk.c: Likewise.
	* domwalk.h: Likewise.
	* dse.c: Likewise.
	* dwarf2cfi.c: Likewise.
	* dwarf2out.c: Likewise.
	* dwarf2out.h: Likewise.
	* emit-rtl.c: Likewise.
	* except.c: Likewise.
	* except.h: Likewise.
	* expr.c: Likewise.
	* expr.h: Likewise.
	* final.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* function.h: Likewise.
	* fwprop.c: Likewise.
	* gcc.c: Likewise.
	* gcse.c: Likewise.
	* genattr.c: Likewise.
	* genattrtab.c: Likewise.
	* genautomata.c: Likewise.
	* genextract.c: Likewise.
	* genopinit.c: Likewise
	* ggc-common.c: Likewise.
	* ggc.h: Likewise.
	* gimple-low.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimple-streamer-in.c: Likewise.
	* gimple.c: Likewise.
	* gimple.h: Likewise.
	* gimplify.c: Likewise.
	* graph.c: Likewise.
	* graphds.c: Likewise.
	* graphds.h: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-poly.h: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-scop-detection.h: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* godump.c: Likewise.
	* haifa-sched.c: Likewise.
	* hw-doloop.c: Likewise.
	* hw-doloop.h: Likewise.
	* ifcvt.c: Likewise.
	* insn-addr.h: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-inline.h: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-prop.h: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-ref-inline.h: Likewise.
	* ipa-ref.c: Likewise.
	* ipa-ref.h: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-utils.h: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-int.h: Likewise.
	* ira.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lra-lives.c: Likewise.
	* lra.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.h: Likewise.
	* lto-symtab.c: Likewise.
	* mcf.c: Likewise.
	* modulo-sched.c: Likewise.
	* omp-low.c: Likewise.
	* opts-common.c: Likewise.
	* opts-global.c: Likewise.
	* opts.c: Likewise.
	* opts.h: Likewise.
	* passes.c: Likewise.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* profile.h: Likewise.
	* read-rtl.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regrename.c: Likewise.
	* regrename.h: Likewise.
	* reload.c: Likewise.
	* reload.h: Likewise.
	* reload1.c: Likewise.
	* rtl.h: Likewise.
	* sched-deps.c: Likewise.
	* sched-int.h: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched-ir.h: Likewise.
	* sel-sched.c: Likewise.
	* sese.c: Likewise.
	* sese.h: Likewise.
	* statistics.h: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-browser.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-chrec.h: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-data-ref.h: Likewise.
	* tree-dfa.c: Likewise.
	* tree-diagnostic.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-flow.h: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-inline.h: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-iterator.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-mudflap.c: Likewise.
	* tree-optimize.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-live.h: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-sccvn.h: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-streamer-out.c: Likewise.
	* tree-streamer.c: Likewise.
	* tree-streamer.h: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vectorizer.h: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tree.h: Likewise.
	* value-prof.c: Likewise.
	* value-prof.h: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* varpool.c: Likewise.
	* vmsdbgout.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/darwin.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/rs6000/rs6000-c.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/spu/spu-c.c: Likewise.
	* config/vms/vms.c: Likewise.
	* config/vxworks.c: Likewise.
	* config/epiphany/resolve-sw-modes.c: Likewise.

2012-11-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/55236
	* fold-const.c (make_range_step) <case NEGATE_EXPR>: For -fwrapv
	and signed ARG0_TYPE, force low and high to be non-NULL.

2012-11-17  H.J. Lu  <hongjiu.lu@intel.com>

	* common.opt (static-libasan): New option.
	* gcc.c (LIBASAN_SPEC): New macro.
	(LINK_COMMAND_SPEC): Replace -lasan with LIBASAN_SPEC.
	* doc/invoke.texi: Document -static-libasan.

2012-11-17  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55342
	* lra-assigns.c (spill_for): Try to allocate other reload pseudos
	before and after spilling.

2012-11-16  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Various copy-edits to comply with GCC coding
	standards for spelling, terminology, and markup, including use of
	American spelling, correct use of terms like "back end" and
	"run time", use correct name for GCC, use "@:" markup.

2012-11-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/55329
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Never clear
	bits in needed_eh_cleanup while iterating over the bitmap.
	Look through all forwarder blocks at once.

2012-11-16  Jan Hubicka  <jh@suse.cz>

	* params.def (max-peeled-insns, max-completely-peeled-insns): Reduce
	to 100.

2012-11-16  Simon Baldwin  <simonb@google.com>

	* doc/cppopts.texi: Document -f[no-]canonical-system-headers.
	* doc/install.texi: Document --enable-canonical-system-headers.

2012-11-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55330
	* lra-constraints.c (MAX_INHERITANCE_PASSES): New macro.
	(lra_inheritance, lra_undo_inheritance): Use it to limit number of
	the passes.

2012-11-16  Matthias Klose  <doko@ubuntu.com>

	* config/pa/t-linux: New file; define MULTIARCH_DIRNAME.
	* config.gcc <hppa*64*-*-linux*, hppa*-*-linux*> (tmake_file):
	Include pa/t-linux.

2012-11-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/54073
	* config/i386/i386.md (mov<mode>cc): Use comparison_operator
	instead of ordered_comparison_operator resp.
	ix86_fp_comparison_operator predicates.
	* config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
	or for -m32 DImode comparisons.

2012-11-16  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/54717
	* tree-ssa-pre.c (do_partial_partial_insertion): Consider also edges
	with ANTIC_IN.

2012-11-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-protos.h (ix86_emit_mode_set): Add third argument.
	* config/i386/i386.h (EMIT_MODE_SET): Update.
	* config/i386/i386.c (ix86_avx_emit_vzeroupper): New function.
	(ix86_emit_mode_set) <AVX_U128>: Call ix86_avx_emit_vzeroupper.

2012-11-16  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	bdver3 Enablement
	* doc/extend.texi: Add details about bdver3.
	* doc/invoke.texi: Add details about bdver3.
	* config.gcc (i[34567]86-*-linux* | ...): Add bdver3.
	(case ${target}): Add bdver3.
	* config/i386/i386.h (TARGET_BDVER3): New definition.
	* config/i386/i386.md (define_attr "cpu"): Add bdver3.
	* config/i386/sse.md (sseshuf, sseshuf1): New type attributes.
	* config/i386/athlon.md: Handle sseshuf attribute.
	* config/i386/atom.md: Likewise.
	* config/i386/ppro.md: Likewise.
	* config/i386/bdver1.md: Likewise.
	* config/i386/i386.opt (flag_dispatch_scheduler): Add bdver3.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add
	bdver3 def_and_undef
	* config/i386/driver-i386.c (host_detect_local_cpu): Let
	-march=native recognize bdver3 processors.
	* config/i386/i386.c (struct processor_costs bdver3_cost): New.
	(m_BDVER3): New definition.
	(m_AMD_MULTIPLE): Includes m_BDVER3.
	(initial_ix86_tune_features): Add bdver3 tune.
	(processor_target_table): Add bdver3 entry.
	(static const char *const cpu_names): Add bdver3 entry.
	(software_prefetching_beneficial_p): Add bdver3.
	(ix86_option_override_internal): Add bdver3 instruction sets.
	(ix86_option_override_internal): Remove XSAVEOPT for bdver1 and bdver2.
	(ix86_issue_rate): Add bdver3.
	(ix86_adjust_cost): Add bdver3.
	(enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver3.
	(enum processor_type): Add PROCESSOR_BDVER3.
	* config/i386/bdver3.md: New file describing bdver3 pipelines.

2012-11-15  David S. Miller  <davem@davemloft.net>

	* expmed.c (expand_shift_1): Don't strip non-integral SUBREGs.

	* configure.ac: Add check for assembler SPARC4 instruction support.
	* configure: Rebuild.
	* config.in: Add HAVE_AS_SPARC4 section.
	* config/sparc/sparc.opt (mcbcond): New option.
	* doc/invoke.texi: Document it.
	* config/sparc/constraints.md: New constraint 'A' for 5-bit signed
	immediates.
	* doc/md.texi: Document it.
	* config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_CBCOND.
	(sparc_option_override): Likewise.
	(emit_cbcond_insn): New function.
	(emit_conditional_branch_insn): Call it.
	(emit_cbcond_nop): New function.
	(output_ubranch): Use cbcond, remove label arg.
	(output_cbcond): New function.
	* config/sparc/sparc-protos.h (output_ubranch): Update.
	(output_cbcond): Declare it.
	(emit_cbcond_nop): Likewise.
	* config/sparc/sparc.md (type attribute): New types 'cbcond'
	and uncond_cbcond.
	(emit_cbcond_nop): New attribute.
	(length attribute): Handle cbcond and uncond_cbcond.
	(in_call_delay attribute): Reject cbcond and uncond_cbcond.
	(in_branch_delay attribute): Likewise.
	(in_uncond_branch_delay attribute): Likewise.
	(in_annul_branch_delay attribute): Likewise.
	(*cbcond_sp32, *cbcond_sp64): New insn patterns.
	(jump): Rewrite into an expander.
	(*jump_ubranch, *jump_cbcond): New patterns.
	* config/sparc/niagara4.md: Match 'cbcond' in 'n4_cti'.
	* config/sparc/sparc.h (AS_NIAGARA4_FLAG): New macro, use it
	when target default is niagara4.
	(SPARC_SIMM5_P): Define.
	* config/sparc/sol2.h (AS_SPARC64_FLAG): Adjust.
	(AS_SPARC32_FLAG): Define.
	(ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Use
	AS_NIAGARA4_FLAG as needed.

2012-11-15  Steve Ellcey  <sellcey@mips.com>

	* expr.c (expand_cond_expr_using_cmove): Use promoted mode for temp.

2012-11-15  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/54619
	* tree-ssa-loop-ivopts.c (get_use_type): New function.
	(get_computation_at): Use get_use_type.
	(get_computation_cost_at): Declare and set mem_mode.  Use mem_mode.

2012-11-15  Jakub Jelinek  <jakub@redhat.com>

	* asan.c (report_error_func): Set DECL_IGNORED_P, don't touch
	DECL_ASSEMBLER_NAME.
	(asan_init_func): Likewise.
	(asan_finish_file): Use void * instead of __asan_global * as type of
	__asan_{,un}register_globals.  Set DECL_IGNORED_P on the decls.

2012-11-15  Matthias Klose  <doko@ubuntu.com>

	* Makefile.in (if_multiarch): Don't use a GNU make 3.81 feature.

2012-11-14  Jan Hubicka  <jh@suse.cz>

	PR bootstrap/55051
	* gcov-io.c (gcov_read_summary): Fix array bound check.

2012-11-14  Sterling Augustine  <saugustine@google.com>

	PR debug/55328
	* dwarf2out.c (index_address_table_entry): Check a node's refcount.

2012-11-14  Jan Hubicka  <jh@suse.cz>

	PR bootstrap/55051
	* ipa-inline.c (edge_badness): Improve dumping; fix overflow.

2012-11-14  Matthias Klose  <doko@ubuntu.com>

	* config/sparc/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
	* config/sparc/t-linux: New file; define MULTIARCH_DIRNAME.
	* config.gcc <sparc-*-linux*> (tmake_file): Include sparc/t-linux
	for 32bit non-biarch configurations.

2012-11-14  Matthias Klose  <doko@ubuntu.com>

	* doc/invoke.texi: Document -print-multiarch.
	* doc/install.texi: Document --enable-multiarch.
	* doc/fragments.texi: Document MULTILIB_OSDIRNAMES, MULTIARCH_DIRNAME.
	* configure.ac: Add --enable-multiarch option.
	* configure: Regenerate.
	* Makefile.in (s-mlib): Pass MULTIARCH_DIRNAME to genmultilib.
	enable_multiarch, with_float: New macros.
	if_multiarch: New macro, define in terms of enable_multiarch.
	* genmultilib: Add new argument for the multiarch name.
	* gcc.c (multiarch_dir): Define.
	(for_each_path): Search for multiarch suffixes.
	(driver_handle_option): Handle multiarch option.
	(do_spec_1): Pass -imultiarch if defined.
	(main): Print multiarch.
	(set_multilib_dir): Separate multilib and multiarch names
	from multilib_select.
	(print_multilib_info): Ignore multiarch names in multilib_select.
	* incpath.c (add_standard_paths): Search the multiarch include dirs.
	* cppdefault.h (default_include): Document multiarch in multilib
	member.
	* cppdefault.c: [LOCAL_INCLUDE_DIR, STANDARD_INCLUDE_DIR] Add an
	include directory for multiarch directories.
	* common.opt: New options --print-multiarch and -imultilib.
	* config.gcc <i[34567]86-*-linux* | x86_64-*-linux*> (tmake_file):
	Include i386/t-linux.
	<i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu> (tmake_file):
	Include i386/t-kfreebsd.
	<i[34567]86-*-gnu*> (tmake_file): Include i386/t-gnu.
	* config/i386/t-linux64: Add multiarch names in
	MULTILIB_OSDIRNAMES, define MULTIARCH_DIRNAME.
	* config/i386/t-gnu: New file.
	* config/i386/t-kfreebsd: Likewise.
	* config/i386/t-linux: Likewise.

2012-11-14  Jan Hubicka  <jh@suse.cz>

	* tree.c (set_call_expr_flags): New function.
	(local_define_builtin): Use it.
	* tree.h (set_call_expr_flags): Declare.

2012-11-14  Uros Bizjak  <ubizjak@gmail.com>
	    Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>

	PR target/47440
	* config/i386/i386.c (gate_insert_vzeroupper): New function.
	(rest_of_handle_insert_vzeroupper): Ditto.
	(struct rtl_opt_pass pass_insert_vzeroupper): New.
	(ix86_option_override): Register vzeroupper insertion pass here.
	(ix86_check_avx256_register): Handle SUBREGs properly.
	(ix86_init_machine_status): Remove optimize_mode_switching[AVX_U128]
	initialization.

2012-11-14  David Edelsohn  <dje.gcc@gmail.com>

	* configure.ac (HAVE_LD_LARGE_TOC): Add AIX test.
	* configure: Regenerated.
	* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Warn if
	other toc options used with cmodel. Disable TARGET_NO_FP_IN_TOC
	and TARGET_NO_SUM_IN_TOC if not CMODEL_SMALL. CMODEL_MEDIUM means
	CMODEL_LARGE on AIX.
	(ASM_SPEC): -mvsx implies -mpwr6. Add -many.
	(ASM_DEFAULT_SPEC): Use -mpwr4.
	(TARGET_CMODEL): Define.
	(SET_CMODEL): Define.
	* config/rs6000/rs6000.md (largetoc_high_aix<mode>): New.
	(largetoc_high_plus_aix<mode>): New.
	(largetoc_low<mode>): Change to mode iterator. Test TARGET_TOC
	instead of TARGET_ELF.
	(tocref): Remove TARGET_ELF test.
	* config/rs6000/rs6000.c (output_toc): Use [TE] for large TOC
	symbols on AIX.
	* config/rs6000/aix64.opt (mcmodel): New.

2012-11-14  Andreas Tobler  <andreast@fgznet.ch>

	* config/i386/i386.c (ix86_get_function_versions_dispatcher): Guard
	variables with ASM_OUTPUT_TYPE_DIRECTIVE and
	HAVE_GNU_INDIRECT_FUNCTION where needed.

2012-11-13  Ian Lance Taylor  <iant@google.com>

	* common.opt (fPIC, fPIE, fpic, fpie): Create a Negative loop such
	that any of these options disables the others.

2012-11-13  Sriraman Tallam  <tmsriram@google.com>

	* cgraph.c (insert_new_cgraph_node_version): Use cgraph_get_node
	instead of cgraph_get_create_node.
	* config/i386/i386.c (ix86_get_function_versions_dispatcher): Move
	ifunc not supported code to the end.

2012-11-13  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55253
	* ipa-cp.c (merge_aggregate_lattices): Propagate aggs_contain_variable
	flag.

2012-11-13  Eric Botcazou  <ebotcazou@adacore.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/55142
	* config/i386/i386.c (legitimize_pic_address): Properly handle
	REG + CONST.
	(ix86_print_operand_address): Set code to 'k' when forcing
	addr32 prefix.  For x32, zero-extend negative displacement if
	it < -16*1024*1024.

2012-11-13  Uros Bizjak  <ubizjak@gmail.com>

	PR target/41993
	* mode-switching.c (create_pre_exit): Set return_copy to last_insn if
	copy_start is not a function return regno. Skip debug instructions
	in instruction scan loop.

2012-11-13  Andrew Stubbs  <ams@codesourcery.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* config/arm/arm.c (arm_emit_coreregs_64bit_shift): Fix comment.
	* config/arm/arm.md (opt, opt_enabled): New attributes.
	(enabled): Use opt_enabled.
	(ashldi3, ashrdi3, lshrdi3): Add TARGET_NEON case.
	(ashldi3): Allow general operands for TARGET_NEON case.
	* config/arm/iterators.md (rshifts): New code iterator.
	(shift, shifttype): New code attributes.
	* config/arm/neon.md (UNSPEC_LOAD_COUNT): New unspec type.
	(neon_load_count, ashldi3_neon_noclobber, ashldi3_neon,
	signed_shift_di3_neon, unsigned_shift_di3_neon,
	ashrdi3_neon_imm_noclobber, lshrdi3_neon_imm_noclobber,
	<shift>di3_neon): New patterns.

2012-11-13  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (asan.o): Depend on $(TM_P_H).

	PR tree-optimization/55281
	* tree-vect-generic.c (expand_vector_condition): Accept any
	is_gimple_val rather than just SSA_NAME if not COMPARISON_CLASS_P.
	* fold-const.c (fold_ternary_loc): Fold VEC_COND_EXPR if arg0 is
	either integer_all_onesp or integer_zerop.
	* tree-vect-stmts.c (vectorizable_condition): Build the condition
	using corresponding vector integer type instead of vectype.

	PR rtl-optimization/54127
	* cfgrtl.c (force_nonfallthru_and_redirect): When redirecting
	asm goto labels from BB_HEAD (e->dest) to target bb, decrement
	LABEL_NUSES of BB_HEAD (e->dest) and increment LABEL_NUSES of
	BB_HEAD (target) appropriately and adjust JUMP_LABEL and/or
	REG_LABEL_TARGET and REG_LABEL_OPERAND.

2012-11-12  Jakub Jelinek  <jakub@redhat.com>

	* asan.c (instrument_builtin_call) <case BUILT_IN_BCOPY>: Fix up
	dest assignment.

2012-11-13  Hans-Peter Nilsson  <hp@axis.com>

	PR target/55257
	* config/cris/cris.c (cris_asm_output_mi_thunk): Call
	final_start_function and final_end_function.

2012-11-12  David Edelsohn  <dje.gcc@gmail.com>

	* asan.c: Include tm_p.h.

2012-11-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/55195
	* config/pa/pa.md (attr type): Add sibcall and sh_func_adrs insn types.
	(in_branch_delay): Don't allow sibcall or sh_func_adrs insns.
	(in_nullified_branch_delay): Likewise.
	(in_call_delay): Likewise.
	Define delay for sibcall insns.  Adjust Z3 and Z4 insn reservations for
	new types.  Add opaque cond to mark all calls, sibcalls, dyncalls and
	the $$sh_func_adrs call as variable.  Update type of sibcalls and
	$$sh_func_adrs call.
	* config/pa/pa.c (pa_adjust_insn_length): Revise to return updated
	length instead of adjustment.  Handle negative and undefined call
	adjustments for insn_default_length.  Remove adjustment for millicode
	insn with unfilled delay slot.
	(pa_output_millicode_call): Update for revised millicode length.
	* config/pa/pa.h (ADJUST_INSN_LENGTH): Revise to set LENGTH.

2012-11-12  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-ccp.c (dump_lattice_value) <CONSTANT>: Fix duplication.

2012-11-12  Eric Botcazou  <ebotcazou@adacore.com>

	* common.opt (fvar-tracking-uninit): Document.
	* toplev.c (process_options): Fix handling of flag_var_tracking_uninit.
	* config/darwin.c (darwin_override_options): Likewise.

2012-11-12  Steven Bosscher  <steven@gcc.gnu.org>

	* sched-vis.c (print_pattern): Handle NULL patterns.

2012-11-12  Steven Bosscher  <steven@gcc.gnu.org>
	    Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/51447
	* df-scan.c (df_get_entry_block_def_set): Add global regs to the set.
	* df-problems.c (df_lr_local_compute): Make global regs always live.
	* dce.c (deletable_insn_p): Make insns setting a global reg
	inherently necessary.

2012-11-12  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.md (cmov<mode>_insn): Emit CSINC when
	one of the alternatives is constant 1.
	* config/aarch64/constraints.md: New constraint.
	* config/aarch64/predicates.md: Rename predicate
	aarch64_reg_zero_or_m1 to aarch64_reg_zero_or_m1_or_1.

2012-11-12  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.md (*compare_neg<mode>): New pattern.

2012-11-12  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi: Move -faddress-sanitizer from Optimization
	Options to Debugging Options.

2012-11-12  Jakub Jelinek  <jakub@redhat.com>

	* asan.c: Formatting cleanups.

2012-11-12  Wei Mi  <wmi@google.com>

	* gcc.c (LINK_COMMAND_SPEC): Add -lasan to link command if
	-faddress-sanitizer is on.

2012-11-12  Dodji Seketeli  <dodji@redhat.com>

	* gimple.h (is_gimple_builtin_call): Declare ...
	* gimple.c (is_gimple_builtin_call): ... new public function.
	* asan.c (insert_if_then_before_iter, instrument_mem_region_access,
	instrument_strlen_call, maybe_instrument_builtin_call,
	instrument_call): New static functions.
	(create_cond_insert_point): Renamed
	create_cond_insert_point_before_iter into this.  Add a new
	parameter to decide whether to insert the condition before or
	after the statement iterator.
	(build_check_stmt): Adjust for the new create_cond_insert_point.
	Add a new parameter to decide whether to add the instrumentation
	code before or after the statement iterator.
	(instrument_assignment): Factorize from ...
	(transform_statements): ... here.  Use maybe_instrument_call to
	instrument builtin function calls as well.
	(instrument_derefs): Adjust for the new parameter of
	build_check_stmt.  Fix detection of bit-field access.

2012-11-12  Dodji Seketeli  <dodji@redhat.com>

	* asan.c (create_cond_insert_point_before_iter): Factorize out of ...
	(build_check_stmt): ... here.

2012-11-12  Dodji Seketeli  <dodji@redhat.com>

	* asan.c (create_cond_insert_point_before_iter): Factorize out of ...
	(build_check_stmt): ... here.

2012-11-12  Dodji Seketeli  <dodji@redhat.com>

	* asan.c (build_check_stmt): Accept the memory access to be
	represented by an SSA_NAME.

2012-11-12  Jakub Jelinek  <jakub@redhat.com>
	    Wei Mi  <wmi@google.com>

	* varasm.c: Include asan.h.
	(assemble_noswitch_variable): Grow size by asan_red_zone_size
	if decl is asan protected.
	(place_block_symbol): Likewise.
	(assemble_variable): If decl is asan protected, increase
	DECL_ALIGN if needed, and for decls emitted using
	assemble_variable_contents append padding zeros after it.
	* Makefile.in (varasm.o): Depend on asan.h.
	* asan.c: Include output.h.
	(asan_pp, asan_pp_initialized, asan_ctor_statements): New variables.
	(asan_pp_initialize, asan_pp_string): New functions.
	(asan_emit_stack_protection): Use asan_pp{,_initialized}
	instead of local pp{,_initialized} vars, use asan_pp_initialize
	and asan_pp_string helpers.
	(asan_needs_local_alias, asan_protect_global,
	asan_global_struct, asan_add_global): New functions.
	(asan_finish_file): Protect global vars that can be protected. Use
	asan_ctor_statements instead of ctor_statements
	* asan.h (asan_protect_global): New prototype.
	(asan_red_zone_size): New inline function.

2012-11-12  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (asan.o): Depend on $(EXPR_H) $(OPTABS_H).
	(cfgexpand.o): Depend on asan.h.
	* asan.c: Include expr.h and optabs.h.
	(asan_shadow_set): New variable.
	(asan_shadow_cst, asan_emit_stack_protection): New functions.
	(asan_init_shadow_ptr_types): Initialize also asan_shadow_set.
	* cfgexpand.c: Include asan.h.  Define HOST_WIDE_INT heap vector.
	(partition_stack_vars): If i is large alignment and j small
	alignment or vice versa, break out of the loop instead of continue,
	and put the test earlier.  If flag_asan, break out of the loop
	if for small alignment size is different.
	(struct stack_vars_data): New type.
	(expand_stack_vars): Add DATA argument.  Change PRED type to
	function taking size_t argument instead of tree.  Adjust pred
	calls.  Fill DATA in and add needed padding in between variables
	if -faddress-sanitizer.
	(defer_stack_allocation): Defer everything for flag_asan.
	(stack_protect_decl_phase_1, stack_protect_decl_phase_2): Take
	size_t index into stack_vars array instead of the decl directly.
	(asan_decl_phase_3): New function.
	(expand_used_vars): Return var destruction sequence.  Adjust
	expand_stack_vars calls, add another one for flag_asan.  Call
	asan_emit_stack_protection if expand_stack_vars added anything
	to the vectors.
	(expand_gimple_basic_block): Add disable_tail_calls argument.
	(gimple_expand_cfg): Pass true to it if expand_used_vars returned
	non-NULL.  Emit the sequence returned by expand_used_vars after
	return_label.
	* asan.h (asan_emit_stack_protection): New prototype.
	(asan_shadow_set): New decl.
	(ASAN_RED_ZONE_SIZE, ASAN_STACK_MAGIC_LEFT, ASAN_STACK_MAGIC_MIDDLE,
	ASAN_STACK_MAGIC_RIGHT, ASAN_STACK_FRAME_MAGIC): Define.
	(asan_protect_stack_decl): New inline.
	* toplev.c (process_options): Also disable -faddress-sanitizer on
	!FRAME_GROWS_DOWNWARDS targets.

2012-11-12  Jakub Jelinek  <jakub@redhat.com>

	* asan.c (build_check_stmt): Rename join_bb variable to else_bb.
	(gate_asan_O0): New function.
	(pass_asan_O0): New variable.
	* passes.c (init_optimization_passes): Add pass_asan_O0.
	* tree-pass.h (pass_asan_O0): New declaration.

2012-11-12  Jakub Jelinek  <jakub@redhat.com>
	    Xinliang David Li  <davidxl@google.com>
	    Dodji Seketeli  <dodji@redhat.com>

	* Makefile.in (GTFILES): Add $(srcdir)/asan.c.
	(asan.o): Update the dependencies of asan.o.
	* asan.c (tm.h, tree.h, tm_p.h, basic-block.h, flags.h
	function.h, tree-inline.h, tree-dump.h, diagnostic.h, demangle.h,
	langhooks.h, ggc.h, cgraph.h, gimple.h): Remove these unused but
	included headers.
	(shadow_ptr_types): New variable.
	(report_error_func): Change is_store argument to bool, don't append
	newline to function name.
	(PROB_VERY_UNLIKELY, PROB_ALWAYS): Define.
	(build_check_stmt): Change is_store argument to bool.  Emit GIMPLE
	directly instead of creating trees and gimplifying them.  Mark
	the error reporting function as very unlikely.
	(instrument_derefs): Change is_store argument to bool.  Use
	int_size_in_bytes to compute size_in_bytes, simplify size check.
	Use build_fold_addr_expr instead of build_addr.
	(transform_statements): Adjust instrument_derefs caller.
	Use gimple_assign_single_p as stmt test.  Don't look at MEM refs
	in rhs2.
	(asan_init_shadow_ptr_types): New function.
	(asan_instrument): Don't push/pop gimplify context.
	Call asan_init_shadow_ptr_types if not yet initialized.
	* asan.h (ASAN_SHADOW_SHIFT): Adjust comment.

2012-11-12  Jakub Jelinek  <jakub@redhat.com>

	* toplev.c (process_options): Warn and turn off
	-faddress-sanitizer if not supported by target.
	* asan.c: Include target.h.
	(asan_scale, asan_offset_log_32, asan_offset_log_64,
	asan_offset_log): Removed.
	(build_check_stmt): Use ASAN_SHADOW_SHIFT and
	targetm.asan_shadow_offset ().
	(asan_instrument): Don't initialize asan_offset_log.
	* asan.h (ASAN_SHADOW_SHIFT): Define.
	* target.def (TARGET_ASAN_SHADOW_OFFSET): New hook.
	* doc/tm.texi.in (TARGET_ASAN_SHADOW_OFFSET): Add it.
	* doc/tm.texi: Regenerated.
	* Makefile.in (asan.o): Depend on $(TARGET_H).
	* config/i386/i386.c (ix86_asan_shadow_offset): New function.
	(TARGET_ASAN_SHADOW_OFFSET): Define.

2012-11-12  Wei Mi  <wmi@google.com>
	    Diego Novillo  <dnovillo@google.com>
	    Dodji Seketeli  <dodji@redhat.com>

	* Makefile.in: Add asan.c and its dependencies.
	* common.opt: Add -faddress-sanitizer option.
	* doc/invoke.texi: Document the new flag.
	* passes.c: Add the asan pass.
	* toplev.c (compile_file): Call asan_finish_file.
	* asan.c: New file.
	* asan.h: New file.
	* tree-pass.h: Declare pass_asan.

2012-11-12  Tobias Burnus  <burnus@net-b.de>

	* diagnostic.c (diagnostic_append_note): Also call va_end when
	inhibit_notes_p is true.

2012-11-12  Bin Cheng  <bin.cheng@arm.com>

	* gcse.c (struct bb_data): Add new fields, old_pressure, live_in
	and backup.
	(get_regno_pressure_class): Add prototype.
	(update_bb_reg_pressure): New.
	(should_hoist_expr_to_dom): Add new parameter from.
	Monitor the change of reg pressure and use it to drive hoisting.
	(hoist_code): Update LIVE and reg pressure information.
	(calculate_bb_reg_pressure): Initialize live_in and backup.

2012-11-12  Oleg Endo  <olegendo@gcc.gnu.org>

	* doc/md.texi (Standard Pattern Names For Generation): Fix swapped
	sine and cosine operands in the sincos description.

2012-11-12  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53512
	* config/sh/sh.md (sincossf3): Fix swapped sin and cos operands.

2012-11-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*movti_internal_rex64): Remove "!" from
	riF->o alternative.

2012-11-11  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.h (AS_NIAGARA3_FLAG): Tweak.
	* config/sparc/sol2.h (TARGET_CPU_niagara4 support): Fix pasto.

2012-11-11  Eric Botcazou  <ebotcazou@adacore.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/55247
	PR middle-end/55259
	* emit-rtl.c (adjust_address_1): If POINTERS_EXTEND_UNSIGNED > 0,
	handle ZERO_EXTEND.
	* recog.c (offsettable_address_addr_space_p): Likewise.

2012-11-11  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/55263
	* postreload.c (rest_of_handle_postreload): With non-call exceptions,
	if edges are purged call cleanup_cfg to remove unreachable blocks.

2012-11-11  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Copy-edit to use "built-in function" instead
	of "builtin", per GCC coding standards.  Also use consistent
	capitalization in titles of sections describing built-in functions.

2012-11-11  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/55238
	* ipa-cp.c (agg_pass_through_permissible_p): New function.
	(propagate_aggs_accross_jump_function): Use it.
	(find_aggregate_values_for_callers_subset): Likewise and relax an
	assert.

2012-11-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/47440
	* config/i386/i386.c (check_avx256_stores): Remove.
	(ix86_check_avx256_register): New.
	(ix86_avx_u128_mode_needed): Use ix86_check_avx256_register.
	Check the whole RTX for 256bit registers using for_each_rtx.
	(ix86_check_avx_stores): New.
	(ix86_avx_u128_mode_after): Change mode of CALL RTX to AVX_U128_CLEAN
	if there are no 256bit registers used in the function return register.
	(ix86_avx_u128_mode_entry): Use ix86_check_avx256_register.
	(ix86_avx_u128_mode_exit): Ditto.

2012-11-10  Jan Hubicka  <jh@suse.cz>

	PR middle-end/48636
	* ipa-inline.c (want_inline_small_function_p): Take aray index hint.
	(edge_badness): Likewise.
	* ipa-inline.h (inline_hints_vals): Add array_index and comments.
	(inline_summary): Add ARRAY_INDEX.
	* ipa-inline-analysis.c (dump_inline_hints): Dump array_index hint.
	(reset_inline_summary): Handle array_index hint.
	(inline_node_duplication_hook): Likewise.
	(dump_inline_summary): Likewise.
	(array_index_predicate): New function.
	(estimate_function_body_sizes): Use it.
	(estimate_node_size_and_time): Use array_index hint.
	(inline_merge_summary, inline_read_section): Likewise.

2012-11-10  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Copy-edit to use "bit-field" consistently
	instead of "bitfield" or "bit field".

2012-11-10  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Copy-edit to fix incorrect hyphenation phrases
	involving "bit", "byte", "word", "precision", and "floating"
	modifiers.

2012-11-10  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Copy-edit to fix incorrect uses of "which"
	and "that" throughout the file.

2012-11-10  Andrew Pinski  <apinski@cavium.com>

	PR bootstrap/55202
	* configure.ac: Set PLUGIN_LD_SUFFIX to just "ld" if it was "ld-new"
	or "collect-ld".
	* configure: Regenerate.

2012-11-10  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (store_field): Remove TYPE parameter.  Remove block of code
	dealing with BLKmode in registers.  Reimplement this support using
	pseudo-registers and bit-field techniques.
	(store_constructor_field): Remove TYPE parameter and adjust calls to
	store_field.
	(expand_assignment): Adjust calls to store_field.  Add comment.
	(store_expr): Add comment.
	(store_constructor): Adjust calls to store_constructor_field.
	(expand_expr_real_2): Adjust call to store_field.

2012-11-10  Vladimir Makarov  <vmakarov@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/55247
	* config/i386/i386.md (*movti_internal_rex64): Add "!" to riF->o
	alternative.

2012-11-09  Ed Smith-Rowland  <3dw4rd@verizon.net>

	PR c++/54413
	* doc/invoke.texi: Document f[no-]ext-numeric-literals flag.

2012-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/install.texi (sparc64-x-solaris2): Mention MPC as well.

2012-11-09  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_lra_p): Remove.
	(TARGET_LRA_P): Use hook_bool_void_true.

2012-11-09  Jason Merrill  <jason@redhat.com>

	* attribs.c (lookup_attribute_spec): Handle getting a TREE_LIST.

2012-11-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR tree-optimization/55154
	* lra-int.h (LRA_LOSER_COST_FACTOR, LRA_MAX_REJECT): New macros.
	* lra.c (setup_operand_alternative): Use them.
	* lra-constraints.c (LOSER_COST_FACTOR, MAX_OVERALL_COST_BOUND):
	Remove.
	(process_alt_operands): Use LRA_LOSER_COST_FACTOR and LRA_MAX_REJECT.
	Accumulate reject instead of setting for non-const.
	(curr_insn_transform): Initialize best_losers and best_overall by
	INT_MAX.

2012-11-09  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.c (sh_can_use_simple_return_p): Enable with
	-freorder-blocks-and-partition.

2012-11-09  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* rtl.h (CONST_SCALAR_INT_P): New macro.
	* cfgexpand.c (expand_debug_locations): Changed to use
	CONST_SCALAR_INT_P macro.
	* combine.c (try_combine, subst, make_extraction,
	gen_lowpart_for_combine): Ditto.
	* cselib.c (entry_and_rtx_equal_p, rtx_equal_for_cselib_1): Ditto.
	* dwarf2out.c (loc_descriptor): Ditto.
	* emit-rtl.c (gen_lowpart_common): Ditto.
	* ira-costs.c (record_reg_classes, record_address_regs): Ditto.
	* ira-lives.c (single_reg_class): Ditto.
	* recog.c (simplify_while_replacing, asm_operand_ok,
	constrain_operands): Ditto.
	* reload.c (find_reloads): Ditto.
	* simplify-rtx.c (simplify_unary_operation_1,
	simplify_const_unary_operation, simplify_binary_operation_1,
	simplify_const_binary_operation, simplify_relational_operation_1,
	simplify_subreg): Ditto.

2012-11-09  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/54385
	* postreload.c (reload_cse_simplify): Return a bool indicating
	whether the CFG was changed.
	(reload_cse_regs_1): Traverse the CFG instead of the insns chain.
	Cleanup the CFG if edges may have been removed.
	(reload_cse_regs): Update.

2012-11-09  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/54472
	* sel-sched-ir.c (has_dependence_note_reg_set): Handle implicit sets.
	(has_dependence_note_reg_clobber, has_dependence_note_reg_use):
	Likewise.

2012-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/i386.c (release_scratch_register_on_entry): Also adjust
	sp_offset manually.

2012-11-08  Christian Bruel  <christian.bruel@st.com>

	* tree-ssa-tail-merge.c (replace_block_by): Update bb2 profile count.
	Do not reset dead bb1->frequency.

2012-11-08  Steven Bosscher  <steven@gcc.gnu.org>

	PR tree-optimization/55191
	* cfganal.c (connect_infinite_loops_to_exit): Call dfs_deadend here.
	(flow_dfs_compute_reverse_execute): Don't call it here.

2012-11-08  Jakub Jelinek  <jakub@redhat.com>

	PR debug/53145
	* dwarf2out.c (gen_compile_unit_die): Don't call gen_producer_string
	here, instead add "" if producer_string is NULL.
	(dwarf2out_finish): Call gen_producer_string here, unconditionally
	decrease refcount of the old indirect string and set val_str to
	find_AT_string result.

	PR debug/54499
	* cgraphunit.c (assemble_thunk): Don't call source_line debug hook
	here, instead call insn_locations_{init,finalize} and initialize
	prologue_location.

2012-11-08  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>

	PR driver/54789
	* gcc.c (process_command): Use save_switch for synthesized
	-fcompare-debug=* option; mark the switch as known.

2012-11-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/54308
	* config/rs6000/rs6000.c (legitimate_indirect_address_p): Remove
	inline keyword.

2012-11-08  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/54850
	* sched-deps.c (find_inc): Add all dependencies from the inc_insn
	to the mem_insn.

2012-11-08  Jan Hubicka  <jh@suse.cz>

	PR middle-end/48636
	* ipa-inline.c (big_speedup_p): New function.
	(want_inline_small_function_p): Use it.
	(edge_badness): Dump it.
	* params.def (inline-min-speedup): New parameter.
	* doc/invoke.texi (inline-min-speedup): Document.

2012-11-08  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (determine_known_aggregate_parts): Skip writes to
	different declarations when tracking writes to a declaration.

2012-11-07  David S. Miller  <davem@davemloft.net>

	* config/sparc/constraints.md ("U"): Document, in detail,
	which this constraint is necessary.

2012-11-07  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/55235
	* expr.c (store_expr): Do not call emit_block_move for
	non-BLKmode values.

2012-11-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/55219
	* fold-const.c (fold_binary_op_with_conditional_arg): Do not fold if
	the argument is itself a conditional expression.

2012-11-07  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55122
	* lra-constraints.c (match_reload): Sync values for dead input pseudos.

2012-11-07  Richard Henderson  <rth@redhat.com>

	* trans-mem.c (pass_ipa_tm): Don't use TODO_update_ssa.

2012-11-07  Peter Bergner  <bergner@vnet.ibm.com>

	* doc/invoke.texi (-mcpu=power8): Document.
	* config.in (HAVE_AS_POWER8): New.
	* config.gcc: Add cpu_type power8.
	* configure.ac: (HAVE_AS_POWER8): Check for assembler support for
	the POWER8 instructions.
	* configure: Regenerate.
	* config/rs6000/rs6000.h: (ASM_CPU_POWER8_SPEC): Define.
	(ASM_CPU_SPEC): Pass %(asm_cpu_power8) for -mcpu=power8.
	(EXTRA_SPECS): Add asm_cpu_power8 spec string.
	* config/rs6000/rs6000-cpus.def (processor_target_table): Alias
	POWER8 to POWER7.
	* config/rs6000/rs6000-tables.opt: Regenerate.
	* config/rs6000/driver-rs6000.c (ASM_CPU_SPEC): For -mcpu=power8,
	pass %(asm_cpu_power8)/-mpwr8.
	* config/rs6000/aix53.h: Likewise.
	* config/rs6000/aix61.h: Likewise.

2012-11-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/55224
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Put back exception
	to make a sibcall if one of the functions has void return type.

2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	* doc/invoke.texi (Wformat): Update.

2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* optc-gen.awk: Factor code out to...
	* opt-functions.awk (lang_enabled_by): ... this new function.

2012-11-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	* common.opt (Wswitch,Wswitch-default,Wswitch-enum): Move to c.opt.

2012-11-07  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_prologue): Add the missing
	argument 'Pmode' to the 'plus_constant' call.

2012-11-07  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/53787
	* ipa-cp.c (ipcp_value_source): New field offset.
	(ipcp_agg_lattice): New type.
	(ipcp_param_lattices): Likewise, move virt_call from ipcp_lattice here.
	(ipcp_agg_lattice_pool): New variable.
	(ipa_get_parm_lattices): New function.
	(ipa_get_lattice): Turned into ipa_get_scalar_lat, use the above.
	Adjusted all callers.
	(print_lattice): New function.
	(print_all_lattices): Use the above, also print aggregate lattices.
	(set_agg_lats_to_bottom): New function.
	(set_agg_lats_contain_variable): Likewise.
	(set_all_contains_variable): Likewise.
	(initialize_node_lattices): Also handle aggregate lattices, set
	virt_call in ipcp_param_lattices.
	(add_value_source): Handle offsets.
	(add_value_to_lattice): Likewise.
	(add_scalar_value_to_lattice): New function.
	(propagate_vals_accross_pass_through): Use add_scalar_value_to_lattice.
	(propagate_vals_accross_ancestor): Likewise.
	(propagate_accross_jump_function): Renamed to
	propagate_scalar_accross_jump_function, use
	add_scalar_value_to_lattice.
	(set_check_aggs_by_ref): New function.
	(merge_agg_lats_step): Likewise.
	(set_chain_of_aglats_contains_variable): Likewise.
	(merge_aggregate_lattices): Likewise.
	(propagate_constants_accross_call): Also handle aggregate lattices.
	(hint_time_bonus): New function.
	(context_independent_aggregate_values): Likewise.
	(gather_context_independent_values): Also handle agggregate values.
	(agg_jmp_p_vec_for_t_vec): New function.
	(estimate_local_effects): Also handle agggregate values.
	(add_all_node_vals_to_toposort): Likewise.
	(ipcp_propagate_stage): Use struct ipcp_param_lattices.
	(get_clone_agg_value): New function.
	(cgraph_edge_brings_value_p): Also handle agggregate values.
	(create_specialized_node): Likewise.
	(find_more_values_for_callers_subset): Rename to
	find_more_scalar_values_for_callers_subset.  Modify dump.
	(copy_plats_to_inter): New function.
	(intersect_with_plats): Likewise.
	(agg_replacements_to_vector): Likewise.
	(intersect_with_agg_replacements): Likewise.
	(find_aggregate_values_for_callers_subset): Likewise.
	(known_aggs_to_agg_replacement_list): Likewise.
	(cgraph_edge_brings_all_scalars_for_node): Likewise.
	(cgraph_edge_brings_all_agg_vals_for_node): Likewise.
	(perhaps_add_new_callers): Old functionality moved to
	cgraph_edge_brings_all_scalars_for_node, call it and
	cgraph_edge_brings_all_agg_vals_for_node.
	(ipcp_val_in_agg_replacements_p): New function.
	(decide_about_value): New function.
	(decide_whether_version_node): A lot of functionality moved to
	decide_about_value.  Also handle agggregate values.
	(ipcp_driver): Also allocate ipcp_agg_lattice_pool.
	(pass_ipa_cp): Fill in new entries.
	* ipa-prop.c (ipa_node_agg_replacements): New variable.
	(free_parms_ainfo): New function.
	(ipa_analyze_node): Use free_parms_ainfo to free stuff.
	(ipa_find_agg_cst_for_param): Do not rely on offset ordering.
	(ipa_set_node_agg_value_chain): New function.
	(ipa_node_removal_hook): Also handle ipa_node_agg_replacements.
	(ipa_node_duplication_hook): Likewise.
	(ipa_free_all_structures_after_ipa_cp): Also free ipcp_agg_lattice_pool.
	(ipa_free_all_structures_after_iinln): Likewise.
	(ipa_dump_agg_replacement_values): New function.
	(write_agg_replacement_chain): Likewise.
	(read_agg_replacement_chain): Likewise.
	(ipa_prop_write_all_agg_replacement): Likewise.
	(read_replacements_section): Likewise.
	(ipa_prop_read_all_agg_replacement): Likewise.
	(adjust_agg_replacement_values): Likewise.
	(ipcp_transform_function): Likewise.
	* ipa-prop.h: Also define heap vector of ipa_agg_jf_item_t and of
	ipa_agg_jump_function_t.
	(ipa_node_params): Make lattices an array of ipcp_param_lattices.
	(ipa_agg_replacement_value): New type and its vector.
	(ipa_set_node_agg_value_chain) Declare.
	(ipa_node_agg_replacements): Likewise.
	(ipa_get_agg_replacements_for_node): New function.
	(ipcp_agg_lattice_pool): Declare.
	(ipa_dump_agg_replacement_values): Likewise.
	(ipa_prop_write_all_agg_replacement): Likewise.
	(ipa_prop_read_all_agg_replacement): Likewise.
	(ipcp_transform_function): Likewise.
	* ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time): Pass around
	known aggregates and hints.
	* ipa-inline.h: include ipa-prop.h.
	(estimate_ipcp_clone_size_and_time): Adjust declaration.
	* lto-streamer.h (lto_section_type): New item
	LTO_section_ipcp_transform.
	* lto-section-in.c (lto_section_name): New element ipcp_trans.
	* params.def (PARAM_IPA_CP_LOOP_HINT_BONUS): New parameter.
	* Makefile.in (IPA_INLINE_H): New.  Use everywhee instead of
	ipa-inline.h.

2012-11-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (enum upper_128bits_state): Remove.
	(check_avx256_store): Use bool pointer argument.
	(ix86_avx_u128_mode_needed): Use note_stores also for CALL insns.
	* config/i386/predicates.md (vzeroupper_operation): Use match_test.

2012-11-07  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_prologue): For the
	load-pair with writeback instruction, replace
	aarch64_set_frame_expr with add_reg_note (REG_CFA_ADJUST_CFA);
	add new local variable 'cfa_reg' and use it.

2012-11-07  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR middle-end/49220
	* mode-switching.c (create_pre_exit): Set short_block if there
	are no copy insns.

2012-11-07  Martin Jambor  <mjambor@suse.cz>

	* lto-cgraph.c: Include tree-pass.h.
	(lto_output_node): Stream node->ipa_transforms_to_apply.
	(input_node): Likewise.
	* tree-pass.h (passes_by_id): Declare.
	(passes_by_id_size): Likewise.
	* Makefile.in (lto-cgraph.o): Add TREE_PASS_H to dependencies.

2012-11-07  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (true_predicate, single_cond_predicate,
	reset_inline_edge_summary): Fix formatting.
	(account_size_time): Bump up the limit on number of size/time
	entries to 256.
	(estimate_function_body_sizes): Work in reverse postorder.

2012-11-07  David S. Miller  <davem@davemloft.net>

	PR bootstrap/55211
	Revert:
	* config/sparc/constraints.md ("U"): Delete.
	* config/sparc/sparc.md: Use 'r' constraint instead of 'U'.
	* config/sparc/sync.md: Likewise.
	And revert parts of:
	* doc/md.texi: Sync sparc constraint documentation with reality.

2012-11-07  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_avx_u128_mode_after): Don't
	look for reg in CALL operand.

	PR debug/54693
	* tree-flow.h (propagate_threaded_block_debug_into): New prototype.
	* tree-ssa-threadedge.c (propagate_threaded_block_debug_into): No
	longer static.
	* tree-ssa-loop-ch.c (copy_loop_headers): Use it.

2012-11-06  Sterling Augustine  <saugustine@google.com>

	* dwarf2out.c (output_comdat_type_unit): Check for OBJECT_FORMAT_ELF.

2012-11-06  Aldy Hernandez  <aldyh@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	* cfg-flags.def (TM_UNINSTRUMENTED, TM_ABORT): New.
	* trans-mem.c (PROB_VERY_LIKELY, PROB_UNLIKELY, PROB_LIKELY): New.
	(struct tm_region): Add tm_state, restart_block,
	original_transaction_was_outer.
	(tm_region_init_0): Initialize them.
	(collect_bb2reg, get_bb_regions_instrumented): New.
	(tm_log_emit_save_or_restores): Merge into ...
	(expand_transaction): ... here.
	(generate_tm_state, propagate_tm_flags_out): New.
	(execute_tm_mark): Avoid processing blocks more than once.
	(split_bb_make_tm_edge): Split out from ...
	(make_tm_edge): ... here.  And merge the rest into ...
	(expand_block_edges): ... here.
	(execute_tm_edges): Avoid processing blocks more than once.
	(ipa_uninstrument_transaction): New.
	(ipa_tm_scan_calls_transaction): Use it.  Rebuild cgraph and ssa.
	(ipa_tm_execute): Init and free original_copy_tables.
	* trans-mem.h (PR_MULTIWAYCODE): New.
	* tree-cfg.c (make_edges): Use EDGE_TM_ABORT.

2012-11-06  Aldy Hernandez  <aldyh@redhat.com>

	* cfghooks.c (copy_bbs): Handle a null loop_father.

	* cgraph.c (cgraph_debug_gimple_stmt): Handle a null
	current_function_decl.

2012-11-06  Richard Henderson  <rth@redhat.com>

	* tree-ssa-tail-merge.c (find_duplicate): Do not consider
	is_tm_ending_fndecl calls as mergable.

2012-11-06  Sterling Augustine  <saugustine@google.com>
	    Cary Coutant <ccoutant@google.com>

	* common.opt (gno-split-dwarf, gsplit-dwarf): New switches.
	* doc/invoke.texi (Debugging Options): Document them.
	* gcc.c (replace_extension_spec_func):  New function.
	(ASM_FINAL_SPEC): Adjust.
	(static_spec_functions): Add new field for replace-extension.
	(check_live_switch): Adjust comment.  Add case for 'g'.
	* opts.c (finish_options): Set x_debug_generate_pub_sections based on
	x_dwarf_split_debug_info.
	(common_handle_option): Add case for OPT_gsplit_dwarf.
	* dwarf2out.h (addr_table_entry_struct): Add forward declaration.
	(dw_val_struct): Add val_entry pointer.
	* dwarf2out.c (debug_skeleton_info_section,
	debug_skeleton_abbrev_section, debug_addr_section,
	debug_skeleton_line_section, debug_str_offsets_section): New globals.
	(NOT_INDEXED, NO_INDEX_ASSIGNED): New defines.
	(indirect_string_node): New field index.
	(ate_kind): New enum with fields ate_kind_rtc, ate_kind_rtx_dtprel,
	ate_kind_label.
	(addr_table_entry): New structure and type.
	(dw_loc_list_struct): Add field begin_entry.
	(new_loc_desc): Initialize val_entry.
	(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
	Add cases for DW_OP_GNU_addr_index and DW_OP_const_index.
	(build_cfa_loc): Initialize val_entry.
	(AT_index, add_addr_table_entry, remove_addr_table_entry,
	add_AT_lbl_id): New functions.
	(add_AT_addr, add_AT_range_list): New parameter force_direct.
	(output_die_abbrevs): New function.
	(add_ranges_by_labels): New parameter force_direct.
	(output_line_info): New parameter prologue_only.
	(dtprel_bool): New enum with dtprel_false and dtprel_true.
	(dw_addr_op, new_addr_loc_descr): New functions.
	(DEBUG_DWO_INFO_SECTION, DEBUG_DWO_ABBREV_SECTION,
	DEBUG_ADDR_SECTION, DEBUG_NORM_MACINFO_SECTION,
	DEBUG_DWO_MACINFO_SECTION, DEBUG_MACINFO_SECTION,
	DEBUG_NORM_MACRO_SECTION, DEBUG_DWO_MACRO_SECTION,
	DEBUG_MACRO_SECTION, DEBUG_DWO_LINE_SECTION,
	DEBUG_DWO_LOC_SECTION, DEBUG_NORM_STR_OFFSETS_SECTION,
	DEBUG_DWO_STR_OFFSETS_SECTION, DEBUG_STR_OFFSETS_SECTION,
	DEBUG_DWO_STR_SECTION, DEBUG_NORM_STR_SECTION, DEBUG_STR_SECTION,
	DEBUG_MACRO_SECTION_FLAGS, DEBUG_SKELETON_LINE_SECTION_LABEL,
	DEBUG_SKELETON_INFO_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL
	DEBUG_SKELETON_ABBREV_SECTION_LABEL): New macros.
	(DEBUG_STR_SECTION_FLAGS): Adjust.
	(TEXT_SECTION_LABEL, COLD_TEXT_SECTION_LABEL,
	DEBUG_LINE_SECTION_LABEL, DEBUG_INFO_SECTION_LABEL,
	DEBUG_ABBREV_SECTION_LABEL, DEBUG_ADDR_SECTION_LABEL,
	DEBUG_LOC_SECTION_LABEL, DEBUG_RANGES_SECTION_LABEL,
	DEBUG_MACINFO_SECTION_LABEL, DEBUG_MACRO_SECTION_LABEL): Adjust
	indentation.
	(debug_skeleton_abbrev_section_label, debug_addr_section_label,
	debug_skeleton_line_section_label, debug_skeleton_info_section_label):
	New global variables.
	(add_AT_flag, add_AT_int, add_AT_unsigned, add_AT_double, add_AT_vec,
	add_AT_data8): Initialize val_entry.
	(add_AT_low_high_pc): New parameter force_direct. Handle
	dwarf_split_debug_info.
	(set_indirect_string, find_AT_string_form): New functions.
	(AT_string_form): Adjust to call find_AT_string_from.
	(add_AT_die_ref, add_AT_fde_ref, add_AT_loc, add_AT_list):
	Initialize val_entry.
	(addr_index_table): New global variable.
	(addr_table_entry_do_hash, addr_table_entry_eq, add_addr_table_entry,
	init_addr_table_entry, remove_addr_table_entry, index_addr_table_entry,
	remove_loc_list_addr_table_entries): New functions.
	(add_AT_addr, add_AT_lbl_id, add_AT_range_list): New parameter
	force_direct.  Handle dwarf_split_debug_info.
	(add_AT_file, add_AT_vms_delta, add_AT_lineptr, add_AT_macptr,
	add_AT_offset): Initialize val_entry.
	(UNRELOCATED_OFFSET, RELOCATED_OFFSET): New defines.
	(size_of_die): Handle dwarf_split_debug_info.
	(size_of_aranges, value_format): Call AT_class.  Check AT_index.
	(output_die_abbrevs): New function.
	(output_abbrev_section): Call output_die_abbrevs.
	(new_loc_list): Initialize begin_entry.
	(output_loc_list): Handle dwarf_split_debug_info.
	(output_range_list_offset, output_loc_list_offset,
	output_attr_index_or_value, ): New functions.
	(output_die): Fix call to dw2_asm_output_data.  Call
	output_attr_index_or_value and output_range_list_offset.
	Adjust logic around dw_val_class_str.
	(add_top_lebel_skeleton_die_attrs, get_skeleton_type_unit,
	output_skeleton_debug_sections): New functions.
	(output_comdat_type_unit, output_pubname, output_aranges): Handle
	dwarf_split_debug_info.
	(add_ranges_by_labels): New parameter force_direct.
	(mem_loc_descriptor, loc_descr): Call new_addr_loc_descr.
	(loc_list_from_tree, add_const_value_attribtue): Use dtprel_bools in
	place of generic integer.
	(dwarf2out_vms_debug_main_pointer, gen_entry_point_die, gen_label_die,
	gen_call_site_die, gen_subprogram_die, gen_variable_die,
	add_high_low_attributes): Adjust calls to add_AT_lbl_id.
	(output_macinfo_op): Adjust indirect_string_logic.
	(save_macinfo_strings): New function.
	(output_macinfo): Adjust.
	(dwarf2out_init): Handle dwarf_split_debug_info.
	(index_string, output_index_string_offset, output_index_string): New
	functions.
	(output_indirect_string): Adjust.
	(output_indirect_strings, output_addr_table_entry, output_addr_table):
	New functions.
	(resolve_addr_in_expr, hash_loc_operands): Handle DW_OP_GNU_addr_index
	and DW_OP_GNU_const_index.  Handle dwarf_split_debug_info.  Call
	remove_loc_list_addr_table_entries and remove_addr_table_entry.
	(index_location_lists): New function.
	(dwarf2out_finish): Handle dwarf_split_debug_info.  New variable
	main_comp_unit_die.  Adjust calls to add_AT_low_high_pc,
	add_ranges_by_labels, add_AT_addr, and add_AT_lineptr. Call
	save_macinfo_strings and output_indirect_strings.

2012-11-06  Gerald Pfeifer  <gerald@pfeifer.com>

	* config/i386/i386.c (make_dispatcher_decl): Guard with
	ASM_OUTPUT_TYPE_DIRECTIVE and HAVE_GNU_INDIRECT_FUNCTION.

2012-11-06  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (estimate_function_body_sizes,
	inline_update_overall_summary): Cap time calculations.

2012-11-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_init_machine_status): Do not
	explicitly clear tls_descriptor_call_expanded_p again.

2012-11-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md
	(<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Mark operand 0
	as read and written by the instruction.

2012-11-06  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54693
	* tree-ssa-threadedge.c (propagate_threaded_block_debug_into):
	Use a stack vector before allocating a pointer set.

2012-11-06  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (ipa_get_param_decl_index_1): New function.
	(ipa_get_param_decl_index): Just call ipa_get_param_decl_index_1.
	(ipa_populate_param_decls): Accept descriptors parameter rather
	than the whole info.
	(load_from_unmodified_param): Likewise.
	(ipa_load_from_parm_agg_1): Likewise.
	(ipa_load_from_parm_agg): Extract descriptors from info.
	(compute_complex_assign_jump_func): Likewise.
	(ipa_analyze_indirect_call_uses): Likewise.

2012-11-06  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (compute_uninlined_call_time): Return gcov_type.
	(compute_inlined_call_time): Watch overflows.
	(relative_time_benefit): Compute in gcov_type.

2012-11-06  Jan Hubicka  <jh@suse.cz>

	* cfgloopanal.c (get_loop_hot_path): New function.
	* tree-ssa-lop-ivcanon.c (struct loop_size): Add CONSTANT_IV,
	NUM_NON_PURE_CALLS_ON_HOT_PATH, NUM_PURE_CALLS_ON_HOT_PATH,
	NUM_BRANCHES_ON_HOT_PATH.
	(tree_estimate_loop_size): Compute the new values.
	(try_unroll_loop_completely): Disable unrolling of loops with only
	calls or too many branches.
	(tree_unroll_loops_completely): Deal also with outer loops of hot loops.
	* cfgloop.h (get_loop_hot_path): Declare.
	* params.def (PARAM_MAX_PEEL_BRANCHES): New parameters.
	* invoke.texi (max-peel-branches): Document.

2012-11-06  Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c (check_stmt): Fix debug info formatting.

2012-11-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (TARGET_INSTANTIATE_DECLS): New define.
	(ix86_instantiate_decls): New function.
	(ix86_expand_builtin) <case IX86_BUILTIN_LDMXCSR>: Use SLOT_TEMP
	stack slot instead of SLOT_VIRTUAL.
	<case IX86_BUILTIN_STMXCSR>: Ditto.
	(assign_386_stack_local): Do not assert when virtual slot is valid.
	* config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_VIRTUAL.
	* config/i386/i386.md (truncdfsf2): Do not use SLOT_VIRTUAL stack slot.
	(truncxf<mode>2): Ditto.
	(floatunssi<mode>2): Ditto.
	(isinf<mode>2): Ditto.
	* config/i386/sync.md (atomic_load<mode>): Ditto.
	(atomic_store<mode>): Ditto.

2012-11-06  Jan Hubicka  <jh@suse.cz>

	* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound,
	vect_do_peeling_for_alignment): Fix loop bound computation.
	* tree-vect-loop.c (vect_transform_loop): Maintain loop bounds.

2012-11-06  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/sh.c (and_xor_ior_costs, addsubcosts): Double the costs for
	ops larger than SImode.
	* config/sh/sh.md (rotcl, *rotcl): New insns and splits.
	(ashldi3_k): Convert to insn_and_split and use new rotcl insn.

2012-11-06  Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>

	PR target/47440
	* config/i386/i386-protos.h (emit_i387_cw_initialization): Delete.
	(emit_vzero): Add prototype.
	(ix86_mode_entry): Likewise.
	(ix86_mode_exit): Likewise.
	(ix86_emit_mode_set): Likewise.

	* config/i386/i386.c (typedef struct block_info_def): Delete.
	(define BLOCK_INFO): Delete.
	(check_avx256_stores): Add checking for MEM_P.
	(move_or_delete_vzeroupper_2): Delete.
	(move_or_delete_vzeroupper_1): Delete.
	(move_or_delete_vzeroupper): Delete.
	(ix86_maybe_emit_epilogue_vzeroupper): Delete.
	(function_pass_avx256_p): Delete.
	(ix86_function_ok_for_sibcall): Remove sibcall disabling.
	(nit_cumulative_args): Remove initialization of of avx256 fields of
	cfun->machine.
	(ix86_emit_restore_sse_regs_using_mov): Remove vzeroupper generation.
	(ix86_expand_epilogue): Likewise.
	(ix86_avx_u128_mode_needed): New.
	(ix86_i387_mode_needed): Rename from ix86_mode_needed.
	(ix86_mode_needed): New.
	(ix86_avx_u128_mode_after): New.
	(ix86_mode_after): New.
	(ix86_avx_u128_mode_entry): New.
	(ix86_mode_entry): New.
	(ix86_avx_u128_mode_exit): New.
	(ix86_mode_exit): New.
	(ix86_emit_mode_set): New.
	(ix86_expand_call): Delete vzeroupper generation.
	(ix86_split_call_vzeroupper): Delete.
	(ix86_init_machine_status): Initialize optimize_mode_switching.
	(ix86_expand_special_args_builtin): Change.
	(ix86_reorg): Delete a call of move_or_delete_vzeroupper.

	* config/i386/i386.h  (VALID_AVX256_REG_OR_OI_MODE): New.
	(AVX_U128): New.
	(avx_u128_state): New.
	(NUM_MODES_FOR_MODE_SWITCHING): Added AVX_U128_ANY.
	(MODE_AFTER): New.
	(MODE_ENTRY): New.
	(MODE_EXIT): New.
	(EMIT_MODE_SET): Change.
	(machine_function): Delete avx256 fields.

	* config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): Delete.
	(define_insn_and_split "*call_vzeroupper"): Delete.
	(define_insn_and_split "*call_rex64_ms_sysv_vzeroupper"): Delete.
	(define_insn_and_split "*sibcall_vzeroupper"): Delete.
	(define_insn_and_split "*call_pop_vzeroupper"): Delete.
	(define_insn_and_split "*sibcall_pop_vzeroupper"): Delete.
	(define_insn_and_split "*call_value_vzeroupper"): Delete.
	(define_insn_and_split "*sibcall_value_vzeroupper"): Delete.
	(define_insn_and_split "*call_value_rex64_ms_sysv_vzeroupper"): Delete.
	(define_insn_and_split "*call_value_pop_vzeroupper"): Delete.
	(define_insn_and_split "*sibcall_value_pop_vzeroupper"): Delete.
	(define_expand "return"): Remove vzeroupper emitting.
	(define_expand "simple_return"): Delete.

	* config/i386/predicates.md (vzeroupper_operation): New.

	* config/i386/sse.md (avx_vzeroupper): Change.

2012-11-06  Uros Bizjak  <ubizjak@gmail.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/41993
	* mode-switching.c (create_pre_exit): Set return_copy to
	last_insn when copy_start is a pseudo reg.

2012-11-06  Andrey Turetskiy  <andrey.turetskiy@gmail.com>

	* config/i386/i386.c (bdesc_args): Rename CODE_FOR_avx2_umulhrswv16hi3
	to CODE_FOR_avx2_pmulhrswv16hi3.
	* config/i386/predicates.md (const1_operand): Extend for vectors.
	* config/i386/sse.md (ssse3_avx2): Extend.
	(ssedoublemode): Ditto.
	(<sse2_avx2>_uavg<mode>3): Merge avx2_uavgv32qi3, sse2_uavgv16qi3,
	avx2_uavgv16hi3 and sse2_uavgv8hi3 into one.
	(*<sse2_avx2>_uavg<mode>3): Merge *avx2_uavgv32qi3, *sse2_uavgv16qi3,
	*avx2_uavgv16hi3 and *sse2_uavgv8hi3 into one.
	(PMULHRSW): New.
	(<ssse3_avx2>_pmulhrsw<mode>3): Merge avx2_umulhrswv16hi3,
	ssse3_pmulhrswv8hi3 and ssse3_pmulhrswv4hi3 into one.
	(*avx2_pmulhrswv16hi3): Replace const_vector with const1_operand
	predicate.
	(*ssse3_pmulhrswv8hi3): Ditto.
	(*ssse3_pmulhrswv4hi3): Ditto.

2012-11-06  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.c (epiphany_address_cost):
	Use MODE parameter.

2012-11-05  Sriraman Tallam  <tmsriram@google.com>

	* doc/tm.texi.in (TARGET_OPTION_FUNCTION_VERSIONS): New hook
	description.
	* (TARGET_COMPARE_VERSION_PRIORITY): New hook description.
	* (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): New hook description.
	* (TARGET_GENERATE_VERSION_DISPATCHER_BODY): New hook description.
	* doc/tm.texi: Regenerate.
	* target.def (compare_version_priority): New target hook.
	* (generate_version_dispatcher_body): New target hook.
	* (get_function_versions_dispatcher): New target hook.
	* (function_versions): New target hook.
	* cgraph.c (cgraph_fnver_htab): New htab.
	(cgraph_fn_ver_htab_hash): New function.
	(cgraph_fn_ver_htab_eq): New function.
	(version_info_node): New pointer.
	(insert_new_cgraph_node_version): New function.
	(get_cgraph_node_version): New function.
	(delete_function_version): New function.
	(record_function_versions): New function.
	* cgraph.h (cgraph_node): New bitfield dispatcher_function.
	(cgraph_function_version_info): New struct.
	(get_cgraph_node_version): New function.
	(insert_new_cgraph_node_version): New function.
	(record_function_versions): New function.
	(delete_function_version): New function.
	(init_lowered_empty_function): Expose function.
	* tree.h (DECL_FUNCTION_VERSIONED): New macro.
	(tree_function_decl): New bit-field versioned_function.
	* cgraphunit.c (cgraph_analyze_function): Generate body of multiversion
	function dispatcher.
	(cgraph_analyze_functions): Analyze dispatcher function.
	(init_lowered_empty_function): Make non-static. New parameter in_ssa.
	(assemble_thunk): Add parameter to call to init_lowered_empty_function.
	* config/i386/i386.c (add_condition_to_bb): New function.
	(get_builtin_code_for_version): New function.
	(ix86_compare_version_priority): New function.
	(feature_compare): New function.
	(dispatch_function_versions): New function.
	(ix86_function_versions): New function.
	(attr_strcmp): New function.
	(ix86_mangle_function_version_assembler_name): New function.
	(ix86_mangle_decl_assembler_name): New function.
	(make_name): New function.
	(make_dispatcher_decl): New function.
	(is_function_default_version): New function.
	(ix86_get_function_versions_dispatcher): New function.
	(make_attribute): New function.
	(make_resolver_func): New function.
	(ix86_generate_version_dispatcher_body): New function.
	(fold_builtin_cpu): Return integer for cpu builtins.
	(TARGET_MANGLE_DECL_ASSEMBLER_NAME): New macro.
	(TARGET_COMPARE_VERSION_PRIORITY): New macro.
	(TARGET_GENERATE_VERSION_DISPATCHER_BODY): New macro.
	(TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): New macro.
	(TARGET_OPTION_FUNCTION_VERSIONS): New macro.

2012-11-05  Joern Rennecke  <joern.rennecke@embecosm.com>

	* recog.c (extract_insn): Enabled alternative defaults to 1.

2012-11-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (print_reg): Replace REX_INT_REG_P with
	REX_INT_REGNO_P.

2012-11-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/54986
	* gimple-fold.c (canonicalize_constructor_val): Strip again all no-op
	conversions on entry but add them back on exit if needed.

2012-11-05  Andreas Schwab  <schwab@linux-m68k.org>

	* final.c (final_scan_insn) [HAVE_cc0]: Handle all comparison
	codes in non-jump and cmove insn.

2012-11-05  Uros Bizjak  <ubizjak@gmail.com>
	    Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>

	* mode-switching.c (create_pre_exit): Force late switching if
	__builtin_{apply,return} emitted a load that require mode,
	other than MODE_EXIT.

2012-11-05  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/55204
	* config/i386/i386.c (ix86_address_subreg_operand): Remove stack
	pointer check.
	(print_reg): Use true_regnum rather than REGNO.
	(ix86_print_operand_address): Remove SUBREG handling.

2012-11-05  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-niter.c (finite_loop_p): Revamp to be just wrapper of
	max_loop_iterations.

2012-11-05  Joern Rennecke  <joern.rennecke@embecosm.com>

	* reorg.c (fill_simple_delay_slots): Avoid calling optimize_skip
	with a return instruction.

2012-11-05  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55151
	* lra-constraints.c (process_alt_operands): Permit putting reg
	value into memory.  Increase reject for this case.

2012-11-05  Dehao Chen  <dehao@google.com>

	* final.c (reemit_insn_block_notes): Do not change scope if insn
	location is UNKNOWN_LOCATION.

2012-11-05  Joern Rennecke  <joern.rennecke@embecosm.com>

	* doc/md.texi (Defining Attributes): Document that we are defining
	HAVE_ATTR_name macros as 1 for defined attributes, and as 0
	for undefined special attributes.
	* final.c (asm_insn_count, align_fuzz): Always define.
	(insn_current_reference_address): Likewise.
	(init_insn_lengths): Use if (HAVE_ATTR_length) instead of
	#ifdef HAVE_ATTR_length.
	(get_attr_length_1, shorten_branches, final): Likewise.
	(final_scan_insn, output_asm_name): Likewise.
	* genattr.c (gen_attr): Define HAVE_ATTR_name macros for
	defined attributes as 1.
	Remove ancient get_attr_alternative compatibility code.
	For special purpose attributes not provided, define HAVE_ATTR_name
	as 0.
	In case no length attribute is given, provide stub definitions
	for insn_*_length* functions, and also include insn-addr.h.
	In case no enabled attribute is given, provide stub definition.
	* genattrtab.c (write_length_unit_log): Always write a definition.
	* hooks.c (hook_int_rtx_1, hook_int_rtx_unreachable): New functions.
	* hooks.h (hook_int_rtx_1, hook_int_rtx_unreachable): Declare.
	* lra-int.h (struct lra_insn_recog_data): Make member
	alternative_enabled_p unconditional.
	* lra.c (free_insn_recog_data): Use if (HAVE_ATTR_length) instead of
	#ifdef HAVE_ATTR_length.
	(lra_set_insn_recog_data): Likewise.  Make initialization of
	alternative_enabled_p unconditional.
	(lra_update_insn_recog_data): Use #if instead of #ifdef for
	HAVE_ATTR_enabled.
	* recog.c [!HAVE_ATTR_enabled] (get_attr_enabled): Don't define.
	(extract_insn): Check HAVE_ATTR_enabled.
	(gate_handle_split_before_regstack): Use #if instead of
	#if defined for HAVE_ATTR_length.

2012-11-05  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (compute_uninlined_call_time,
	compute_inlined_call_time): New functions.
	(RELATIVE_TIME_BENEFIT_RANGE): New macro.
	(relative_time_benefit): Rewrite.
	(edge_badness): Rewrite path with guessed profile and estimated profile.
	* ipa-inline.h (INLINE_HINT_declared_inline, INLINE_HINT_cross_module):
	New hints.
	(struct inline_summary): Add GROWTH filed.
	* ipa-inline-analysis.c (dump_inline_hints): Update.
	(reset_inline_summary): Update.
	(dump_inline_summary): Update.
	(will_be_nonconstant_predicate): Cleanup to use gimple_store_p and
	gimple_assign_load_p predicates.
	(estimate_node_size_and_time): Drop INLINE_HINT_declared_inline hint.
	(simple_edge_hints): New function.
	(do_estimate_edge_time): Return time of invocation of callee rather
	than the time scaled by edge frequency; update hints code.
	(do_estimate_edge_hints): Update.
	(do_estimate_growth): Cleanup.

2012-11-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/55194
	* dwarf2out.c (value_format) <case dw_val_class_high_pc>: Handle
	also DWARF2_ADDR_SIZE 1 and 2.

2012-11-05  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-niter.c (find_loop_niter): Remove just_once_each_iteration_p.
	(maybe_lower_iteration_bound): Initialize not_executed_last_iteration to  NULL
	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Skip
	just_once_each_iteration_p; record estimated bound when loop has only one
	likely exit; test just_once_each_iteration_p before IV canon itself.

2012-11-05  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (leaf_node_p): Rename to ...
	(num_calls) ... this one.
	(want_early_inline_function_p): Allow smal growth on non-leafs.

2012-11-05  Jakub Jelinek  <jakub@redhat.com>

	PR debug/54402
	* var-tracking.c (fp_setter): Return false if there is REG_CFA_RESTORE
	hfp note.
	(vt_initialize): Look for fp_setter in any bb, not just successor of
	entry bb.

2012-11-05  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (TARGET_CACHE32, TARGET_HARVARD): Delete macro.
	(TARGET_SUPERSCALAR): Add TARGET_SH2A.
	(CACHE_LOG): Use TARGET_HARD_SH4 and TARGET_SH5 instead of
	TARGET_CACHE32.
	(TRAMPOLINE_ALIGNMENT): Use TARGET_HARD_SH4 and TARGET_SH5 instead of
	TARGET_HARVARD.
	* config/sh/sh.c (sh_trampoline_init): Likewise.

2012-11-05  David Edelsohn  <dje.gcc@gmail.com>

	* system.h (loc_t): Poison.

2012-11-05  Marc Glisse  <marc.glisse@inria.fr>

	* fold-const.c (fold_unary_loc): Disable conversion optimization
	for void type.

2012-11-04  Thomas Schwinge  <thomas@codesourcery.com>

	* configure: Regenerate.

2012-11-04  Eric Botcazou  <ebotcazou@adacore.com>

	* combine.c: Adjust toplevel comment.
	(make_extraction): Adjust head comment and move up canonicalization.

2012-11-04  Alexandre Oliva <aoliva@redhat.com>
	    Jakub Jelinek <jakub@redhat.com>

	PR debug/54693
	* tree-ssa-loop-ivopts.c (remove_unused_ivs): Emit debug temps
	for dropped IV sets.

2012-11-04  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54693
	* tree-ssa-threadedge.c (propagate_threaded_block_debug_into):
	New, rewritten from debug stmt copying code...
	(thread_around_empty_block): ... removed from here.
	(thread_across_edge): Call propagate_threaded_block_debug_into.

2012-11-04  Dehao Chen  <dehao@google.com>

	* expr.c (expand_expr_real_1): Change to not using input_location.

2012-11-03  Jan Hubicka  <jh@suse.cz>

	* invoke.texi (profile-use): update documentation.
	* opts.c (common_handle_option): Enable tree-vectorize
	and tree-loop-distribute-patterns.
	* tree-loop-distribution.c (tree_loop_distribution): Skip loops
	optimized for size.
	* config/i386/i386.c (ix86_option_override_internal): Enabe
	prefetch_lop_arrays for profile-use.

2012-11-03  Robert Mason  <rbmj@verizon.net>

	* gcov-io.c (gcov_open): Add file mode to open call (need for VxWorks)

2012-11-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi: Copy-edit to use present tense except when
	explicitly describing future or past behavior.

2012-11-03  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.c (output_movedouble, output_far_jump,
	output_ieee_ccmpeq): Use multi-line strings for asm.
	(find_regmode_weight): Wrap lines.
	(sh_optimize_target_register_callee_saved): Remove commented out
	variable.
	(emit_load_ptr): Remove prototype.

2012-11-03  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md (*cbranch_t): Allow splitting after reload.
	Allow going beyond current basic block before reload when looking for
	the reg set insn.
	* config/sh/sh.c (sh_find_set_of_reg): Don't stop at labels.

2012-11-02  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Add
	missing sign to unsigned.

2012-11-02  Andrew Pinski  <apinski@cavium.com>

	PR rtl-opt/54524
	* simplify-rtx.c (simplify_relational_operation_1): Don't simplify
	(LTU/GEU (PLUS a 0) 0) into (GEU/LTU a 0) since they are not
	equivalent.

2012-11-02  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-niter.c (double_int_cmp, bound_index,
	discover_iteration_bound_by_body_walk): New functions.
	(discover_iteration_bound_by_body_walk): Use it.

2012-11-02  Jan Hubicka  <jh@suse.cz>

	* predict.c (predict_loops): Predict also exits not dominating latch.

2012-11-02  Jan Hubicka  <jh@suse.cz>

	* predict.c (predict_loops): Do not predict infinite loops.

2012-11-02  Jan Hubicka  <jh@suse.cz>

	PR middle-end/55079
	* tree-ssa-loop-niter.c (number_of_iterations_exit): Update
	MAX field if NITER was folded to contant.
	(record_estimate): Sanity check.
	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): New
	function.
	(remove_redundant_iv_test): New function.
	(loops_to_unloop, loops_to_unloop_nunroll): New static vars.
	(unloop_loops): Break out from ...
	(try_unroll_loop_completely): ... here; Pass in MAXITER; use
	remove_exits_and_undefined_stmts; do not unloop.
	(canonicalize_loop_induction_variables): Compute MAXITER;
	use remove_redundant_iv_test; remove loop_close_ssa_invalidated
	and irred_invalidated arguments.
	(canonicalize_induction_variables): Compute fresh bound estimates;
	unloop; walk from innermost.
	(tree_unroll_loops_completely): Likewise.

2012-11-02  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/55130
	* lra-constraints.c (debug_loc_equivalence_change_p): Rename to
	loc_equivalence_change_p.
	(lra_constraints): Check equiv_insn_bitmap for debug insn.  Call
	loc_equivalence_change_p for non-transformed insn.

2012-11-02  Eric Botcazou  <ebotcazou@adacore.com>

	* cfg-flags.def (ABNORMAL_CALL): Fix comment.
	(EH): Likewise.
	(SIBCALL): Likewise.
	* cfgrtl.c (rtl_verify_flow_info_1): Adjust error messages.
	Deal with EDGE_SIBCALL and fix the EDGE_ABNORMAL check.

2012-11-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/55147
	* config/i386/i386.md (bswapdi2): Limit to TARGET_64BIT.
	(*bswapdi2_doubleword): Removed.

2012-11-02  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Remove moxie web reference.

2012-11-01  Marc Glisse  <marc.glisse@inria.fr>

	PR middle-end/55001
	* tree-vect-generic.c (expand_vector_condition): New function.
	(expand_vector_operations_1): Call it.

2012-11-01  Steve Ellcey  <sellcey@mips.com>

	* target-globals.c (save_target_globals): Save lra_int struct.

2012-11-01  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/standards.texi (Standards): Adjust reference to Go specification.

2012-11-01  Lawrence Crowl  <crowl@google.com>

	* ebitmap.h: Remove unused.
	* ebitmap.c: Remove unused.
	* Makefile.in: Remove ebitmap.h and ebitmap.c.
	* sbitmap.h (SBITMAP_SIZE_BYTES): Move to source file.
	(SET_BIT_WITH_POPCOUNT): Remove unused.
	(RESET_BIT_WITH_POPCOUNT): Remove unused.
	(bitmap_copy_n): Remove unused.
	(bitmap_range_empty_p): Remove unused.
	(sbitmap_popcount): Remove unused.
	(sbitmap_verify_popcount): Make private to source file.
	* sbitmap.c (SBITMAP_SIZE_BYTES): Move here from header.
	(bitmap_copy_n): Remove unused.
	(bitmap_range_empty_p): Remove unused.
	(sbitmap_popcount): Remove unused.
	(sbitmap_verify_popcount): Make private to source file.

2012-11-01  Lawrence Crowl  <crowl@google.com>

	* sbitmap.h (sbitmap_iter_init): Rename bmp_iter_set_init and add
	unused parameter to match bitmap iterator.  Update callers.
	(sbitmap_iter_cond): Rename bmp_iter_set.  Update callers.
	(sbitmap_iter_next): Rename bmp_iter_next and add unused parameter to
	match bitmap iterator.  Update callers.
	(EXECUTE_IF_SET_IN_SBITMAP_REV): Remove unused.
	(EXECUTE_IF_SET_IN_SBITMAP): Rename EXECUTE_IF_SET_IN_BITMAP and
	adjust to be identical to the definition in bitmap.h.  Conditionalize
	the definition based on not having been defined.  Update callers.
	* bitmap.h (EXECUTE_IF_SET_IN_BITMAP): Conditionalize the definition
	based on not having been defined.  (To match the above.)

2012-11-01  Lawrence Crowl  <crowl@google.com>

	* sbitmap.h (TEST_BIT): Rename bitmap_bit_p, normalizing parameter
	type. Update callers to match.
	(SET_BIT): Rename bitmap_set_bit, normalizing parameter type. Update
	callers to match.
	(SET_BIT_WITH_POPCOUNT): Rename bitmap_set_bit_with_popcount,
	normalizing parameter type. Update callers to match.
	(RESET_BIT): Rename bitmap_clear_bit, normalizing parameter type.
	Update callers to match.
	(RESET_BIT_WITH_POPCOUNT): Rename bitmap_clear_bit_with_popcount,
	normalizing parameter type. Update callers to match.
	* basic-block.h (sbitmap_intersection_of_succs): Rename
	bitmap_intersection_of_succs. Update callers to match.
	* basic-block.h (sbitmap_intersection_of_preds): Rename
	bitmap_intersection_of_preds. Update callers to match.
	* basic-block.h (sbitmap_union_of_succs): Rename
	bitmap_union_of_succs. Update callers to match.
	* basic-block.h (sbitmap_union_of_preds): Rename
	bitmap_union_of_preds. Update callers to match.

2012-11-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/55150
	* lra-constraints.c (lra_constraints): Check only pseudos with
	equivalences.  Add insns with equivalence pseudos.

2012-11-01  Sharad Singhai  <singhai@google.com>

	PR other/55164
	* dumpfile.h (struct dump_file_info): Fix order of flags.

2012-11-01  Jan Hubicka  <jh@suse.cz>

	PR middle-end/55104
	* ipa-inline-transform.c (inline_call): Silence an sanity check until
	ipa-cp issue if fixed.

2012-11-01  Sharad Singhai  <singhai@google.com>

	* doc/invoke.texi: Update -fopt-info documentation.
	* dumpfile.c: Move dump_flags here from passes.c.
	Rename opt_info_options to optinfo_verbosity_options.
	Add optgroup_options.
	(dump_files): Add field for optinfo_flags in the static initializer.
	(dump_register): Handle additional parameter for optgroup_flags.
	(opt_info_enable_passes): Renamed opt_info_enable_all. Handle
	optgroup_flags. Fix documentation.
	(opt_info_switch_p_1): Handle optgroup options.
	(opt_info_switch_p): Handle optgroup_flags. Warn on multiple files.
	* dumpfile.h (dump_register): Additional argument for optgroup_flags.
	All callers updated.
	(struct dump_file_info): Add field for optgroup_flags.
	Define OPTGROUP_* flags.
	* tree-pass.h (struct opt_pass): Add addtional field for optinfo_flags.
	All opt_pass static initializers updated.
	* opts-global.c (dump_remap_tree_vectorizer_verbose): Use 'all'
	instead of 'optall'.
	(handle_common_deferred_options): Fix typo in error message.
	* passes.c (register_one_dump_file): Add argument for optgroup_flags.
	Turn on OPTGROUP_IPA for IPA passes.
	Move dump_flags from here to dumpfile.c.
	* statistics.c (statistics_early_init): Use OPTGROUP_NONE in call to
	dump_register.

2012-11-01  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR target/55160
	* config/sh/sh.md (doloop_end): Use emit_jump_insn.

2012-10-31  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53708
	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
	user-supplied alignment when used with an explicit section name.

2012-10-31  Dehao Chen  <dehao@google.com>

	* tree-eh.c (do_return_redirection): Set location for jump statement.
	(do_goto_redirection): Likewise.
	(frob_into_branch_around): Likewise.
	(lower_try_finally_nofallthru): Likewise.
	(lower_try_finally_copy): Likewise.
	(lower_try_finally_switch): Likewise.
	* expr.c (store_expr): Use current insn location instead of expr
	location.
	(expand_expr_real): Likewise.
	(expand_expr_real_1): Likewise.

2012-10-31   Easwaran Raman  <eraman@google.com>

	PR target/54938
	PR middle-end/54957
	* optabs.c (emit_cmp_and_jump_insn_1): Add REG_BR_PROB note
	only if it doesn't already exist.
	* stmt.c (get_outgoing_edge_probs): Return 0 if BB is NULL.
	(emit_case_dispatch_table): Handle the case where STMT_BB is NULL.
	(expand_sjlj_dispatch_table): Pass BB containing before_case
	to emit_case_dispatch_table.

2012-10-31  Lawrence Crowl  <crowl@google.com>

	* is-a.h: New.
	(is_a <T> (U*)): New.  Test for is-a relationship.
	(as_a <T> (U*)): New.  Treat as a derived type.
	(dyn_cast <T> (U*)): New.  Conditionally cast based on is_a.
	* cgraph.h (varpool_node): Rename to varpool_node_for_decl.
	Adjust callers to match.
	(is_a_helper <cgraph_node>::test (symtab_node_def *)): New.
	(is_a_helper <varpool_node>::test (symtab_node_def *)): New.
	(symtab_node_def::try_function): New.  Change most calls to
	symtab_function_p with calls to dyn_cast <cgraph_node> (p).
	(symtab_node_def::try_variable): New.  Change most calls to
	symtab_variable_p with calls to dyn_cast <varpool_node> (p).
	(symtab_function_p): Remove.  Change callers to use
	is_a <cgraph_node> (p) instead.
	(symtab_variable_p): Remove.  Change callers to use
	is_a <varpool_node> (p) instead.
	* cgraph.c (cgraph_node_for_asm): Remove redundant call to
	symtab_node_for_asm.
	* cgraphunit.c (symbol_finalized_and_needed): New.
	(symbol_finalized): New.
	(cgraph_analyze_functions): Split complicated conditionals out into
	above new functions.
	* Makefile.in (CGRAPH_H): Add is-a.h as used by cgraph.h.

2012-10-31  Steven Bosscher  <steven@gcc.gnu.org>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/55018
	* basic-block.h (dfs_find_deadend): New prototype.
	* cfganal.c (dfs_find_deadend): No longer static.  Use bitmap
	instead of sbitmap for visited.
	(flow_dfs_compute_reverse_execute): Use dfs_find_deadend here, too.
	* dominance.c (calc_dfs_tree): If saw_unconnected, traverse from
	dfs_find_deadend of unconnected b instead of b directly.

2012-10-31  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/i386.c (ix86_expand_prologue): Emit frame info for the
	special register pushes before frame probing and allocation.

2012-10-31  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/55150
	* lra-constraints.c (lra_constraints): Update debug insn info
	after equivalence change.

2012-10-31  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (ipa_inline): Avoid infinite loop on inlining
	empty virtual functions calling themselves.

2012-10-31  Tom Tromey  <tromey@redhat.com>

	PR other/50899
	* doc/gcc.texi: Add @direntry for gcov.

2012-10-31  Joern Rennecke  <joern.rennecke@embecosm.com>

	* expr.c (can_move_by_pieces): Apply ATTRIBUTE_UNUSED to len.

2012-10-31  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/19105
	PR tree-optimization/21643
	PR tree-optimization/46309
	* tree-ssa-reassoc.c (init_range_entry): Add STMT argument
	and use it if EXP is NULL.
	(update_range_test): Handle OPCODE equal to ERROR_MARK and oe->op NULL.
	(optimize_range_tests): Likewise.
	(final_range_test_p, suitable_cond_bb, no_side_effect_bb, get_ops,
	maybe_optimize_range_tests): New functions.
	(reassociate_bb): Call maybe_optimize_range_tests if last
	stmt of bb is GIMPLE_COND that hasn't been visited yet.

2012-10-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/rs6000/rs6000.md (insvsi, insvdi, extvsi, extvdi): Rename
	to...
	(insvsi_internal, insvdi_internal, extvsi_internal)
	(extvdi_internal): ...this.
	(insv, extv): Update accordingly.

2012-10-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine.c (simplify_comparison): If BITS_BIG_ENDIAN, always assume
	that zero_extracts of const_ints are doing word-sized extractions.

2012-10-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine.c (make_extraction): Remove dead wanted_inner_mode-
	and pos_rtx-related code.

2012-10-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (store_bit_field_1): Move generation of MEM insvs
	to the MEM_P block.
	(extract_bit_field_1): Likewise extvs and extzvs.

2012-10-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (store_bit_field_using_insv): New function,
	split out from...
	(store_bit_field_1): ...here.
	(extract_bit_field_using_extv): New function, split out from...
	(extract_bit_field_1): ...here.

2012-10-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (store_bit_field_1): Use OP_MODE to check whether an
	insv pattern is available.  Remove redundant checks for OP_MODE
	being MAX_MACHINE_MODE.
	(extract_bit_field_1): Remove redundant checks for EXT_MODE being
	MAX_MACHINE_MODE.

2012-10-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (store_bit_field_1): Remove test for BLKmode values.

2012-10-31  Ralf Corsépius  <ralf.corsepius@rtems.org>,
	    Joel Sherrill  <joel.sherrill@oarcorp.com>

	* config/sparc/t-rtems: New (Custom multilibs).
	* config/sparc/t-rtems-64: New (Custom multilibs).
	* config.gcc (sparc64-*-rtems*): Add sparc/t-rtems-64.
	(sparc-*-rtems*): Add sparc/t-rtems.

2012-10-31  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (legitimize_reload_address): Remove code
	handling non-aligned ld/std.
	* config/rs6000/paired.md (movv2sf_paired): Use 'Y' instead of 'o'.
	* config/rs6000/vsx.md (vsx_mov, vsx_movti): Likewise.
	* config/rs6000/altivec.md (altivec_mov, altivec_movti): Likewise.
	* config/rs6000/dfp.md (movtd_internal): Use 'm' instead of 'o'.

2012-10-31  Alan Modra  <amodra@gmail.com>

	* config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Define _CALL_LINUX.

2012-10-31  Joern Rennecke  <joern.rennecke@embecosm.com>

	* lra-constraints.c (choose_split_class): Add ATTRIBUTE_UNUSED to
	hard_reg_class.

	PR target/52498
	* vmsdbgout.c (vmsdbgout_write_source_line): Comment out names of
	last two parameters.

2012-10-30  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54551
	PR debug/54693
	* valtrack.c (dead_debug_promote_uses): Assert-check that
	global used bit was clear and initialize entry unconditionally.

2012-10-30  Eric Botcazou  <ebotcazou@adacore.com>

	* cse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in
	head comment.
	(hash_rtx): Likewise.

2012-10-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/55093
	* rtlanal.c (simplify_subreg_regno): Remove lra_in_progress
	check for ARG_POINTER_REGNUM.

2012-10-30  Steve Ellcey  <sellcey@mips.com>

	* config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Change order
	and add mabi=64.
	(DRIVER_SELF_SPECS): Make -n32 the default on mips64* archs.
	* config/mips/t-mti-linux (MULTILIB_OPTIONS): Change order.
	(MULTILIB_DIRNAMES): Ditto.
	(MULTILIB_EXCEPTIONS): New.

2012-10-30  Joern Rennecke  <joern.rennecke@embecosm.com>

	* lra-constraints.c (check_secondary_memory_needed_p):
	Add ATTRIBUTE_UNUSED to parameters.

2012-10-30  Richard Sandiford  <rdsandiford@googlemail.com>

	* defaults.h (SLOW_UNALIGNED_ACCESS): Provide default definition.
	* expmed.c (SLOW_UNALIGNED_ACCESS): Remove default definition.
	* expr.c (SLOW_UNALIGNED_ACCESS): Likewise.
	* lra-constraints.c (SLOW_UNALIGNED_ACCESS): Likewise.
	(simplify_operand_subreg): Don't check STRICT_ALIGNMENT here.

2012-10-30  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (eliminated_by_inlining_prob): Cleanup.

2012-10-30  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-niter.c (number_of_iterations_exit): New parameter
	EVERY_ITERATION with implicit value of true.
	(record_estimate): Check dominance relationship of the basic block
	we are estimating on instead of relying on UPPER to be false.
	(struct ilb_data): Drop RELIABLE.
	(idx_infer_loop_bounds): Update.
	(infer_loop_bounds_from_ref): Drop parameter RELIABLE.
	(infer_loop_bounds_from_array): Drop parameter RELIABLE.
	(infer_loop_bounds_from_undefined): Update comments and handling
	of RELIABLE.
	(estimate_numbers_of_iterations_loop): Record all bounds.

2012-10-30  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* lra-eliminations.c (lra_eliminate_regs_1): Use simplify_gen_subreg
	rather than gen_rtx_SUBREG.

2012-10-30  Richard Biener  <rguenther@suse.de>

	* gimple.h (gimple_store_p): New predicate.
	(gimple_assign_load_p): Likewise.
	* tree-inline.c (estimate_num_insns): Use it.

2012-10-30  Marc Glisse  <marc.glisse@inria.fr>

	* fold-const.c (fold_binary_op_with_conditional_arg): Handle vectors.
	(fold_binary_loc): Call it for VEC_COND_EXPR.

2012-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
	    Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_simd_bsl<mode>_internal): New pattern.
	(aarch64_simd_bsl<mode>): Likewise.
	(aarch64_vcond_internal<mode>): Likewise.
	(vcondu<mode><mode>): Likewise.
	(vcond<mode><mode>): Likewise.
	* config/aarch64/iterators.md (UNSPEC_BSL): Add to define_constants.

2012-10-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55111
	* tree-ssa-pre.c (eliminate_insert): Properly fold the built stmt.

2012-10-30  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54963
	* config/sh/iterators.md (SIDI): New mode iterator.
	* config/sh/sh.md (negdi2): Use parallel around operation and T_REG
	clobber in expander.
	(*negdi2): Mark output operand as early clobbered.  Add T_REG clobber.
	Split after reload.  Simplify split code.
	(abssi2, absdi2): Fold expanders into abs<mode>2.
	(*abssi2, *absdi2): Fold into *abs<mode>2 insn_and_split.  Split insns
	before reload.
	(*negabssi2, *negabsdi2): Fold into *negabs<mode>2.  Add T_REG clobber.
	Split insns before reload.
	(negsi_cond): Reformat.  Use emit_move_insn instead of gen_movesi.
	(negdi_cond): Reformat.  Use emit_move_insn instead of a pair
	of gen_movsi.  Split insn before reload.

2012-10-30  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53988
	* config/sh/sh.md (tstqi_t_zero): Rename to *tstqi_t_zero.
	(*tst<mode>_t_zero): New insns.
	* config/sh/iterators.md (lowpart_be, lowpart_le): New mode attributes.

2012-10-30  H.J. Lu  <hongjiu.lu@intel.com>

	* gimple-pretty-print.c (dump_gimple_bb_header): Avoid alloca.

2012-10-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/54953
	* valtrack.h (DEBUG_TEMP_AFTER_WITH_REG_FORCE): New.
	* valtrack.c (dead_debug_insert_temp): Use emit_debug_insn_after
	even for where == DEBUG_TEMP_AFTER_WITH_REG_FORCE.
	* dce.c (word_dce_process_block, dce_process_block): Pass
	DEBUG_TEMP_AFTER_WITH_REG_FORCE if insn is needed and therefore
	not going to be eliminated.

2012-10-29  Lawrence Crowl  <crowl@google.com>

	* sbitmap.h (sbitmap_copy): Rename bitmap_copy.
	(sbitmap_copy_n): Rename bitmap_copy_n.
	(sbitmap_equal): Rename bitmap_equal_p.
	(sbitmap_empty_p): Rename bitmap_empty_p.
	(sbitmap_range_empty_p): Rename bitmap_range_empty_p.
	(sbitmap_zero): Rename bitmap_clear.
	(sbitmap_ones): Rename bitmap_ones.
	(sbitmap_vector_zero): Rename bitmap_vector_clear.
	(sbitmap_vector_ones): Rename bitmap_vector_ones.
	(sbitmap_not): Rename bitmap_not.
	(sbitmap_a_and_b_cg): Commented out.
	(sbitmap_a_and_b): Rename bitmap_and.  Add bool return.
	(sbitmap_difference): Rename bitmap_and_compl.
	(sbitmap_a_or_b_cg): Commented out.
	(sbitmap_a_or_b): Rename bitmap_xor.  Add bool return.
	(sbitmap_a_xor_b_cg): Commented out.
	(sbitmap_a_xor_b): Rename bitmap_xor.  Add bool return.
	(sbitmap_a_and_b_or_c_cg): Rename bitmap_and_or.
	(sbitmap_a_and_b_or_c): Commented out.
	(sbitmap_a_or_b_and_c_cg): Rename bitmap_or_and.
	(sbitmap_a_or_b_and_c): Commented out.
	(sbitmap_union_of_diff_cg): Rename bitmap_ior_and_compl.
	(sbitmap_union_of_diff): Commented out.
	(dump_sbitmap): Rename dump_bitmap.
	(dump_sbitmap_file): Rename dump_bitmap_file.
	(debug_sbitmap): Rename debug_bitmap.
	(dump_sbitmap_vector): Rename dump_bitmap_vector.
	(sbitmap_first_set_bit): Rename bitmap_first_set_bit.
	(sbitmap_last_set_bit): Rename bitmap_last_set_bit.
	(sbitmap_a_subset_b_p): Rename bitmap_subset_p.
	(sbitmap_any_common_bits): Rename bitmap_intersect_p.
	(#define sbitmap_free): Reimplement as inline function.
	(#define sbitmap_vector_free): Reimplement as inline function.
	* bitmap.h (#define bitmap_zero): Remove as redundant.
	(#define bitmap_empty_p): Reimplement as inline function.
	(#define dump_bitmap): Reimplement as inline function.

2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/54930
	* doc/invoke.texi (Warning Options): Document -Wno-return-local-addr.

2012-10-29  H.J. Lu  <hongjiu.lu@intel.com>

	* lra-assigns.c: Remove trailing white spaces.
	* lra-coalesce.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-int.h: Likewise.
	* lra-spills.c: Likewise.
	* lra.c: Likewise.

2012-10-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53066
	* tree.h (FUNCTION_POINTER_TYPE_P): New.

2012-10-29  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54693
	* valtrack.c (dead_debug_insert_temp): Defer rescan of
	newly-emitted debug insn.

2012-10-29  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54693
	* tree-ssa-threadedge.c (thread_around_empty_block): Copy
	debug temps from predecessor before threading.

2012-10-29  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54551
	PR debug/54693
	* valtrack.c (dead_debug_global_find): Accept NULL dtemp.
	(dead_debug_global_insert): Return new entry.
	(dead_debug_global_replace_temp): Return early if REG is no
	longer in place, or if dtemp was already substituted.
	(dead_debug_promote_uses): Insert for all defs and replace all
	debug uses at once.
	(dead_debug_local_finish): Release used after promotion.
	(dead_debug_insert_temp): Stop if dtemp is NULL.

2012-10-29  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54693
	* loop-unroll.c (loop_exit_at_end_p): Skip debug insns.

2012-10-29  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54693
	* config/i386/i386.c (add_parameter_dependencies): Stop
	backward scan at the insn before the incoming head.
	(ix86_dependencies_evaluation_hook): Skip debug insns.  Stop
	if first_arg is head.

2012-10-29  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64-protos.h (aarch64_load_tp): New proto.
	* config/aarch64/aarch64.c (aarch64_load_tp): Export.
	(aarch64_init_builtins): Don't add __builtin_thread_pointer builtin.
	* config/aarch64/aarch64.h (aarch64_builtins): Delete
	AARCH64_BUILTIN_THREAD_POINTER.
	* config/aarch64/aarch64.md (get_thread_pointerdi): New pattern.

2012-10-29  Marc Glisse  <marc.glisse@inria.fr>

	PR middle-end/55027
	* tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
	Handle VECTOR_CST.

2012-10-29  Vladimir Makarov  <vmakarov@redhat.com>

	* rtlanal.c (strip_address_mutation): Use SUBREG_REG instead of XEXP.

2012-10-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg
	for all addresses, zero-extended with AND.

2012-10-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/55116
	* rtlanal.c (strip_address_mutation): Add SUBREG case.

2012-10-29  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (want_inline_function_called_once_p): Rename to ...
	(want_inline_function_to_all_callers_p): check also functions with
	multiple callers.
	(ipa_inline): Handle inlining for size into multiple callers.

2012-10-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53695
	* tracer.c (tracer): Fixup loop structure.
	* cfgloopmanip.c (force_single_succ_latches): Add assert.
	(fix_loop_structure): Re-compute loop latches and disambiguate
	loops with multiple latches if required.

2012-10-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg
	to check SImode equivalent of address, zero-extended with AND RTX.
	* config/i386/i386.md (ashift to lea splitter): Split to SImode mult.
	(simple lea to add/shift peephole2s): Remove peephole2s that operate
	on subregs of DImode operations.

2012-10-28  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55106
	* lra-constraints.c (skip_usage_debug_insns): New function.
	(check_secondary_memory_needed_p): Ditto.
	(inherit_reload_reg): Use the new functions.  Improve debug output.

2012-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/cpp.texi (Search Path): Fix outdated C++ path.

2012-10-28  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
	&this->field expressions.

2012-10-28  Vladimir Makarov  <vmakarov@redhat.com>

	* rtl.h (struct rtx_def): Add a comment for member unchanging.
	* lra-int.h (LRA_TEMP_CLOBBER_P): New macro.
	(lra_hard_reg_substitution): Rename to lra_final_code_change.
	* lra-constraints.c (match_reload): Mark temporary clobbers.
	* lra-spill.c (lra_hard_reg_substitution): Rename to
	lra_final_code_change.  Remove temporary clobbers.
	* lra.c (lra): Rename to lra_final_code_change.

2012-10-28  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (edge_badness): Fix overflow.
	(inline_small_functions): Initialize SCCs correctly.
	(do_estimate_edge_time, do_estimate_edge_hints): Skip self
	recursive functions in SCC hints.

2012-10-28  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/38711
	* ira.c (ira): Remove DF_LIVE if the problem is in the stack.
	(do_reload): Add it back at the end for -O2 and higher.

	* function.c (thread_prologue_and_epilogue_insns): Use
	REG_SET_TO_HARD_REG_SET instead of CLEAR_HARD_REG_SET and
	reg_set_to_hard_reg_set.

2012-10-28  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (edge_badness): Reduce precision; use scc hints.
	(inline_small_functions): Fix dumps; update all callees after inlining.
	* ipa-inline.h (INLINE_HINT_in_scc, INLINE_HINT_same_scc): New
	constants.
	(inline summary): Add SCC_NO.
	* ipa-inline-analysis.c (dump_inline_hints): Dump SCC hints.
	(reset_inline_summary): Reset scc_no.
	(estimate_node_size_and_time): Set in_scc hint.
	(do_estimate_edge_time): Add same_scc hint.
	(do_estimate_edge_hints): Likewise.

2012-10-28  Andreas Schwab  <schwab@linux-m68k.org>

	* doc/cppopts.texi: Fix use of @item vs. @itemx inside @table.
	* doc/extend.texi: Likewise.
	* doc/generic.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.

	* doc/tm.texi.in (Misc): Add newline before @end.
	* doc/tm.texi: Update.

2012-10-27  Joern Rennecke  <joern.rennecke@embecosm.com>

	* lra-assigns.c (find_hard_regno_for): Fix use of WORDS_BIG_ENDIAN.

2012-10-27  Georg-Johann Lay  <avr@gjlay.de>

	PR target/55034
	* config/avr/avr.c (avr_out_lpm): Remove unused regno_dest.

2012-10-27  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/55042
	* config/sh/sh.c (sh1_builtin_p): Comment out unused function.

2012-10-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*lea<mode>): Remove unneeded temporary.

2012-10-26  David S. Miller  <davem@davemloft.net>

	* config/sparc/constraints.md: Update unused letter list, move
	"w" near other memory constraints.  Remove no longer relevant
	comment.
	* doc/md.texi: Sync sparc constraint documentation with reality.

2012-10-26  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.c (rl78_as_legitimate_address): Do not allow
	reg+addend addresses for the _far namespace.

2012-10-26  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/sync.md (ATOMIC): Correct DI condition.

2012-10-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/54970
	* cfgexpand.c (expand_debug_expr): Expand &MEM_REF[&var, n]
	as DEBUG_IMPLICIT_PTR + n if &var expands to DEBUG_IMPLICIT_PTR.
	* tree-sra.c (create_access_replacement): Allow also MEM_REFs
	with ADDR_EXPR first operand in DECL_DEBUG_EXPR expressions.
	* var-tracking.c (track_expr_p): Handle MEM_REFs in DECL_DEBUG_EXPR
	expressions.
	* dwarf2out.c (add_var_loc_to_decl): Likewise.

2012-10-26  Jeff Law  <law@redhat.com>

	* tree-ssa-threadedge.c (cond_arg_set_in_bb): Use last stmt.

2012-10-26  Gunther Nikl  <gnikl@users.sourceforge.net>

	* common/config/m68k/m68k-common.c (m68k_handle_option): Set
	gcc_options fields of opts_set for -m68020-40 and -m68020-60.

2012-10-26  Teresa Johnson  <tejohnson@google.com>

	* ree.c (add_removable_extension): Remove unnecessary
	mode check with other extension.
	* testsuite/gcc.c-torture/execute/20111227-2.c: New test.
	* testsuite/gcc.c-torture/execute/20111227-3.c: Ditto.

2012-10-26  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-transform.c (inline_call): Only account size changes
	for !DECL_EXTERNAL.

2012-10-26  Martin Jambor  <mjambor@suse.cz>

	PR debug/54971
	* tree-sra.c (struct access): New flag grp_to_be_debug_replaced.
	(dump_access): Dump the new flag.
	(analyze_access_subtree): Set the new flag when appropriate.
	(create_access_replacement): Handle debug replacements differently.
	(generate_subtree_copies): Handle the grp_to_be_debug_replaced flag.
	(init_subtree_with_zero): Likewise.
	(sra_modify_expr): Likewise.
	(load_assign_lhs_subreplacements): Likewise.
	(sra_modify_assign): Likewise.

2012-10-23  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* config/i386/i386.c (insn_is_function_arg) : Add check on CALL
	instruction.
	(ix86_dependencies_evaluation_hook): Insert dependencies in all
	predecessors of call block for non-trivial region avoiding creation
	of loop-carried dependency to avoid cross-block motion of HW registers.

2012-10-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/54824
	* tree-optimize.c (execute_fixup_cfg): Insert __builtin_unreachable
	at the end of blocks with no successors.

2012-10-26  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_FXSR_SET): New.
	(OPTION_MASK_ISA_XSAVE_SET): Likewise.
	(OPTION_MASK_ISA_XSAVEOPT_SET): Likewise.
	(ix86_handle_option): Handle mfxsr, mxsave, mxsaveopt options.
	* config.gcc (i[34567]86-*-*): Add fxsrintrin.h,
	xsaveintrin.h, xsaveoptintrin.h.
	(x86_64-*-*): Likewise.
	* config/i386/fxsrintrin.h: New header.
	* config/i386/xsaveintrin.h: Likewise.
	* config/i386/xsaveoptintrin.h: Likewise.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	FXSR/XSAVE/XSAVEOPT support.
	* config/i386/i386-builtin-types.def
	(VOID_FTYPE_PVOID_INT64): New function type.
	* config/i386/i386-c.c: Define __FXSR__, __XSAVE__
	and __XSAVEOPT__ if needed.
	* config/i386/i386.c (ix86_target_string): Define -mfxsr,
	 -mxsave and -mxsaveopt options.
	(PTA_FXSR): New.
	(PTA_XSAVE): Likewise.
	(PTA_XSAVEOPT): Likewise.
	(ix86_option_override_internal): Handle new option.
	(processor_alias_table): Added PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT.
	(ix86_valid_target_attribute_inner_p): Add OPT_mfxsr,
	OPT_mxsave, OPT_mxsaveopt.
	(ix86_builtins): Add IX86_BUILTIN_FXSAVE, IX86_BUILTIN_FXRSTOR,
	IX86_BUILTIN_FXSAVE64, IX86_BUILTIN_XSAVE, IX86_BUILTIN_XSAVE64,
	IX86_BUILTIN_XRSTOR, IX86_BUILTIN_XRSTOR64, IX86_BUILTIN_XSAVEOPT,
	IX86_BUILTIN_XSAVEOPT64.
	(ix86_expand_builtin): Handle these built-ins.
	* config/i386/i386.h (TARGET_FXSR): New.
	(TARGET_XSAVE): Likewise.
	(TARGET_XSAVEOPT): Likewise.
	* config/i386/i386.md (ANY_XSAVE): New int iterator.
	(ANY_XSAVE64): Likewise.
	(xsave): New int attribute.
	(fxsave): New instruction.
	(fxsave64): Likewise.
	(fxrstor): Likewise.
	(fxrstor64): Likewise.
	(<xsave>): Likewise.
	(<xsave>_rex64): Likewise.
	(xrstor): Likewise.
	(xrstor_rex64): Likewise.
	(xrstor64): Likewise.
	* config/i386/i386.opt (mfxsr): New.
	(mxsave): Likewise.
	(mxsaveopt): Likewise.
	* config/i386/x86intrin.h: Include
	xsaveintrin.h, fxsrintrin.h, xsaveoptintrin.h.

2012-10-26  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config/avr/t-rtems: Revert previous commit.

2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>

	PR bootstrap/55049
	* Makefile.in (rtlanal.o): Add dependency on addresses.h.
	* rtl.h (address_info): New structure.
	(strip_address_mutations, decompose_address, decompose_lea_address)
	(decompose_mem_address, update_address, get_index_scale)
	(get_index_code): Declare.
	* rtlanal.c: Include addresses.h.
	(strip_address_mutations, must_be_base_p, must_be_index_p)
	(set_address_segment, set_address_base, set_address_index)
	(set_address_disp, decompose_incdec_address, decompose_automod_address)
	(extract_plus_operands, baseness, decompose_normal_address)
	(decompose_address, decompose_lea_address, decompose_mem_address)
	(update_address, get_index_scale, get_index_code): New functions.
	* lra-constraints.c (strip_subreg): New function.
	(address, extract_loc_address_regs, extract_address_regs)
	(get_index_scale): Delete.
	(process_addr_reg): Apply strip_subreg to the location.
	(uses_hard_regs_p): Use decompose_mem_address.
	(valid_address_p, base_plus_disp_to_reg, can_add_disp_p)
	(equiv_address_substitution): Take an address_info rather
	than an address.  Remove other arguments.  Avoid using Pmode.
	(process_address): Use decompose_mem_address and decompose_lea_address.
	Update calls to above functions.

2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* lra-constraints.c (process_address): Tighten arguments to
	base_reg_class.  Use simplify_gen_binary to generate PLUS rtxes.

2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* lra-constraints.c (get_index_scale, can_add_disp_p): New functions.
	(equiv_address_substitution): Use them.

2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* lra-constraints.c (valid_address_p): New function, split out from...
	(process_address): ...here.

2012-10-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* lra-constraints.c (process_address): Describe the kinds of address
	that we might see.

2012-10-25  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-int.h (lra_assert): Redefine it gcc_checking_assert.
	* lra-constraints.c (check_and_process_move): Remove #if
	ENABLE_ASSERT_CHECKING.

2012-10-26  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config/avr/rtems.h (TARGET_OS_CPP_BUILTINS): Remove
	__USE_INIT_FINI__.
	* config/avr/t-rtems (LIB1ASMFUNCS): Filter out _exit.

2012-10-25  David S. Miller  <davem@davemloft.net>

	* config/sparc/constraints.md ("U"): Delete.
	* config/sparc/sparc.md: Use 'r' constraint instead of 'U'.
	* config/sparc/sync.md: Likewise.

2012-10-25  Lawrence Crowl  <crowl@google.com>

	* hash-table.h: Add usage documentation.
	(template struct typed_free_remove): Clarify documentation.
	Rename template parameter.
	(struct typed_noop_remove): Likewise.
	(descriptor concept): Change typedef T to value_type.
	Add typedef compare_type.  Use more precise template parameter name,
	Descriptor instead of Descr.  Update users to match.
	(struct hash_table): Change 'find' parameters to use compare_type
	instead of the value type.

2012-10-25  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_discover_new_direct_edges): If something was turned
	to direct call update the summary.
	* ipa-inline-transform.c (inline_call): Sanity check that summaries
	match the predicted effect; fix updating of summary after edge
	redirection.
	* ipa-inline-analysis.c (inline_node_duplication_hook): Do not try
	to update the summary and recompute it instead.
	(estimate_function_body_sizes): Fix self size estimation; double
	check that it agrees with inline_update_overall_summary.
	(estimate_edge_size_and_time): Handle devirtualizaiton costs.
	(estimate_edge_devirt_benefit): Update to be called from
	estimate_edge_size_and_time.
	(estimate_calls_size_and_time): Update.
	(estimate_node_size_and_time): Watch overflows.
	(inline_merge_summary): Likewise.
	* ipa-prob.c: Include ipa-inline.h
	(ipa_make_edge_direct_to_target): After redirection update the summary.

2012-10-25  Cary Coutant  <ccoutant@google.com>

	PR debug/55063
	* dwarf2out.c (prune_unused_types_prune): Check whether DIE is
	already a declaration.

2012-10-25  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-assigns.c (assign_by_spills): Add non-reload pseudos
	assigned to hard register to changed_pseudo_bitmap.

2012-10-25  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config.gcc (microblaze*-*-rtems*): New target.
	* config/microblaze/rtems.h: New.
	* config/microblaze/t-rtems: New.

2012-10-25  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/54980
	* tree-ssa-loop-ivcanon.c (constant_after_peeling): Fix obvious typo.
	(loop_edge_to_cancel): Be sure that the edge is from an conditional
	so we can cancel it.

2012-10-25  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	* tree.c (signed_or_unsigned_type_for): Handle vectors.

2012-10-25  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (recursive_inlining): Redirect to master
	clone before testing profitability.

2012-10-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54902
	* tree-ssa-pre.c (fini_eliminate): Return TODO.
	(do_pre): Adjust.
	(execute_fre): Likewise.
	* tree-ssa-tailmerge.c (tail_merge_optimize): Delete unreachable
	blocks before computing dominators.

2012-10-25  Richard Sandiford  <rdsandiford@googlemail.com>

	* expr.c (emit_block_move_via_loop): Use simplify_gen_binary
	rather than gen_rtx_PLUS.

2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/55068
	PR regression/55050
	* ira.c (setup_reg_renumber): Fix assert.
	* ira-emit.c (emit_move_list): Update equivalences only for LRA.

2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/55067
	* lra.c: Rename loc to sloc and loc_t to sloc_t.

2012-10-24  Sharad Singhai  <singhai@google.com>

	* config/rs6000/rs6000.c (rs6000_density_test): Use dump_enabled_p
	instead of dump_kind_p.

2012-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/54928
	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc):
	Use diagnostic_append_note.
	* diagnostic.c (diagnostic_build_prefix): Make diagnostic const.
	(default_diagnostic_finalizer): Do not destroy prefix here.
	(diagnostic_report_diagnostic): Destroy it here.
	(diagnostic_append_note): New.
	* diagnostic.h (diagnostic_append_note): Declare.

2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/55055
	* lra-spills.c (alter_subregs): New function.
	(lra_hard_reg_substitution): Use it.

2012-10-24  Sharad Singhai  <singhai@google.com>

	* dumpfile.c (dump_enabled_p): Make it inline and move the definition
	to dumpfile.h.
	(dump_kind_p): Deleted. Functionality replaced by dump_enabled_p.
	Make alt_dump_file extern.
	* dumpfile.h (dump_enabled_p): Move inline definition here.
	(dump_kind_p): Delete declaration.
	Add extern declaration of alt_dump_file.
	* toplev.c: Move dump_file and dump_file_name to dumpfile.c.
	* tree-vect-loop-manip.c: Replace all uses of dump_kind_p with
	dump_enabled_p.
	* tree-vectorizer.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vect-slp.c: Likewise.

2012-10-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (lowpart_bit_field_p): Add missing == 0 check.

2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/55049
	* lra-constraints.c (extract_loc_address_regs): Pass top_p for
	ZERO_EXTEND operand.

2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/55048
	* lra-constraints.c (update_ebb_live_info): Skip
	non-NOTE_INSN_BASIC_BLOCK notes.

2012-10-24  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/55010
	* cse.c (fold_rtx) <RTX_COMPARE>: Call copy_rtx on folded_arg{0,1}
	before passing it to simplify_relational_operation.

	PR debug/54828
	* gimple.h (is_gimple_sizepos): New inline function.
	* gimplify.c (gimplify_one_sizepos): Use it.  Remove useless
	final assignment to expr variable.
	* tree.c (RETURN_TRUE_IF_VAR): Return true also if
	!TYPE_SIZES_GIMPLIFIED (type) and _t is going to be gimplified
	into a local temporary.

2012-10-23  David S. Miller  <davem@davemloft.net>

	* config/sparc/constraints.md ("T", "W"): Change
	definitions to use define_memory_constraint.  Do not match 'reg'.
	* config/sparc/sparc.c (memory_ok_for_ldd): Remove all non-MEM
	handling code, update comment.

2012-10-23  Ian Lance Taylor  <iant@google.com>

	* doc/extend.texi (Extended Asm): The '+' constraint does not
	require a register.

2012-10-23  Jeff Law  <law@redhat.com>

	* tree-ssa-threadedge.c (thread_across_edge): Remove unused
	parameter in call to cond_arg_set_in_bb.

	* tree-ssa-threadedge.c (cond_arg_set_in_bb): Remove unused
	debugging argument.

	PR tree-optimization/54985
	* tree-ssa-threadedge.c (cond_arg_set_in_bb): New function extracted
	from thread_across_edge.
	(thread_across_edge): Use it in all cases where we might thread
	across a back edge.

2012-10-23  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-constraints.c (update_ebb_live_info): Process empty blocks.

2012-10-23  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (store_split_bit_field): Update the calls to
	extract_fixed_bit_field.  In the big-endian case, always
	use the mode of OP0 to count the number of significant bits.
	(extract_bit_field_1): Remove unit, offset, bitpos and
	byte_offset from the outermost scope.  Express conditions in terms
	of bitnum rather than offset, bitpos and byte_offset.  Move the
	computation of MODE1 to the block that needs it.  Use MODE unless
	the TMODE-based mode_for_size calculation succeeds.  Split the
	plain move cases into two, one for memory accesses and one for
	register accesses.  Generalize the memory case, freeing it from
	the old register-based endian checks.  Move the INT_MODE calculation
	above the code that needs it.  Use simplify_gen_subreg to handle
	multiword OP0s.  If the field still spans several words, pass it
	directly to extract_split_bit_field.  Assume after that point
	that both targets and register sources fit within a word.
	Replace x-prefixed variables with non-prefixed forms.
	Compute the bitpos for ext(z)v register operands directly in the
	chosen unit size, rather than going through an intermediate
	BITS_PER_WORD unit size.  Simplify the containment check
	used when forcing OP0 into a register.  Update the call to
	extract_fixed_bit_field.
	(extract_fixed_bit_field): Replace the bitpos and offset parameters
	with a single bitnum parameter, of the same form as extract_bit_field.
	Assume that OP0 contains the full field.  Simplify the memory offset
	calculation and containment check for volatile bitfields.  Make the
	offset explicit when volatile bitfields force a misaligned access.
	Remove WARNED and fix long lines.  Assert that the processed OP0
	has an integral mode.
	(store_split_bit_field): Update the call to store_fixed_bit_field.

2012-10-23  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.c (lowpart_bit_field_p): New function.
	(store_bit_field_1): Remove unit, offset, bitpos and byte_offset
	from the outermost scope.  Express conditions in terms of bitnum
	rather than offset, bitpos and byte_offset.  Split the plain move
	cases into two, one for memory accesses and one for register accesses.
	Allow simplify_gen_subreg to fail rather than calling validate_subreg.
	Move the handling of multiword OP0s after the code that coerces VALUE
	to an integer mode.  Use simplify_gen_subreg for this case and assert
	that it succeeds.  If the field still spans several words, pass it
	directly to store_split_bit_field.  Assume after that point that
	both sources and register targets fit within a word.  Replace
	x-prefixed variables with non-prefixed forms.  Compute the bitpos
	for insv register operands directly in the chosen unit size, rather
	than going through an intermediate BITS_PER_WORD unit size.
	Update the call to store_fixed_bit_field.
	(store_fixed_bit_field): Replace the bitpos and offset parameters
	with a single bitnum parameter, of the same form as store_bit_field.
	Assume that OP0 contains the full field.  Simplify the memory offset
	calculation.  Assert that the processed OP0 has an integral mode.
	(store_split_bit_field): Update the call to store_fixed_bit_field.

2012-10-23  Paul Koning  <ni1d@arrl.net>

	PR debug/54508
	* dwarf2out.c (prune_unused_types_prune): If pruning a class and
	not all its children were marked, add DW_AT_declaration flag.

2012-10-23  Ian Bolton  <ian.bolton@arm.com>
	    James Greenhalgh  <james.greenhalgh@arm.com>
	    Jim MacArthur  <jim.macarthur@arm.com>
	    Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Nigel Stephens  <nigel.stephens@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Richard Earnshaw  <rearnsha@arm.com>
	    Sofiane Naci  <sofiane.naci@arm.com>
	    Stephen Thomas  <stephen.thomas@arm.com>
	    Tejas Belagod  <tejas.belagod@arm.com>
	    Yufeng Zhang  <yufeng.zhang@arm.com>

	* config.gcc: Add AArch64.
	* configure.ac: Add AArch64 TLS support detection.
	* configure: Regenerate.

2012-10-23  Ian Bolton  <ian.bolton@arm.com>
	    James Greenhalgh  <james.greenhalgh@arm.com>
	    Jim MacArthur  <jim.macarthur@arm.com>
	    Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
	    Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Nigel Stephens  <nigel.stephens@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Richard Earnshaw  <rearnsha@arm.com>
	    Sofiane Naci  <sofiane.naci@arm.com>
	    Stephen Thomas  <stephen.thomas@arm.com>
	    Tejas Belagod  <tejas.belagod@arm.com>
	    Yufeng Zhang  <yufeng.zhang@arm.com>

	* doc/invoke.texi (AArch64 Options): New.
	* doc/md.texi (Machine Constraints): Add AArch64.

2012-10-23  Ian Bolton  <ian.bolton@arm.com>
	    James Greenhalgh  <james.greenhalgh@arm.com>
	    Jim MacArthur  <jim.macarthur@arm.com>
	    Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
	    Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Nigel Stephens  <nigel.stephens@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Richard Earnshaw  <rearnsha@arm.com>
	    Sofiane Naci  <sofiane.naci@arm.com>
	    Stephen Thomas  <stephen.thomas@arm.com>
	    Tejas Belagod  <tejas.belagod@arm.com>
	    Yufeng Zhang  <yufeng.zhang@arm.com>

	* common/config/aarch64/aarch64-common.c: New file.
	* config/aarch64/aarch64-arches.def: New file.
	* config/aarch64/aarch64-builtins.c: New file.
	* config/aarch64/aarch64-cores.def: New file.
	* config/aarch64/aarch64-elf-raw.h: New file.
	* config/aarch64/aarch64-elf.h: New file.
	* config/aarch64/aarch64-generic.md: New file.
	* config/aarch64/aarch64-linux.h: New file.
	* config/aarch64/aarch64-modes.def: New file.
	* config/aarch64/aarch64-option-extensions.def: New file.
	* config/aarch64/aarch64-opts.h: New file.
	* config/aarch64/aarch64-protos.h: New file.
	* config/aarch64/aarch64-simd.md: New file.
	* config/aarch64/aarch64-tune.md: New file.
	* config/aarch64/aarch64.c: New file.
	* config/aarch64/aarch64.h: New file.
	* config/aarch64/aarch64.md: New file.
	* config/aarch64/aarch64.opt: New file.
	* config/aarch64/arm_neon.h: New file.
	* config/aarch64/constraints.md: New file.
	* config/aarch64/gentune.sh: New file.
	* config/aarch64/iterators.md: New file.
	* config/aarch64/large.md: New file.
	* config/aarch64/predicates.md: New file.
	* config/aarch64/small.md: New file.
	* config/aarch64/sync.md: New file.
	* config/aarch64/t-aarch64-linux: New file.
	* config/aarch64/t-aarch64: New file.

2012-10-23  Michael Matz  <matz@suse.de>

	* tree-ssa-operands.h (struct def_optype_d, def_optype_p): Remove.
	(ssa_operands.free_defs): Remove.
	(DEF_OP_PTR, DEF_OP): Remove.
	(struct ssa_operand_iterator_d): Remove 'defs', add 'flags' members,
	rename 'phi_stmt' to 'stmt', 'phi_i' to 'i' and 'num_phi' to 'numops'.
	* gimple.h (gimple_statement_with_ops.def_ops): Remove.
	(gimple_def_ops, gimple_set_def_ops): Remove.
	(gimple_vdef_op): Don't take const gimple, adjust.
	(gimple_asm_input_op, gimple_asm_input_op_ptr,
	gimple_asm_set_input_op, gimple_asm_output_op,
	gimple_asm_output_op_ptr, gimple_asm_set_output_op): Adjust asserts,
	and rewrite to move def operands to front.
	(gimple_asm_clobber_op, gimple_asm_set_clobber_op,
	gimple_asm_label_op, gimple_asm_set_label_op): Correct asserts.
	* tree-ssa-operands.c (build_defs): Remove.
	(init_ssa_operands): Don't initialize it.
	(fini_ssa_operands): Don't free it.
	(cleanup_build_arrays): Don't truncate it.
	(finalize_ssa_stmt_operands): Don't assert on it.
	(alloc_def, add_def_op, append_def): Remove.
	(finalize_ssa_defs): Remove building of def_ops list.
	(finalize_ssa_uses): Don't mark for SSA renaming here, ...
	(add_stmt_operand): ... but here, don't call append_def.
	(get_indirect_ref_operands): Remove recurse_on_base argument.
	(get_expr_operands): Adjust call to get_indirect_ref_operands.
	(verify_ssa_operands): Don't check def operands.
	(free_stmt_operands): Don't free def operands.
	* gimple.c (gimple_copy): Don't clear def operands.
	* tree-flow-inline.h (op_iter_next_use): Adjust to explicitely
	handle def operand.
	(op_iter_next_tree, op_iter_next_def): Ditto.
	(clear_and_done_ssa_iter): Clear new fields.
	(op_iter_init): Adjust to setup new iterator structure.
	(op_iter_init_phiuse): Adjust.

2012-10-23  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.c (offset_ok_for_ldrd_strd): Return false for Thumb1.

2012-10-23  Vladimir Makarov  <vmakarov@redhat.com>

	* dbxout.c (dbxout_symbol_location): Pass new argument to alter_subreg.
	* dwarf2out.c: Include ira.h and lra.h.
	(based_loc_descr, compute_frame_pointer_to_fb_displacement): Use
	lra_eliminate_regs for LRA instead of eliminate_regs.
	* expr.c (emit_move_insn_1): Pass an additional argument to
	emit_move_via_integer.  Use emit_move_via_integer for LRA only if
	the insn is recognized.
	* emit-rtl.c (gen_rtx_REG): Add lra_in_progress.
	(validate_subreg): Don't check offset for LRA and floating point modes.
	* final.c (final_scan_insn, cleanup_subreg_operands): Pass new
	argument to alter_subreg.
	(walk_alter_subreg, output_operand): Ditto.
	(alter_subreg): Add new argument.
	* gcse.c (calculate_bb_reg_pressure): Add parameter to
	ira_setup_eliminable_regset call.
	* ira.c: Include lra.h.
	(ira_init_once, ira_init, ira_finish_once): Call lra_start_once,
	lra_init, lra_finish_once in anyway.
	(ira_setup_eliminable_regset): Add parameter.  Remove need_fp.
	Call lra_init_elimination and mark HARD_FRAME_POINTER_REGNUM as
	living forever if frame_pointer_needed.
	(setup_reg_class_relations): Set up ira_reg_class_subset.
	(ira_reg_equiv_invariant_p, ira_reg_equiv_const): Remove.
	(find_reg_equiv_invariant_const): Ditto.
	(setup_reg_renumber): Use ira_equiv_no_lvalue_p instead of
	ira_reg_equiv_invariant_p.  Skip caps for LRA.
	(setup_reg_equiv_init, ira_update_equiv_info_by_shuffle_insn): New
	functions.
	(ira_reg_equiv_len, ira_reg_equiv): New externals.
	(ira_reg_equiv): New.
	(ira_expand_reg_equiv, init_reg_equiv, finish_reg_equiv): New
	functions.
	(no_equiv, update_equiv_regs): Use ira_reg_equiv instead of
	reg_equiv_init.
	(setup_reg_equiv): New function.
	(ira_use_lra_p): New global.
	(ira): Set up lra_simple_p and ira_conflicts_p.  Set up and
	restore flag_caller_saves and flag_ira_region.  Move
	initialization of ira_obstack and ira_bitmap_obstack upper.  Call
	init_reg_equiv, setup_reg_equiv, and setup_reg_equiv_init instead
	of initialization of ira_reg_equiv_len, ira_reg_equiv_invariant_p,
	and ira_reg_equiv_const.  Call ira_setup_eliminable_regset with a
	new argument.  Don't flatten IRA IRA for LRA.  Don't reassign
	conflict allocnos for LRA. Call finish_reg_equiv.
	(do_reload): Prepare code for LRA call.  Call LRA.
	* ira.h (ira_use_lra_p): New external.
	(struct target_ira): Add members x_ira_class_subset_p
	x_ira_reg_class_subset, and x_ira_reg_classes_intersect_p.
	(ira_class_subset_p, ira_reg_class_subset): New macros.
	(ira_reg_classes_intersect_p): New macro.
	(struct ira_reg_equiv): New.
	(ira_setup_eliminable_regset): Add an argument.
	(ira_expand_reg_equiv, ira_update_equiv_info_by_shuffle_insn): New
	prototypes.
	* ira-color.c (color_pass, move_spill_restore, coalesce_allocnos):
	Use ira_equiv_no_lvalue_p.
	(coalesce_spill_slots, ira_sort_regnos_for_alter_reg): Ditto.
	* ira-emit.c (ira_create_new_reg): Call ira_expand_reg_equiv.
	(generate_edge_moves, change_loop) Use ira_equiv_no_lvalue_p.
	(emit_move_list): Simplify code.  Call
	ira_update_equiv_info_by_shuffle_insn.  Use ira_reg_equiv instead
	of ira_reg_equiv_invariant_p and ira_reg_equiv_const.  Change assert.
	* ira-int.h (struct target_ira_int): Remove x_ira_class_subset_p
	and x_ira_reg_classes_intersect_p.
	(ira_class_subset_p, ira_reg_classes_intersect_p): Remove.
	(ira_reg_equiv_len, ira_reg_equiv_invariant_p): Ditto.
	(ira_reg_equiv_const): Ditto.
	(ira_equiv_no_lvalue_p): New function.
	* jump.c (true_regnum): Always use hard_regno for subreg_get_info
	when lra is in progress.
	* haifa-sched.c (sched_init): Pass new argument to
	ira_setup_eliminable_regset.
	* loop-invariant.c (calculate_loop_reg_pressure): Pass new
	argument to ira_setup_eliminable_regset.
	* lra.h: New.
	* lra-int.h: Ditto.
	* lra.c: Ditto.
	* lra-assigns.c: Ditto.
	* lra-constraints.c: Ditto.
	* lra-coalesce.c: Ditto.
	* lra-eliminations.c: Ditto.
	* lra-lives.c: Ditto.
	* lra-spills.c: Ditto.
	* Makefile.in (LRA_INT_H): New.
	(OBJS): Add lra.o, lra-assigns.o, lra-coalesce.o, lra-constraints.o,
	lra-eliminations.o, lra-lives.o, and lra-spills.o.
	(dwarf2out.o): Add dependence on ira.h and lra.h.
	(ira.o): Add dependence on lra.h.
	(lra.o, lra-assigns.o, lra-coalesce.o, lra-constraints.o): New entries.
	(lra-eliminations.o, lra-lives.o, lra-spills.o): Ditto.
	* output.h (alter_subreg): Add new argument.
	* rtlanal.c (simplify_subreg_regno): Permit mode changes for LRA.
	Permit ARG_POINTER_REGNUM and STACK_POINTER_REGNUM for LRA.
	* recog.c (general_operand, register_operand): Accept paradoxical
	FLOAT_MODE subregs for LRA.
	(scratch_operand): Accept pseudos for LRA.
	* rtl.h (lra_in_progress): New external.
	(debug_bb_n_slim, debug_bb_slim, print_value_slim): New prototypes.
	(debug_rtl_slim, debug_insn_slim): Ditto.
	* sdbout.c (sdbout_symbol): Pass new argument to alter_subreg.
	* sched-vis.c (print_value_slim): New.
	* target.def (lra_p): New hook.
	(register_priority): Ditto.
	(different_addr_displacement_p): Ditto.
	(spill_class): Ditto.
	* target-globals.h (this_target_lra_int): New external.
	(target_globals): New member lra_int.
	(restore_target_globals): Restore this_target_lra_int.
	* target-globals.c: Include lra-int.h.
	(default_target_globals): Add &default_target_lra_int.
	* targhooks.c (default_lra_p): New function.
	(default_register_priority): Ditto.
	(default_different_addr_displacement_p): Ditto.
	* targhooks.h (default_lra_p): Declare.
	(default_register_priority): Ditto.
	(default_different_addr_displacement_p): Ditto.
	* timevar.def (TV_LRA, TV_LRA_ELIMINATE, TV_LRA_INHERITANCE): New.
	(TV_LRA_CREATE_LIVE_RANGES, TV_LRA_ASSIGN, TV_LRA_COALESCE): New.
	* config/arm/arm.c (load_multiple_sequence): Pass new argument to
	alter_subreg.
	(store_multiple_sequence): Ditto.
	* config/i386/i386.h (enum ix86_tune_indices): Add
	X86_TUNE_GENERAL_REGS_SSE_SPILL.
	(TARGET_GENERAL_REGS_SSE_SPILL): New macro.
	* config/i386/i386.c (initial_ix86_tune_features): Set up
	X86_TUNE_GENERAL_REGS_SSE_SPILL for m_COREI7 and m_CORE2I7.
	(ix86_lra_p, ix86_register_priority): New functions.
	(ix86_secondary_reload): Add NON_Q_REGS, SIREG, DIREG.
	(inline_secondary_memory_needed): Change assert.
	(ix86_spill_class): New function.
	(TARGET_LRA_P, TARGET_REGISTER_BANK, TARGET_SPILL_CLASS): New macros.
	* config/m68k/m68k.c (emit_move_sequence): Pass new argument to
	alter_subreg.
	* config/m32r/m32r.c (gen_split_move_double): Ditto.
	* config/pa/pa.c (pa_emit_move_sequence): Ditto.
	* config/sh/sh.md: Ditto.
	* config/v850/v850.c (v850_reorg): Ditto.
	* config/xtensa/xtensa.c (fixup_subreg_mem): Ditto.
	* doc/md.texi: Add new interpretation of hint * for LRA.
	* doc/passes.texi: Describe LRA pass.
	* doc/tm.texi.in: Add TARGET_LRA_P, TARGET_REGISTER_PRIORITY,
	TARGET_DIFFERENT_ADDR_DISPLACEMENT_P, and TARGET_SPILL_CLASS.
	* doc/tm.texi: Update.

2012-10-23  Jan Hubicka  <jh@suse.cz>

	* loop-unroll.c (decide_peel_simple): Simple peeling makes sense even
	with simple loops; bound number of branches only when FDO is not
	available.
	(decide_unroll_stupid): Mention that num_loop_branches heuristics
	is off.

2012-10-23  Nick Clifton  <nickc@redhat.com>

	PR target/54660
	* config/iq2000/iq2000.c (iq2000_function_arg_advance): Suppress
	compile time warning about pointer printing.

2012-10-23  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
	*-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Use
	glibc-c.o in c_target_objs and cxx_target_objs.  Use t-glibc in
	tmake_file.  Set target_has_targetcm.
	(tilegx-*-linux*, tilepro-*-linux*): Append to c_target_objs and
	cxx_target_objs rather than overriding previous value.
	* config/glibc-c.c, config/t-glibc: New.
	* doc/tm.texi.in (TARGET_C_PREINCLUDE): New @hook.
	* doc/tm.texi: Regenerate.
	* hooks.c (hook_constcharptr_void_null): New.
	* hooks.h (hook_constcharptr_void_null): Declare.

2012-10-23  Eric Botcazou  <ebotcazou@adacore.com>

	* config/mips/linux-common.h (STACK_CHECK_STATIC_BUILTIN): Define.
	(STACK_CHECK_PROTECT): Likewise.
	* config/mips/mips.h (MIPS_PROLOGUE_TEMP2_REGNUM): Likewise.
	(MIPS_PROLOGUE_TEMP2): Likewise.
	* config/mips/mips-protos.h (mips_output_probe_stack_range): Declare.
	* config/mips/mips.c: Include common/common-target.h.
	(mips_emit_probe_stack_range): New function.
	(mips_output_probe_stack_range): Likewise.
	(mips_expand_prologue): Invoke mips_emit_probe_stack_range if static
	builtin stack checking is enabled.
	* config/mips/mips.md (UNSPEC_PROBE_STACK_RANGE): New constant.
	(probe_stack_range_<P:mode>): New insn.

2012-10-23  Marc Glisse  <marc.glisse@inria.fr>

	* tree-ssa-forwprop.c (forward_propagate_into_cond): Handle vectors.
	* fold-const.c (fold_relational_const): Handle VECTOR_CST.
	* doc/generic.texi (VEC_COND_EXPR): Document current policy.

2012-10-23  Jan Hubicka  <jh@suse.cz>

	PR middle-end/54937
	* tree-ssa-loop-niter.c (record_estimate): Do not try to lower
	the bound of non-is_exit statements.
	(maybe_lower_iteration_bound): Do it here.
	(estimate_numbers_of_iterations_loop): Call it.

2012-10-23  Jan Hubicka  <jh@suse.cz>

	PR middle-end/54967
	* cfgloopmanip.c (fix_bb_placements): Add loop_closed_ssa_invalidated;
	track basic blocks that moved out of their loops.
	(unloop): Likewise.
	(remove_path): Update.
	(fix_loop_placements): Update.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
	loop_closed_ssa_invalidated parameter; pass it around.
	(canonicalize_loop_induction_variables): Update loop closed
	SSA form if needed.
	(tree_unroll_loops_completely): Likewise; do irred update out of
	the outer loop; verify that SSA form is closed.
	* cfgloop.h (unrloop): Update.

2012-10-23  Terry Guo  <terry.guo@arm.com>

	PR target/55019
	* config/arm/arm.c (thumb1_expand_prologue): Don't push high regs with
	live argument regs.

2012-10-23  Hans-Peter Nilsson  <hp@bitrange.com>

	PR middle-end/55030
	Revert:
	* stmt.c (expand_nl_goto_receiver): Remove almost-copy of
	expand_builtin_setjmp_receiver.
	(expand_label): Adjust, call expand_builtin_setjmp_receiver
	with NULL for the label parameter.
	* builtins.c (expand_builtin_setjmp_receiver): Don't clobber
	the frame-pointer.  Adjust comments.
	[HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
	only if LABEL is non-NULL.

2012-10-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/55008
	* gimple-ssa-strength-reduction.c (find_basis_for_candidate):
	Don't allow a candidate to be a basis for itself under another
	interpretation.

2012-10-22  Sharad Singhai  <singhai@google.com>

	* dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update
	all callers.
	(dump_enabled_p): A new function to check if any of the dump files
	is available.
	(dump_kind_p): Remove check for current_function_decl. Add check for
	dumpfile and alt_dump_file.
	* dumpfile.h: Add declaration of dump_enabled_p.

2012-10-22  Richard Biener  <rguenther@suse.de>

	PR lto/55021
	* tree-streamer-in.c (unpack_ts_int_cst_value_fields): Remove
	bogus truncations.

2012-10-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (memory_address_length): Assert that non-null
	base or index RTXes are registers.  Do not check for REG RTXes.
	Determine addr32 prefix using SImode_address_operand or
	from original base and index RTXes.  Simplify code.

2012-10-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55011
	* tree-vrp.c (update_value_range): For invalid lattice transitions
	drop to VARYING.

2012-10-22  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Avoid subreg'ing
	VFP D registers in big-endian mode.

2012-10-22  Georg-Johann Lay  <avr@gjlay.de>

	* doc/invoke.texi (AVR Options): Document __AVR_ARCH__.
	Note __AVR_<device>__ is not defined for cores.
	Don't point to --help=target.

2012-10-22  Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.c (thumb2_emit_ldrd_pop): New function.
	(arm_expand_epilogue): Use the new function.

2012-10-22  Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.c (thumb2_emit_strd_push): New function.
	(arm_expand_prologue): Use the new function.

2012-10-22  Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm-protos.h (offset_ok_for_ldrd_strd): New declaration.
	(operands_ok_ldrd_strd): Likewise.
	* config/arm/arm.c (offset_ok_for_ldrd_strd): New function.
	(operands_ok_ldrd_strd): Likewise.
	* config/arm/arm.md (thumb2_ldrd, thumb2_ldrd_base): New patterns.
	(thumb2_ldrd_base_neg): Likewise.
	(thumb2_strd, thumb2_strd_base, thumb_strd_base_neg): Likewise.
	* predicates.md (ldrd_strd_offset_operand): New predicate.
	* config/arm/constraints.md (Do): New constraint.

2012-10-22  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md ("nonlocal_goto_receiver"): Refer to the
	frame-pointer as an operand.
	("*nonlocal_goto_receiver_expanded"): Ditto.  Use
	mmix_output_register_setting instead of naked output_asm_insn for
	the offset from the frame-pointer to the saved rO.
	* config/mmix/mmix.c (mmix_output_register_setting): Emit NEGU for
	values -255..0.
	* config/mmix/predicates.md ("frame_pointer_operand"): New.
	* config/mmix/constraints.md ("Yf"): New.

	* stmt.c (expand_nl_goto_receiver): Remove almost-copy of
	expand_builtin_setjmp_receiver.
	(expand_label): Adjust, call expand_builtin_setjmp_receiver
	with NULL for the label parameter.
	* builtins.c (expand_builtin_setjmp_receiver): Don't clobber
	the frame-pointer.  Adjust comments.
	[HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
	only if LABEL is non-NULL.

2012-10-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-protos.h (memory_address_length): Add new bool
	argument.  Update all uses.
	* config/i386/i386.c (memory_address_length): If not LEA insn, then
	add length of addr32 prefix based on mode of base or index register.
	(ix86_attr_length_address_default) <TYPE_LEA>: Do not handle SImode
	addresses here.  Update call to memory_address_length.
	(ix86_print_address_operand): Use SImode_address_operand predicate.
	* config/i386/predicates.md (SImode_address_operand): New.
	* config/i386/i386.md (lea<mode>): Use SImode_address_operand
	to calculate "mode" attribute.  Use SImode_address_operand predicate
	instead of open-coding accepted RTX codes.

2012-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>

	* rtl.def (ADDR_DIFF_VEC): Fix comment typo.

2012-10-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/44194
	* calls.c (expand_call): Allow sibling calls in the PARALLEL case.

2012-10-21  Tobias Burnus  <burnus@net-b.de>

	PR fortran/54725
	* Makefile.in (TARGET_SYSTEM_ROOT_DEFINE): New.

2012-10-21  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/xtensa/xtensa.c (xtensa_expand_builtin): Remove unused 'arg'
	variable.

2012-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/54315
	* calls.c (expand_call): Don't deal specifically with BLKmode values
	returned in naked registers.
	* expr.h (copy_blkmode_from_reg): Adjust prototype.
	* expr.c (copy_blkmode_from_reg): Rename first parameter into
	TARGET and make it required.  Assert that SRCREG hasn't BLKmode.
	Add a couple of short-circuits for common cases and be prepared
	for sub-word registers.
	(expand_assignment): Call copy_blkmode_from_reg for BLKmode values
	returned in naked registers.
	(store_expr): Likewise.
	(store_field): Likewise.

2012-10-20  Jan Hubicka  <jh@suse.cz>

	* loop-unroll.c (decide_unroll_constant_iterations): Don't
	perform unrolling for loops with low iterations bounds or estimates.

2012-10-20  Jan Hubicka  <jh@suse.cz>

	* loop-iv.c (iv_number_of_iterations): Record the upper bound
	only if there are no further conditions on it.

2012-10-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	PR c/40989
	* opts.c (finish_options): Remove explicit handling from here.

2012-10-20  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* emit-rtl.c (copy_delay_slot_insn): New function.
	* emit-rtl.h (copy_delay_slot_insn): Declare.
	* reorg.c: Include "emit-rtl.h".
	(steal_delay_list_from_target): Use copy_delay_slot_insn.
	(fill_slots_from_thread, fill_simple_delay_slots): Likewise.

	* final.c (shorten_branches): When optimizing, start with small
	length and increase from there, and don't decrease lengths.

2012-10-19  Jan Hubicka  <jh@suse.cz>

	* builtins.def (BUILT_IN_UNREACHABLE): Make
	ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST.
	* builtin-attrs.def (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.

2012-10-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Dominique Dhumieres  <dominiq@lps.ens.fr>

	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Don't assume
	OPTION_MASK_STRICT_ALIGN is defined.
	(MASK_STRICT_ALIGN): If OPTION_MASK_STRICT_ALIGN is not defined,
	define this to 0 for the 3 ports that use it.

	* config/rs6000/rs6000.c (OPTION_MASK_STRICT_ALIGN): Don't do
	check for ports not having -mstrict-align here, move test to
	rs6000-cpus.def.
	(MASK_STRICT_ALIGN): Likewise.
	(rs6000_debug_reg_global): Print out correct target flag words if
	-mdebug=reg.

2012-10-19  Marek Polacek  <polacek@redhat.com>

	PR middle-end/54945
	* fold-const.c (fold_sign_changed_comparison):  Punt if folding
	pointer/non-pointer comparison.

2012-10-19  Greta Yorsh  <Greta.Yorsh@arm.com>

	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	new effective target keyword arm_prefer_ldrd_strd.

2012-10-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54981
	* tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p):
	Do not consider debug stmts as uses.

2012-10-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54976
	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
	Robustify against odd inner_mode inputs.

2012-10-19  Zhenqiang Chen <zhenqiang.chen@linaro.org>

	PR target/54892
	* config/arm/arm.c (arm_expand_compare_and_swap): Use SImode to make
	sure the mode is correct when falling through from above cases.

2012-10-19  Bin Cheng  <bin.cheng@arm.com>

	* common.opt (flag_ira_hoist_pressure): New.
	* doc/invoke.texi (-fira-hoist-pressure): Describe.
	* ira-costs.c (ira_set_pseudo_classes): New parameter.
	* ira.h: Update copyright dates.
	(ira_set_pseudo_classes): Update prototype.
	* haifa-sched.c (sched_init): Update call.
	* ira.c (ira): Update call.
	* regmove.c: Update copyright dates.
	(regmove_optimize): Update call.
	* loop-invariant.c: Update copyright dates.
	(move_loop_invariants): Update call.
	* gcse.c: (struct bb_data): New structure.
	(BB_DATA): New macro.
	(curr_bb, curr_reg_pressure): New static variables.
	(should_hoist_expr_to_dom): Rename from hoist_expr_reaches_here_p.
	Change parameter expr_index to expr.
	New parameters pressure_class, nregs and hoisted_bbs.
	Use reg pressure to determine the distance expr can be hoisted.
	(hoist_code): Use reg pressure to direct the hoist process.
	(get_regno_pressure_class, get_pressure_class_and_nregs)
	(change_pressure, calculate_bb_reg_pressure): New.
	(one_code_hoisting_pass): Calculate register pressure. Allocate
	and free data.

2012-10-19  Bin Cheng  <bin.cheng@arm.com>

	* gcse.c: Update copyright dates.
	(hoist_expr_reaches_here_p): Change parameter type from char *
	to sbitmap.

2012-10-19  Sebastian Huber <sebastian.huber@embedded-brains.de>

	* config.gcc
	(arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename
	"arm*-*-rtemseabi*" to "arm*-*-rtems*".

2012-10-19  Alan Modra  <amodra@gmail.com>

	* configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
	(HAVE_LD_LARGE_TOC): Likewise.
	* configure: Regenerate.

2012-10-19  Alan Modra  <amodra@gmail.com>

	* config/rs6000/predicates.md (splat_input_operand): Don't call
	input_operand for MEMs.  Instead check for volatile and call
	memory_address_addr_space_p with modified mode.

2012-10-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (rdpmc): Remove expander.
	(rdtsc): Ditto.
	(rdtscp): Ditto.
	(rdpmc): Rename from *rdpmc.
	(rdpmc_rex64): Rename from *rdpmc_rex64.
	(rdtsc): Rename from *rdtsc.
	(rdtsc_rex64): Rename from *rdtsc_rex64.
	(rdtscp): Rename from *rdtscp.
	(rdtscp_rex64): Rename from *rdtscp_rex64.

	* config/i386/i386.c (struct builtin_description bdesc_special_args)
	<IX86_BUILTIN_RDTSC>: Use CODE_FOR_NOTHING.
	<IX86_BUILTIN_RDTSCP>: Ditto.
	(struct builtin_description bdesc__args) <IX86_BUILTIN_RDPMC>: Ditto.
	(ix86_expand_builtin) <IX86_BUILTIN_{RDPMC,RDTSC,RDTSCP}>: Handle here.

2012-10-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/sh/sh.c: Fix comment to silence warning.

2012-10-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>

	* config/arm/cortex-a15-neon.md: New file.
	* config/arm/cortex-a15.md (cortex_a15_call): Adjust reservation.
	(cortex_a15_load1): Likewise.
	(cortex_a15_load3): Likewise.
	(cortex_a15_store1): Likewise.
	(cortex_a15_store3): Likewise.
	(cortex-a15-neon.md): Include.

2012-10-18  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Add mode.
	(altivec_vsumsws_nomode): Delete.
	(reduc_splus_<mode>, reduc_uplus_<mode>): Call gen_altivec_vsumsws
	instead of gen_altivec_vsumsws_nomode.
	(altivec_lvlx, altivec_lvlxl, altivec_lvrx, altivec_lvrxl): Add mode.
	* config/rs6000/rs6000.md (probe_stack): Rename to...
	(probe_stack_<mode>): ... this.  Add mode.  Change pattern to
	use std instead of stw when appropriate.
	(probe_stack): New expander.
	(move_from_CR_ov_bit): Add mode.
	(splitter for compare_plus_ne0_<mode>, splitter for
	compare_plus_ne0_<mode>_1): Remove constraints.
	* config/rs6000/sync.md (loadsync): Rename to...
	(loadsync_<mode>): ... this.  Add mode.
	(atomic_load<mode>): Adjust.

2012-10-18  Eric Botcazou  <ebotcazou@adacore.com>

	* loop-invariant.c: Include target.h.
	(check_dependency): Return false for an uninitialized argument register
	that is likely to be spilled.
	* Makefile.in (loop-invariant.o): Add $(TARGET_H).

2012-10-18  Eric Botcazou  <ebotcazou@adacore.com>

	* except.c (sjlj_emit_function_enter): Remove unused variable.

2012-10-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (neon_builtin_data): Add vfma and vfms builtins.
	* config/arm/neon-docgen.ml (intrinsic_groups): Add
	fused-multiply-* groups.
	* config/neon-gen.ml (print_feature_test_start): New function.
	(print_feature_test_end): Likewise.
	(print_variant): Print feature test macros.
	* config/arm/neon-testgen.ml (emit_prologue): Allow different
	tests to require different effective targets.
	(effective_target): New function.
	(test_intrinsic): Specify correct effective targets.
	* config/arm/neon.md (fma<VCVTF:mode>4_intrinsic): New pattern.
	(fmsub<VCVTF:mode>4_intrinsic): Likewise.
	(neon_vfma<VCVFT:mode>): New expand.
	(neon_vfms<VCVFT:mode>): Likewise.
	* config/neon.ml (opcode): Add Vfma and Vfms.
	(features): Add Requires_feature.
	(ops): Add VFMA and VFMS intrinsics.
	* config/arm/arm_neon.h: Regenerate.
	* doc/arm-neon-intrinsics.texi: Likewise.

2012-10-18  Richard Guenther  <rguenther@suse.de>

	* lto-streamer.h (enum LTO_tags): Add LTO_integer_cst.
	* lto-streamer-in.c (lto_input_tree): Use it.
	* lto-streamer-out.c (lto_output_tree): Likewise, for
	!TREE_OVERFLOW integer constants only.
	* tree-streamer-in.c (unpack_ts_int_cst_value_fields): New function.
	(unpack_value_fields): Call it.
	(streamer_read_integer_cst): Simplify.
	* tree-streamer-out.c (pack_ts_int_cst_value_fields): New function.
	(streamer_pack_tree_bitfields): Call it.
	(streamer_write_integer_cst): Adjust.

2012-10-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config.gcc: Add support for ARMv8 for arm*-*-* targets.
	* config/arm/arm-arches.def: Add armv8-a
	* config/arm/arm-fpus.def: Add fp-armv8, neon-fp-armv8,
	crypto-neon-fp-armv8.  Add crypto field.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm.c (FL_FOR_ARCH8A): Likewise.
	(arm_arch8): New global variable.
	(ARM_FPU): Add crypto parameter.
	(arm_option_override): Set arm_arch8, update comments.
	* config/arm/arm.h (TARGET_CRYPTO): New macro.
	(arm_fpu_desc): Add crypto field.
	(base_architecture): Add ARMv8 entry.
	(arm_arch8): New variable declaration.
	* config/arm/bpabi.h: ARMv8 supports BE8.
	* doc/invoke.texi: Document ARMv8 options.

2012-10-17  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/54893
	* trans-mem.c (diagnose_tm_1_op): Allow volatiles inside relaxed
	transactions.

2012-10-17  Aldy Hernandez  <aldyh@redhat.com>

	PR rtl-optimization/54900
	* ifcvt.c (noce_can_store_speculate_p): Call
	memory_must_be_modified_in_insn_p.
	* alias.c (memory_must_be_modified_in_insn_p): New.
	(set_dest_equal_p): New.
	* rtl.h (memory_must_be_modified_in_p): Protoize.

2012-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (rs6000_isa_flags): New flag word to
	replace target_flags that gives us 63 possible switches.
	(x_rs6000_isa_flags): Save area for rs6000_isa_flags.
	(x_rs6000_isa_flags_explicit): Save area for rs6000_isa_flags_explicit.
	(rs6000_target_flags_explicit): Delete in favor of
	x_rs6000_isa_flags_explicit.
	(-mpowerpc64): Change all switches that used to be in target_flags
	to now be in rs6000_isa_flags.  In using rs6000_isa_flags, the
	options machinary will generate names of the form OPITON_<xxx>
	instead of TARGET_<xxx> and OPTION_MASK_<xxx> instead of MASK_<xxx>.
	(-mpowerpc-gpopt): Likewise.
	(-mpowerpc-gfxopt): Likewise.
	(-mmfcrf): Likewise.
	(-mpopcntb): Likewise.
	(-mfprnd): Likewise.
	(-mcmpb): Likewise.
	(-mmfpgpr): Likewise.
	(-maltivec): Likewise.
	(-mhard-dfp): Likewise.
	(-mmulhw): Likewise.
	(-mdlmzb): Likewise.
	(-mmultiple): Likewise.
	(-mstring): Likewise.
	(-msoft-float): Likewise.
	(-mhard-float): Likewise.
	(-mpopcntd): Likewise.
	(-mvsx): Likewise.
	(-mno-update): Likewise.
	(-mupdate): Likewise.
	(-mrecip-precision): Likewise.
	(-mminimal-toc): Likewise.
	(-misel): Likewise.
	* config/rs6000/aix64.opt (-maix64): Likewise.
	(-maix32): Likewise.
	* config/rs6000/sysv4.opt (-mstrict-align): Likewise.
	(-mrelocatable): Likewise.
	(-mlittle-endian): Likewise.
	(-mlittle): Likewise.
	(-mbig-endian): LIkewise.
	(-mbig): Likewise.
	(-meabi): Likewise.
	(-m64): Likewise.
	(-m32): Likewise.
	* config/rs6000/darwin.opt (-m64): Likewise.
	(-m32): Likewise.

	* config/rs6000/rs6000-cpus.def (ISA_2_1_MASKS): Move the various
	masks used in rs6000.c here, since they are more logically in this
	file.  Convert from being enums to just #defines, since the types
	of these masks is now HOST_WIDE_INT instead of int.  For
	POWERPC_MASKS, add MASK_SOFT_FLOAT, since the only use case or'ed
	in the mask.  Change the use in rs6000.c not to do the OR of
	MASK_SOFT_FLOAT.
	(ISA_2_1_MASKS): Likewise.
	(ISA_2_2_MASKS): Likewise.
	(ISA_2_4_MASKS): Likewise.
	(ISA_2_5_MASKS_EMBEDDED): Likewise.
	(ISA_2_5_MASKS_SERVER): Likewise.
	(POWERPC_7400_MASK): Likewise.
	(POWERPC_MASKS): Likewise.
	* config/rs6000/rs6000.c (ISA_2_1_MASKS): Likewise.
	(ISA_2_1_MASKS): Likewise.
	(ISA_2_2_MASKS): Likewise.
	(ISA_2_4_MASKS): Likewise.
	(ISA_2_5_MASKS_EMBEDDED): Likewise.
	(ISA_2_5_MASKS_SERVER): Likewise.
	(POWERPC_7400_MASK): Likewise.
	(POWERPC_MASKS): Likewise.
	(rs6000_option_override_internal): Likewise.

	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Change
	all uses of target_flags to rs6000_isa_flags.  Change all uses of
	target_flags_explicit to rs6000_isa_flags_explicit.  Change the
	use of MASK_<xxx> to OPTION_MASK_<xxx> that options.h defines when
	we use a secondary flags word.  Save/restore/print the new flags
	word when switching contexts with different target attributes.
	(rs6000_option_override_internal): Likewise.
	(rs6000_darwin_file_start): Likewise.
	(rs6000_opt_masks): Likewise.
	(rs6000_inner_target_options): Likewise.
	(rs6000_pragma_target_parse): Likewise.
	(rs6000_set_current_function): Likewise.
	(rs6000_function_specific_save): Likewise.
	(rs6000_function_specific_restore): Likewise.
	(rs6000_function_specific_print): Likewise.
	(rs6000_can_inline_p): Likewise.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise.
	(rs6000_cpu_cpp_builtins): Likewise.
	* common/config/rs6000/rs6000-driver.c (rs6000_handle_option):
	Likewise.

	* config/rs6000/rs6000.h (MASK_ALTIVEC): In moving to using
	Var(...) for all of the isa switches, the options machinery now
	uses OPTION_MASK_<xxx> instead of MASK_<xxx> for the mask name.
	Use #define to map the old name into the new name.  For switches
	that are defined in aix64.opt, sysv4.opt, and darwin.opt, only do
	the definition if those switches were defined.
	(MASK_ALTIVEC): Likewise.
	(MASK_CMPB): Likewise.
	(MASK_DFP): Likewise.
	(MASK_DLMZB): Likewise.
	(MASK_EABI): Likewise.
	(MASK_FPRND): Likewise.
	(MASK_HARD_FLOAT): Likewise.
	(MASK_ISEL): Likewise.
	(MASK_MFCRF): Likewise.
	(MASK_MFPGPR): Likewise.
	(MASK_MULHW): Likewise.
	(MASK_MULTIPLE): Likewise.
	(MASK_NO_UPDATE): Likewise.
	(MASK_POPCNTB): Likewise.
	(MASK_POPCNTD): Likewise.
	(MASK_PPC_GFXOPT): Likewise.
	(MASK_PPC_GPOPT): Likewise.
	(MASK_RECIP_PRECISION): Likewise.
	(MASK_SOFT_FLOAT): Likewise.
	(MASK_STRICT_ALIGN): Likewise.
	(MASK_STRING): Likewise.
	(MASK_UPDATE): Likewise.
	(MASK_VSX): Likewise.
	(MASK_POWERPC64): Likewise.
	(MASK_64BIT): Likewise.
	(MASK_RELOCATABLE): Likewise.
	(MASK_LITTLE_ENDIAN): Likewise.
	(MASK_MINIMAL_TOC): Likewise.
	(MASK_REGNAMES): Likewise.
	(MASK_PROTOTYPE): Likewise.
	(rs6000_isa_flags_explicit): Define in terms of the
	global_options_set structure.

	* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS):
	Change use of target_flags to rs6000_isa_flags, target_flags_explicit
	to rs6000_isa_flags_explicit, and MASK_<xxx> to OPTION_MASK_<xxx>.
	* config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
	* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
	* config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
	* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
	* config/rs6000/freebsd64.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
	* config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
	* config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
	(OPTION_LITTLE_ENDIAN): Likewise.
	(OPTION_RELOCATABLE): Likewise.
	(OPTION_EABI): Likewise.
	(OPTION_PROTOTYPE): Likewise.
	* config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
	* config/rs6000/option-defaults.h (OPTION_MASK_64BIT): Likewise.
	(OPT_ARCH32): Likewise.
	(OPT_ARCH64): Likewise.
	* config/rs6000/sysv4.h (TARGET_TOC): Likewise.
	(SUBTARGET_OVERRIDE_OPTIONS): Likewise.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
	(TARGET_OS_SYSV_CPP_BUILTINS): Likewise.

	* config/rs6000/t-rs6000 (rs6000.o): Add rs6000-cpus.def as a
	dependency.

2012-10-17  Jan Hubicka  <jh@suse.cz>

	* cfgloopmanip.c (copy_loop_info): New function.
	(duplicate_loop): Use it.
	(loop_version): Use it.
	* loop-unswitch.c (unswitch_loop): Use it.
	* cfgloop.h (copy_loop_info): Declare.

2012-10-17  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel
	parameter and use it to estimate code optimized out in the final
	iteration.
	(loop_edge_to_cancel): New function.
	(try_unroll_loop_completely): New IRRED_IVALIDATED parameter;
	handle unrolling loops with bounds given via max_loop_iteratins;
	handle unrolling non-inner loops when code size shrinks;
	tidy dump output; when the last iteration loop still stays
	as loop in the CFG forcongly redirect the latch to
	__builtin_unreachable.
	(canonicalize_loop_induction_variables): Add irred_invlaidated
	parameter; record niter bound derrived; dump
	max_loop_iterations bounds; call try_unroll_loop_completely
	even if no niter bound is given.
	(canonicalize_induction_variables): Handle irred_invalidated.
	(tree_unroll_loops_completely): Handle non-innermost loops;
	handle irred_invalidated.
	* cfgloop.h (unlop): Declare.
	* cfgloopmanip.c (unloop): Export.
	* tree.c (build_common_builtin_nodes): Build BULTIN_UNREACHABLE.

2012-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx>
	for Mask options, whether they use Var(...) or not.

	* config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): Use
	TARGET_<xxx> instead of OPTION_<xxx>.
	* config/i386/i386.h (TARGET_64BIT): Likewise.
	(TARGET_MMX): Likewise.
	(TARGET_3DNOW): Likewise.
	(TARGET_3DNOW_A): Likewise.
	(TARGET_SSE): Likewise.
	(TARGET_SSE2): Likewise.
	(TARGET_SSE3): Likewise.
	(TARGET_SSSE3): Likewise.
	(TARGET_SSE4_1): Likewise.
	(TARGET_SSE4_2): Likewise.
	(TARGET_AVX): Likewise.
	(TARGET_AVX2): Likewise.
	(TARGET_FMA): Likewise.
	(TARGET_SSE4A): Likewise.
	(TARGET_FMA4): Likewise.
	(TARGET_XOP): Likewise.
	(TARGET_LWP): Likewise.
	(TARGET_ROUND): Likewise.
	(TARGET_ABM): Likewise.
	(TARGET_BMI): Likewise.
	(TARGET_BMI2): Likewise.
	(TARGET_LZCNT): Likewise.
	(TARGET_TBM): Likewise.
	(TARGET_POPCNT): Likewise.
	(TARGET_SAHF): Likewise.
	(TARGET_MOVBE): Likewise.
	(TARGET_CRC32): Likewise.
	(TARGET_AES): Likewise.
	(TARGET_PCLMUL): Likewise.
	(TARGET_CMPXCHG16B): Likewise.
	(TARGET_FSGSBASE): Likewise.
	(TARGET_RDRND): Likewise.
	(TARGET_F16C): Likewise.
	(TARGET_RTM): Likewise.
	(TARGET_HLE): Likewise.
	(TARGET_RDSEED): Likewise.
	(TARGET_PRFCHW): Likewise.
	(TARGET_ADX): Likewise.
	(TARGET_64BIT): Likewise.
	(TARGET_MMX): Likewise.
	(TARGET_3DNOW): Likewise.
	(TARGET_3DNOW_A): Likewise.
	(TARGET_SSE): Likewise.
	(TARGET_SSE2): Likewise.
	(TARGET_SSE3): Likewise.
	(TARGET_SSSE3): Likewise.
	(TARGET_SSE4_1): Likewise.
	(TARGET_SSE4_2): Likewise.
	(TARGET_AVX): Likewise.
	(TARGET_AVX2): Likewise.
	(TARGET_FMA): Likewise.
	(TARGET_SSE4A): Likewise.
	(TARGET_FMA4): Likewise.
	(TARGET_XOP): Likewise.
	(TARGET_LWP): Likewise.
	(TARGET_ROUND): Likewise.
	(TARGET_ABM): Likewise.
	(TARGET_BMI): Likewise.
	(TARGET_BMI2): Likewise.
	(TARGET_LZCNT): Likewise.
	(TARGET_TBM): Likewise.
	(TARGET_POPCNT): Likewise.
	(TARGET_SAHF): Likewise.
	(TARGET_MOVBE): Likewise.
	(TARGET_CRC32): Likewise.
	(TARGET_AES): Likewise.
	(TARGET_PCLMUL): Likewise.
	(TARGET_CMPXCHG16B): Likewise.
	(TARGET_FSGSBASE): Likewise.
	(TARGET_RDRND): Likewise.
	(TARGET_F16C): Likewise.
	(TARGET_RTM): Likewise.
	(TARGET_HLE): Likewise.
	(TARGET_RDSEED): Likewise.
	(TARGET_PRFCHW): Likewise.
	(TARGET_ADX): Likewise.
	(TARGET_LP64): Likewise.
	(TARGET_X32): Likewise.
	(TARGET_ISA_ROUND): Likewise.
	* config/i386/darwin.h (TARGET_64BIT): Likewise.

	* doc/options.texi (Mask): Update documentation to specify only
	TARGET_<xxx> is generated.

2012-10-17  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.md (UNSPEC_PROLOGUE_USE): Rename this...
	(UNSPEC_REGISTER_USE): ... to this.
	(prologue_use): Rename this...
	  (force_register_use): ... to this and update output assembly.
	(epilogue) Rename gen_prologue_use to gen_force_register_use.
	* config/arm/arm.c (arm_expand_prologue): Likewise.
	(thumb1_expand_epilogue): Likewise.
	(arm_expand_epilogue): Likewise.
	(arm_expand_epilogue): Likewise.

2012-10-17  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-arch.h (avr_extra_arch_macro): Remove prototype.
	* config/avr/avr.c (avr_extra_arch_macro): Remove variable.
	(avr_option_override): Remove setting of avr_extra_arch_macro.
	* config/avr/avr-c.c (avr_extra_arch_macro): Replace with
	avr_current_device->macro.

2012-10-17  Richard Biener  <rguenther@suse.de>

	* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
	Do not write TREE_CHAIN of PARM_DECLs.
	(write_ts_decl_non_common_tree_pointers): Instead stream
	the DECL_ARGUMENTS chain.
	* tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
	Do not read TREE_CHAIN of PARM_DECLs.
	(lto_input_ts_decl_non_common_tree_pointes): Instead read
	the DECL_ARGUMENTS as chain.

2012-10-17  Steven Bosscher  <steven@gcc.gnu.org>

	* config/iq2000/iq2000.h (call_used_regs): Remove definition.

2012-10-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/54870
	* tree.h (TREE_ADDRESSABLE): Document special usage on SSA_NAME.
	* cfgexpand.c (update_alias_info_with_stack_vars ): Set it on the
	SSA_NAME pointer that points to a partition if there is at least
	one variable with it set in the partition.
	* dse.c (local_variable_can_escape): New predicate.
	(can_escape): Call it.
	* gimplify.c (mark_addressable): If this is a partitioned decl, also
	mark the SSA_NAME pointer that points to a partition.

2012-10-16  Steven Bosscher  <steven@gcc.gnu.org>

	* df-problems.c (df_kill_notes): Split up in two functions.
	(df_remove_dead_and_unused_notes): New function, first half of
	df_kill notes to remove all REG_DEAD and REG_UNUSED notes.
	(df_remove_dead_eq_notes): New function, second half of df_kill_notes
	to remove REG_EQUAL and REG_EQUIV notes referring to dead registers.
	(df_note_bb_compute): Call df_remove_dead_and_unused_notes instead
	of df_kill_notes.  Call df_remove_dead_eq_notes after processing insn.

	* web.c (web): Re-add DF_RD_PRUNE_DEAD_DEFS;

2012-10-16  Ian Lance Taylor  <iant@google.com>

	* doc/extend.texi (Return Address): Change
	__builtin_extract_return_address to
	__builtin_extract_return_addr.

2012-10-16  Steven Bosscher  <steven@gcc.gnu.org>

	* rtl.h (get_call_rtx_from): New prototype.
	* rtlanal.c (get_call_rtx_from): New function.
	* calls.c (emit_call_1): Use it.
	* dse.c (scan_insn): Likewise
	* dwarf2out.c (dwarf2out_var_location): Likewise.
	* sched-deps.c (call_may_noreturn_p): Likewise.
	* var-tracking.c (prepare_call_arguments): Likewise.
	* config/sh/sh.c (sh_adjust_cost): Likewise.

2012-10-16  Tom de Vries  <tom@codesourcery.com>

	* expr.c (move_by_pieces, move_by_pieces_ninsns, can_store_by_pieces)
	(store_by_pieces_1): Don't enter loop when no more data is left.

2012-10-16  Joern Rennecke  <joern.rennecke@embecosm.com>

	* loop-doloop.c (doloop_modify): Pass doloop_end pattern to
	gen_doloop_begin.
	(doloop_optimize): Pass flag to indicate if loop is entered at top
	to gen_doloop_end.
	* config/arm/thumb2.md (doloop_end): Accept extra operand.
	* config/bfin/bfin.md (doloop_end): Likewise.
	* config/c6x/c6x.md (doloop_end): Likewise.
	* config/ia64/ia64.md (doloop_end): Likewise.
	* config/mep/mep.md (doloop_begin, doloop_end): Likewise.
	* config/rs6000/rs6000.md (doloop_end): Likewise.
	* config/s390/s390.md (doloop_end): Likewise.
	* config/sh/sh.md (doloop_end): Likewise.
	* config/spu/spu.md (doloop_end): Likewise.
	* config/tilegx/tilegx.md (doloop_end): Likewise.
	* config/tilepro/tilepro.md (doloop_end): Likewise.
	* doc/md.texi (doloop_end): Document new operand.
	* basic-block.h (contains_no_active_insn_p): Declare.
	* cfgrtl.c (contains_no_active_insn_p): New function, factored
	out of ...
	(forwarder_block_p): ... here.

2012-10-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	PR c/40989
	* doc/options.texi (EnabledBy): Document new form.
	* optc-gen.awk: Handle new form of EnabledBy.
	* common.opt (Wunused-but-set-parameter): Use EnabledBy.
	(Wunused-parameter): Likewise.
	* opts.c (finish_options): Do not handle them explicitly.
	* opt-functions.awk (search_var_name): New.

2012-10-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53063
	PR c/40989
	* optc-gen.awk: Handle new form of LangEnabledBy.
	* opts.c (set_Wstrict_aliasing): Declare here. Make static.
	* common.opt (Wstrict-aliasing=,Wstrict-overflow=): Do not use Init.
	* doc/options.texi (LangEnabledBy): Document new form.
	* flags.h (set_Wstrict_aliasing): Do not declare.

2012-10-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* reload.c (find_reloads_subreg_address): Remove FORCE_REPLACE
	parameter.  Always replace normal subreg with memory reference
	whenever possible.  Return NULL otherwise.
	(find_reloads_toplev): Always call find_reloads_subreg_address
	for subregs of registers equivalent to a memory location.
	Only recurse further if find_reloads_subreg_address fails.
	(find_reloads_address_1): Only call find_reloads_subreg_address
	for subregs of registers equivalent to a memory location.
	Properly handle failure of find_reloads_subreg_address.

2012-10-16  Jakub Jelinek  <jakub@redhat.com>

	PR debug/54796
	* rtl.h: Document jump flag on VALUE.
	* cselib.h (cselib_set_value_sp_based,
	cselib_sp_based_value_p): New prototypes.
	* alias.c (find_base_term): For cselib_sp_based_value_p
	return static_reg_base_value[STACK_POINTER_REGNUM].
	* cselib.c (SP_BASED_VALUE_P): Define.
	(cselib_set_value_sp_based, cselib_sp_based_value_p): New functions.
	* var-tracking.c (add_stores): Call cselib_set_value_sp_based
	for not yet preserved VALUEs of sp on sp assignments if
	hard_frame_pointer_adjustment != -1.
	(vt_initialize): When setting hard_frame_pointer_adjustment,
	disassociate sp from its previous value and call
	cselib_set_value_sp_based on a new VALUE created for sp.

	PR tree-optimization/54889
	* tree-vect-stmts.c (vectorizable_load): Add VIEW_CONVERT_EXPR if
	ARRAY_REF newref doesn't have compatible type with vectype element
	type, use vectype element type for MEM_REF.

2012-10-16  Steven Bosscher  <steven@gcc.gnu.org>

	* combine.c (record_dead_and_set_regs): Iterate over hard register set
	with a hard_reg_set_iterator.
	* cse.c (invalidate_for_call): Likewise.
	* gcse.c (compute_hash_table_work): Likewise.
	* loop-iv.c (simplify_using_initial_values): Likewise.
	* postreload-gcse.c (record_opr_changes): Likewise.
	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
	* var-tracking.c (dataflow_set_clear_at_call): Likewise.

2012-10-15   Easwaran Raman  <eraman@google.com>

	* optabs.c (emit_cmp_and_jump_insn_1): Add a new parameter to
	specificy the probability of taking the jump.
	(emit_cmp_and_jump_insns): Likewise.
	(expand_compare_and_swap_loop): Make the jump predicted not taken.
	* dojump.c (do_compare_rtx_and_jump): Remove the code attaching
	REG_BR_PROB note and pass probability to emit_cmp_and_jump_insns.
	* cfgbuild.c (compute_outgoing_frequencies): Do not guess outgoing
	probabilities for branches with more than two successors.
	* expr.c (emit_block_move_via_loop): Predict the loop backedge loop
	to be highly taken.
	(try_casesi): Pass the probability of jumping to the default label.
	(try_tablejump): Likewise.
	(do_tablejump): Likewise.
	* expr.h (try_tablejump): Add a new parameter.
	(try_casesi): Likewise.
	(emit_cmp_and_jump_insns): Add probability as default parameter with a
	default value of -1.
	* except.c (sjlj_emit_function_enter): Pass probability to
	emit_cmp_and_jump_insns.
	* stmt.c (case_node): Add new fields PROB and SUBTREE_PROB.
	(do_jump_if_equal): Pass probability for REG_BR_PROB note.
	(add_case_node): Pass estimated probability of jumping to the case
	label.
	(emit_case_decision_tree): Pass default_prob to emit_case_nodes.
	(get_outgoing_edge_probs): New function.
	(conditional_probability): Likewise.
	(reset_out_edges_aux): Likewise.
	(compute_cases_per_edge): Likewise.
	(emit_case_dispatch_table): Update probabilities of edges coming out
	of the switch statement.
	(expand_case): Compute and propagate default edge probability to
	emit_case_dispatch_table.
	(expand_sjlj_dispatch_table): Update calls to add_case_node and
	emit_case_dispatch_table.
	(balance_case_nodes): Update subtree_prob values.
	(emit_case_nodes): Compute edge probabilities and add pass them to
	emit_cmp_and_jump_insns.

2012-10-15  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh-protos.h (set_of_reg): New struct.
	(sh_find_set_of_reg, sh_is_logical_t_store_expr,
	sh_try_omit_signzero_extend):  Declare...
	* config/sh/sh.c (sh_find_set_of_reg, sh_is_logical_t_store_expr,
	sh_try_omit_signzero_extend): ...these new functions.
	* config/sh/sh.md (*logical_op_t): New insn_and_split.
	(*zero_extend<mode>si2_compact): Use sh_try_omit_signzero_extend
	in splitter.
	(*extend<mode>si2_compact_reg): Convert to insn_and_split.
	Use sh_try_omit_signzero_extend in splitter.
	(*mov<mode>_reg_reg): Disallow t_reg_operand as operand 1.
	(*cbranch_t): Rewrite combine part in splitter using new
	sh_find_set_of_reg function.

2012-10-15  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54760
	* config/sh/sh.c (sh_find_base_reg_disp): Stop searching insns when
	hitting a call insn if GBR is marked as call used.
	* config/sh/iterators.md (QIHISIDI): New mode iterator.
	* config/sh/predicates.md (gbr_address_mem): New predicate.
	* config/sh/sh.md (*movdi_gbr_load, *movdi_gbr_store): New
	insn_and_split.  Use QIHISIDI instead of QIHISI in unnamed GBR
	addressing splits.

2012-10-15  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.c: Update function attribute comments.
	* doc/extend.texi (function_vector): Rephrase SH2A specific part.
	(nosave_low_regs, renesas, trapa_handler): Document SH specific
	attributes.
	(sp_switch, trap_exit): Add to index.

2012-10-15  Matthias Klose  <doko@ubuntu.com>

	* config.gcc: Match arm*-*-linux-* for ARM Linux/GNU.
	* doc/install.texi: Use arm-*-*linux-* instead of arm-*-*linux-gnueabi.

2012-10-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (UNSPEC_MOVU): Remove.
	(UNSPEC_LOADU): New.
	(UNSPEC_STOREU): Ditto.
	(<sse>_movu<ssemodesuffix><avxsizesuffix>): Split to ...
	(<sse>_loadu<ssemodesuffix><avxsizesuffix>): ... this and ...
	(<sse>_storeu<ssemodesuffix><avxsizesuffix>) ... this.
	(<sse2>_movdqu<avxsizesuffix>): Split to ...
	(<sse2>_loaddqu<avxsizesuffix>): ... this and ...
	(<sse2>_storedqu<avxsizesuffix>): ... this.
	(*sse4_2_pcmpestr_unaligned): Update.
	(*sse4_2_pcmpistr_unaligned): Ditto.

	* config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Use
	gen_avx_load{dqu,ups,upd}256 to load from unaligned memory and
	gen_avx_store{dqu,ups,upd}256 to store to unaligned memory.
	(ix86_expand_vector_move_misalign): Use gen_sse_loadups or
	gen_sse2_load{dqu,upd} to load from unaligned memory and
	gen_sse_loadups or gen_sse2_store{dqu,upd}256 to store to
	unaligned memory.
	(struct builtin_description bdesc_spec) <IX86_BUILTIN_LOADUPS>:
	Use CODE_FOR_sse_loadups.
	<IX86_BUILTIN_LOADUPD>: Use CODE_FOR_sse2_loadupd.
	<IX86_BUILTIN_LOADDQU>: Use CODE_FOR_sse2_loaddqu.
	<IX86_BUILTIN_STOREUPS>: Use CODE_FOR_sse_storeups.
	<IX86_BUILTIN_STOREUPD>: Use CODE_FOR_sse2_storeupd.
	<IX86_BUILTIN_STOREDQU>: Use CODE_FOR_sse2_storedqu.
	<IX86_BUILTIN_LOADUPS256>: Use CODE_FOR_avx_loadups256.
	<IX86_BUILTIN_LOADUPD256>: Use CODE_FOR_avx_loadupd256.
	<IX86_BUILTIN_LOADDQU256>: Use CODE_FOR_avx_loaddqu256.
	<IX86_BUILTIN_STOREUPS256>: Use CODE_FOR_avx_storeups256.
	<IX86_BUILTIN_STOREUPD256>: Use CODE_FOR_avx_storeupd256.
	<IX86_BUILTIN_STOREDQU256>: Use CODE_FOR_avx_storedqu256.

2012-10-15  Dodji Seketeli  <dodji@redhat.com>

	* alias.c: Cleanup comments.

2012-10-15  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/54915
	* tree-ssa-forwprop.c (simplify_vector_constructor): Check
	argument's type.

2012-10-15  Richard Biener  <rguenther@suse.de>

	* data-streamer.h (bp_pack_string_with_length): New function.
	(bp_pack_string): Likewise.
	(bp_unpack_indexed_string): Likewise.
	(bp_unpack_string): Likewise.
	* data-streamer-out.c (bp_pack_string_with_length): Likewise.
	(bp_pack_string): Likewise.
	* data-streamer-in.c (bp_unpack_indexed_string): Likewise.
	(bp_unpack_string): Likewise.
	* tree-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
	Pack TRANSLATION_UNIT_LANGUAGE here, not ...
	(write_ts_translation_unit_decl_tree_pointers): ... here.  Remove.
	(streamer_pack_tree_bitfields): Adjust.
	(streamer_write_tree_body): Likewise.
	* tree-streamer-in.c (unpack_ts_translation_unit_decl_value_fields):
	Unpack TRANSLATION_UNIT_LANGUAGE here, not ...
	(lto_input_ts_translation_unit_decl_tree_pointers): ... here.  Remove.
	(unpack_value_fields): Adjust.
	(streamer_read_tree_body): Likewise.

2012-10-15  J"orn Rennecke  <joern.rennecke@arc.com>

	* genoutput.c (process_template): Process '*' in '@' alternatives.
	* doc/md.texi (node Output Statement): Provide example for the above.

2012-10-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54920
	* tree-ssa-pre.c (create_expression_by_pieces): Properly
	allocate temporary storage for all NARY elements.

2012-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>

	* web.c (union_match_dups): Properly handle OP_INOUT match_dups.

2012-10-15  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Do not unnecessarily
	copy the object in the MEM_P case.

2012-10-15  Richard Guenther  <rguenther@suse.de>

	* tree-streamer-out.c (streamer_pack_tree_bitfields): Back
	BINFO_BASE_ACCESSES and CONSTRUCTOR lengths here.
	(streamer_write_chain): Write TREE_CHAIN as null-terminated list.
	(write_ts_exp_tree_pointers): Adjust.
	(write_ts_binfo_tree_pointers): Likewise.
	(write_ts_constructor_tree_pointers): Likewise.
	* tree-streamer-in.c (streamer_read_chain): Read TREE_CHAIN as
	null-terminated list.
	(unpack_value_fields): Unpack BINFO_BASE_ACCESSES and
	CONSTRUCTOR lengths and materialize the arrays.
	(lto_input_ts_exp_tree_pointers): Adjust.
	(lto_input_ts_binfo_tree_pointers): Likewise.
	(lto_input_ts_constructor_tree_pointers): Likewise.

2012-10-14  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_opposite_regno): Handle the
	return-value register too.

2012-10-14  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/38711
	* df.h (df_get_live_out, df_get_live_in): Make static inline functions.
	* df-problems.c (df_get_live_out, df_get_live_in): Moved to df.h.
	* ira-lives.c (process_bb_node_lives): Use df_get_live_out instead of
	DF_LR_OUT.
	* ira-build.c (create_bb_allocnos): Likewise.
	(create_loop_allocnos): Likewise, and use df_get_live_in instead of
	DF_LR_IN.
	* ira-emit.c (generate_edge_moves): Likewise.
	(add_ranges_and_copies): Likewise.
	* ira-color.c (ira_loop_edge_freq): Use df_get_live_out instead of
	DF_LR_OUT, and df_get_live_in instead of DF_LR_IN.
	* ira.c (mark_elimination): Update DF_LR and DF_LIVE.
	(build_insn_chain): Use df_get_live_out instead of DF_LR_OUT.
	(do_reload): Remove the DF_LIVE problem for -O1.

2012-10-14  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/54919
	* loop-unroll.c (struct var_to_expand): Remove accum_pos field.
	(analyze_insn_to_expand_var): Do not record accum_pos.
	(expand_var_during_unrolling): Use validate_replace_rtx_group to
	perform replacement of all references to SET_DEST (set) with the
	new register, including references in REG_EQUAL notes.
	(insert_var_expansion_initialization): Insert initializatio insns
	at the bottom of the pre-header of the loop.

2012-10-14  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
	predict loops with multiple exits realistically.
	* cfgloopanal.c (single_likely_exit): New function.

2012-10-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md: Remove empty predicates and/or constraints.
	* config/alpha/sync.md: Ditto.

2012-10-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (I24MODE): New mode iterator.
	(any_divmod): New code iterator.
	(<code>si3): Macroize expander from {div,mod,udiv,umod}si3 using
	any_divmod code iterator.
	(<code>si3): Macroize expander from {div,mod,udiv,umod}di3 using
	any_divmod code iterator.
	(extendqi<mode>2): Macroize insn from extendqi{hi,si}2 using
	I24MODE mode iterator.
	(unaligned_store<mode>): Macroize expander from unaligned_store{qi,hi}
	using I12MODE mode iterator.
	(mov<mode>): Macroize expander from mov{qi,hi} using
	I12MODE mode iterator.

2012-10-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/54871
	* loop-iv.c (simplify_using_initial_values): When scanning previous
	basic blocks, prune the recorded conditions if the current insn was
	not used to make a replacement.

	* loop-unroll.c (decide_unroll_constant_iterations): Clean up message.
	(unroll_loop_constant_iterations): Clarify head comment.
	(decide_unroll_runtime_iterations): Clean up message.
	(unroll_loop_runtime_iterations): Clarify head comment.
	(decide_peel_simple): Clean up message.
	(peel_loop_simple): Clarify head comment.
	(decide_unroll_stupid): Clean up message.
	(unroll_loop_stupid): Clarify head comment.

2012-10-13  Andreas Schwab  <schwab@linux-m68k.org>

	PR gcov-profile/44728
	* gcov.c (create_file_names): When stripping extension only look
	at base name.

2012-10-13  Jan Hubicka  <jh@suse.cz>

	* loop-iv.c (determine_max_iter): Fix handling of AND.
	(iv_number_of_iterations): Record upper bounds as unsigned
	values.

2012-10-13  Steven Bosscher  <steven@gcc.gnu.org>

	* ira.c (ira): Set current_loops to &ira_loops before recording
	loop exits.  Release recorded exits and loops early.

2012-10-13  Chung-Lin Tang  <cltang@codesourcery.com>

	* builtins.c (expand_builtin_set_thread_pointer): Use
	create_input_operand() instead of create_fixed_operand().

2012-10-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (FMODE): New mode iterator.
	(modesuffix): Handle SF and DF modes.
	(opmode): New mode attribute.
	(abs<mode>2): Macroize insn from abs{sf,df}2 using FMODE mode iterator.
	(*nabs<mode>2): Macroize insn from *nabs{sf,df}2 using
	FMODE mode iterator.
	(neg<mode>2): Macroize insn from neg{sf,df}2 using FMODE mode iterator.
	(copysign<mode>3): Macroize insn from copysign{sf,df}3 using
	FMODE mode iterator.
	(*ncopysign<mode>3): Macroize insn from *ncopysign{sf,df}3 using
	FMODE mode iterator.
	(*add<mode>3_ieee): Macroize insn from *add{sf,df}_ieee using
	FMODE mode iterator.
	(add<mode>3): Macroize insn from add{sf,df}3 using FMODE mode iterator.
	(*sub<mode>3_ieee): Macroize insn from *sub{sf,df}3_ieee using
	FMODE mode iterator.
	(sub<mode>3): Macroize insn from sub{sf,df}3 using FMODE mode iterator.
	(*mul<mode>3_ieee): Macroize insn from *mul{sf,df}3_ieee using
	FMODE mode iterator.
	(mul<mode>3): Macroize insn from mul{sf,df}3 using FMODE mode iterator.
	(*div<mode>3_ieee): Macroize insn from *div{sf,df}3_ieee using
	FMODE mode iterator.
	(div<mode>3): Macroize insn from div{sf,df}3 using FMODE mode iterator.
	(*sqrt<mode>2_ieee): Macroize insn from *sqrt{sf,df}2_ieee using
	FMODE mode iterator.
	(sqrt<mode>2): Macroize insn from sqrt{sf,df}2
	using FMODE mode iterator.
	(*mov<mode>cc_internal): Macroize insn from *mov{sf,df}cc_internal
	using FMODE mode iterator.
	(mov<mode>cc): Macroize expander from mov{sf,df}cc
	using FMODE mode iterator.

2012-10-12  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54602
	* config/sh/sh.md: Correct define_delay for return insns.
	(*movsi_pop): Delete.

2012-10-12  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54680
	* config/sh/sh.c (sh_fsca_sf2int, sh_fsca_int2sf): Fix swapped
	comments.
	* config/sh/predicates.md (fpul_operand): Add comment.
	(fpul_fsca_operand, fsca_scale_factor): New predicates.
	* config/sh/sh.md (fsca): Move below sincossf3 expander.  Convert to
	insn_and_split.  Use fpul_fsca_operand and fsca_scale_factor
	predicates.  Simplify fpul operand in splitter.

2012-10-12  Jan Hubicka <jh@suse.cz>

	* tree-ssa-threadupdate.c (def_split_header_continue_p): Do not
	escape the loop.

2012-10-12  Jan Hubicka <jh@suse.cz>

	* web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag.

2012-10-12  Aaron Gray <aaronngray.lists@gmail.com>
	    Diego Novillo <dnovillo@google.com>

	* gengtype-lex.l: Support for C++ single line comments.
	Support for classes.
	(CXX_KEYWORD): New.  Support C++ keywords inline, public,
	protected, private, template, operator, friend, &, ~.
	(TYPEDEF): New.  Support typedef.
	* gengtype-parser.c: updated 'token_names[]'
	(direct_declarator): Add support for parsing functions and ctors.

2012-10-12  Diego Novillo  <dnovillo@google.com>

	* doc/gty.texi: Document C++ limitations in gengtype.
	* gengtype-lex.l (CID): Rename from ID.
	(ID): Include scoping '::' as part of the identifier name.
	* gengtype-parse.c (token_names): Update.
	(token_value_format): Update.
	(consume_until_eos): Rename from consume_until_semi.
	Remove unused argument IMMEDIATE.  Update all callers.
	Also consider '}' as a finalizer.
	(consume_until_comma_or_eos): Rename from
	consume_until_comma_or_semi.
	Remove unused argument IMMEDIATE.  Update all callers.
	Also consider '}' as a finalizer.
	(direct_declarator): Add documentation on ctor support.
	Add argument IN_STRUCT.
	If the token following ID is a '(', consider ID a
	function and return NULL.
	If the token following '(' is not a '*', and IN_STRUCT is true,
	conclude that this is a ctor and return NULL.
	If the token is IGNORABLE_CXX_KEYWORD, return NULL.
	(inner_declarator): Add argument IN_STRUCT.
	Update all callers.
	(declarator): Add argument IN_STRUCT with default value false.
	Update all callers.
	(type): Document argument NESTED.
	Skip over C++ inheritance specifiers.
	If a token TYPEDEF is found, emit an error.
	If an enum is found inside a class/structure, emit an error.
	(typedefs, structures, param_structs, variables): Initialize.
	(new_structure): Do not complain about duplicate
	structures if S has a line location set.
	* gengtype-state.c (write_state_type): Remove default handler.
	Add handler for TYPE_NONE.
	(read_state_scalar_char_type):
	* gengtype.c: Fix spacing.
	* gengtype.h (enum gty_token): Add name.  Add token
	IGNORABLE_CXX_KEYWORD.

2012-10-12  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.md (get_thread_pointersi): Moved to place with
	other TLS related patterns.

2012-10-12  Richard Biener  <rguenther@suse.de>

	* tree-streamer-out.c (pack_ts_target_option): Rename from ...
	(write_ts_target_option): ... this.
	(pack_ts_optimization): Rename from ...
	(write_ts_optimization): ... this.
	(streamer_pack_tree_bitfields): Pack them in the bitfield section ...
	(streamer_write_tree_body): ... not here.
	* tree-streamer-in.c (unpack_ts_target_option): Rename from ...
	(lto_input_ts_target_option): ... this.
	(unpack_ts_optimization): Rename from ...
	(lto_input_ts_optimization): ... this.
	(unpack_value_fields): Unpack them from the bitfield section ...
	(streamer_read_tree_body): ... not from here.

2012-10-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (vecmodesuffix): New mode attribute.
	(modesuffix): Handle V8QI and V4HI modes.
	(any_maxmin): New code iterator.
	(maxmin): New code attribute.
	(<code><mode>3): Macroize insn from {smax,smin,umax,umin}{qi,hi}3
	using any_maxmin code iterator and I12MODE mode iterator.
	(<code><mode>3): Macroize insn from {smax,smin,umax,umin}{v8qi,v4hi}3
	using any_maxmin code iterator and VEC12 mode iterator.

2012-10-12  Marc Glisse  <marc.glisse@inria.fr>

	* optabs.c (vector_compare_rtx): Change prototype.
	(expand_vec_cond_expr): Handle VEC_COND_EXPR whose first operand
	is not a comparison.
	* gimplify.c (gimplify_expr): Handle VEC_COND_EXPR.

2012-10-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54894
	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
	Handle over-aligned scalar types properly.

2012-10-12  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54760
	* config/sh/sh.c (bdesc): Remove thread pointer built-ins.
	* config/sh/sh.md (get_thread_pointer, set_thread_pointer): Append mode
	name 'si'.

2012-10-12  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md (negsi_cond, negdi_cond, stack_protect_test): Remove
	get_t_reg_rtx when invoking gen_branch_true or gen_branch_false.
	(*zero_extend<mode>si2_compact): Convert to insn_and_split.  Convert
	zero extensions of T bit stores to reg moves in splitter.  Remove
	obsolete unnamed peephole2 that caught zero extensions after negc T bit
	stores.
	(*branch_true_eq, *branch_false_ne): Delete.
	(branch_true, branch_false): Convert insn to expander.  Move actual
	insn logic to...
	(*cbranch_t): ...this new insn_and_split.  Try to find preceding
	redundant T bit stores and tests and combine them with the conditional
	branch if possible in the splitter.
	(movrt_xor, *movt_movrt): New insn_and_split.
	* config/sh/predicates.md (cbranch_treg_value): New predicate.
	* config/sh/sh-protos.h (sh_eval_treg_value): Forward declare...
	* config/sh/sh.c (sh_eval_treg_value): ...this new function.
	(expand_cbranchsi4, expand_cbranchdi4): Remove get_t_reg_rtx
	when invoking gen_branch_true or gen_branch_false.

2012-10-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (IMODE): New mode iterator.
	(I124MODE): Ditto.
	(I248MODE): Ditto.
	(modesuffix): Handle QI and HI modes.
	(zero_extendqi<mode>2): Macroize insn from zero_extendqi{hi,si,di}2
	using I248MODE mode iterator.
	(zero_extendhi<mode>2): Macroize insn from zero_extendhi{si,di}2
	using I48MODE mode iterator.
	(andnot<mode>3): Macroize insn from andnot{si,di}3 using
	I48MODE mode iterator.
	(ins<modesuffix>l_const): Macroize insn from ins{b,w,l}l_const
	using I248MODE mode iterator.
	(ins<modesuffix>l): Macroize insn from ins{b,w,l}l
	using I248MODE mode iterator.
	(*mov<mode>cc_internal): Macroize insn from
	*mov{qi,hi,si,di}cc_internal using IMODE mode iterator.
	(*mov<mode>cc_lbc): Macroize insn from
	*mov{qi,hi,si,di}cc_lbc using IMODE mode iterator.
	(*mov<mode>cc_lbs): Macroize insn from
	*mov{qi,hi,si,di}cc_lbs using IMODE mode iterator.
	(mov<mode>cc): Macroize expander from mov{si,di}cc
	using I48MODE mode iterator.

2012-10-11  Steven Bosscher  <steven@gcc.gnu.org>

	* ira-build.c (ira_loop_tree_body_rev_postorder): New function.
	(ira_traverse_loop_tree): Traverse a loop's basic blocks in
	reverse post-order of the reversed control-flow direction.
	* ira-conflicts.c (ira_build_conflicts): Pass add_copies as
	the pre-order function to ira_traverse_loop_tree to preserve
	the existing semantics.

	* ira-lives.c (remove_some_program_points_and_update_live_ranges):
	Squeeze out live range chain elements if their program points are
	connected.

2012-10-11  Jakub Jelinek  <jakub@redhat.com>

	* tree.def (REDUC_PLUS_EXPR): Fix up comment.

	* fold-const.c (fold_unary_loc): Handle REDUC_MIN_EXPR,
	REDUC_MAX_EXPR and REDUC_PLUS_EXPR.

2012-10-11  James Lemke  <jwlemke@codesourcery.com>

	* config/rs6000/predicates.md (zero_fp_constant): Fix comment.
	* config/rs6000/rs6000.md (return_pred): Fix null return.
	* config/rs6000/rs6000.c (rs6000_emit_set_const): Fix indentation.
	(print_operand): Make FALLTHRU obvious.
	(output_cbranch): Correct comment.

2012-10-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.md (DWI): New mode attribute.
	(*sadd<modesuffix>): Macroize insn from *saddl and *saddq using
	I48MODE mode iterator.
	(addv<mode>3): Macroize insn from addvsi3 and addvdi3 using
	I48MODE mode iterator.
	(neg<mode>2): Macroize insn from negsi2 and negdi2 using
	I48MODE mode iterator.
	(negv<mode>2): Macroize insn from negvsi2 and negvdi2 using
	I48MODE mode iterator.
	(sub<mode>3): Macroize insn from subsi3 and subdi3 using
	I48MODE mode iterator.
	(*ssub<modesuffix>): Macroize insn from *ssubl and *ssubq using
	I48MODE mode iterator.
	(subv<mode>3): Macroize insn from subvsi3 and subvdi3 using
	I48MODE mode iterator.
	(mul<mode>3): Macroize insn from mulsi3 and muldi3 using
	I48MODE mode iterator.
	(mulv<mode>3): Macroize insn from mulvsi3 and mulvdi3 using
	I48MODE mode iterator.
	(*iornot<mode>3): Macroize insn from *iornotsi3 and *iornotdi3 using
	I48MODE mode iterator.
	(*xornot<mode>3): Macroize insn from *xornotsi3 and *xornotdi3 using
	I48MODE mode iterator.

2012-10-11  Jason Merrill  <jason@redhat.com>

	* configure.ac (gcc_cv_as_aix_ref): Fix typo.
	* configure: Regenerate.

2012-10-11  Chung-Lin Tang  <cltang@codesourcery.com>

	* builtins.c (expand_builtin_thread_pointer): New.
	(expand_builtin_set_thread_pointer): New.
	(expand_builtin): Add BUILT_IN_THREAD_POINTER,
	BUILT_IN_SET_THREAD_POINTER expand cases.
	* builtins.def (BUILT_IN_THREAD_POINTER):
	New __builtin_thread_pointer builtin.
	(BUILT_IN_SET_THREAD_POINTER):
	New __builtin_set_thread_pointer builtin.
	* optabs.def (get_thread_pointer,set_thread_pointer):
	New standard names.
	* doc/md.texi (Standard Names): Document get_thread_pointer and
	set_thread_pointer patterns.
	* config/alpha/alpha.md (get_thread_pointerdi): Rename from load_tp.
	(set_thread_pointerdi): Rename from set_tp.
	* config/alpha/alpha.c (alpha_legitimize_address_1): Change
	gen_load_tp calls to gen_get_thread_pointerdi.
	(alpha_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER,
	ALPHA_BUILTIN_SET_THREAD_POINTER.
	(code_for_builtin): Remove CODE_FOR_load_tp, CODE_FOR_set_tp.
	(alpha_init_builtins): Remove __builtin_thread_pointer,
	__builtin_set_thread_pointer machine-specific builtins.
	(alpha_expand_builtin_thread_pointer): Add hook function for
	TARGET_EXPAND_BUILTIN_THREAD_POINTER.
	(alpha_expand_builtin_set_thread_pointer): Add hook function for
	TARGET_EXPAND_BUILTIN_SET_THREAD_POINTER.
	(alpha_fold_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER,
	ALPHA_BUILTIN_SET_THREAD_POINTER cases.
	* config/arm/arm.md (get_thread_pointersi): New pattern.
	* config/arm/arm-protos.h (arm_load_tp): Add extern declaration.
	* config/arm/arm.c (arm_load_tp): Remove static.
	(arm_builtins): Remove ARM_BUILTIN_THREAD_POINTER.
	(arm_init_tls_builtins): Remove function.
	(arm_init_builtins): Remove call to arm_init_tls_builtins().
	(arm_expand_builtin): Remove ARM_BUILTIN_THREAD_POINTER case.
	* config/mips/mips.md (get_thread_pointer<mode>): New pattern.
	* config/mips/mips-protos.h (mips_expand_thread_pointer):
	Add extern declaration.
	* config/mips/mips.c (mips_expand_thread_pointer):
	Renamed from mips_get_tp.
	(mips_get_tp): New stub calling mips_expand_thread_pointer.
	* config/s390/s390.c (s390_builtin,code_for_builtin_64,
	code_for_builtin_31,s390_init_builtins,s390_expand_builtin): Remove.
	* config/s390/s390.md (get_tp_64,get_tp_31,set_tp_64,set_tp_31):
	Remove.
	(get_thread_pointer<mode>,set_thread_pointer<mode>):
	New, adapted from removed patterns.
	* config/xtensa/xtensa.md (get_thread_pointersi):
	Renamed from load_tp.
	(set_thread_pointersi): Renamed from set_tp.
	* config/xtensa/xtensa.c (xtensa_legitimize_tls_address):
	Change gen_load_tp calls to gen_get_thread_pointersi.
	(xtensa_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER and
	XTENSA_BUILTIN_SET_THREAD_POINTER.
	(xtensa_init_builtins): Remove __builtin_thread_pointer,
	__builtin_set_thread_pointer machine-specific builtins.
	(xtensa_fold_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER,
	XTENSA_BUILTIN_SET_THREAD_POINTER cases.
	(xtensa_expand_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER,
	XTENSA_BUILTIN_SET_THREAD_POINTER cases.

2012-10-11  Marc Glisse  <marc.glisse@inria.fr>

	* doc/extend.texi (Vector Extensions): C++ improvements.
	* doc/generic.texi (LSHIFT_EXPR, RSHIFT_EXPR): Mixed vector-scalar.
	(LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR, NE_EXPR): Specify
	the vector case.
	(VEC_COND_EXPR): Document it.

2012-10-11  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.c (arm_arch6m): New variable to denote armv6-m
	architecture.
	* config/arm/arm.h (TARGET_HAVE_DMB): The armv6-m also has DMB
	instruction.

2012-10-11  Hans-Peter Nilsson  <hp@bitrange.com>

	PR target/54373
	* configure.ac (out-of-tree linker .hidden support) Set to "no"
	for mmix-knuth-mmixware.
	* configure: Regenerate.

	* configure.ac (gcc_cv_as_comdat_group_group): Default to no.
	* configure: Regenerate.

	* acinclude.m4 (_gcc_COMPUTE_GAS_VERSION): Allow a single
	character to quote the VERSION= contents.  Sanity-check contents.
	* configure.ac ("what linker to use" ld version extraction): Ditto.
	* configure: Regenerate.

2012-10-10  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.h (PRINT_OPERAND_PUNCT_VALID_P): Delete '.'.

2012-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/54877
	* tree-vect-loop.c (vect_is_simple_reduction_1): For MINUS_EXPR
	use make_ssa_name instead of copy_ssa_name.

2012-10-10  Richard Biener  <rguenther@suse.de>

	* lto-streamer-in.c (lto_input_location_bitpack): Rename to ...
	(lto_input_location): ... this.  Kill original.
	(input_eh_region): Adjust.
	(input_struct_function_base): Likewise.
	(lto_read_tree): Likewise.
	* lto-streamer-out.c (lto_output_location_bitpack): Rename to ...
	(lto_output_location): ... this.  Kill original.
	(lto_write_tree): Adjust.
	(output_eh_region): Likewise.
	(output_struct_function_base): Likewise.
	* lto-streamer.c (lto_streamer_hooks_init): Initialize location hooks.
	* lto-streamer.h (lto_input_location): Adjust prototype.
	(lto_output_location): Likewise.
	* streamer-hooks.h (struct streamer_hooks): Adjust prototype
	of input_location and output_location hooks.
	(stream_input_location): New define.
	(stream_output_location): Likewise.
	* tree-streamer-in.c (unpack_ts_block_value_fields): Adjust.
	(unpack_value_fields): Likewise.
	(streamer_read_tree_bitfields): Likewise.
	(lto_input_ts_decl_minimal_tree_pointers): Likewise.
	(lto_input_ts_exp_tree_pointers): Likewise.
	(lto_input_ts_block_tree_pointers): Likewise.
	* tree-streamer-out.c (pack_ts_block_value_fields): Adjust.
	(streamer_pack_tree_bitfields): Likewise.
	(write_ts_decl_minimal_tree_pointers): Likewise.
	(write_ts_exp_tree_pointers): Likewise.
	(write_ts_block_tree_pointers): Likewise.
	* gimple-streamer-in.c (input_phi): Adjust.
	(input_gimple_stmt): Likewise.
	* gimple-streamer-out.c (output_phi): Adjust.
	(output_gimple_stmt): Likewise.
	* tree-streamer.h (streamer_read_tree_bitfields): Adjust prototype.
	(streamer_pack_tree_bitfields): Likewise.

2012-10-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_dst_builtin): Fix signed
	vs. unsigned warnings by using enum type for function code.
	(paired_expand_builtin): Likewise.
	(spe_expand_builtin): Likewise.

	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Change
	builtin mask, target flags masks type to HOST_WIDE_INT in
	preparation for growing the number of ISA switches from 31 to 63.

	* config/rs6000/rs6000.opt (rs6000_builtin_mask): Make mask type
	HOST_WIDE_INT.

	* config/rs6000/rs6000.c (struct builtin_description): Make
	builtin mask field HOST_WIDE_INT.  Make target flags field
	HOST_WIDE_INT in preparation for growing the # of ISA switches.
	(struct rs6000_builtin_info_type): Likewise.
	(struct rs6000_ptt): Likewise.
	(rs6000_builtin_mask_calculate): Likewise.
	(rs6000_invalid_builtin): Likewise.
	(rs6000_builtin_decl): Likewise.
	(rs6000_common_init_builtins): Likewise.
	(rs6000_darwin_file_start): Likewise.
	(rs6000_final_prescan_insn): Likewise.
	(rs6000_inner_target_options): Likewise.
	(build_target_option_node): Likewise.
	(rs6000_function_specific_print): Likewise.
	(DEBUG_FMT_W): New format for printing HOST_WIDE_INT in hex.

	* config/rs6000/rs6000-protos.h (rs6000_builtin_mask_calculate):
	Make target flags, builtin masks arguments/return values
	HOST_WIDE_INT in preparation for growing the number of ISA from 31
	to 63.
	(rs6000_target_modify_macros): Likewise.
	(rs6000_target_modify_macros_ptr): Likewise.

	* config/rs6000/rs6000.c (DEBUG_FMT_ID): Move "-32s" to a separate
	define and change DEBUG_FMT_<x> to use it.
	(DEBUG_FMT_D): Likewise.
	(DEBUG_FMT_S): Likewise.
	(DEBUG_FMT_X): Delete, no longer used.
	(DEBUG_FMT_W): Likewise.
	(DEBUG_FMT_WX): New debug format for printing options in a
	friendly fashion.
	(rs6000_debug_reg_global): If -mdebug=reg, print all of the
	options in target_flags and target_flags_explicit.  Print the
	default options for -mcpu=<xxx>, -mtune=<xxx>, and the default
	options.  Adjust printing out the builtin options.
	(rs6000_option_override_internal): Change printing the builtin
	options to use rs6000_print_builtin_options.
	(rs6000_function_specific_print): Change to use
	rs6000_print_isa_options to print ISA flags.
	(rs6000_print_options_internal): New function for expanded
	-mdebug=reg option printing to print both the ISA options, and the
	builtins that are enabled.
	(rs6000_print_isa_options): New function to print the ISA options.
	(rs6000_print_builtin_options): New function to print the builtin
	functions enabled.

2012-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/51109
	* config/i386/bdver1.md (bdver1-mult): Remove.

	PR middle-end/54879
	* combine.c (count_rtxs): Use RTX_BIN_ARITH resp. RTX_COMM_ARITH
	instead of '2' resp. 'c' for GET_RTX_CLASS comparisons.

	PR middle-end/54862
	* simplify-rtx.c (simplify_truncation): Compare UINTVAL instead of
	INTVAL of second argument with precision resp. op_precision.

2012-10-10  Dodji Seketeli  <dodji@redhat.com>

	PR middle-end/54860 - Make sure attributes hash table is created
	* attribs.c (register_scoped_attributes): Ensure the attribute
	hash table is created.

2012-10-10  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	PR target/51109
	* config/i386/bdver1.md (bdver1_int): Automaton has been
	split to reduce state transitions.

2012-10-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/54876
	* ipa-prop.c (prune_expression_for_jf_1): New function.
	(prune_expression_for_jf): Clear EXPR_LOCATION for all
	sub-expressions as well.

2012-10-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config.gcc: Enable zEC12 for with-arch and with-tune
	configure switches.
	* common/config/s390/s390-common.c (processor_flags_table): Add
	zEC12 entry.
	* config/s390/2827.md: New file.
	* config/s390/s390-opts.h (enum processor_type): Add
	PROCESSOR_2827_ZEC12.
	* config/s390/s390.h (enum processor_flags): Add PF_ZEC12.
	(TARGET_CPU_ZEC12, TARGET_ZEC12): New macro definitions.
	* config/s390/s390.c (zEC12_cost): New definition.
	(s390_option_override): Set costs for zEC12.
	Set parameter defaults for zEC12.
	(legitimate_reload_fp_constant_p): Adjust comment.
	(preferred_la_operand_p): Adjust comment.
	(s390_expand_insv): Generate insv pattern without CC clobber for zEC12.
	(s390_adjust_priority): Add zEC12 check.
	(s390_issue_rate): Return 2 for zEC12.
	(s390_reorg): Enable code optimizations for zEC12.
	(s390_sched_reorder): Reorder insns according to OOO attributes.
	(s390_get_sched_attrmask): New function.
	(s390_sched_score): New function.
	(s390_sched_variable_issue): Update s390_sched_state.
	(s390_sched_init): Reset s390_sched_state.
	(s390_loop_unroll_adjust): Enable for zEC12.
	* config/s390/s390.opt: Add zEC12 processor type value.
	* config/s390/s390.md: Enable mnemonic attribute.
	(attr cpu, cpu_facility): Add zEC12.
	Include 2827.md.
	("*insv<mode>_zEC12", "*insv<mode>_zEC12_noshift")
	("*load_and_trap<mode>"): New insn definition.
	("*cmp_and_trap_unsigned_int<mode>"): Add clt and clgt.

2012-10-09  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (type attribute): Add new types 'visl'
	(VIS logical operation), 'vismv' (VIS move), and 'pdistn'.  Rename
	'fgm_pdist' to 'pdist'.
	(*movsi_insn): Use vismv and visl.
	(*movdi_insn_sp64): Likewise.
	(*movsf_insn): Likewise.
	(*movdf_insn_sp64): Likewise.
	(*mov<VM32:mode>_insn): Likewise, use 'fsrc2s' instead of 'fsrc1s'.
	(*mov<VM64:mode>_insn_sp64): Likewise, use 'fsrc2s'
	instead of 'fsrc1s'.
	(*mov<VM64:mode>_insn_sp32): Likewise, use 'fsrc2s'
	instead of 'fsrc1s'.
	(VIS logical instructions): Mark as visl.
	(pdist_vis): Use 'pdist'.
	(pditsn<mode>_vis): Use 'pdistn'.
	* config/sparc/ultra1_2.md: Adjust for new VIS attribute types.
	* config/sparc/ultra3.md: Likewise.
	* config/sparc/niagara.md: Likewise.
	* config/sparc/niagara2.md: Likewise.
	* config/sparc/niagara4.md: Add cpu units "n4_slot2" and
	"n4_load_store" for special store scheduling.  Use them in load
	and store reservations.  Integer divide and multiply can only
	issue in slot-1.  Represent 1-cycle VIS moves and 3-cycle VIS
	logic operations.

2012-10-10  Dehao Chen  <dehao@google.com>

	* tree-eh.c (lower_try_finally_onedest): Set correct location for
	deallocator.
	* gimplify.c (gimplify_expr): Set correct location for TRY stmt.

2012-10-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/52480
	* config/sh/sh.md (extv, extzv): Check that operands[3] is zero,
	regardless of the endianness.

2012-10-09  Lawrence Crowl  <crowl@google.com>

	* Makefile.in (fold-const.o): Add depencence on hash-table.h.
	(dse.o): Likewise.
	(cfg.o): Likewise.
	* fold-const.c (fold_checksum_tree): Change to new
	type-safe hash table.
	* (print_fold_checksum): Likewise.
	* cfg.c (var bb_original): Likewise.
	* (var bb_copy): Likewise.
	* (var loop_copy): Likewise.
	* hash-table.h (template hash_table): Constify parameters for find...
	and remove_elt... member functions.
	(hash_table::empty) Correct size expression.
	(hash_table::clear_slot) Correct deleted entry assignment.
	* dse.c (var rtx_group_table): Change to new type-safe hash table.

2012-10-09  Steven Bosscher  <steven@gcc.gnu.org>

	* basic-block. (profile_record): New struct, moved from passes.c.
	* cfghooks.h (struct cfg_hooks) <account_profile_record>: New hook.
	(account_profile_record): New prototype.
	* cfghooks.c (account_profile_record): New function.
	* tree-cfg.c (gimple_account_profile_record): New function
	(gimple_cfg_hooks): Add it.
	* cfgrtl.c (rtl_account_profile_record): New function
	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Add it.
	* passes.c (check_profile_consistency): Simplify.  Move IR-dependent
	code around using cfghooks machinery.

2012-10-09  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54760
	* doc/extend.texi (Target Builtins): Add SH built-in section.
	Document __builtin_thread_pointer and __builtin_set_thread_pointer.

2012-10-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	PR middle-end/53397
	* tree-ssa-loop-prefetch.c (gather_memory_references_ref):
	Perform non constant step prefetching in inner loop, only
	when it is invariant in the entire loop nest.
	* tree-ssa-loop-prefetch.c (dump_mem_details): New function to dump
	base, step and delta values of memeory reference analysed for
	prefetching.
	* tree-ssa-loop-prefetch.c (dump_mem_ref): Call dump_mem_details
	to print base, step and delta values of memory reference.
	* cfgloop.h (loop_outermost): New function that returns outermost
	loop for a given loop in a loop nest.

2012-10-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/54837
	* cfgexpand.c (expand_debug_source_expr): Move checking
	code conditional on a found decl_debug_args vector.

2012-10-09  Richard Guenther  <rguenther@suse.de>

	* tree-streamer.c (streamer_tree_cache_get): Move ...
	* tree-streamer.h (streamer_tree_cache_get): ... here as inline.

2012-10-09  Jan Hubicka  <jh@suse.cz>

	* loop-unroll.c (unroll_loop_constant_iterations): Add
	update of loop->nb_iterations_upper_bound I missed in my previous
	commit; use TRUNC_DIV_EXPR instead of FLOOR_DIV_EXPR to divide
	iteration count.
	(decide_unroll_runtime_iterations): Avoid overflow.
	(unroll_loop_runtime_iterations): Use TRUNC_DIV_EXPR instead of
	FLOOR_DIV_EXPR to update iteration bounds.
	(decide_peel_simple): Avoid integer overflow when deciding
	on number of peelings.
	(decide_unroll_stupid): Likewise.

2012-10-09  Tobias Burnus  <burnus@net-b.de>

	* lto-cgraph.c (input_node_opt_summary): Remove unused code.
	* lto-opts.c (append_to_collect_gcc_options): Fix condition.
	* lto-symtab.c (lto_cgraph_replace_node): Don't xstrdup string
	which is passed to fprintf.

2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54194
	* tree.h: Add EXPR_LOC_OR_LOC.

2012-10-09  Nick Clifton  <nickc@redhat.com>

	PR rtl-optimization/54739
	* config/mcore/mcore.md: (anddi3, iordi3, xordi3): Delete patterns.

	PR target/54661
	* config/mcore/mcore.c (mcore_output_movedouble): Fix typo.

2012-10-09  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	* fold-const.c (fold_binary_loc): Use build_zero_cst instead of
	build_int_cst for a potential vector.

2012-10-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/atom.md (atom_sse_4): Merge atom_sse_attr attibutes.
	(atom_sse_5): Ditto.

2012-10-08  Marc Glisse  <marc.glisse@inria.fr>

	PR target/54400
	* config/i386/i386.md (type attribute): Add sseadd1.
	(unit attribute): Add support for sseadd1.
	(memory attribute): Likewise.
	* config/i386/athlon.md: Likewise.
	* config/i386/core2.md: Likewise.
	* config/i386/atom.md: Likewise.
	* config/i386/ppro.md: Likewise.
	* config/i386/bdver1.md: Likewise.
	* config/i386/sse.md (sse3_h<plusminus_insn>v2df3): Split into...
	(sse3_haddv2df3): ... expander.
	(*sse3_haddv2df3): ... define_insn. Accept permuted operands.
	(sse3_hsubv2df3): ... define_insn.
	(*sse3_haddv2df3_low): New define_insn.
	(*sse3_hsubv2df3_low): New define_insn.

2012-10-08  Jan Hubicka  <jh@suse.cz>

	* loop-unswitch.c (unswitch_single_loop): Use
	estimated_loop_iterations_int to prevent unswitching when loop
	is known to not roll.
	* tree-ssa-loop-niter.c (estimated_loop_iterations): Do not segfault
	when SCEV is not initialized.
	(max_loop_iterations): Likewise.
	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Use
	estimated_loop_iterations_int to prevent unswithcing when
	loop is known to not roll.
	* tree-scalar-evolution.c (scev_initialized_p): New function.
	* tree-scalar-evolution.h (scev_initialized_p): Likewise.
	* loop-unroll.c (decide_peel_once_rolling): Use
	max_loop_iterations_int.
	(unroll_loop_constant_iterations): Update
	nb_iterations_upper_bound and nb_iterations_estimate.
	(decide_unroll_runtime_iterations): Use
	estimated_loop_iterations or max_loop_iterations;
	(unroll_loop_runtime_iterations): fix profile updating.
	(decide_peel_simple): Use estimated_loop_iterations
	and max_loop_iterations.
	(decide_unroll_stupid): Use estimated_loop_iterations
	ad max_loop_iterations.
	* loop-doloop.c (doloop_modify): Use max_loop_iterations_int.
	(doloop_optimize): Likewise.
	* loop-iv.c (iv_number_of_iterations): Use record_niter_bound.
	(find_simple_exit): Likewise.
	* cfgloop.h (struct niter_desc): Remove niter_max.

2012-10-08  Marek Polacek  <polacek@redhat.com>

	PR debug/54831
	* var-tracking.c (vt_add_function_parameter): Use condition instead
	of gcc_assert.

2012-10-08  Dehao Chen  <dehao@google.com>

	* predict.c (predict_loops): Predict for short-circuit conditions.
	(predict_extra_loop_exits): New Function.

2012-10-08  Steven Bosscher  <steven@gcc.gnu.org>

	* bitmap.h (bitmap_and_into): Update prototype.
	* bitmap.c (bitmap_and_into): Return true if the target bitmap
	changed, false otherwise.

	* df.h (df_dump_insn_problem_function): New function type.
	(struct df_problem): Add two functions, to dump just before and
	just after an insn.
	(DF_RD_PRUNE_DEAD_DEFS): New changable flag.
	(df_dump_insn_top, df_dump_insn_bottom): New prototypes.
	* df-core (df_dump_region): Use dump_bb.
	(df_dump_bb_problem_data): New function.
	(df_dump_top, df_dump_bottom): Rewrite using df_dump_bb_problem_data.
	(df_dump_insn_problem_data): New function.
	(df_dump_insn_top, df_dump_insn_bottom): New functions.
	* df-scan.c (problem_SCAN): Add NULL fields for new members.
	* df-problems.c (df_rd_local_compute): Ignore hard registers if
	DF_NO_HARD_REGS is in effect.
	(df_rd_transfer_function): If DF_RD_PRUNE_DEAD_DEFS is in effect,
	prune reaching defs using the LR problem.
	(df_rd_start_dump): Fix dumping of DEFs map.
	(df_rd_dump_defs_set): New function.
	(df_rd_top_dump, df_rd_bottom_dump): Use it.
	(problem_RD): Add NULL fields for new members.
	(problem_LR, problem_LIVE): Likewise.
	(df_chain_bb_dump): New function.
	(df_chain_top_dump): Dump only for artificial DEFs and USEs,
	using df_chain_bb_dump.
	(df_chain_bottom_dump): Likewise.
	(df_chain_insn_top_dump, df_chain_insn_bottom_dump): New functions.
	(problem_CHAIN): Add them as new members.
	(problem_WORD_LR, problem_NOTE): Add NULL fields for new members.
	(problem_MD): Likewise.
	* cfgrtl.c (rtl_dump_bb): Use df_dump_insn_top and df_dump_insn_bottom.
	(print_rtl_with_bb): Likewise.

	* dce.c (init_dce): Use DF_RD_PRUNE_DEAD_DEFS.
	* loop-invariant.c (find_defs): Likewise.
	* loop-iv.c (iv_analysis_loop_init): Likewise.
	* ree.c (find_and_remove_re): Likewise.
	* web.c (web_main): Likewise.

2012-10-08  Jason Merrill  <jason@redhat.com>

	* config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
	ASM_WEAKEN_DECL with #if RS6000_WEAK.

2012-10-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54825
	* tree-ssa-sccvn.c (vn_nary_length_from_stmt): Handle BIT_FIELD_REF.
	(init_vn_nary_op_from_stmt): Likewise.
	* tree-ssa-pre.c (compute_avail): Use vn_nary_op_lookup_stmt.
	* tree-ssa-sccvn.h (sizeof_vn_nary_op): Avoid overflow.

2012-10-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (postorder_num): New global.
	(compute_antic): Initialize all blocks and adjust for
	generic postorder.
	(my_rev_post_order_compute): Remove.
	(init_pre): Use inverted_post_order_compute.

2012-10-08  Bernd Schmidt  <bernds@codesourcery.com>

	* sched-int.h (schedule_block): Adjust declaration.
	* sched-rgn.c (bb_state_array, bb_state): New static variables.
	(sched_rgn_init): Initialize them.
	(sched_rgn_free): Free them.
	(schedule_region): Save scheduling state for future blocks, and
	pass such state to schedule_block.
	* params.def (PARAM_SCHED_STATE_EDGE_PROB_CUTOFF): New.
	* doc/invoke.texi (--param): Document it.
	* haifa-sched.c (schedule_block): New arg init_state.  Use it to
	initialize state if nonnull.  All callers changed.
	Call advance_one_cycle after scheduling.

2012-10-08  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54854
	* doc/invoke.texi (AVR Options): Remove -mshort-calls.
	* config/avr/avr.opt (-mshort-calls): Remove option.
	* config/avr/avr.h (AVR_HAVE_JMP_CALL): Don't depend on
	TARGET_SHORT_CALLS.

2012-10-08  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54685
	* config/sh/sh.md (one_cmplsi2): Make insn_and_split.  Add manual
	combine matching for an insn sequence where a ge:SI pattern
	can be used.

2012-10-08  Dodji Seketeli  <dodji@redhat.com>

	PR c++/53528 C++11 attribute support
	* plugin.h (register_scoped_attributes): Declare new function.
	* tree.h (enu attribute_flags::ATTR_FLAG_CXX_11): New flag.
	(lookup_scoped_attribute_spec, cxx_11_attribute_p)
	(get_attribute_name, get_attribute_namespace): Declare new functions.
	(struct attribute_spec): Remove const qualifier from the members.
	* tree.c (comp_type_attributes, private_lookup_attribute)
	(lookup_ident_attribute, remove_attribute, merge_attribute)
	(attribute_hash_list, attribute_list_contained): Use
	get_attribute_name.
	* attribs.c (decl_attributes): Don't crash on error_mark_node.
	Forbid c++11 attributes appertaining to type-specifiers.
	(attribute_hash): Remove global variable.
	(attributes_table): New global variable.
	(find_attribute_namespace, register_scoped_attribute): New static
	functions.
	(register_scoped_attributes, lookup_scoped_attribute_spec)
	(cxx11_attribute_p, get_attribute_name, get_attribute_namespace):
	New public functions.
	(init_attributes): Register all the GNU attributes into the "gnu"
	namespace.
	(register_attribute): Use register_scoped_attribute to register
	the attribute into the "gnu" namespace.
	(lookup_attribute_spec): Use lookup_scoped_attribute_spec to
	lookup the attribute in the "gnu" namespace.
	(decl_attributes): Use new get_attribute_namespace and
	lookup_scoped_attribute_spec to consider attribute namespaces when
	looking up attributes.  When operating in c++-11 mode, pass flag
	ATTR_FLAG_CXX11 to the spec handler.

2012-10-08  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54815
	* config/avr/avr.md (*add<mode>3, add<mode>3, addpsi3): Make
	constraint alternative "r,0,r" slighly more expensive.
	(sub<mode>3, andqi3, andhi3, andpsi3, andsi3): Ditto.
	(iorqi3, iorhi3, iorpsi3, iorsi3): Ditto.
	(xorhi3, xorpsi3, xorsi3): Ditto.

2012-10-08  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54760
	* config/sh/sh.md (*mov<mode>_gbr_load, *mov<mode>_gbr_store): New
	insns and accompanying unnamed splits.
	* config/sh/predicates.md (general_movsrc_operand,
	general_movdst_operand): Reject GBR addresses.
	* config/sh/sh-protos.h (sh_find_equiv_gbr_addr): New declaration.
	* config/sh/sh.c (sh_address_cost, sh_legitimate_address_p,
	sh_secondary_reload): Handle GBR addresses.
	(base_reg_disp): New class.
	(sh_find_base_reg_disp, sh_find_equiv_gbr_addr): New functions.

2012-10-08  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_output_octa): Don't assume
	HOST_WIDEST_INT_PRINT_HEX starts with "0x".  Instead use
	HOST_WIDE_INT_PRINT_HEX_PURE, falling back to
	HOST_WIDEST_INT_PRINT_UNSIGNED.

2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* machmode.h (GET_MODE_UNIT_PRECISION): New macro.
	* simplify-rtx.c (simplify_truncation): New function,
	extracted from simplify_subreg and (in small part) from
	simplify_unary_operation_1.
	(simplify_unary_operation_1) <TRUNCATE>: Use it.  Remove sign bit
	test for !TRULY_NOOP_TRUNCATION_MODES_P.
	(simplify_subreg): Use simplify_truncate for lowpart subregs
	where both the inner and outer modes are scalar integers.
	* config/mips/mips.c (mips_truncated_op_cost): New function.
	(mips_rtx_costs): Adjust test for BADDU.
	* config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.

2012-10-07  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-analysis.c (do_estimate_edge_time): Return actual
	time spent by the inlined sequence.
	(do_estimate_edge_growth): Rename to ...
	(do_estimate_edge_time): ... this one; return size of inlined sequence.
	* ipa-inline.h (do_estimate_edge_size): New.
	(do_estimate_edge_growth): Remove.
	(estimate_edge_size): New function.
	(estimate_edge_growth): Use it.

2012-10-07  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (lto_symtab_encoder_new): New parameter FOR_INPUT.
	(lto_symtab_encoder_delete): Update.
	(lto_symtab_encoder_encode): Update.
	(compute_ltrans_boundary): Update.
	(input_symtab): Update.
	* lto-streamer.h (lto_symtab_encoder_new): Update.

2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-protos.h (mips_split_type): New enum.
	(mips_split_64bit_move_p, mips_split_doubleword_move): Delete.
	(mips_split_move_p, mips_split_move, mips_split_move_insn_p)
	(mips_split_move_insn): Declare.
	* config/mips/mips.c (mips_tuning_info): New variable.
	(mips_load_store_insns): Use mips_split_move_insn_p instead of
	mips_split_64bit_move_p.
	(mips_emit_move_or_split, mips_mult_move_p): New functions.
	(mips_split_64bit_move_p): Rename to...
	(mips_split_move_p): ...this and take a mips_split_type argument.
	Generalize to all moves.  Call mips_mult_move_p.
	(mips_split_doubleword_move): Rename to...
	(mips_split_move): ...this and take a mips_split_type argument.
	Assert that mips_split_move_p holds.
	(mips_insn_split_type, mips_split_move_insn_p, mips_split_move_insn):
	New functions.
	(mips_output_move): Use mips_split_move_p instead of
	mips_split_64bit_move_p.  Handle MULT $0, $0 moves.
	(mips_save_reg): Use mips_emit_move_or_split.
	(mips_sim_reset): Assign to curr_state.  Call targetm.sched.init
	and advance_state.
	(mips_sim_init): Call targetm.sched.init_dfa_pre_cycle_insn and
	targetm.sched.init_dfa_post_cycle_insn, if defined.
	(mips_sim_next_cycle): Assign to curr_state.  Use advance_state
	instead of state_transition.
	(mips_sim_issue_insn): Assign to curr_state.  Use
	targetm.sched.variable_issue to see how many more insns can be issued.
	(mips_seq_time, mips_mult_zero_zero_cost)
	(mips_set_fast_mult_zero_zero_p, mips_set_tuning_info)
	(mips_expand_to_rtl_hook): New functions.
	(TARGET_EXPAND_TO_RTL_HOOK): Define.
	* config/mips/mips.md (move_type): Add imul.
	(type): Map imul move_types to imul.
	(*movdi_32bit, *movti): Add imul alternatives.
	Use mips_split_move_insn_p and mips_split_move_insn instead of
	mips_split_64bit_move_p and mips_split_doubleword_move in move
	splitters.

2012-10-06  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (print_operand) ['A']: Delete.

2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/52764
	* ginclude/stdint-wrap.h: In C++11 if __STDC_HOSTED__ define
	__STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS.
	* ginclude/stdint-gcc.h: In C++11 unconditionally define
	limit and constant macros.

2012-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54249
	* ginclude/stddef.h: In C++11 mode declare nullptr_t in the global
	namespace.

2012-10-06  Jan Hubicka  <jh@suse.cz>

	PR lto/53831
	PR lto/54776
	* lto-streamer-out.c (produce_symtab): Cleanup; drop v1 API hack.

2012-10-06  Dehao Chen  <dehao@google.com>

	PR debug/54826
	* gimple-low.c (lower_stmt): Set the block for call args.

2012-10-06  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (-fprofile-report): Document.
	* common.opt (-fprofile-report): New option.
	* toplev.c (finalize): Call dump_profile_report.
	* toplev.h (profile_report): Declare.
	* passes.c (profile_record): New static var.
	(check_profile_consistency): New function.
	(dump_profile_record): New function.
	(execute_one_ipa_transform_pass): Call check_profile_consistency.
	(execute_one_pass): Likewise.

2012-10-06  Jan Hubicka  <jh@suse.cz>

	PR lto/54790
	* lto-streamer.h (lto_symtab_register_decl, lto_symtab_get_resolution,
	lto_mark_nothrow_fndecl, lto_fixup_nothrow_decls): Remove.
	* lto-symtab.c (lto_symtab_register_decl): Remove.

2012-10-06  Andreas Schwab  <schwab@linux-m68k.org>

	PR rtl-optimization/54739
	* config/m68k/m68k.md (anddi3, iordi3, xordi3, one_cmpldi2): Remove.

2012-10-06  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54760
	* config/sh/sh.md (define_constants): Add UNSPECV_GBR.
	(get_thread_pointer, set_thread_pointer): New expanders.
	(load_gbr): Rename to store_gbr.  Remove GBR_REG use.
	(store_gbr): New insn.
	* config/sh/sh.c (prepare_move_operands): Use gen_store_gbr instead of
	gen_load_gbr in TLS_MODEL_LOCAL_EXEC case.
	(sh1_builtin_p): New function.
	(signature_args): Add SH_BLTIN_VP.
	(bdesc): Add __builtin_thread_pointer and __builtin_set_thread_pointer.

2012-10-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR rtl-optimization/54739
	* config/pa/pa.md: Remove DImode and, not and, ior and xor patterns
	for 32-bit targets.  Adjust expanders.

	* config/pa/pa.md: Adjust unamed HImode add insn pattern.

2012-10-05  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.c (builtin_description): Add is_enabled member.
	(shmedia_builtin_p): New function.
	(bdesc): Use shmedia_builtin_p for existing built-ins.
	(sh_media_init_builtins, sh_init_builtins): Merge into single function
	sh_init_builtins.  Add is_enabled checking.  Move variable declarations
	to where they are actually used.
	(sh_media_builtin_decl, sh_builtin_decl): Merge into single function
	sh_builtin_decl.  Add is_enabled checking.
	(sh_expand_builtin): Move variable declarations to where they are
	actually used.

2012-10-05  Jakub Jelinek  <jakub@redhat.com>

	* tree-inline.c (expand_call_inline): Move VAR_DECLs with
	PARM_DECL origins from remapped DECL_INITIAL's BLOCK_VARS
	into id->block's BLOCK_VARS.

	PR debug/54519
	* ipa-split.c (split_function): Add debug args and debug source
	and normal stmts for args_to_skip which are gimple regs.
	* tree-inline.c (copy_debug_stmt): When inlining, adjust source
	debug bind stmts to debug binds of corresponding DEBUG_EXPR_DECL.

2012-10-05  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md: Fix indentations of insn C snippets.

2012-10-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/54811
	* tree-ssa-live.c (clear_unused_block_pointer_1): Look at
	DECL_DEBUG_EXPR again.

2012-10-05  Jan Hubicka  <jh@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/33763
	* tree-inline.c (expand_call_inline): Silently ignore always_inline
	attribute for redefined extern inline functions.

2012-10-04  Jan Hubicka  <jh@suse.cz>

	* tree-vectorizer.h (vect_estimate_min_profitable_iters): Remove.
	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Declare here.
	(vect_analyze_loop_operations): Use loop count estimate to rule out
	unprofitable vectorization.
	(vect_estimate_min_profitable_iters): Return
	ret_min_profitable_estimate.

2012-10-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/54810
	* tree-vrp.c (register_edge_assert_for_2): Handle
	NAME = (unsigned) NAME2; if (NAME cmp CST) for
	narrowing casts to unsigned integral type like
	NAME = NAME2 & CST2; if (NAME cmp CST) where CST2
	is the max value of the unsigned integral type.

2012-10-04  Jeff Law  <law@redhat.com>

	PR target/50356
	* config/h8300/h8300.c (h8300_rtx_costs): Fix typo in CONST_INT case.

2012-10-04  Jason Merrill  <jason@redhat.com>

	* config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
	ASM_WEAKEN_DECL with #if RS6000_WEAK.

2012-10-04  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.c (walk_type): Emit mark_hook when inside a
	struct of a union member.

2012-10-04  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/predicates.md (flash_operand): New predicate.
	* config/avr/avr.md (reload_in<mode>): Use it in operand 1 instead
	of memory_operand.

2012-10-04  Tobias Burnus  <burnus@net-b.de>

	* gcc.c (record_temp_file, add_sysrooted_prefix, process_command,
	do_self_spec, compare_debug_dump_opt_spec_function): Plug memleaks.
	(do_spec_1): Ditto, fix out-of-bound access.
	* opts.c (common_handle_option): Plug memleak.

2012-10-04  Jason Merrill  <jason@redhat.com>

	* config/darwin.c (darwin_assemble_visibility): Treat
	VISIBILITY_INTERNAL as hidden.

	* config/darwin-c.c (find_subframework_file): Add missing const.
	(framework_construct_pathname): Likewise.

2012-10-04  Florian Weimer  <fweimer@redhat.com>

	* doc/cpp.texi (Pragmas): Document #pragma GCC warning, #pragma
	GCC error.

2012-10-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/54735
	* tree-ssa-pre.c (do_pre): Make sure to update virtual SSA form before
	cleaning up the CFG.

2012-10-04  Richard Guenther  <rguenther@suse.de>

	PR lto/47799
	* tree-streamer-out.c (write_ts_block_tree_pointers): For
	inlined functions outer scopes write the ultimate origin
	as BLOCK_ABSTRACT_ORIGIN and BLOCK_SOURCE_LOCATION.
	Do not stream the fragment chains.
	* tree-streamer-in.c (lto_input_ts_block_tree_pointers): Likewise.
	* dwarf2out.c (gen_subprogram_die): Handle NULL DECL_INITIAL.
	(dwarf2out_decl): Always output DECL_ABSTRACT function decls.

2012-10-04  Arnaud Charlet  <charlet@adacore.com>

	* dumpfile.h, dumpfile.c: Remove TDI_ada.

2012-10-04  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* config/i386/i386.c (ix86_dep_by_shift_count_body) : Add
	check on reload_completed since it can be invoked before
	register allocation phase in pre-reload schedule.
	(ia32_multipass_dfa_lookahead) : Do not use dfa_lookahead for
	pre-reload schedule to save compile time.
	(ix86_sched_reorder) : Do not perform ready list reordering for
	pre-reload schedule to save compile time.
	(insn_is_function_arg) : New function. Returns true if lhs of insn is
	HW function argument register.
	(add_parameter_dependencies) : New function. Add output dependencies
	for chain of function adjacent arguments if only there is a move to
	likely spilled HW registers. Return first argument if at least one
	dependence was added or NULL otherwise.
	(avoid_func_arg_motion) : New function. Add output or anti dependency
	from insn to first_arg to restrict code motion.
	(add_dependee_for_func_arg) : New function. Avoid cross block motion of
	function argument through adding dependency from the first non-jump
	insn in bb.
	(ix86_dependencies_evaluation_hook) : New function. Hook for
	pre-reload schedule: avoid motion of function arguments passed in
	likely spilled HW registers.
	(ix86_adjust_priority) : New function. Hook for pre-reload schedule:
	set priority of moves from likely spilled HW registers to maximum to
	schedule them as soon as possible.
	(ix86_sched_init_global): Do not perform multipass scheduling for
	pre-reload schedule to save compile time.

2012-10-04  Uros Bizjak  <ubizjak@gmail.com>

	* configure.ac (noexception_flags): Add -fasynchronous-unwind-tables.
	* configure: Regenerate.

2012-10-04  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_can_use_simple_return_p): Return false for
	SHmedia	and SHcompact using call cookie.
	* config/sh/sh.md (epilogue): Emit non-inlined return insns for
	SHmedia	and SHcompact using call cookie.

2012-10-03  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md (*mov_t_msb_neg): New insn and two accompanying
	unnamed split patterns.

2012-10-03  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/50457
	* config/sh/sh.c (parse_validate_atomic_model_option): Handle name
	strings in sh_atomic_model.
	* config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Move macro implementation
	to ...
	* config/sh/sh-c.c (sh_cpu_cpp_builtins): ... this new function.
	Add __SH1__ and __SH2__ defines.  Add __SH_ATOMIC_MODEL_*__ define.
	* config/sh/sh-protos.h (sh_atomic_model): Add name and cdef_name
	variables.
	(sh_cpu_cpp_builtins): Declare new function.

2012-10-03  Dehao Chen  <dehao@google.com>

	PR middle-end/54782
	* tree-cfg.c (move_block_to_fn): Update lexical block for phi_args.

2012-10-03  Vladimir Makarov  <vmakarov@redhat.com>

	* reginfo.c (max_regno_since_last_resize): New.
	(reg_preferred_class, reg_alternate_class): Add assert.
	(allocate_reg_info): Initialize allocated reg info.
	(resize_reg_info): Make bigger reg_info and initialize new memory.
	(reginfo_init): Initialize max_regno_since_last_resize.
	(setup_reg_classes): Change assert.

2012-10-03  Andrew W. Nosenko <andrew.w.nosenko@gmail.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
	in SSE and YMM state support check for -march=native.

2012-10-03  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (struct decl_chain): New local structure.
	(warned_decls): New local variable.  Contains a stack of decls for
	which warnings have been issued.
	(add_warned_decl): Adds a decl to the stack.
	(already_warned): Returns true if a given decl is on the stack.
	(rx_set_current_function): Issue a warning if multiple fast
	interrupt handlers are defined.
	* config/rx/rx.opt (mwarn-multiple-fast-interrupts): New option.
	* doc/invoke.texi: Document the option.

2012-10-03  Mark Kettenis  <kettenis@openbsd.org>

	* config.gcc (*-*-openbsd4.[3-9]|*-*-openbsd[5-9]*): Set
	default_use_cxa_atexit to yes.

2012-10-03  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/54792
	* sched-deps.c (find_modifiable_mems): Scan also TAIL insn.

2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/54785
	* doc/invoke.texi: Document -mprefer-avx128.

2012-10-02  Andrew Pinski  <apinski@cavium.com>

	* simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
	Don't optimize a truncate of a mem if it is a vector mode.

2012-10-02  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54551
	* Makefile.in (VALTRACK_H): Add hash-table.h.
	* valtrack.h: Include hash-table.h.
	(struct dead_debug_global_entry): New.
	(struct dead_debug_hash_descr): New.
	(struct dead_debug_global): New.
	(struct dead_debug): Rename to...
	(struct dead_debug_local): ... this.  Adjust all uses.
	(dead_debug_global_init, dead_debug_global_finish): New.
	(dead_debug_init): Rename to...
	(dead_debug_local_init): ... this.  Adjust all callers.
	(dead_debug_finish): Rename to...
	(dead_debug_local_finish): ... this.  Adjust all callers.
	* valtrack.c (dead_debug_global_init): New.
	(dead_debug_init): Rename to...
	(dead_debug_local_init): ... this.  Take global parameter.
	Save it and initialize used bitmap from it.
	(dead_debug_global_find, dead_debug_global_insert): New.
	(dead_debug_global_replace_temp): New.
	(dead_debug_promote_uses): New.
	(dead_debug_finish): Rename to...
	(dead_debug_local_finish): ... this.  Promote remaining uses.
	(dead_debug_global_finish): New.
	(dead_debug_add): Try to replace global temps first.
	(dead_debug_insert_temp): Support global replacements.
	* dce.c (word_dce_process_block, dce_process_block): Add
	global_debug parameter.  Pass it on.
	(fast_dce): Initialize, pass on and finalize global_debug.
	* df-problems.c (df_set_unused_notes_for_mw): Adjusted.
	(df_create_unused_notes, df_note_bb_compute): Likewise.
	(df_note_compute): Justify local-only dead debug analysis.

2012-10-02  Alexandre Oliva <aoliva@redhat.com>

	PR debug/53135
	* dwarf2out.c (value_format): Use block4 for dw_val_class_loc
	when needed.

2012-10-02  Alexandre Oliva <aoliva@redhat.com>

	PR debug/54177
	* var-tracking.c (vt_add_function_parameter): Bail if
	var_lowpart fails.

2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/54741
	* config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
	(XSTATE_FP): Likewise.
	(XSTATE_SSE): Likewise.
	(XSTATE_YMM): Likewise.
	(host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if
	SSE and YMM states aren't supported.

2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
	(*baddu_si): ...this new pattern.

2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-int.h (target_ira_int): Add x_ira_useful_class_mode_regs.
	(ira_useful_class_mode_regs): New macro.
	* ira.c (clarify_prohibited_class_mode_regs): Set up
	ira_useful_class_mode_regs.
	* ira-color.c (setup_profitable_hard_regs): Use it to initialise
	profitable_hard_regs.

2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.h (target_ira): Add x_ira_class_singleton.
	(ira_class_singleton): New macro.
	* ira.c (setup_prohibited_class_mode_regs): Set up ira_class_singleton.
	* ira-build.c (update_conflict_hard_reg_costs): Use
	ira_class_singleton to check for classes with a single
	allocatable register.
	* ira-lives.c (ira_implicitly_set_insn_hard_regs): Likewise.
	(single_reg_class): Likewise.  When more than one class is specified,
	check whether they have the same singleton register.
	(process_single_reg_class_operands): Require single_reg_class
	to return NO_REGS or a class with a single allocatable register.
	Obtain that register from ira_class_singleton.

2012-10-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): If
	-mcpu=<xxx> is not specified and the compiler is not configured
	using --with-cpu=<xxx>, use the bits from the TARGET_DEFAULT to
	set the initial options.

2012-10-02  Sharad Singhai  <singhai@google.com>

	PR testsuite/54772
	* tree-vect-stmts.c (vectorizable_operation): Add missing return.

2012-10-02  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
	set TARGET_ALTIVEC_VRSAVE for TARGET_ELF.
	(rs6000_stack_info): Only set vrsave_mask if TARGET_ALTIVEC_VRSAVE.

2012-10-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/54713
	* expr.c (categorize_ctor_elements_1): Don't assume purpose is
	non-NULL.
	* tree-cfg.c (verify_gimple_assign_single): Add verification of
	vector CONSTRUCTORs.
	* tree-ssa-sccvn.c (vn_reference_lookup_3): For VECTOR_TYPE
	CONSTRUCTORs, don't do anything if element type is VECTOR_TYPE,
	and don't check index.
	* tree-vect-slp.c (vect_get_constant_vectors): VIEW_CONVERT_EXPR ctor
	elements first if their type isn't compatible with vector element type.

2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (DECL_NONLOCAL_FRAME): New macro.
	* tree-nested.c (get_frame_type): Set DECL_NONLOCAL_FRAME.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream in
	DECL_NONLOCAL_FRAME flag.
	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream out
	DECL_NONLOCAL_FRAME flag.

2012-10-02  Marc Glisse  <marc.glisse@inria.fr>

	* tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
	boolean_type_node for vectors.

2012-10-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (toplevel): Include dumpfile.h.
	(rs6000_density_test): Rework to accommodate 09-30 change by
	Sharad Singhai.

	* config/rs6000/t-rs6000 (rs6000.o): Add dumpfile.h dependency.

2012-10-01  Dehao Chen  <dehao@google.com>

	PR middle-end/54759
	* tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use
	LOCATION_LOCUS to compare with UNKNOWN_LOCATION.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	* tree-vectorizer.c (vectorize_loops): Likewise.

2012-10-01  Andrew MacLeod  <amacleod@redhat.com>

	PR target/54087
	* optabs.c (expand_atomic_fetch_op_no_fallback): New.  Factored code
	from expand_atomic_fetch_op.
	(expand_atomic_fetch_op):  Try atomic_{add|sub} operations in terms of
	the other one if direct opcode fails.

2012-10-01  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/54457
	* simplify-rtx.c (simplify_subreg):
	Simplify (subreg:M (op:N ((x:N) (y:N)), 0)
	to (op:M (subreg:M (x:N) 0) (subreg:M (x:N) 0)), where
	the outer subreg is effectively a truncation to the original mode M.

2012-10-01  Richard Guenther  <rguenther@suse.de>

	* builtins.def (ATTR_MATHFN_FPROUNDING): Do not use no-vops
	with -frounding-math.
	* builtin-attrs.def (ATTR_PURE_NOTHROW_NOVOPS_LIST): Remove.
	(ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST): Likewise.

2012-10-01  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (copy_mem_ref_info): Delete.
	* tree-ssa-address.c (copy_mem_ref_info): Likewise.
	(maybe_fold_tmr): Copy flags manually.
	* tree-ssa-loop-im.c (simple_mem_ref_in_stmt): Rewrite.

2012-10-01  Marc Glisse  <marc.glisse@inria.fr>

	* simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
	Detect the identity.
	<VEC_CONCAT>: Handle VEC_SELECTs from the same vector.

2012-10-01  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/50457
	* config/sh/sh.opt (matomic-model): New option.
	(msoft-atomic): Mark as deprecated and alias to
	matomic-model=soft-gusa.
	(mhard-atomic): Delete.
	* config/sh/predicates.md (gbr_displacement): New predicate.
	* config/sh/sh-protos.h (sh_atomic_model): New struct.
	(selected_atomic_model): New declaration.
	(TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT, TARGET_ATOMIC_SOFT_GUSA,
	TARGET_ATOMIC_HARD_LLCS, TARGET_ATOMIC_SOFT_TCB,
	TARGET_ATOMIC_SOFT_TCB_GBR_OFFSET_RTX, TARGET_ATOMIC_SOFT_IMASK):
	New macros.
	* config/sh/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Adapt setting to
	default atomic model.
	* config/sh/sh.c (selected_atomic_model_): New global variable.
	(selected_atomic_model, parse_validate_atomic_model_option): New
	functions.
	(sh_option_override): Replace atomic selection checks with call to
	parse_validate_atomic_model_option.
	* config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
	UNSUPPORTED_HARD_ATOMIC_CPU): Delete.
	(DRIVER_SELF_SPECS): Remove atomic checks.
	config/sh/sync.md: Update documentation comments.
	(atomic_compare_and_swap<mode>, atomic_exchange<mode>,
	atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
	atomic_<fetchop_name>_fetch<mode>, atomic_nand_fetch<mode>): Use
	TARGET_ATOMIC_ANY as condition.  Add TARGET_ATOMIC_STRICT check for
	SH4A case.  Handle new TARGET_ATOMIC_SOFT_TCB and
	TARGET_ATOMIC_SOFT_IMASK cases.
	(atomic_test_and_set): Handle new TARGET_ATOMIC_SOFT_TCB and
	TARGET_ATOMIC_SOFT_IMASK cases.
	(atomic_compare_and_swapsi_hard, atomic_exchangesi_hard,
	atomic_fetch_<fetchop_name>si_hard, atomic_fetch_nandsi_hard,
	atomic_<fetchop_name>_fetchsi_hard, atomic_nand_fetchsi_hard):
	Add TARGET_ATOMIC_STRICT check.
	(atomic_compare_and_swap<mode>_hard, atomic_exchange<mode>_hard,
	atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nand<mode>_hard,
	atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetch<mode>_hard,
	atomic_test_and_set_hard): Use TARGET_ATOMIC_HARD_LLCS condition.
	(atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
	atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
	atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
	atomic_test_and_set_soft): Append _gusa to the insn names and use
	TARGET_ATOMIC_SOFT_GUSA as condition.
	(atomic_compare_and_swap<mode>_soft_tcb,
	atomic_exchange<mode>_soft_tcb,
	atomic_fetch_<fetchop_name><mode>_soft_tcb,
	atomic_fetch_nand<mode>_soft_tcb,
	atomic_<fetchop_name>_fetch<mode>_soft_tcb,
	atomic_nand_fetch<mode>_soft_tcb, atomic_test_and_set_soft_tcb):
	New insns.
	(atomic_compare_and_swap<mode>_soft_imask,
	atomic_exchange<mode>_soft_imask,
	atomic_fetch_<fetchop_name><mode>_soft_imask,
	atomic_fetch_nand<mode>_soft_imask,
	atomic_<fetchop_name>_fetch<mode>_soft_imask,
	atomic_nand_fetch<mode>_soft_imask, atomic_test_and_set_soft_imask):
	New insns.
	* doc/invoke.texi (SH Options): Document new matomic-model option.
	Remove msoft-atomic and mhard-atomic options.

2012-10-01  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/54746
	* config/s390/s390.c (s390_option_override): Add missing break.

2012-09-30  Sharad Singhai  <singhai@google.com>

	* dumpfile.c: New file with parts moved from tree-dump.c.
	(pflags): New variable.
	(alt_flags): Ditto.
	(alt_dump_file): Ditto.
	(dump_files):  Update to include additional fields.
	(struct dump_option_value_info): Add additional entries.
	(get_dump_file_name): Use command line filename if available.
	(dump_open_alternate_stream): New function.
	(dump_loc): Ditto.
	(dump_gimple_stmt): Ditto.
	(dump_gimple_stmt_loc): Ditto.
	(dump_generic_expr): Ditto.
	(dump_generic_expr_loc): Ditto.
	(dump_printf): Ditto.
	(dump_printf_loc): Ditto.
	(dump_start): Ditto.
	(dump_finish): Ditto.
	(dump_begin): Ditto.
	(dump_enabled_p): Return true if either of the dump types is enabled.
	(dump_initialized_p): Return true if either type of dump is
	initialized.
	(dump_end): Do not close standard streams.
	(dump_enable_all): Handle filenames for regular dumps.
	(dump_switch_p_1): Handle command-line dump filenames.
	(opt_info_enable_all): New function.
	(opt_info_switch_p_1): Ditto.
	(opt_info_switch_p): Ditto.
	(dump_kind_p): Ditto.
	(dump_basic_block): Ditto.
	(dump_combine_total_stats): Ditto.
	(dump_remap_tree_vectorizer_verbose): Ditto.
	* gimple-pretty-print.h: Rename dump_gimple_stmt to
	pp_gimple_stmt_1.  All callers updated.

2012-09-30  Sharad Singhai  <singhai@google.com>

	* doc/invoke.texi: Add documentation for the new -fopt-info option.
	* tree-dump.c: Move general dump file related functionality into
	dumpfile.c. Remove unneeded headers.
	* tree-dump.h: Move function declarations into dumpfile.h.
	* dumpfile.h: Include "line-map.h". Add defines for MSG flags.
	(struct dump_file_info): Move here from tree-dump.c.  Rename flags
	to pflags, state to pstate, stream to pstream, filename to
	pfilename. All callers updated. Add alt_flags, alt_state,
	alt_filenmae, alt_stream.
	* tree-vectorizer.c: Include "dumpfile.h". Remove vect_dump.
	(vect_set_dump_settings): Remove.
	(vect_print_dump_info): Ditto.
	* tree-vectorizer.h: Remove declaration of vect_dump and
	vect_print_dump_info.
	* tree-vect-loop.c: Include "dumpfile.h". Use new dump style.
	* tree-vect-data-refs.c: Ditto.
	* tree-vect-stmts.c: Ditto.
	* tree-vect-slp.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree-vect-loop-manip.c: Ditto.
	* opts.c (vect_set_verbosity_level): Remove.
	(common_handle_option): Handle -fopt-info flag. Deprecate
	-ftree-vectorizer-verbose.
	* tree-parloops.c (gather_scalar_reductions): Remove reference to
	vect_dump.
	* flag-types.h: Remove vect_verbosity_levels.
	* common.opt: Add -fopt-info. Deprecate -ftree-vectorizer-verbose.
	* opts-global.c (dump_remap_tree_vectorizer_verbose): New function.
	(handle_common_deferred_options): Handle -fopt-info and
	-ftree-vectorizer-verbose.
	* Makefile.in: Add dumpfile.o.
	(tree-dump.o): Update dependencies.
	(tree-vect-loop.o): Ditto.
	(tree-vect-loop-manip.o): Ditto.
	(tree-vect-slp.o): Ditto.
	(tree-vect-stmts.o): Ditto.
	(tree-vectorizer.o): Ditto.
	(opts.o): Ditto.
	* passes.c (finish_optimization_passes): Instead of using
	dump_begin/dump_end, use dump_start/dump_finish. Do not use dump_file.
	(pass_init_dump_file): Ditto.

2012-09-30  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR rtl-optimization/38449:
	* hooks.c (hook_bool_const_rtx_const_rtx_true): New function.
	* hooks.h (hook_bool_const_rtx_const_rtx_true): Declare.
	* target.def: Merge in definitions and documentation for
	TARGET_CAN_FOLLOW_JUMP.
	* doc/tm.texi.in: Add documentation locations for the above.
	* doc/tm.texi: Regenerate.
	* reorg.c (follow_jumps): New parameters jump and crossing.
	Changed all callers.

2012-09-30  Eric Botcazou  <ebotcazou@adacore.com>

	* reorg.c (relax_delay_slots): Use delay_insn consistently.

	* config/sparc/sparc.c (gen_stack_pointer_dec): Delete.
	(sparc_expand_epilogue): Use gen_stack_pointer_inc and adjust.
	(sparc_flat_expand_epilogue): Likewise.
	(emit_and_preserve): Likewise.
	(sparc_fold_builtin): Fix thinko in latest change.

2012-09-30  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.md: Add names to bitfield insert and extract
	insns.
	(*insv_8_16_reg): Remove constraints and conditions that assume
	that operand 0 could be a MEM.
	(*extzv_8_16_reg, *extv_8_16_reg): Likewise, for operand 1.

2012-09-30  Jan Hubicka  <jh@suse.cz>

	* cfgloop.c (scale_loop_profile): Move to...
	* cfgloopmanip.c (scale_loop_profile): .. here; use
	scale_loop_frequencies.
	(loopify): Use RDIV.

2012-09-28  Jan Hubicka  <jh@suse.cz>

	* tree-call-cdce.c (shrink_wrap_one_built_in_call): Update profile.

2012-09-28  Jan Hubicka  <jh@suse.cz>

	* function.c (dup_block_and_redirect): Update profile.

2012-09-29  Andreas Tobler  <andreast@fgznet.ch>

	* config.gcc: Replace 'host' with 'target' when configuring for
	powerpc64*-*-freebsd.

2012-09-29  Marc Glisse  <marc.glisse@inria.fr>

	* tree.c (truth_type_for): New function.
	* tree.h (truth_type_for): Declare.
	* gimple-fold.c (and_comparisons_1): Call it.
	(or_comparisons_1): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
	boolean_type_node for vectors.

2012-09-28  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (RDIV): Define.
	(EDGE_FREQUENCY): Simplify.
	(check_probability, combine_probabilities, apply_probability,
	inverse_probability): New.
	* cfgloop.c (scale_loop_profile): New function.
	* cfgloop.h (scale_loop_profile): Declare.
	(slpeel_add_loop_guard): Add probability parameter.
	(set_prologue_iterations): Add probability parameter.
	(slpeel_tree_peel_loop_to_edge): Add bound1 and bound2 parameters;
	update probabilities correctly.
	(vect_do_peeling_for_alignment, vect_gen_niters_for_prolog_loop): New.

2012-09-20  Bernd Schmidt  <bernds@codesourcery.com>

	PR bootstrap/54688
	* sched-deps.c (parse_add_or_inc): Remove MINUS handling.  Take
	STACK_GROWS_DOWNWARD into account.

2012-09-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/54716
	* config/i386/predicates.md (nonimmediate_or_const_vector_operand):
	New predicate.
	* config/i386/i386.c (ix86_expand_vector_logical_operator): New
	function.
	* config/i386/i386-protos.h (ix86_expand_vector_logical_operator): New
	prototype.
	* config/i386/sse.md (<code><mode>3 VI logic): Use it.

	PR tree-optimization/54713
	* fold-const.c (vec_cst_ctor_to_array): Give up if vector CONSTRUCTOR
	has vector elements.
	(fold_ternary_loc) <case BIT_FIELD_REF>: Likewise.
	* tree-vect-generic.c (vector_element): Don't rely on CONSTRUCTOR elts
	indexes.  Use BIT_FIELD_REF if CONSTRUCTOR has vector elements.
	(lower_vec_perm): Use NULL_TREE CONSTRUCTOR indexes.

2012-09-28  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (adjust_len): Add lpm.
	(reload_in<mode>): Use avr_out_lpm for output.  Use "lpm" for
	adjust_len.
	* config/avr/avr-protos.h (avr_out_lpm): New prototype.
	* config/avr/avr.c (avr_out_lpm): Make global.
	(adjust_insn_length): Handle ADJUST_LEN_LPM.

2012-09-28  Richard Guenther  <rguenther@suse.de>

	PR lto/47799
	* lto-streamer-out.c (tree_is_indexable): Make PARM_DECLs global.
	(lto_output_tree_ref): Handle references to them.
	(output_function): Do not output function arguments again.
	* lto-streamer-in.c (input_function): Do not input arguments
	again, nor overwrite them.

2012-09-28  Richard Guenther  <rguenther@suse.de>

	* cgraph.h (symtab_node_base): Re-order and pack fields.

2012-09-28  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_pgm_check_var_decl): Fix non-error diagnostic.

2012-09-28  Georg-Johann Lay  <avr@gjlay.de>

	PR rtl-optimization/52543
	* config/avr/avr.c (avr_mode_dependent_address_p): Return true for
	all non-generic address spaces.
	(TARGET_SECONDARY_RELOAD): New hook define to...
	(avr_secondary_reload): ...this new static function.
	* config/avr/avr.md (reload_in<mode>): New insns.

	Undo r185605 (mostly):
	* config/avr/avr-protos.h (avr_load_lpm): Remove.
	* config/avr/avr.c (avr_load_libgcc_p): Don't restrict to __flash
	loads.
	(avr_out_lpm): Also handle loads > 1 byte.
	(avr_load_lpm): Remove.
	(avr_find_unused_d_reg): New static function.
	(avr_out_lpm_no_lpmx): New static function.
	(adjust_insn_length): Remove ADJUST_LEN_LOAD_LPM.
	* config/avr/avr.md (unspec): Remove UNSPEC_LPM.
	(load_<mode>_libgcc): Use MEM instead of UNSPEC_LPM.
	(load_<mode>, load_<mode>_clobber): Remove.
	(mov<mode>): For multi-byte move from non-generic
	16-bit address spaces: Expand to *mov<mode> again.
	(load<mode>_libgcc): New expander.
	(split-lpmx): Remove split.

2012-09-27  Dehao Chen  <dehao@google.com>

	* tree.h (tree_constructor): Remove IS_UNKNOWN_LOCATION.
	(extern void protected_set_expr_location): Likewise.
	(function_args_iter_next): Likewise.
	(inlined_function_outer_scope_p): Likewise.
	* input.h (IS_UNKNOWN_LOCATION): Likewise.
	* fold-const.c (expr_location_or): Likewise.
	* lto-cgraph.c (output_node_opt_summary): Likewise.
	* dwarf2out.c (add_src_coords_attributes): Likewise.
	* tree-eh.c (lower_try_finally_dup_block): Likewise.
	* profile.c (branch_prob):
	* cfgexpand.c (expand_gimple_cond): Likewise.
	(expand_gimple_basic_block): Likewise.
	(construct_exit_block): Likewise.
	(gimple_expand_cfg): Likewise.
	* cfgcleanup.c (try_forward_edges): Likewise.
	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
	(dump_scope_block): Likewise.
	* ipa-prop.c (ipa_write_jump_function): Likewise.
	* rtl.h (extern void rtl_check_failed_flag): Likewise.
	* gimple.h (gimple_set_location): Likewise.
	(gimple_has_location): Likewise.
	* cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
	(force_nonfallthru_and_redirect): Likewise.
	(fixup_reorder_chain): Likewise.
	(cfg_layout_merge_blocks): Likewise.

2012-09-27  Meador Inge  <meadori@codesourcery.com>

	* gcc-ar.c (main): Handle the returning of the sub-process error
	code correctly.

2012-09-27  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* lower-subreg.c (enum classify_move_insn): Rename
	SIMPLE_PSEUDO_REG_MOVE to DECOMPOSABLE_SIMPLE_MOVE.
	(find_decomposable_subregs): Update.
	(decompose_multiword_subregs): Add DECOMPOSE_COPIES parameter.
	Only mark pseudo-to-pseudo copies as DECOMPOSABLE_SIMPLE_MOVE
	if that parameter is true.
	(rest_of_handle_lower_subreg): Call decompose_multiword_subregs
	with DECOMPOSE_COPIES false.
	(rest_of_handle_lower_subreg2): Call decompose_multiword_subregs
	with DECOMPOSE_COPIES true.

2012-09-27  Marek Polacek  <polacek@redhat.com>

	* doc/gcov.texi (Gcov Data Files): Fix a typo.

2012-09-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/54703
	* simplify-rtx.c (simplify_binary_operation_1): Perform
	(x - (x & y)) -> (x & ~y) optimization only for integral modes.

2012-09-27  Marc Glisse  <marc.glisse@inria.fr>

	PR c/53024
	PR c++/54427
	* doc/extend.texi (Vector Extensions): C++ improvements.
	Power of 2 size requirement.

2012-09-27  Richard Guenther  <rguenther@suse.de>

	PR lto/54709
	* lto-symtab.c (resolution_guessed_p): Remove.
	(set_resolution_guessed): Likewise.
	(lto_symtab_register_decl): Remove assert.
	(lto_symtab_resolve_symbols): Do not alter symbol resolutions
	and return the prevailing symbol, checking for multiple prevailing
	symbols here.
	(lto_symtab_merge_decls_1): Use the result from
	lto_symtab_resolve_symbols.  Do not alter symbol resolutions.

2012-09-26  Steve Ellcey  <sellcey@mips.com>

	PR web/54711
	* doc/install.texi: Fix example.

2012-09-26  Dehao Chen  <dehao@google.com>

	 * tree-ssa-live.c (clear_unused_block_pointer): Use explicitit (void)
	for function parameter.
	(remove_unused_locals): Don't use LOCATION_BLOCK if it is NULL.

2012-09-26  Oleg Endo  <olegendo@gcc.gnu.org>

	* doc/extend.texi (bswap Builtins): Change signed types to unsigned
	types.

2012-09-26  Ian Lance Taylor  <iant@google.com>

	* diagnostic.c (bt_callback): Cast pc when calling fprintf.

2012-09-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/54674
	* gimple-ssa-strength-reduction.c (analyze_increments): Don't
	introduce a multiplication with a pointer operand.

2012-09-26  Georg-Johann Lay  <avr@gjlay.de>

	PR middle-end/54635
	* doc/tm.texi.in (TARGET_MODE_DEPENDENT_ADDRESS_P): Document new
	parameter addrspace.
	* doc/tm.texi: Regenerate.
	* target.def (mode_dependent_address_p): Add addr_space_t parameter.
	* targhooks.h (default_mode_dependent_address_p): Ditto.
	* targhooks.c (default_mode_dependent_address_p): Ditto.
	* expr.c (convert_move): Pass address space to
	mode_dependent_address_p.
	* combine.c (combine_simplify_rtx): Ditto.
	(make_extraction): Ditto.
	(simplify_shift_const_1): Ditto.
	(gen_lowpart_for_combine): Ditto.
	* lower-subreg.c (simple_move_operand): Ditto.
	* recog.c (simplify_while_replacing): Ditto.
	(offsettable_address_addr_space_p): Ditto.
	(mode_dependent_address_p): Ditto.
	* simplify-rtx.c (simplify_unary_operation_1): Ditto.
	(simplify_subreg): Ditto.
	* config/m68k/m68k.md: Ditto.
	* config/vax/vax.md: Ditto.
	* config/vax/constraints.md (Q): Ditto.
	* config/vax/predicates.md (indexed_memory_operand): Ditto.
	* config/alpha/alpha.c (alpha_mode_dependent_address_p): Add
	unused addr_space_t parameter.
	* config/avr/avr.c (avr_mode_dependent_address_p): Ditto.
	* config/h8300/h8300.c (h8300_mode_dependent_address_p): Ditto.
	* config/m32r/m32r.c (m32r_mode_dependent_address_p): Ditto.
	* config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): Ditto.
	* config/rx/rx.c (rx_mode_dependent_address_p): Ditto.
	* config/sparc/sparc.c (sparc_mode_dependent_address_p): Ditto.
	* config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
	Ditto.
	* config/vax/vax.c (vax_mode_dependent_address_p): Ditto.
	* config/xtensa/xtensa.c (xtensa_mode_dependent_address_p): Ditto.

2012-09-26  Christophe Lyon <christophe.lyon@linaro.org>

	* tree-ssa-math-opts.c (bswap_stats): Add found_16bit field.
	(execute_optimize_bswap): Add support for builtin_bswap16.

2012-09-26  Richard Guenther  <rguenther@suse.de>

	* tree.h (DECL_IS_BUILTIN): Compare LOCATION_LOCUS.

2012-09-26  Ian Lance Taylor  <iant@google.com>

	* diagnostic.c: Include "demangle.h" and "backtrace.h".
	(bt_stop): New static array.
	(bt_callback, bt_err_callback): New static functions.
	(diagnostic_action_after_output): Call backtrace_full for DK_ICE.
	* Makefile.in (BACKTRACE): New variable.
	(BACKTRACEINC, LIBBACKTRACE): New variables.
	(BACKTRACE_H): New variable.
	(LIBDEPS, LIBS): Add $(LIBBACKTRACE).
	(INCLUDES): Add $(BACKTRACEINC).
	(diagnostic.o): Depend upon $(DEMANGLE_H) and $(BACKTRACE_H).

2012-09-25  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/51274
	PR target/53087
	* config/rs6000/rs6000.md (ne0si): Remove unnecessary
	earlyclobber.  Merge with...
	(ne0di): ... to...
	(ne0_<mode>): New.
	(plus_ne0si): Merge with...
	(plus_ne0di): ... to...
	(plus_ne0_<mode>): New.
	(compare_plus_ne0si): Merge with...
	(compare_plus_ne0di)... to...
	(compare_plus_ne0_<mode>): New.
	(compare_plus_ne0_<mode>_1): New.
	(plus_ne0si_compare): Merge with...
	(plus_ne0di_compare)... to...
	(plus_ne0_<mode>_compare): New.

2012-09-25  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/constraints.md (Jhb): New constraint.
	* config/sh/predicates.md (negt_reg_shl31_operand): New predicate.
	* config/sh/sh.md (rotrsi3): New expander.
	(rotrsi3_1, *rotrsi3_1, *rotlsi3_1): New insns.
	(rotlsi3, rotlhi3): Use const_int_operand predicate instead of
	immediate_operand and remove CONST_INT_P checks in expansion code.
	(*rotcr): Cleanup variable usage.  Handle preceding nott insn.  Add
	split with swapped operands.
	(*rotcr_neg_t, *movt_msb, *negt_msb): New insns and splits.

2012-09-25  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/53850
	* trans-mem.c (expand_call_tm): Handle late built built-ins.

2012-09-25  Georg-Johann Lay  <avr@gjlay.de>

	PR other/54701
	* config/avr/avr-log.c (avr_double_int_pop_digit): Rewrite using
	double_int::udivmod.

2012-09-25  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_set_current_function): Check cfun->machine
	to be non-NULL.

2012-09-25  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54641
	* config/avr/t-avr: Use ALL_COMPILERFLAGS instead of ALL_CFLAGS
	for sources compiled with COMPILER.

2012-09-25  Richard Guenther  <rguenther@suse.de>

	PR lto/54625
	* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Do not merge
	cgraph nodes for builtins.

2012-09-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/54676
	* tree-vrp.c (set_and_canonicalize_value_range): Handle
	one bit precision properly.

	PR other/54692
	* configure.ac (CFLAGS, CXXFLAGS): Remove -Ofast or -Og properly.
	* configure: Regenerated.

2012-09-25  Georg-Johann Lay  <avr@gjlay.de>

	PR other/54701
	* config/avr/avr.c (avr_map_decompose): Use double_int::from_uhwi
	instead of uhwi_to_double_int.

2012-09-25  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_symtab_merge_decls_1): Properly merge
	all of the chain.

2012-09-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53663
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Conditional
	native encode/interpret translation on VN_WALKREWRITE.

2012-09-24  Dehao Chen  <dehao@google.com>

	* tree-cfg.c (move_stmt_op): Reset the expr block only when necessary.
	(move_block_to_fn): Reset the edge's goto block even
	when the goto locus is unknown.

2012-09-24  Lawrence Crowl  <crowl@google.com>

	* double-int.h (double_int::from_pair): New.
	(double_int::wide_mul_with_sign): New.
	(double_int::sub_with_overflow): New.
	(double_int::neg_with_overflow): New.
	(double_int::divmod_with_overflow): New.
	(shwi_to_double_int): Remove.
	(uhwi_to_double_int): Remove.
	(double_int_to_shwi): Remove.
	(double_int_to_uhwi): Remove.
	(double_int_fits_in_uhwi_p): Remove.
	(double_int_fits_in_shwi_p): Remove.
	(double_int_fits_in_hwi_p): Remove.
	(double_int_mul): Remove.
	(double_int_mul_with_sign): Remove.
	(double_int_add): Remove.
	(double_int_sub): Remove.
	(double_int_neg): Remove.
	(double_int_div): Remove.
	(double_int_sdiv): Remove.
	(double_int_udiv): Remove.
	(double_int_mod): Remove.
	(double_int_smod): Remove.
	(double_int_umod): Remove.
	(double_int_divmod): Remove.
	(double_int_sdivmod): Remove.
	(double_int_udivmod): Remove.
	(double_int_multiple_of): Remove.
	(double_int_setbit): Remove.
	(double_int_ctz): Remove.
	(double_int_not): Remove.
	(double_int_ior): Remove.
	(double_int_and): Remove.
	(double_int_and_not): Remove.
	(double_int_xor): Remove.
	(double_int_lshift): Remove.
	(double_int_rshift): Remove.
	(double_int_lrotate): Remove.
	(double_int_rrotate): Remove.
	(double_int_negative_p): Remove.
	(double_int_cmp): Remove.
	(double_int_scmp): Remove.
	(double_int_ucmp): Remove.
	(double_int_max): Remove.
	(double_int_smax): Remove.
	(double_int_umax): Remove.
	(double_int_min): Remove.
	(double_int_smin): Remove.
	(double_int_umin): Remove.
	(double_int_ext): Remove.
	(double_int_sext): Remove.
	(double_int_zext): Remove.
	(double_int_mask): Remove.
	(double_int_max_value): Remove.
	(double_int_min_value): Remove.
	(double_int_zero_p): Remove.
	(double_int_one_p): Remove.
	(double_int_minus_one_p): Remove.
	(double_int_equal_p): Remove.
	(double_int_popcount): Remove.
	(extern add_double_with_sign): Remove.
	(#define add_double): Remove.
	(extern neg_double): Remove.
	(extern mul_double_with_sign): Remove.
	(extern mul_double_wide_with_sign): Remove.
	(#define mul_double): Remove.
	(extern lshift_double): Remove.
	(extern div_and_round_double): Remove.
	* double-int.c (add_double_with_sign): Make static.
	(#defined add_double): Localized from header.
	(neg_double): Make static.
	(mul_double_with_sign): Make static.
	(mul_double_wide_with_sign): Make static.
	(#defined mul_double): Localized from header.
	(lshift_double): Make static.
	(div_and_round_double): Make static.
	(double_int::wide_mul_with_sign): New.
	(double_int::sub_with_overflow): New.
	(double_int::neg_with_overflow): New.
	(double_int::divmod_with_overflow): New.
	* emit-rtl.c (init_emit_once): Change to new double_int API.
	* explow.c (plus_constant): Likewise.
	* expmed.c (choose_multiplier): Likewise.
	* fold-const.c (#define OVERFLOW_SUM_SIGN): Remove.
	(int_const_binop_1): Change to new double_int API.
	(fold_div_compare): Likewise.
	(maybe_canonicalize_comparison): Likewise.
	(pointer_may_wrap_p): Likewise.
	(fold_negate_const): Likewise.
	(fold_abs_const): Likewise.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	(simplify_const_binary_operation): Likewise.
	* tree-chrec.c (tree_fold_binomial): Likewise.
	* tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
	* config/sparc/sparc.c (sparc_fold_builtin): Likewise.
	* config/avr/avr.c (avr_double_int_push_digit): Likewise.
	(avr_map): Likewise.
	(avr_map_decompose): Likewise.
	(avr_out_insert_bits): Likewise.

2012-09-24  Janis Johnson  <janisjo@codesourcery.com>

	* doc/sourcebuild.texi (Selectors): Document the use of target
	and xfail used together.

2012-09-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/54632
	* tree-ssa-live.c (clear_unused_block_pointer_1): Do not
	handle DECL_DEBUG_EXPR_IS_FROM here...
	(clear_unused_block_pointer): ... but here when walking all
	local decls.

2012-09-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54684
	* tree-ssa-ccp.c (optimize_unreachable): Properly update stmts.

2012-09-24  Marc Glisse  <marc.glisse@inria.fr>

	* tree-ssa-forwprop.c: Include tree-ssa-propagate.h.
	(simplify_bitfield_ref): Handle constructors.
	* Makefile.in (tree-ssa-forwprop.o): Depend on tree-ssa-propagate.h.

2012-09-24  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (bitmap_find_leader, create_expression_by_pieces,
	find_or_generate_expression): Remove dominating stmt argument.
	(find_leader_in_sets, phi_translate_1, bitmap_find_leader,
	create_component_ref_by_pieces_1, create_component_ref_by_pieces,
	do_regular_insertion, do_partial_partial_insertion): Adjust.
	(compute_avail): Do not set uids.

2012-09-24  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream in
	TYPE_NONALIASED_COMPONENT flag.
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Stream out
	TYPE_NONALIASED_COMPONENT flag.

2012-09-24  Jia Liu  <proljc@gmail.com>

	* doc/lto.texi: Separate sections.
	* doc/plugins.texi: Likewise.

2012-09-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52173
	* gimple.c (gimple_copy): Properly mark the copy modified
	if SSA operands are present.

2012-09-23  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/54669
	* tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Invoke
	maybe_clean_or_replace_eh_stmt on the modified use statements.

2012-09-23  Marc Glisse  <marc.glisse@inria.fr>

	* expr.c (do_store_flag): Remove duplicated code.

2012-09-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/predicates.md (altivec_register_operand,
	vsx_register_operand, vfloat_operand, vint_operand,
	vlogical_operand, gpc_reg_operand, cc_reg_operand,
	cc_reg_not_cr0_operand, cc_reg_not_micro_cr0_operand):
	If op is a SUBREG, consider its SUBREG_REG instead.

2012-09-22  Uros Bizjak  <ubizjak@gmail.com>

	* optabs.c (prepare_cmp_insn): Expand comparison of the result
	of memcmp through generic comparison expansion code.

2012-09-21  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.opt: Add -mno-crt0 option.
	* config/moxie/moxie.h (STARTFILE_SPEC): Handle -mno-crt0 option.
	* doc/invoke.texi (Option Summary): Document -mno-crt0 option.

2012-09-21  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR bootstrap/54642
	* Makefile.in (lto-symtab.o): Remove gt-lto-symtab.h dependency.

2012-09-21  Dehao Chen  <dehao@google.com>

	PR go/54649
	* tree-eh.c (lower_try_finally_dup_block): Set the correct block for
	stmts in the duplicated EH block.

2012-09-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54647
	* tree-ssa-pre.c (compute_avail): Do not put COND_EXPR
	or VEC_COND_EXPR into EXP_GEN again.

2012-09-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/54629
	* tree-loop-distribution.c (classify_partition): Free loop nest only
	after freeing ddr.  Free ddr and loop nest also if successful.

2012-09-21  Matthias Klose  <doko@ubuntu.com>

	* config/arm/arm.c (arm_mangle_type): Don't warn anymore that
	4.4 has changed the `va_list' mangling.

2012-09-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/54290
	PR rtl-optimization/54644
	* reload1.c (choose_reload_regs): Fix thinko in previous change.

2012-09-20  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (define_split for plus_eqsi):
	Fix output pattern.

2012-09-20  Eric Botcazou  <ebotcazou@adacore.com>

	* reload1.c (choose_reload_regs): Add missing #ifdef/#endif pair.

2012-09-20  Bernd Schmidt  <bernds@codesourcery.com>

	PR bootstrap/54643
	* haifa-sched.c (schedule_block): Skip find_modifiable_mems if using
	SCHED_PRESSURE_MODEL.

2012-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>

	* rtlanal.c (dead_or_set_regno_p): Fix COND_EXEC handling.

2012-09-20  Marek Polacek  <polacek@redhat.com>

	* tree-ssa-operands.c (get_expr_operands): Merge identical cases.

2012-09-20  Marek Polacek  <polacek@redhat.com>

	* tree-ssa-threadupdate.c (mark_threaded_blocks): Don't cast XNEWVEC's
	result.
	(create_edge_and_update_destination_phis): Likewise.

2012-09-20  Martin Jambor  <mjambor@suse.cz>

	* function.c (push_cfun): Check old current_function_decl matches
	old cfun, set new current_function_decl to the decl of the new cfun.
	(push_struct_function): Likewise.
	(pop_cfun): Likewise.
	(allocate_struct_function): Move call to
	invoke_set_current_function_hook to the end of the function.
	* cfgexpand.c (estimated_stack_frame_size): Do not set and restore
	current_function_decl.
	* cgraph.c (cgraph_release_function_body): Likewise.
	* cgraphunit.c (cgraph_process_new_functions): Likewise.
	(cgraph_add_new_function): Likewise.
	(cgraph_analyze_function): Likewise.
	(assemble_thunk): Set cfun to NULL at the end.
	(expand_function): Move call to set_cfun downwards.
	* gimple-low.c (record_vars_into): Only check current_function_decl
	before possibly doing push_cfun.
	* gimplify.c (gimplify_function_tree): Do not set and restore
	current_function_decl.
	* ipa-inline-analysis.c (compute_inline_parameters): Likewise.
	(inline_analyze_function): Likewise.
	* ipa-prop.c (ipa_analyze_node): Likewise.
	* ipa-pure-const.c (analyze_function): Likewise.
	* lto-streamer-in.c (lto_input_function_body): Do not set
	current_function_decl.
	* lto-streamer-out.c (output_function): Do not set and restore
	current_function_decl.
	* omp-low.c (finalize_task_copyfn): Likewise.
	(expand_omp_taskreg): Likewise.
	(create_task_copyfn): Likewise, move push_cfun up quite a bit.
	* passes.c (dump_passes): Do not set and restore current_function_decl.
	(do_per_function): Likewise.
	(do_per_function_toporder): Likewise.
	* trans-mem.c (ipa_tm_scan_irr_function): Likewise.
	(ipa_tm_transform_transaction): Likewise.
	(ipa_tm_transform_clone): Likewise.
	(ipa_tm_execute): Likewise.
	* tree-emutls.c (lower_emutls_function_body): Likewise.
	* tree-inline.c (initialize_cfun): Do not call pop_cfun.
	(tree_function_versioning): Do not call push_cfun, do not set and
	restore current_function_decl.  Remove assert checking consistency of
	cfun and current_function_decl.
	* tree-profile.c (tree_profiling): Do not set and restore
	current_function_decl.
	* tree-sra.c (convert_callers_for_node): Do not set
	current_function_decl.
	(convert_callers): Do not restore current_function_decl.
	(modify_function): Do not set current_function_decl.
	* tree-ssa-structalias.c (ipa_pta_execute): Do not set and restore
	current_function_decl.

2012-09-20  Diego Novillo  <dnovillo@google.com>

	PR target/54631
	* config/vxworks.c (vxworks_emutls_var_init): Update for new
	VEC_quick_push interface.

2012-09-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54634
	* tree-data-ref.c (get_references_in_stmt): For now give
	up for pure functions.

2012-09-20  Chen Wei-Ren  <chenwj@iis.sinica.edu.tw>

	* doc/lto.texi: Correct typo.

2012-09-19  Dehao Chen  <dehao@google.com>

	* config/s390/s390.c (s390_chunkify_start): Replacing INSN_LOCATOR.
	* config/spu/spu.c (emit_nop_for_insn): Likewise.
	(pad_bb): Likewise.
	(spu_emit_branch_hint): Likewise.
	(insert_hbrp_for_ilb_runout): Likewise.
	* config/mep/mep.c (mep_make_bundle): Likewise.
	(mep_bundle_insns): Likewise.
	* config/sh/sh.c (gen_block_redirect): Likewise.
	* config/c6x/c6x.c (gen_one_bundle): Likewise.
	* config/rs6000/rs6000.c (rs6000_final_prescan_insn): Likewise.
	* config/picochip/picochip.c (picochip_reorg): Likewise.
	* config/arm/arm.c (require_pic_register): Likewise.
	* config/mips/mips.c (mips16_gp_pseudo_reg): Likewise.
	* config/bfin/bfin.c (gen_one_bundle): Likewise.

2012-09-19  Mark Kettenis  <kettenis@openbsd.org>

	* config.gcc (hppa*-*-openbsd*): New target.
	* config/pa/pa-openbsd.h: New file.
	* config/pa/pa32-openbsd.h: New file.
	* config/host-openbsd.c: Update copyright year.
	(TRY_EXCEPT_VM_SPACE): Define for OpenBSD/hppa.

2012-09-19  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (prune_expression_for_jf): New function.
	(ipa_set_jf_constant): Use it.
	(ipa_set_jf_arith_pass_through): Likewise.
	(determine_known_aggregate_parts): Likewise.

2012-09-19  Steve Ellcey  <sellcey@mips.com>

	* config.gcc (mips*-mti-elf*): New target.
	* config/mips/mti-elf.h: New file.
	* config/mips/t-mti-elf: New file.

2012-09-19  Dehao Chen  <dehao@google.com>

	* toplev.c (general_init): Init block_locations.
	* tree.c (tree_set_block): New.
	(tree_block): Change to use LOCATION_BLOCK.
	* tree.h (TREE_SET_BLOCK): New.
	* final.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK.
	(final_start_function): Likewise.
	* input.c (expand_location_1): Likewise.
	* input.h (LOCATION_LOCUS): New.
	(LOCATION_BLOCK): New.
	(IS_UNKNOWN_LOCATION): New.
	* fold-const.c (expr_location_or): Change to use new location.
	* reorg.c (emit_delay_sequence): Likewise.
	(try_merge_delay_insns): Likewise.
	* modulo-sched.c (dump_insn_location): Likewise.
	* lto-streamer-out.c (lto_output_location_bitpack): Likewise.
	* lto-cgraph.c (output_node_opt_summary): Likewise.
	* jump.c (rtx_renumbered_equal_p): Likewise.
	* ifcvt.c (noce_try_move): Likewise.
	(noce_try_store_flag): Likewise.
	(noce_try_store_flag_constants): Likewise.
	(noce_try_addcc): Likewise.
	(noce_try_store_flag_mask): Likewise.
	(noce_try_cmove): Likewise.
	(noce_try_cmove_arith): Likewise.
	(noce_try_minmax): Likewise.
	(noce_try_abs): Likewise.
	(noce_try_sign_mask): Likewise.
	(noce_try_bitop): Likewise.
	(noce_process_if_block): Likewise.
	(cond_move_process_if_block): Likewise.
	(find_cond_trap): Likewise.
	* ipa-prop.c (ipa_set_jf_constant): Likewise.
	(ipa_write_jump_function): Likewise.
	* dwarf2out.c (add_src_coords_attributes): Likewise.
	* expr.c (expand_expr_real): Likewise.
	* tree-parloops.c (create_loop_fn): Likewise.
	* recog.c (peep2_attempt): Likewise.
	* function.c (free_after_compilation): Likewise.
	(expand_function_end): Likewise.
	(set_insn_locations): Likewise.
	(thread_prologue_and_epilogue_insns): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* profile.c (branch_prob): Likewise.
	* trans-mem.c (ipa_tm_scan_irr_block): Likewise.
	* gimplify.c (gimplify_call_expr): Likewise.
	* except.c (duplicate_eh_regions_1): Likewise.
	* emit-rtl.c (try_split): Likewise.
	(make_insn_raw): Likewise.
	(make_debug_insn_raw): Likewise.
	(make_jump_insn_raw): Likewise.
	(make_call_insn_raw): Likewise.
	(emit_pattern_after_setloc): Likewise.
	(emit_pattern_after): Likewise.
	(emit_debug_insn_after): Likewise.
	(emit_pattern_before): Likewise.
	(emit_insn_before_setloc): Likewise.
	(emit_jump_insn_before): Likewise.
	(emit_call_insn_before_setloc): Likewise.
	(emit_call_insn_before): Likeise.
	(emit_debug_insn_before_setloc): Likewise.
	(emit_copy_of_insn_after): Likewise.
	(insn_locators_alloc): Remove.
	(insn_locators_finalize): Remove.
	(insn_locators_free): Remove.
	(set_curr_insn_source_location): Remove.
	(get_curr_insn_source_location): Remove.
	(set_curr_insn_block): Remove.
	(get_curr_insn_block): Remove.
	(locator_scope): Remove.
	(insn_scope): Change to use new location.
	(locator_location): Remove.
	(insn_line): Change to use new location.
	(locator_file): Remove.
	(insn_file): Change to use new location.
	(locator_eq): Remove.
	(insn_locations_init): New.
	(insn_locations_finalize): New.
	(set_curr_insn_location): New.
	(curr_insn_location): New.
	* cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location.
	(expand_gimple_cond): Likewise.
	(expand_call_stmt): Likewise.
	(expand_gimple_stmt_1): Likewise.
	(expand_gimple_basic_block): Likewise.
	(construct_exit_block): Likewise.
	(gimple_expand_cfg): Likewise.
	* cfgcleanup.c (try_forward_edges): Likewise.
	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
	(dump_scope_block): Likewise.
	(remove_unused_locals): Likewise.
	* rtl.c (rtx_equal_p_cb): Likewise.
	(rtx_equal_p): Likewise.
	* rtl.h (XUINT): New.
	(INSN_LOCATOR): Remove.
	(CURR_INSN_LOCATION): Remove.
	(INSN_LOCATION): New.
	(INSN_HAS_LOCATION): New.
	* tree-inline.c (remap_gimple_op_r): Change to use new location.
	(copy_tree_body_r): Likewise.
	(copy_phis_for_bb): Likewise.
	(expand_call_inline): Likewise.
	* tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise.
	* tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
	* combine.c (try_combine): Likewise.
	* tree-outof-ssa.c (set_location_for_edge): Likewise.
	(insert_partition_copy_on_edge): Likewise.
	(insert_value_copy_on_edge): Likewise.
	(insert_rtx_to_part_on_edge): Likewise.
	(insert_part_to_rtx_on_edge): Likewise.
	* basic-block.h (edge_def): Remove field.
	* gimple.h (gimple_statement_base): Remove field.
	(gimple_bb): Change to use new location.
	(gimple_set_block): Likewise.
	(gimple_has_location): Likewise.
	* tree-cfg.c (make_cond_expr_edges): Likewise.
	(make_goto_expr_edges): Likewise.
	(gimple_can_merge_blocks_p): Likewise.
	(move_stmt_op): Likewise.
	(move_block_to_fn): Likewise.
	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
	* config/i386/i386.c (x86_output_mi_thunk): Likewise.
	* config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
	* config/score/score.c (score_output_mi_thunk): Likewise.
	* config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
	* config/mips/mips.c (mips_output_mi_thunk): Likewise.
	* cfgrtl.c (unique_locus_on_edge_between_p): Likewise.
	(unique_locus_on_edge_between_p): Likewise.
	(emit_nop_for_unique_locus_between): Likewise.
	(force_nonfallthru_and_redirect): Likewise.
	(fixup_reorder_chain): Likewise.
	(cfg_layout_merge_blocks): Likewise.
	* stmt.c (emit_case_nodes): Likewise.

2012-09-19  Bernd Schmidt  <bernds@codesourcery.com>

	* dbgcnt.def (sched_breakdep): New counter.
	* haifa-sched.c (update_insn_after_change): New static function,
	broken out of haifa_change_pattern.
	(haifa_change_pattern): Call it.
	(dep_t heap vecs): Declare.
	(INSN_COST): Define earlier.
	(next_cycle_replace_deps, next_cycle_apply): New static variables.
	(apply_replacement): New static function.
	(recompute_todo_spec): New argument FOR_BACKTRACK.  All callers
	changed.  Handle DEP_REPLACE deps.
	(contributes_to_priority_p): False for replaceable deps.
	(must_restore_pattern_p, restore_pattern): New static functions.
	(schedule_insn): Use them.  Apply replacements for broken deps.
	(struct haifa_saved_data): Add new fields to keep track of
	replacements.
	(save_backtrack_point): Initialize them.
	(undo_replacements_for_backtrack): New static function.
	(restore_last_backtrack_point, free_topmost_backtrack_point):
	Use it and keep track of replacements.
	(perform_replacements_new_cycle, undo_all_replacements): New static
	functions.
	(schedule_block): Call these two as necessary.  Call
	find_modifiable_mems.
	(try_ready): Tweak the assert.  Check for DEP_POSTPONED.
	* sched-deps.c: Include "emit-rtl.h".
	(init_dep_1): Initialize DEP_NONREG, DEP_MULTIPLE and DEP_REPLACE.
	(dep_spec_p): True for DEP_REPLACE deps.
	(mark_as_hard): New static variable.
	(update_dep): Update DEP_NONREG and DEP_MULTIPLE.
	(add_dependence_list): New argument hard.  All callers changed.  Set
	and clear mark_as_hard around function body.
	(add_dependence_list_and_free): Likewise.
	(haifa_note_mem_dep): Set DEP_NONREG.
	(haifa_note_dep): Likewise if mark_as_hard is true.
	(sched_analyze_insn): Switch loop with if statement testing for
	sel_sched_p.
	(struct mem_inc_info): New.
	(attempt_change, parse_add_or_inc, find_inc, find_mem): New static
	functions.
	(find_modifiable_mems): New function.
	* sched-int.h (struct dep_replacement): New.
	(struct _dep): Add replace, nonreg and multiple fields.  Make type and
	cost bitfields.
	(UNKNOWN_DEP_COST): Change to match the bitfield.
	(DEP_NONREG, DEP_MULTIPLE, DEP_REPLACE): New macros.
	(DEP_POSTPONED): New macro.
	(DEP_CANCELLED): Renumber.
	(find_modifiable_mems): Declare.
	(enum SCHED_FLAGS): Add DONT_BREAK_DEPENDENCIES.
	* sched-rgn.c (init_ready_list): Set TODO_SPEC here.
	(new_ready): Don't set HARD_DEP, use DEP_POSTPONED.
	(debug_dependencies): Dump DEP_NONREG and DEP_MULTIPLE.
	* Makefile.in (sched-deps.o): Update dependencies.
	* config/c6x/c6x.c (in_hwloop): New static variable.
	(c6x_set_sched_flags): If it is true, add DONT_BREAK_DEPENDENCIES.
	(hwloop_optimize): Set and clear it around preliminary scheduling pass.

2012-09-19  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def: Add __builtin_ppc_get_timebase
	and __builtin_ppc_mftb.
	* config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): New function
	to expand an expression that calls a built-in without arguments.
	(rs6000_expand_builtin): Add __builtin_ppc_get_timebase and
	__builtin_ppc_mftb.
	(rs6000_init_builtins): Likewise.
	* config/rs6000/rs6000.md (rs6000_get_timebase): New pattern.
	(rs6000_get_timebase_ppc32): New pattern.
	(rs6000_mftb_<mode>): New pattern.

	* doc/extend.texi (PowerPC Built-in Functions): New section.
	(PowerPC AltiVec/VSX Built-in Functions): Move some built-ins
	unrelated to Altivec/VSX to the new section.

2012-09-19  David Edelsohn  <dje.gcc@gmail.com>

	* rs6000.md (mac*): Remove extra spaces.
	(mulhw*): Same.

2012-09-19  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/predicates.md (arith_reg_or_t_reg_operand): New predicate.
	* config/sh/sh.md (*rotcr): Use arith_reg_or_t_reg_operand predicate.
	Handle the case where one of the operands is T_REG.
	Add new pattern to handle MSB extraction.

2012-09-19  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54236
	* config/sh/sh.md (*addc): Add pattern to handle one bit left shifts.

2012-09-19  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md (prologue, epilogue): Use braced strings.

2012-09-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/54290
	* reload1.c (choose_reload_regs): Also take into account secondary MEMs
	to remove address replacements for inherited reloads.
	(replaced_subreg): Move around.

2012-09-19  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/aix61.h (TARGET_DEFAULT): Add MASK_PPC_GPOPT,
	MASK_PPC_GFXOPT, and MASK_MFCRF.

2012-09-19  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): For -Og move
	pass_object_sizes inbetween CCP and copyprop.

2012-09-19  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (get_prop_source_stmt): Simplify.

2012-09-19  Jan Hubicka  <jh@suse.cz>

	* symtab.c (insert_to_assembler_name_hash): Do not insert
	register vars.
	(unlink_from_assembler_name_hash): NULL out pointers of unlinked var.
	(symtab_prevail_in_asm_name_hash): New.
	(symtab_initialize_asm_name_hash): Break out from ...
	(symtab_node_for_asm): ... here.
	(dump_symtab_base): Dump LTO file data.
	(verify_symtab_base): Register vars are not in symtab.
	* cgraph.h (symtab_initialize_asm_name_hash,
	symtab_prevail_in_asm_name_hash): New functions.
	(symtab_real_symbol_p): New inline.
	* lto-symtab.c: Do not include gt-lto-symtab.h.
	(lto_symtab_entry_def): Remove.
	(lto_symtab_entry_t): Remove.
	(lto_symtab_identifiers): Remove.
	(lto_symtab_free): Remove.
	(lto_symtab_entry_hash): Remove.
	(lto_symtab_entry_eq): Remove.
	(lto_symtab_entry_marked_p): Remove.
	(lto_symtab_maybe_init_hash_table): Remove.
	(resolution_guessed_p, set_resolution_guessed): New functions.
	(lto_symtab_register_decl): Only set resolution info.
	(lto_symtab_get, lto_symtab_get_resolution): Remove.
	(lto_symtab_merge): Reorg to work across symtab; do nothing if decls
	are same.
	(lto_symtab_resolve_replaceable_p): Reorg to work on symtab.
	(lto_symtab_resolve_can_prevail_p): Likewise; only real symbols can
	prevail.
	(lto_symtab_resolve_symbols): Reorg to work on symtab.
	(lto_symtab_merge_decls_2): Likewise.
	(lto_symtab_merge_decls_1): Likewise; add debug dumps.
	(lto_symtab_merge_decls): Likewise; do not merge at ltrans stage.
	(lto_symtab_merge_cgraph_nodes_1): Reorg to work on symtab.
	(lto_symtab_merge_cgraph_nodes): Likewise; do not merge at ltrans
	stage.
	(lto_symtab_prevailing_decl): Rewrite to lookup into symtab.
	* lto-streaer.h (lto_symtab_free): Remove.
	* lto-cgraph.c (add_references): Cleanup.
	* varpool.c (varpool_assemble_decl): Skip hard regs.

2012-09-19  Richard Guenther  <rguenther@suse.de>

	PR other/53316
	* common/common-target.h (OPT_LEVELS_1_PLUS_NOT_DEBUG): Add.

2012-09-19  Richard Guenther  <rguenther@suse.de>

	PR other/53316
	* common.opt (optimize_debug): New variable.
	(Og): New optimization level.
	* doc/invoke.texi (Og): Document.
	* opts.c (maybe_default_option): Add debug parameter.
	(maybe_default_options): Likewise.
	(default_options_optimization): Handle -Og.
	(common_handle_option): Likewise.
	* passes.c (gate_all_optimizations): Do not run with -Og.
	(gate_all_optimizations_g): New gate, run with -Og.
	(pass_all_optimizations_g): New container pass, run with -Og.
	(init_optimization_passes): Schedule pass_all_optimizations_g
	alongside pass_all_optimizations.

2012-09-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54132
	* tree-loop-distribution.c (classify_partition): Properly
	check dependences for memmove.
	* tree-data-ref.h (compute_affine_dependence): Declare.
	* tree-data-ref.c (compute_affine_dependence): Export.

2012-09-19  Zhenqiang Chen <zhenqiang.chen@arm.com>

	PR middle-end/54364
	* bb-reorder.c (connect_better_edge_p): New added.
	(find_traces_1_round): When optimizing for size, ignore edge frequency
	and probability, and handle all in one round.
	(bb_to_key): Use bb->index as key when optimizing for size.
	(better_edge_p): The bb with smaller index is better when optimizing
	for size.
	(connect_traces): When optimizing for size, connect block n with
	block n + 1; connect trace m with trace m + 1 if falling through.
	(gate_handle_reorder_blocks): Enable bbro when optimizing for -Os.

2012-09-19  Bin Cheng  <bin.cheng@arm.com>

	* fold-const.c (fold_truth_andor): Remove duplicated check on
	BRANCH_COST.

2012-09-18  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/54617
	* expr.c (store_field): Handle a PARALLEL in more cases.

2012-09-18  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (sminsi3, smaxsi3, uminsi3, umaxsi3): Delete.
	(abssi2, abs<mode>2_isel, nabs<mode>2_isel, abssi2_nopower,
	nabs_nopower): Delete.
	(absdi2, absdi2_internal, nabsdi2): Delete.
	(smindi3, smaxdi3, umindi3, umaxdi3): Delete.

2012-09-18  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md: Tidy up empty "".  Fix C code indentation.
	* config/avr/avr-fixed.md: Ditto.

2012-09-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/rs6000/rs6000.c (print_operand) <'c'>: Remove.
	* config/rs6000/spe.md: Remove a leftover comment.

2012-09-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/54592
	* config/i386/i386.c (ix86_rtx_costs): Limit > UNITS_PER_WORD
	AND/IOR/XOR cost calculation to MODE_INT class modes.

2012-09-18  Thomas Quinot  <quinot@adacore.com>

	* doc/invoke.texi: Document -fada-spec-parent.

2012-09-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/54610
	* tree-ssa-forwprop.c: Include optabs.h.  Don't include
	tree-vectorizer.h.
	(simplify_vector_constructor): Don't use vect_gen_perm_mask,
	instead create the mask constant here.
	* Makefile.in (tree-ssa-forwprop.o): Depend on $(OPTABS_H).
	Don't depend on $(TREE_VECTORIZER_H).

2012-09-18  Florian Weimer  <fweimer@redhat.com>

	* Makefile.in (BASIC_BLOCK_H): Add cfg-flags.def.

2012-09-18  Richard Guenther  <rguenther@suse.de>

	* statistics.h (CXX_MEM_STAT_INFO): New define.
	* gimple.h (gimple_build_assign_with_ops_stat,
	gimple_build_assign_with_ops, gimple_build_assign_with_ops3):
	Turn into an overload of the function gimple_build_assign_with_ops.
	* gimple.c (gimple_build_assign_with_ops_stat): Rename to ...
	(gimple_build_assign_with_ops): ... this.
	* tree-ssa-loop-im.c (move_computations_stmt): Adjust.
	* tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
	* tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
	(vect_permute_load_chain): Likewise.
	* tree-vect-generic.c (expand_vector_divmod): Likewise.
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
	(vect_recog_divmod_pattern): Likewise.
	(vect_recog_mixed_size_cond_pattern): Likewise.
	(adjust_bool_pattern): Likewise.
	* tree-vect-slp.c (vect_create_mask_and_perm): Likewise.
	* tree-vect-stmts.c (vectorizable_operation): Likewise.
	(permute_vec_elements): Likewise.
	(vectorizable_load): Likewise.

2012-09-17  Paul Koning  <ni1d@arrl.net>

	* doc/invoke.text (-feliminate-unused-debug-types): Update to
	reflect that this is enabled by default.

2012-09-17  Ben Cheng  <bccheng@google.com

	* config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Suppress the
	dynamic linker commands for statically linked programs.

2012-09-17  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* config/arm/arm.c (arm_rtx_costs_1): Handle vec_extract and vec_set
	patterns.
	* config/arm/arm.md ("vec_set<mode>_internal"): Support memory source
	operands, implemented via vld1 instruction.
	("vec_extract<mode>"): Support memory destination operands, implemented
	via vst1 instruction.
	("neon_vst1_lane<mode>"): Use UNSPEC_VST1_LANE instead of vec_select.
	* config/arm/predicates.md ("neon_lane_number"): Remove.

2012-09-17  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* config/arm/arm.c (output_move_neon): Update comment.
	Use vld1.64/vst1.64 instead of vldm/vstm where possible.
	(neon_vector_mem_operand): Support double-word modes.
	* config/arm/neon.md (*neon_mov VD): Call output_move_neon
	instead of output_move_vfp.  Change constraint from Uv to Un.

2012-09-17  Richard Guenther  <rguenther@suse.de>

	PR lto/54598
	* tree-streamer-in.c (unpack_ts_real_cst_value_fields): Use ggc'ed
	FIXED_VALUE_TYPE instead of struct fixed_value.

2012-09-17  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (CONST_FIXED_P): Remove define.
	* config/avr/avr.md (add<mode>3): Use CONST_FIXED_P.

2012-09-17  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54607
	* config.gcc (tm_file,avr): Add avr/avr-arch.h.
	* config/avr/t-avr (gen-avr-mmcu-texi): Use CC_FOR_BUILD to
	compile.  Don't depend on TM_H.  Use CFLAGS_FOR_BUILD.
	* config/avr/avr.h (avr_arch, base_arch_s, mcu_type_s): Source out
	to...
	* config/avr/avr-arch.h: ...this new file.
	* config/avr/gen-avr-mmcu-texi.c: Include avr-arch.h, stdio.h,
	stdlib.h.
	* comparator: Make letters smaller than digits.
	* config/avr/avr-devices.c: Don't include headers if used in
	gen-avr-mmcu-texi.c.
	* doc/avr-mmcu.texi: Regenerate.

2012-09-17  Georg-Johann Lay  <avr@gjlay.de>

	* rtl.h (CONST_FIXED_P): New predicate macro.

2012-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-cfgcleanup. (cleanup_control_expr_graph) <GIMPLE_COND>: Remove
	code doing propagation from degenerate PHI nodes.
	* tree-ssa-loop-ivcanon.c (propagate_into_all_uses): New function.
	(propagate_constants_for_unrolling): Likewise.
	(tree_unroll_loops_completely): If the current loop has been unrolled
	and its father isn't the entire function, propagate constants within
	the new basic blocks by means of propagate_constants_for_unrolling.

2012-09-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/54563
	* tree-ssa-math-opts.c (execute_cse_sincos): Call
	gimple_purge_dead_eh_edges if last call has been changed.

2012-09-17  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54222
	* config/avr/avr.c (avr_out_plus_symbol): Fix typo if PLUS and PSImode.
	(avr_out_plus_1): Remove log comments from assembler output.

2012-09-17  Ruben Buchatskiy  <ruben@ispras.ru>

	* config/arm/vfp.md (*thumb2_movdf_vfp): Require one of the operands
	to be a register.

2012-09-16  Richard Sandiford  <rdsandiford@googlemail.com>

	* calls.c (expand_call): Use emit_group_move for PARALLEL->PARALLEL
	moves.

2012-09-15  Tom de Vries  <tom@codesourcery.com>

	* tree-vrp.c (extract_range_from_binary_expr_1): Fix bug in handling of
	LSHIFT_EXPR with shift range.  Handle more LSHIFT_EXPR cases with shift
	range.

2012-09-15  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54222
	* config/avr/avr-fixed.md (ALL2S, ALL4S, ALL24S, ALL124S,
	ALL124U): New mode iterators.
	(<code_stdname><mode>3): New insns for SS_PLUS, SS_MINUS.
	(<code_stdname><mode>3): New insns for US_PLUS, US_MINUS.
	(usneg<mode>2): New insns.
	(<code_stdname><mode>2): New expanders for SS_NEG, SS_ABS.
	(*<code_stdname><mode>2): New insns for SS_NEG, SS_ABS.
	* config/avr/avr-dimode.md (ALL8U, ALL8S): New mode iterators.
	(avr_out_plus64, avr_out_minus64): Use avr_out_plus instead.
	(<code_stdname><mode>3): New expanders for SS_PLUS, SS_MINUS.
	(<code_stdname><mode>3): New expanders for US_PLUS, US_MINUS.
	(<code_stdname><mode>3_insn): New insns.
	(<code_stdname><mode>3_const_insn): New insns.
	* config/avr/avr.md (cc): Add: plus. Remove: out_plus,
	out_plus_noclobber, minus.
	(length): Add: plus.  Remove: out_plus, out_plus_noclobber,
	plus64, minus, minus64.
	(abelian): New code_attr.
	(code_stdname): Handle: ss_plus, ss_minus, ss_neg, ss_abs,
	us_plus, us_minus, us_neg.
	(*add<mode>3, add<mode>3_clobber, add<mode>3, addpsi3, sub<mode>3):
	Use avr_out_plus to output.
	* config/avr/avr-protos.h (avr_out_plus): Change prototype.
	(avr_out_plus_noclobber, avr_out_minus): Remove.
	(avr_out_plus64, avr_out_minus64): Remove.
	* config/avr/avr.c (avr_out_plus_1): Add new default arguments
	code_sat, sign.  Saturate after operation if code_sat != UNKNOWN.
	(avr_out_plus_symbol): New static function.
	(avr_out_plus): Rewrite.
	(adjust_insn_length): Handle: ADJUST_LEN_PLUS.  Remove handling
	of: ADJUST_LEN_OUT_PLUS, ADJUST_LEN_PLUS64, ADJUST_LEN_MINUS,
	ADJUST_LEN_MINUS64, ADJUST_LEN_OUT_PLUS_NOCLOBBER.
	(notice_update_cc): Handle: CC_PLUS.  Remove handling of: CC_MINUS,
	CC_OUT_PLUS, CC_OUT_PLUS_NOCLOBBER
	(avr_out_plus_noclobber, avr_out_minus): Remove.
	(avr_out_plus64, avr_out_minus64): Remove.
	(avr_print_operand): Print raw REGNO if 'r' is used with REG.

2012-09-15  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.c (sh_rtx_costs): Add handling of MEM, SIGN_EXTEND,
	ZERO_EXTEND and PARALLEL cases.
	(sh_address_cost): Correct rtx parsing and tweak cost estimations.

2012-09-14  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/tm.texi.in (Stack Arguments): Update obsolete references
	to current_function_outgoing_args_size.
	(Function Entry): Likewise for current_function_pops_args,
	current_function_pretend_args_size,
	current_function_outgoing_args_size, and
	current_function_epilogue_delay_list.
	(Misc): Fix garbled sentence referencing nonexistent
	current_function_leaf_function.
	* doc/tm.texi: Regenerated.

2012-09-14  Dehao Chen  <dehao@google.com>

	 * tree-eh.c (goto_queue_node): New field.
	(record_in_goto_queue): New parameter.
	(record_in_goto_queue_label): New parameter.
	(lower_try_finally_dup_block): New parameter.
	(maybe_record_in_goto_queue): Update source location.
	(lower_try_finally_copy): Likewise.
	(honor_protect_cleanup_actions): Likewise.
	* gimplify.c (gimplify_expr): Reset the location to unknown.

2012-09-14  David Edelsohn  <dje.gcc@gmail.com>

	* configure: Regenerated.

2012-09-14  Walter Lee  <walt@tilera.com>

	* doc/invoke.texi (Option Summary): fix typesetting for -mcpu
	option for TILEPro and TILE-Gx.
	(TILE-Gx Options): Fix grammar and spellings in documentation for
	-mcmodel.

2012-09-14  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	* fold-const.c (fold_unary_loc): Disable for VECTOR_TYPE.
	(fold_binary_loc): Likewise.
	* gimple-fold.c (and_comparisons_1): Handle VECTOR_TYPE.
	(or_comparisons_1): Likewise.

2012-09-14  Richard Earnshaw  <rearnsha@arm.com>

	PR target/54516
	PR rtl-optimization/54540
	* reload.c (find_dummy_reload): Don't use OUT as a reload reg
	for IN if it overlaps a fixed register.

2012-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/44194
	* calls.c (expand_call): In the PARALLEL case, copy the return value
	into pseudos instead of spilling it onto the stack.
	* emit-rtl.c (adjust_address_1): Rename ADJUST into ADJUST_ADDRESS and
	add new ADJUST_OBJECT parameter.
	If ADJUST_OBJECT is set, drop the underlying object if it cannot be
	proved that the adjusted memory access is still within its bounds.
	(adjust_automodify_address_1): Adjust call to adjust_address_1.
	(widen_memory_access): Likewise.
	* expmed.c (store_bit_field_1): Call adjust_bitfield_address instead
	of adjust_address.  Do not drop the underlying object of a MEM.
	(store_fixed_bit_field): Likewise.
	(extract_bit_field_1): Likewise.  Fix oversight in recursion.
	(extract_fixed_bit_field): Likewise.
	* expr.h (adjust_address_1): Adjust prototype.
	(adjust_address): Adjust call to adjust_address_1.
	(adjust_address_nv): Likewise.
	(adjust_bitfield_address): New macro.
	(adjust_bitfield_address_nv): Likewise.
	* expr.c (expand_assignment): Handle a PARALLEL in more cases.
	(store_expr): Likewise.
	(store_field): Likewise.

	* dse.c: Fix typos in the head comment.

2012-09-14  Christian Bruel  <christian.bruel@st.com>

	PR target/54546
	* config/sh/sh-protos.h (sh_need_epilogue): Delete.
	(sh_can_use_simple_return_p): Declare.
	* config/sh/sh.c (sh_can_use_simple_return_p): Define.
	(sh_need_epilogue, sh_need_epilogue_known): Delete.
	(sh_output_function_epilogue): Remove sh_need_epilogue_known.
	* config/sh/sh.md (simple_return, return): Define.
	(epilogue): Use inline return rtl.
	(sh_expand_epilogue): Cleanup parameters boolean type.
	* config/sh/iterators.md (any_return): New iterator.

2012-09-14  Christian Bruel  <christian.bruel@st.com>

	* config/sh/predicates.md (t_reg_operand): Check REG_P for SUBREG.
	* config/sh/sh.c (sequence_insn_p): Check INSNP_P for SEQUENCE.

2012-09-14  Jakub Jelinek  <jakub@redhat.com>

	PR target/54564
	* config/i386/sse.md (fmai_vmfmadd_<mode>): Use (match_dup 1)
	instead of (match_dup 0) as second argument to vec_merge.
	(*fmai_fmadd_<mode>, *fmai_fmsub_<mode>): Likewise.
	Remove third alternative.
	(*fmai_fnmadd_<mode>, *fmai_fnmsub_<mode>): Likewise.  Negate
	operand 2 instead of operand 1, but put it as first argument of fma.
	* config/i386/fmaintrin.h (_mm_fnmadd_sd, _mm_fnmadd_ss,
	_mm_fnmsub_sd, _mm_fnmsub_ss): Negate the second argument instead
	of the first.

2012-09-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54565
	* passes.c (init_optimization_passes): Adjust comments.
	(execute_function_todo): Do not execute execute_update_addresses_taken
	before processing TODO_rebuild_alias.
	* tree-ssa-ccp.c (do_ssa_ccp): Schedule TODO_update_address_taken.

2012-09-14  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (register_new_assert_for): Simplify for backward walk.
	(find_assert_locations_1): Walk the basic-block backwards, properly
	add/prune from live.  Use live for asserts derived from stmts.

2012-09-14  Marc Glisse  <marc.glisse@inria.fr>

	* tree-ssa-forwprop.c (simplify_bitfield_ref): Call
	get_prop_source_stmt.
	(simplify_permutation): Likewise.
	(simplify_vector_constructor): Likewise.

2012-09-14  Richard Guenther  <rguenther@suse.de>

	* builtin-types.def (BT_FN_CONST_STRING): Add.
	* builtins.def (BUILT_IN_FILE, BUILT_IN_FUNCTION,
	BUILT_IN_LINE): New builtins.
	* gimplify.c (gimplify_call_expr): Expand them.
	* doc/extend.texi (__builtin_LINE, __builtin_FUNCTION,
	__builtin_FILE): Document.

2012-09-13  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.h (LINK_SPEC): Add bi-endian support.
	(MULTILIB_DEFAULTS): Define.
	(ASM_SPEC): Define.
	(BYTES_BIG_ENDIAN, WORDS_BIG_ENDIAN): Add bi-endian support.
	(TARGET_CPU_CPP_BUILTINS): Add __MOXIE_LITTLE_ENDIAN__ and
	__MOXIE_BIG_ENDIAN__.
	* config/moxie/t-moxie (MULTILIB_DIRNAMES, MULTILIB_OPTIONS): Define.
	* config/moxie/moxie.opt: New file.
	* doc/invoke.texi (Moxie Options): Add section documenting -mel
	and -meb.

2012-09-13  Paolo Carlini  <paolo.carlini@oracle.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/53210
	* doc/invoke.texi ([Winit-self]): Document as enabled by -Wall in C++.

2012-09-13  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/predicates.md (input_operand): Do not consider TImode
	constants as 1-instruction integer constants.
	Use register_or_zero_operand instead of register_operand and tidy up.
	* config/sparc/sparc.md (movti): New expander.
	(movti_insn_sp64): New instruction.
	(movti_insn_sp64_hq): Likewise.
	(TImode splitters): New splitters.
	* config/sparc/sparc.c (sparc_expand_move) <TImode>: New case.
	(sparc_legitimate_address_p): Return 0 for REG+REG in TImode.

	* config/sparc/sparc-protos.h (arith_double_4096_operand): Delete.
	(arith_4096_operand): Likewise.
	(zero_operand): Likewise.
	(fp_zero_operand): Likewise.
	(reg_or_0_operand): Likewise.

2012-09-13  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac (CXXFLAGS): Remove -O2 when not bootstrapping.
	* configure: Regenerated.

2012-08-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (prefetch): Do not assert mode of operand 0.
	(*prefetch_sse_<mode>): Do not set mode of address_operand predicate.
	Rename to ...
	(*prefetch_sse): ... this.
	(*prefetch_3dnow_<mode>): Do not set mode of address_operand predicate.
	Rename to ...
	(*prefetch_3dnow): ... this.

2012-09-13  Steven Bosscher  <steven@gcc.gnu.org>

	* ipa-pure-const.c (state_from_flags, local_pure_const): Use
	current_function_name instead of lang_hooks.decl_printable_name.

	* function.h (fndecl_name): New prototype.
	* function.c (fndecl_name): New function.
	* vecir.h (cgraph_node_p): New standard IR VEC type.
	* trans-mem.c (cgraph_node_p): No need anymore to define it here.
	* ipa-utils.h (ipa_get_nodes_in_cycle): New prototype.
	* ipa-utils.c (ipa_get_nodes_in_cycle): New function.
	* ipa-reference.c: Don't include langhooks.h, and certainly not twice.
	Fix many formatting issues (long lines, short lines, spacing, etc.).
	(get_static_name): Use fndecl_name.
	(dump_static_vars_set_to_file): New function split out from propagate.
	(union_static_var_sets): New function, union two sets and collapse
	to all_module_statics as quickly as possible.
	(intersect_static_var_sets): New function, similar to above.
	(copy_static_var_set): Renamed from copy_global_bitmap and rewritten
	to allocate a copy on the same bitmap_obstack as the source set.
	(propagate_bits): Simplify, and clarify by using union_static_var_sets.
	(generate_summary): Remove bm_temp.  Print UID of promotable globals.
	(read_write_all_from_decl): Use pass-by-reference, bless C++.
	(get_read_write_all_from_node): New function, split out from propagate.
	(propagate): Simplify and clarify with helper functions.  Use
	ipa_get_nodes_in_cycle to walk all nodes in a reduced node.
	(ipa_reference_read_optimization_summary): Use fndecl_name instead of
	lang_hooks.decl_printable_name.

	* rtl.h (print_rtl_single_with_indent): New prototype.
	* print-rtl.c (print_rtl_single_with_indent): New function.
	* cfghooks.h (empty_block_p, split_block_before_cond_jump): New hooks.
	* cfghooks.c (empty_block_p, split_block_before_cond_jump): Implement.
	* cfgrtl.c (rtl_block_empty_p, rtl_split_block_before_cond_jump):
	Implement RTL specific hooks.
	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Register the new hooks.
	* tree-cfg.c (gimple_empty_block_p,
	gimple_split_block_before_cond_jump): Implement GIMPLE specific hooks.
	(gimple_cfg_hooks): Register the new hooks.
	* tree-ssa-phiopt.c (empty_block_p): Remove in favor of new hook.

2012-09-13  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.h (enum vn_kind): New.
	(vn_get_stmt_kind): Likewise.
	* tree-ssa-sccvn.c (vn_get_stmt_kind): New function, adjust
	ADDR_EXPR handling.
	(visit_use): Use it.
	* tree-ssa-pre.c (compute_avail): Likewise, simplify further.

2012-09-13  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
	for targets bdver1, bdver2, btver1 and btver2.

2012-09-13  Christophe Lyon  <christophe.lyon@linaro.org>
	    Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.md (arm_rev): Factorize thumb1, thumb2 and arm
	variants for rev instruction..
	(thumb1_rev): Delete pattern.
	(arm_revsh): New pattern to support builtin_bswap16.
	(arm_rev16, bswaphi2): Likewise.

2012-09-12  Teresa Johnson  <tejohnson@google.com>

	PR gcov-profile/54487
	* configure.ac (HOST_HAS_F_SETLKW): Set based on compile
	test using F_SETLKW with fcntl.
	* configure, config.in: Regenerate.

2012-09-12  Jan Hubicka  <jh@suse.cz>

	PR fortran/48636
	* ipa-inline-analysis.c (dump_inline_hints): Dump loop stride.
	(set_hint_predicate): New function.
	(reset_inline_summary): Reset loop stride.
	(remap_predicate_after_duplication): New function.
	(remap_hint_predicate_after_duplication): New function.
	(inline_node_duplication_hook): Update.
	(dump_inline_summary): Dump stride summaries.
	(estimate_function_body_sizes): Compute strides.
	(remap_hint_predicate): New function.
	(inline_merge_summary): Use it.
	(inline_read_section): Read stride.
	(inline_write_summary): Write stride.
	* ipa-inline.c (want_inline_small_function_p): Handle strides.
	(edge_badness): Likewise.
	* ipa-inline.h (inline_hints_vals): Add stride hint.
	(inline_summary): Update stride.

2012-09-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (x86_prefetch_sse): Change to unsigned char.
	* config/i386/i386.h (x86_prefetch_sse): Ditto.

2012-09-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/54445
	* config/i386/predicates.md (x86_64_immediate_operand): Allow
	negative offset for UNSPEC_DTPOFF/UNSPEC_NTPOFF.

2012-09-12  Jan Hubicka  <jh@suse.cz>

	* common.opt (flto-partition): Add "max".
	* invoke.texi (flto-partition): Document "max"

2012-09-12  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	* config/i386/i386.md : Comments on fma4 instruction selection
	reflect requirement on register pressure based cost model.

	* config/i386/driver-i386.c (host_detect_local_cpu): fma4
	flag is set-reset as informed by the cpuid flag.

	* config/i386/i386.c (processor_alias_table): fma4
	flag is enabled for bdver2.

2012-09-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54489
	* tree-ssa-pre.c: Include domwalk.h.
	(in_fre): Remove.
	(sccvn_valnum_from_value_id): New function.
	(debug_bitmap_sets_for): Simplify.
	(get_representative_for): Properly initialize the SCCVN valnum.
	(create_expression_by_pieces): Likewise.
	(insert_into_preds_of_block): Likewise.
	(can_PRE_operation): Remove.
	(make_values_for_phi): Simplify.
	(compute_avail): Likewise.
	(do_SCCVN_insertion): Remove.
	(eliminate_avail, eliminate_push_avail, eliminate_insert):
	New functions.
	(eliminate): Split and perform a domwalk.
	(eliminate_bb): Former eliminate part that is now dom-enter.
	(eliminate_leave_block): New function.
	(fini_eliminate): Likewise.
	(init_pre): Simplify.
	(fini_pre): Likewise.
	(execute_pre): Fold into do_pre and do_fre.
	(do_pre): Consume execute_pre.
	(do_fre): Likewise.
	* Makefile.in (tree-ssa-pre.o): Add domwalk.h dependency.

2012-09-12  Diego Novillo  <dnovillo@google.com>

	* vec.h: Remove compatibility notes for previous distinction
	between vectors of objects and vectors of pointers.

2012-09-12  Christian Bruel  <christian.bruel@st.com>

	* config/sh/newlib.h (NO_IMPLICIT_EXTERN_C): Define.

2012-09-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* rtl.h (FFS, FLOAT, ABS, PC): Don't undef.
	* system.h (FFS, FLOAT, ABS, PC): Undef.

2012-09-12  Richard Guenther  <rguenther@suse.de>

	PR middle-end/54553
	* common.opt (finline): Mark with Optimization.

2012-09-12  Jakub Jelinek  <jakub@redhat.com>

	* config.gcc: Obsolete picochip-*.

2012-09-12  Nathan Froyd  <froydnj@gcc.gnu.org>
	    Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.h (MMIX_REG_OK_STRICT): Delete.
	(REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P): Delete.
	(CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
	* config/mmix/mmix-protos.h (mmix_intval): Declare.
	(mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete.
	(mmix_const_double_ok_for_letter_p): Delete.
	* config/mmix/constraints.md: New file.
	* config/mmix/mmix.md: Include it.
	(iordi3): Fix typo; use "I" instead of undefined "H" constraint.
	("*call_real"): Update comment about not using the "p" constraint.
	* config/mmix/predicates.md (mmix_reg_or_8bit_operand): Use
	satisfies_constraint_I.
	(mmix_address_operand): New predicate.
	(mmix_symbolic_or_address_operand): Use it instead of address_operand.
	* config/mmix/mmix.c: #include tm-constrs.h.
	(mmix_intval): Delete declaration.  Make non-static.
	(mmix_const_ok_for_letter_p, mmix_extra_constraint): Delete.
	(mmix_const_double_ok_for_letter_p): Delete.
	(mmix_legitimate_address_p): Use satisfies_constraint_I.
	(mmix_print_operand_address): Likewise.
	(mmix_emit_sp_add): Adjust to use insn_const_int_ok_for_constraint
	when matching "L" constraint.

2012-09-11  Steven Bosscher  <steven@gcc.gnu.org>

	* tree.h (expand_case): Move prototype ...
	* expr.h (expand_case): ...here.
	(expand_sjlj_dispatch_table): New prototype.
	* stmt.c: Include pointer-set.h instead of bitmap.h.
	(expand_case): Use a pointer set instead of a bitmap for
	already-seen labels.  Fold label values here.
	(add_case_node): Don't fold label values here.
	(expand_sjlj_dispatch_table): New function.
	* except.c (sjlj_emit_dispatch_table): Use it.

2012-09-11  Marc Glisse  <marc.glisse@inria.fr>

	* tree-ssa-forwprop.c (simplify_vector_constructor): New function.
	(ssa_forward_propagate_and_combine): Call it.

2012-09-11  Diego Novillo  <dnovillo@google.com>

	* var-tracking.c (vt_add_function_parameter): Adjust for VEC changes.

2012-09-11  Dominique Dhumieres  <dominiq@lps.ens.fr>

	* config/darwin.c (darwin_asm_named_section): Adjust for VEC changes.
	(darwin_asm_dwarf_section): Likewise.

2012-09-11  Martin Jambor  <mjambor@suse.cz>

	* dwarf2out.c (dwarf2out_abstract_function): Do not change cfun.
	(premark_used_types): New parameter fun, use it instead of cfun.
	(gen_subprogram_die): Use DECL_STRUCT_FUNCTION (decl) instead of cfun,
	also pass it to premark_used_types.

2012-09-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* doc/sourcebuild.texi (arm_neon_v2_ok): Adjust command line.

2012-09-11  Tobias Burnus  <burnus@net-b.de>

	* doc/sourcebuild.texi (arm_neon_v2_ok): Fix @anchor.

2012-09-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* config/arm/neon.md (fma<VCVTF:mode>4): New pattern.
	(*fmsub<VCVTF:mode>4): Likewise.
	* doc/sourcebuild.texi (arm_neon_v2_ok, arm_neon_v2_hw):  Document it.

2012-09-11  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/54149
	* tree-ssa-loop-im.c (execute_sm_if_changed_flag_set): Only set
	flag for writes.

2012-09-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/55492
	* doc/invoke.texi (max-slsr-cand-scan): New description.
	* gimple-ssa-strength-reduction.c (find_basis_for_candidate): Limit
	the time spent searching for a basis.
	* params.def (PARAM_MAX_SLSR_CANDIDATE_SCAN): New param.

2012-09-11  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_register_type): Remove.
	(print_gimple_types_stats): Adjust prototype.
	* lto-streamer.h (print_lto_report): Likewise.
	* lto-streamer.c (print_lto_report): Adjust.
	* gimple.c (gimple_types, type_hash_cache, enum gtc_mode,
	struct type_pair_d, lookup_type_pair, struct sccs,
	next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
	gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
	gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
	visit, iterative_hash_name, struct type_hash_pair,
	type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
	gimple_type_eq, gimple_register_type_1, gimple_register_type):
	Move to lto/lto.c.
	(print_gimple_types_stats): Adjust.
	(free_gimple_type_tables): Likewise.

2012-09-11  Richard Guenther  <rguenther@suse.de>

	* graphite-scop-detection.c (move_sd_regions): Adjust for VEC changes.
	(scopdet_basic_block_info): Likewise.
	(build_scops_1): Likewise.
	(limit_scops): Likewise.

2012-09-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/54515
	* gimple.c (get_base_address): Do not return NULL_TREE apart
	from for WITH_SIZE_EXPR.
	* gimple-fold.c (canonicalize_constructor_val): Do not call
	get_base_address when not necessary.

2012-09-10  Andrew Pinski  <apinski@cavium.com>

	PR tree-opt/54362
	* trans-mem.c (thread_private_new_memory): Handle COND_EXPR also.

2012-09-10  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.c (m68k_sched_dfa_post_advance_cycle): Support
	starting scheduling from a pre-existing state.

2012-09-10  Diego Novillo  <dnovillo@google.com>

	* vec.h (vec_t::quick_push): Remove overload that accepts 'T *'.
	Update all users.
	(vec_t::safe_push): Likewise.
	(vec_t::quick_insert): Likewise.
	(vec_t::lower_bound): Likewise.
	(vec_t::safe_insert): Likewise.
	(vec_t::replace): Change second argument to 'T &'.

2012-09-10  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/rs6000/rs6000.md: Move a splitter next to its insn.

2012-09-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Set always to 1 if
	dynamic shifts are available.
	(SHIFT_COUNT_TRUNCATED): Always define to 0.  Correct comment.
	* config/sh/sh.c (ashl_lshr_seq, ext_ashl_lshr_seq): Add comments.
	* config/sh/predicates.md (shift_count_operand): Allow
	arith_reg_operand even if TARGET_DYNSHIFT is false.
	* config/sh/sh.md (ashlsi3, lshrsi3): Expand library call patterns
	if needed.
	(ashlsi3_d_call, lshrsi3_d_call): New insns.

2012-09-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.c (setup_pressure_classes): Handle synonymous classes.

2012-09-10  Marc Glisse  <marc.glisse@inria.fr>

	* tree-ssa-forwprop.c (simplify_bitfield_ref): New function.
	(ssa_forward_propagate_and_combine): Call it.

2012-09-10  Steve Ellcey  <sellcey@mips.com>

	* config.gcc: Add mips*-mti-linux* target
	Handle with_synci like other options.
	* config/mips/gnu-user64.h (LINUX64_DRIVER_SELF_SPECS): New.
	(DRIVER_SELF_SPECS): Define in terms of LINUX64_DRIVER_SELF_SPECS.
	* config/mips/mips.h (MIPS_ISA_SYNCI_SPEC): New.
	* config/mips/mti-linux.h: New file.
	* config/mips/t-mti-linux: New file.

2012-09-10  Marc Glisse  <marc.glisse@inria.fr>

	* tree-ssa-forwprop.c (simplify_permutation): Handle CONSTRUCTOR.

2012-09-10  Martin Jambor  <mjambor@suse.cz>

	* params.def (PARAM_IPA_MAX_AGG_ITEMS): New parameter.
	* ipa-prop.c: Include params.h.
	(IPA_MAX_AFF_JF_ITEMS): Removed.
	(determine_known_aggregate_parts): Use param value of
	PARAM_IPA_MAX_AGG_ITEMS instead of IPA_MAX_AFF_JF_ITEMS.
	* Makefile.in (ipa-prop.o): Add PARAMS_H dependency.

2012-09-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54520
	* tree-ssa-threadupdate.c (def_split_header_continue_p):
	Properly consider sub-loops.

2012-09-10  Richard Henderson  <rth@redhat.com>

	* config/alpha/predicates.md (small_symbolic_operand): Disallow
	large offsets.

2012-09-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54536
	* config/avr/avr-mcus.def (at90usb1287): Set LIBRARY_NAME to "usb1287".

2012-09-10  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (compute_ltrans_boundary): Do not care about aliases.
	* symtab.c (symtab_make_decl_local): Remove user defined visibility
	when making symbol local.

2012-09-09  Mark Kettenis  <kettenis@gnu.org>

	* config/openbsd-stdint.h (INTMAX_TYPE, UINTMAX_TYPE): Define.

2012-09-09  Jan Hubicka  <jh@suse.cz>

	* passes.c (ipa_write_summaries_1): Set state;
	do not call compute_ltrans_boundary.
	(ipa_write_optimization_summaries): Likewise.
	(ipa_write_summaries): compute_ltrans_boundary here.
	* lto-streamer.h (lto_symtab_encoder_d): NODES are allocated in heap.
	(compute_ltrans_boundary): Update prototype.

2012-09-09  Ulrich Drepper  <drepper@gmail.com>

	* config/i386/cpuid.h: Define signature_*_e[bcd]x macros for
	matching results of level 0 calls to __cpuid to processor
	manufacturers.
	* config/i386/driver-i386.c (vendor_signatures): Removed.
	(processor_signatures): Removed.
	(host_detect_local_cpu): Replace uses of now-removed SIG_*
	constants with the new signature_*_ebx constants.

2012-09-08  Jan Hubicka  <jh@suse.cz>

	Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
	in partitioning.
	* tree-pass.h (cgraph_node_set_def, varpool_node_set_def): Remove
	forward declaration.
	(lto_symtab_encoder_d): Forward declare.
	(ipa_write_optimization_summaries): Update.
	* lto-cgraph.c (lto_symtab_encoder_new): Do not initialize
	body, initializer and in_partition.
	(lto_symtab_encoder_delete): Update.
	(lto_symtab_encoder_encode): Update.
	(lto_symtab_encoder_lookup): Move inline.
	(lto_symtab_encoder_delete_node): New function.
	(lto_symtab_encoder_encode_body_p, lto_set_symtab_encoder_encode_body,
	lto_symtab_encoder_encode_initializer_p,
	lto_set_symtab_encoder_encode_initializer,
	lto_symtab_encoder_in_partition_p,
	lto_symtab_encoder_in_partition_p): Update.
	(compute_ltrans_boundary): Take encoder as an input.
	* passes.c (ipa_write_summaries_1): Update.
	(ipa_write_summaries_1): Update.
	(ipa_write_summaries): Update.
	(ipa_write_optimization_summaries): Update.
	* lto-streamer.c (print_lto_report): Report number of cgraph nodes.
	* lto-streamer.h (lto_stats_d): Replace num_output_cgraph_nodes by
	num_output_symtab_nodes.
	(lto_encoder_entry): New structure.
	(struct lto_symtab_encoder_d): Reorg.
	(lto_symtab_encoder_delete_node): Declare.
	(lto_symtab_encoder_lookup): Bring inline.
	(compute_ltrans_boundary): Update.
	(lto_symtab_encoder_size): Update.
	(lsei_node, lsei_cgraph_node, lsei_varpool_node): Update.
	(lto_symtab_encoder_deref): Update.

2012-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.c (hppa_rtx_costs): Update costs for large
	integer modes.

2012-09-08  Andi Kleen  <ak@linux.intel.com>

	* lto/lto.c (do_whole_program_analysis): Fix last broken patch.

2012-09-08  Andi Kleen  <ak@linux.intel.com>

	* common.opt (-fmem-report-wpa): Add
	* doc/invoke.texi (-fmem-report-wpa): Document.
	* lto/lto.c (do_whole_program_analysis): Run mem_report
	when mem_report_wpa is set.

2012-09-07  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.c (moxie_expand_prologue): Optimize prologue
	for functions with large static stack requirements.
	(moxie_expand_epilogue): Use $r12 instead of $r5 for pulling saved
	values off of the stack.

2012-09-07  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.h (DBX_DEBUGGING_INFO): Define.
	(ASM_GENERATE_INTERNAL_LABEL): Define if not already provided.
	* config/v850/v850.c (compute_register_save_size): Always include
	the link pointer.
	(increment_stack): New function - emits insns to increment or
	decrement the stack pointer.
	(expand_prologue, expand_epilogue): Use it.
	(expand_prologue): Set the function stack size, if requested.
	(v850_debug_unwind_info): New function.
	(TARGET_DEBUG_UNWIND_INFO): Define.

2012-09-07  Richard Earnshaw  <rearnsha@arm.com>

	PR tree-ssa/54295
	* tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
	Sign-extension of a zero-extended value can be simplified to
	just zero-extension.

2012-09-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53667
	* tree-ssa-structalias.c (handle_rhs_call): Properly clobber
	EAF_NOESCAPED arguments.  Transitively close non-EAF_DIRECT
	arguments separately.

2012-09-07  Steven Bosscher  <steven@gcc.gnu.org>

	* bitmap.c (bitmap_last_set_bit): Rewrite to return the correct bit.

	* graphite.c (print_global_statistics): Use EDGE_COUNT instead
	of VEC_length.
	(print_graphite_scop_statistics): Likewise.
	* graphite-scop-detection.c (get_bb_type): Use single_succ_p.
	(print_graphite_scop_statistics): Use EDGE_COUNT, not VEC_length.
	(canonicalize_loop_closed_ssa): Use single_pred_p.

	* alias.c (reg_seen): Make this an sbitmap.
	(record_set, init_alias_analysis): Update.

	* tree-ssa-coalesce.c (ssa_conflicts_dump): Fix dumping.

2012-09-07  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/53986
	* tree-vrp.c (extract_range_from_multiplicative_op_1): Allow
	LSHIFT_EXPR.
	(extract_range_from_binary_expr_1): Handle LSHIFT with constant
	range as shift amount.

2012-09-07  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/aix43.h (RS6000_CALL_GLUE): Delete.
	* config/rs6000/aix51.h (RS6000_CALL_GLUE): Delete.
	* config/rs6000/aix52.h (RS6000_CALL_GLUE): Delete.
	* config/rs6000/aix53.h (RS6000_CALL_GLUE): Delete.
	* config/rs6000/aix61.h (RS6000_CALL_GLUE): Delete.
	* config/rs6000/freebsd64.h (RS6000_CALL_GLUE): Delete.
	* config/rs6000/linux64.h (RS6000_CALL_GLUE): Delete.
	* config/rs6000/rs6000.c (print_operand) ['.']: Delete.
	* config/rs6000/rs6000.h (RS6000_CALL_GLUE): Delete.
	* config/rs6000/rs6000.md (tls_gd_aix<TLSmode:tls_abi_suffix>):
	Replace %. with nop.
	(tls_gd_call_aix<TLSmode:tls_abi_suffix>): Ditto.
	(tls_ld_aix<TLSmode:tls_abi_suffix>): Ditto.
	(tls_ld_call_aix<TLSmode:tls_abi_suffix>): Ditto.
	(call_nonlocal_aix32): Ditto.
	(call_nonlocal_aix64): Ditto.
	(call_value_nonlocal_aix32): Ditto.
	(call_value_nonlocal_aix64): Ditto.

2012-09-06  Andi Kleen  <ak@linux.intel.com>

	* doc/invoke.texi (-ffat-lto-objects): Clarify that gcc-ar
	et.al. should be used.

2012-09-06  Andi Kleen  <ak@linux.intel.com>

	* lto-streamer.h (res_pair): Add.
	(lto_file_decl_data): Replace resolutions with respairs.
	Add max_index.
	* lto/lto.c (lto_resolution_read): Remove max_index.  Add rp.
	Initialize respairs.
	(lto_file_finalize): Set up resolutions vector lazily from respairs.

2012-09-06  Lawrence Crowl  <crowl@google.com>

	* double-int.h (double_int::operator &=): New.
	(double_int::operator ^=): New.
	(double_int::operator |=): New.
	(double_int::mul_with_sign): Modify overflow parameter to bool*.
	(double_int::add_with_sign): New.
	(double_int::ule): New.
	(double_int::sle): New.
	(binary double_int::operator *): Remove parameter name.
	(binary double_int::operator +): Likewise.
	(binary double_int::operator -): Likewise.
	(binary double_int::operator &): Likewise.
	(double_int::operator |): Likewise.
	(double_int::operator ^): Likewise.
	(double_int::and_not): Likewise.
	(double_int::from_shwi): Tidy formatting.
	(double_int::from_uhwi): Likewise.
	(double_int::from_uhwi): Likewise.
	* double-int.c (double_int::mul_with_sign): Modify overflow parameter
	to bool*.
	(double_int::add_with_sign): New.
	(double_int::ule): New.
	(double_int::sle): New.
	* builtins.c: Modify to use the new double_int interface.
	* cgraph.c: Likewise.
	* combine.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* fixed-value.c: Likewise.
	* fold-const.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimplify-rtx.c: Likewise.
	* ipa-prop.c: Likewise.
	* loop-iv.c: Likewise.
	* optabs.c: Likewise.
	* stor-layout.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-flow-inline.h: Likewise.
	* tree-object-size.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-sccvn: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.h: Likewise.
	* tree.c: Likewise.
	* varasm.c: Likewise.

2012-09-06  Uros Bizjak  <ubizjak@gmail.com>

	* configure.ac (hle prefixes): Remove .code64 directive.
	* configure: Regenerated.

2012-09-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c: Use CONST_INT_P, CONST_DOUBLE_P, REG_P, MEM_P,
	LABEL_P, JUMP_P, CALL_P, NOTE_P, BARRIER_P consistently.
	* config/arm/arm.h: Use REG_P, MEM_P consistently.
	* config/arm/arm.md: Use CONST_INT_P, REG_P, MEM_P, CONST_DOUBLE_P
	consistently.
	* config/arm/neon.md: Use REG_P consistently.
	* config/arm/predicates.md: Use CONST_INT_P, REG_P, MEM_P consistently.
	* config/arm/thumb2.md: Use CONST_INT_P, REG_P consistently.
	* config/arm/vec-common.md: Use REG_P consistently.

2012-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54498
	* tree-ssa-alias.h (get_continuation_for_phi): Add flag to
	abort when reaching an already visited region.
	* tree-ssa-alias.c (maybe_skip_until): Likewise.  And do it.
	(get_continuation_for_phi_1): Likewise.
	(walk_non_aliased_vuses): When we translated the reference,
	abort when we re-visit a region.
	* tree-ssa-pre.c (translate_vuse_through_block): Adjust.

2012-09-06  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Add TLS
	section.
	* config/rs6000/rs6000.c (rs6000_debug_address_cost): Add new
	arguments to TARGET_ADDRESS_COST call.

2012-09-06  Richard Guenther  <rguenther@suse.de>

	* tree.h (MOVE_NONTEMPORAL): Remove.
	* tree-pretty-print.c (dump_generic_node): Remove
	MOVE_NONTEMPORAL handling.
	* expr.c (expand_expr_real_1): Likewise.

2012-09-06  Richard Guenther  <rguenther@suse.de>

	* passes.c (execute_function_todo): Call compute_may_aliases
	only if flag_tree_pta is set.

2012-09-06  Andrew Pinski  <apinski@cavium.com>

	PR tree-opt/54494
	* tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also.

2012-09-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/54455
	* sel-sched-ir.c (maybe_tidy_empty_bb): Give up if previous fallthru
	bb ends up with asm goto referencing bb's label.

2012-09-06  Chen Liqin  <liqin.gcc@gmail.com>

	* config/score/score.c: Remove TARGET_LEGITIMIZE_ADDRESS define and
	score_legitimize_address function, use compiler default code instead.

2012-09-05  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (want_inline_small_function_p): Use
	INLINE_HINT_loop_iterations hint.

2012-09-05  Andrew Pinski  <apinski@cavium.com>

	* optabs.c (emit_conditional_add): Correct comment about the arguments.
	Remove code which might swap op2 and op3 since they cannot be swapped.
	* doc/md.texi (add@var{mode}cc): Fix document about how the arguments
	are used.

2012-09-05  Oleg Endo  <olegendo@gcc.gnu.org>

	* hooks.c (hook_int_rtx_mode_as_bool_0): New function.
	* hooks.h (hook_int_rtx_mode_as_bool_0): Declare it.
	* output.h (default_address_cost): Add machine_mode and address space
	arguments.
	* target.def (address_cost): Likewise.
	* rtlanal.c (address_cost): Pass mode and address space to target hook.
	(default_address_cost): Add unnamed machine_mode and address space
	arguments.
	* doc/tm.texi: Regenerate.
	* config/alpha/alpha.c (TARGET_ADDRESS_COST): Use
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/arm/arm.c (arm_address_cost): Add machine_mode and address
	space arguments.
	* config/avr/avr.c (avr_address_cost): Likewise.
	* config/bfin/bfin.c (bfin_address_cost): Likewise.
	* config/cr16/cr16.c (cr16_address_cost): Likewise.
	* config/cris/cris.c (cris_address_cost): Likewise.
	* config/epiphany/epiphany.c (epiphany_address_cost): Likewise.
	* config/i386/i386.c (ix86_address_cost): Likewise.
	* config/ia64/ia64.c (TARGET_ADDRESS_COST): Use
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/iq2000/iq2000.c (iq2000_address_cost): Add machine_mode and
	address space arguments.  Pass them on in recursive invocation.
	* config/lm32/lm32.c (TARGET_ADDRESS_COST): Use
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/m32c/m32c.c (m32c_address_cost): Add machine_mode and address
	space arguments.
	* config/m32r/m32r.c (TARGET_ADDRESS_COST): Use
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/mcore/mcore.c (TARGET_ADDRESS_COST): Likewise.
	* config/mep/mep.c (mep_address_cost): Add machine_mode and address
	space arguments.
	* config/microblaze/microblaze.c (microblaze_address_cost): Likewise.
	* config/mips/mips.c (mips_address_cost): Likewise.
	* config/mmix/mmix.c (TARGET_ADDRESS_COST): Use
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/mn10300/mn10300.c (mn10300_address_cost): Add machine_mode and
	address space arguments.
	(mn10300_rtx_costs): Pass GET_MODE (x) and MEM_ADDR_SPACE (x) to
	mn10300_address_cost.
	* config/pa/pa.c (hppa_address_cost): Add machine_mode and address
	space arguments.
	* config/rs6000/rs6000.c (rs6000_debug_address_cost): Likewise.
	(TARGET_ADDRESS_COST): Use hook_int_rtx_mode_as_bool_0 instead of
	hook_int_rtx_bool_0.
	* config/rx/rx.c (rx_address_cost): Add machine_mode and address
	space arguments.
	* config/s390/s390.c (s390_address_cost): Likewise.
	* config/score/score-protos.h (score_address_cost): Likewise.
	* config/score/score.c (score_address_cost): Likewise.
	* config/sh/sh.c (sh_address_cost): Likewise.
	* config/sparc/sparc.c (TARGET_ADDRESS_COST): Use
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/spu/spu.c (TARGET_ADDRESS_COST): Likewise.
	* config/stormy16/stormy16.c (xstormy16_address_cost): Add machine_mode
	and address space arguments.
	* config/v850/v850.c (TARGET_ADDRESS_COST): Use
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/vax/vax.c (vax_address_cost): Add machine_mode and address
	space arguments.
	* config/xtensa/xtensa (TARGET_ADDRESS_COST): Use
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.

2012-09-05  Diego Novillo  <dnovillo@google.com>

	PR bootstrap/54484
	* vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN argument.

2012-09-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/54486
	* builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use
	build_int_cst with size_type_node instead of size_int.

2012-09-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>):
	Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.
	Use nonimmediate_operand instead of
	nonimm_not_xmm0_operand{,_maybe_avx}.
	(<sse4_1_avx2>_pblendvb): Ditto.
	(sse4_2_pcmpestr): Ditto.
	(*sse4_2_pcmpestr_unaligned): Ditto.
	(sse4_2_pcmpistr): Ditto.
	(*sse4_2_pcmpistr_unaligned): Ditto.
	* config/i386/predicates.md (reg_not_xmm0_operand): Remove predicate.
	(nonimm_not_xmm0_operand): Ditto.
	(nonimm_not_xmm0_operand_maybe_avx): Ditto.
	(nonimm_not_xmm0_operand_maybe_avx): Ditto.
	* config/i386/i386.md (rdpmc): Do not force operand 1 into ecx.

2012-09-05  Eric Botcazou  <ebotcazou@adacore.com>

	* bb-reorder.c: Clarify a few points in the head comment and fix
	long lines in other comments.
	(find_traces): Fix long line.
	(find_traces_1_round): Likewise.
	(better_edge_p): Likewise.
	(connect_traces): Likewise.
	(duplicate_computed_gotos): Likewise.
	(find_rarely_executed_basic_blocks_and_cr): Remove trailing spaces.
	(fix_up_fall_thru_edges): Fix formatting.

2012-09-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46590
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Do not
	update SSA form here.
	(canonicalize_induction_variables): Assert we do not need to
	update SSA form.
	(tree_unroll_loops_completely): Update SSA form here.
	* tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
	Do not verify loop-closed SSA form if SSA form is not up-to-date.

2012-09-05  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54461
	* config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if
	not configured --with-avrlibc=no.
	(tm_defines,target=avr-*-*): Add WITH_AVRLIBC if not configured
	--with-avrlibc=no.
	* config/avr/avrlibc.h: New file.
	* config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if
	not configured --with-avrlibc=no.
	* doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__

2012-09-04  Teresa Johnson  <tejohnson@google.com>

	* gcov-io.c (gcov_write_summary): Write out non-zero histogram
	entries to function summary along with an occupancy bit vector.
	(gcov_read_summary): Read in the histogram entries.
	(gcov_histo_index): New function.
	(void gcov_histogram_merge): Ditto.
	* gcov-io.h (gcov_type_unsigned): New type.
	(struct gcov_bucket_type): Ditto.
	(struct gcov_ctr_summary): Include histogram.
	(GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
	(GCOV_HISTOGRAM_SIZE): New macro.
	(GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
	* profile.c (NUM_GCOV_WORKING_SETS): Ditto.
	(gcov_working_sets): New global variable.
	(compute_working_sets): New function.
	(find_working_set): Ditto.
	(get_exec_counts): Invoke compute_working_sets.
	* coverage.c (read_counts_file): Merge histograms, and
	fix bug with accessing summary info for non-summable counters.
	* basic-block.h (gcov_type_unsigned): New type.
	(struct gcov_working_set_info): Ditto.
	(find_working_set): Declare.
	* gcov-dump.c (tag_summary): Dump out histogram.

2012-09-04  Diego Novillo  <dnovillo@google.com>

	PR bootstrap/54484
	* vec.h (vec_t::embedded_init): Move default argument value
	to function declaration.

2012-09-04  Eric Botcazou  <ebotcazou@adacore.com>

	* bb-reorder.c (gate_handle_reorder_blocks): Move around.
	(rest_of_handle_reorder_blocks): Likewise.
	(pass_reorder_blocks): Likewise.
	(gate_handle_partition_blocks): Likewise.

2012-09-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/54456
	* sched-rgn.c (gate_handle_sched): Return 1 only if optimize > 0.

2012-09-04  Diego Novillo  <dnovillo@google.com>

	PR bootstrap/54478
	* vec.h (vec_t::alloc): Remove explicit type specification
	in call to reserve.
	(vec_t::copy): Likewise.
	(vec_t::reserve): Likewise.
	(vec_t::reserve_exact): Likewise.
	(vec_t::safe_splice): Likewise.
	(vec_t::safe_push): Likewise.
	(vec_t::safe_grow): Likewise.
	(vec_t::safe_grow_cleared): Likewise.
	(vec_t::safe_insert): Likewise.

2012-09-04  Richard Henderson  <rth@redhat.com>

	* alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.

2012-09-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (value_expressions): Make it a vector of
	bitmaps containing expression IDs.
	(add_to_value): Adjust.
	(sorted_array_from_bitmap_set): Likewise.
	(bitmap_set_replace_value): Likewise.
	(print_value_expressions): Likewise.
	(get_constant_for_value_id): Likewise.
	(get_representative_for): Likewise.
	(phi_translate_1): Likewise.
	(bitmap_find_leader): Likewise.
	(find_or_generate_expression): Likewise.
	(do_regular_insertion): Likewise.
	(init_pre): Likewise.
	(fini_pre): Likewise.

2012-09-04  Diego Novillo  <dnovillo@google.com>

	PR bootstrap/54479
	* vec.h (vec_t::copy): Add cast in call to reserve_exact.

2012-09-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (add_to_exp_gen): Adjust.
	(make_values_for_phi): Do not add to PHI_GEN for FRE.
	(compute_avail): Stop processing after adding all defs to
	AVAIL_OUT for FRE.
	(init_pre): Do not allocate not needed bitmap sets for FRE.

2012-09-04  Diego Novillo  <dnovillo@google.com>

	Rewrite VEC_* functions as member functions of vec_t.

	* vec.h: Update documentation.
	(ALONE_VEC_CHECK_INFO): Define.
	(ALONE_VEC_CHECK_DECL): Define.
	(ALONE_VEC_CHECK_PASS): Define.
	(struct vec_prefix): Rename field NUM to NUM_.
	Rename field ALLOC to ALLOC_.
	Update all users.
	(struct vec_t): Rename field PREFIX to PREFIX_.
	Rename field VEC to VEC_.
	Update all users.
	(vec_t::length): Rename from VEC_length_1.  Update all users.
	(vec_t::empty): Rename from VEC_empty_1.  Update all users.
	(vec_t::address): Rename from VEC_address_1.  Update all users.
	(vec_address): New.
	(vec_t::last): Rename from VEC_last_1.  Update all users.
	(vec_t::operator[]): Rename from VEC_index_1.  Update all users.
	(vec_t::iterate): Rename from VEC_iterate_1.  Update all users.
	(vec_t::embedded_size): Rename from VEC_embedded_size_1.
	Update all users.
	(vec_t::embedded_init): Rename from VEC_embedded_init_1.
	Update all users.
	(vec_t::alloc): Rename from VEC_alloc_1.  Update all users.
	(vec_t::free): Rename from VEC_free_1.  Update all users.
	(vec_t::copy): Rename from VEC_copy_1.  Update all users.
	(vec_t::space): Rename from VEC_space_1.  Update all users.
	(vec_t::reserve): Rename from VEC_reserve_1.  Update all users.
	(vec_t::reserve_exact): Rename from VEC_reserve_exact_1.
	Update all users.
	(vec_t::splice): Rename from VEC_splice_1.  Update all users.
	(vec_t::safe_splice): Rename from VEC_safe_splice_1.  Update all users.
	(vec_t::quick_push): Rename from VEC_quick_push_1.  Update all users.
	(vec_t::safe_push): Rename from VEC_safe_push_1.  Update all users.
	(vec_t::pop): Rename from VEC_pop_1.  Update all users.
	(vec_t::truncate): Rename from VEC_truncate_1.  Update all users.
	(vec_t::safe_grow): Rename from VEC_safe_grow_1.  Update all users.
	(vec_t::safe_grow_cleared): Rename from VEC_safe_grow_cleared_1.
	Update all users.
	(vec_t::replace): Rename from VEC_replace_1.  Update all users.
	(vec_t::quick_insert): Rename from VEC_quick_insert_1.
	Update all users.
	(vec_t::safe_insert): Rename from VEC_safe_insert_1.  Update all users.
	(vec_t::ordered_remove): Rename from VEC_ordered_remove_1.
	Update all users.
	(vec_t::unordered_remove): Rename from VEC_unordered_remove_1.
	Update all users.
	(vec_t::block_remove): Rename from VEC_block_remove_1. Update all users.
	(vec_t::lower_bound): Rename from VEC_lower_bound_1. Update all users.

2012-09-04  Steven Bosscher  <steven@gcc.gnu.org>

	* gimple.h (gimple_build_switch): Remove.
	(gimple_build_switch_vec): Promote to the new gimple_build_switch.
	(gimple_switch_default_label): Assert the default case label is
	really a default case label.
	(gimple_switch_set_default_label): Likewise.
	* gimple.c (gimple_build_switch_nlabels): Make sure a default label
	is passed in, and simplify accordingly.
	(gimple_build_switch): Removed.
	(gimple_build_switch_vec): Rename to gimple_build_switch.
	* gimplify.c (gimplify_switch_expr): Update gimple_build_switch use.
	* gimple-pretty-print.c (dump_gimple_switch): Do not accept a NULL
	case label.
	* stmt.c (expand_case): Simplify using the fact that every GIMPLE
	switch must have a default case.
	* tree-cfg.c (group_case_labels_stmt): Likewise.
	(verify_gimple_switch): Use gimple_switch_label in verifier to get
	the label at index 0, and verify that it is a valid default case.
	* except.c (sjlj_emit_dispatch_table): Rewrite construction of the
	switch for dispatching.
	* tree-eh.c (lower_try_finally_switch): Update gimple_build_switch use.
	(lower_eh_dispatch): Likewise.
	* tree-vrp.c (execute_vrp): Use gimple_switch_label to get the case
	label at index 0 before turning it into a default case label.
	* omp-low.c (expand_omp_sections): Update gimple_build_switch use.
	* tree-switch-conversion.c (emit_case_bit_tests): Get the default case
	label using gimple_switch_default_label.
	(collect_switch_conv_info): Likewise.
	(process_switch): Likewise.
	* doc/gimple.texi: Update documentation of gimple_build_switch.

2012-09-04  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54476
	* config/avr/avr.c (avr_expand_delay_cycles): Mask operand with
	SImode.

2012-09-04  Bin Cheng  <bin.cheng@arm.com>

	PR target/45070
	* config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value
	of size less than 4 bytes by using macro ARM_NUM_INTS.
	(thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS.

2012-09-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54458
	* tree-ssa-threadupdate.c (thread_through_loop_header): If we
	turn the loop into one with multiple latches mark it so.

2012-09-04  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	PR target/54220
	* config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New
	define to...
	(avr_allocate_stack_slots_for_args): ...this new static function.

2012-09-04  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT
	by GEN_INT.
	(arm_emit_coreregs_64bit_shift): Likewise.

2012-09-04  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm.c (arm_evpc_neon_vext): New function.
	(arm_expand_vec_perm_const_1): Add call to arm_evpc_neon_vext.

2012-09-04  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.c (prepare_cbranch_operands): Pull out comparison
	canonicalization code into...
	* (sh_canonicalize_comparison): This new function.
	* config/sh/sh-protos.h: Declare it.
	* config/sh/sh.h: Use it in new macro CANONICALIZE_COMPARISON.
	* config/sh/sh.md (cbranchsi4): Remove TARGET_CBRANCHDI4 check and
	always invoke expand_cbranchsi4.

2012-09-03  Andi Kleen  <ak@linux.intel.com>

	* tree-ssa-sccvn.c (vn_reference_fold_indirect): Initialize
	addr_offset always.

2012-09-03  Andrew Pinski  <apinski@cavium.com>

	PR tree-opt/53395
	* tree-if-conv.c (constant_or_ssa_name): New function.
	(fold_build_cond_expr): New function.
	(predicate_scalar_phi): Use fold_build_cond_expr instead of build3.
	(predicate_mem_writes): Likewise.

2012-09-03  Marc Glisse  <marc.glisse@inria.fr>

	* fold-const.c (fold_ternary_loc): Constant-propagate after
	removing dead operands.

2012-09-03  Michael Matz  <matz@suse.de>

	PR tree-optimization/46590
	* tree-cfg.c (gimple_duplicate_sese_region): Don't update
	SSA web here ...
	* tree-ssa-loop-ch.c (copy_loop_headers): ... but here.

2012-09-03  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Fix numerous typos and punctuation/grammatical
	errors throughout the file.  Re-word some awkward sentences and
	paragraphs.

2012-09-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54362
	* tree-ssa-structalias.c (find_func_aliases): Handle COND_EXPR.

2012-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_loadrelative_operand_p): New function.
	(s390_check_qrst_address, print_operand_address): Use
	s390_loadrelative_operand_p instead of s390_symref_operand_p.
	(s390_check_symref_alignment): Accept pointer size alignment for
	GOT slots.
	(legitimize_pic_address): Use load relative on z10 or later.

2012-09-03  Jakub Jelinek  <jakub@redhat.com>

	PR debug/53923
	* valtrack.c (dead_debug_insert_temp): Drop non-reg uses
	from the chain.

2012-09-03  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (--no-sysroot-suffix): New driver option.
	* doc/invoke.texi (--no-sysroot-suffix): Document.
	* gcc.c (driver_handle_option): Handle --no-sysroot-suffix as not
	needing spec processing.
	(main): Do not process sysroot suffixes if no_sysroot_suffix.

2012-09-02  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/33135
	* common/config/sh/sh-common.c: Update copyright years.
	(sh_option_init_struct): Delete.
	(TARGET_OPTION_INIT_STRUCT): Likewise.

2012-09-02  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54418
	* config/sh/sh.md (cmpgeusi_t): Remove N alternative.
	Check operands[1] in split condition instead of operands[0].
	Add comments.

2012-09-02  Mark Kettenis  <kettenis@openbsd.org>

	* config.gcc (x86_64-*-openbsd*): New target.
	* config.host (*-*-openbsd*): New target.
	* config/openbsd.h (TARGET_C99_FUNCTIONS): Define.
	* config/i386/openbsdelf.h: Remove some superfluous defines and
	group things together in a more logical fashion.
	(DBX_REGISTER_NUMBER): Provide a
	definition that works on both 32-bit and 64-bit targets.
	(WCHAR_TYPE_SIZE): Hardcode as 32.
	(NO_DOLLAR_IN_LABEL): Remove undef.
	(TARGET_DEFAULT): Remove.
	(SET_ASM_OP): Remove.
	(DEFAULT_PCC_STRUCT_RETURN): Undef first to prevent warning.
	(ASM_OUTPUT_MAX_SKIP_ALIGN): Synch with x86-64.h
	(DWARF2_UNWIND_INFO): Remove define.
	(HAVE_ENABLE_EXECUTE_STACK): Define.
	* config/host-openbsd.c: New file.
	* config/t-openbsd (USER_H): Add EXTRA_HEADERS.
	* config/x-openbsd: New file.

2012-09-02  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md (*extend<mode>si2_compact_mem_disp): Pass iterated
	mode to sh_legitimate_index_p instead of QImode.

2012-09-02  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/54369
	* config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
	calling dbr_schedule.
	* config/sparc/sparc.c (sparc_reorg): Likewise.

2012-09-01  Jakub Jelinek  <jakub@redhat.com>

	PR target/54436
	* config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If
	operands[1] is CONST_INT_P, convert it to QImode before printing.

2012-09-01  Andrew Pinski  <apinski@cavium.com>

	* simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
	A truncate of a memory is just loading the low part of the memory.

2012-09-01  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46829
	PR target/46843
	* config/i386/i386.c (ix86_legitimate_combined_insn): New function.
	(TARGET_LEGITIMATE_COMBINED_INSN): New macro.

2012-09-01  Uros Bizjak  <ubizjak@gmail.com>

	* target.def (legitimate_combined_insn): New target hook.
	* doc/tm.texi.in (TARGET_LEGITIMATE_COMBINED_INSN): New hook.
	* doc/tm.texi: Regenerated.
	* combine.c (recog_for_combine): Call targetm.legitimate_combined_insn
	to allow targets to reject combined insn.
	* hooks.h (hook_bool_rtx_true): New.
	* hooks.c (hook_bool_rtx_true): Ditto.

2012-08-31  Martin Jambor  <mjambor@suse.cz>

	* ipa-inline-analysis.c (estimate_function_body_sizes): Allocate
	nonconstant_names after calculate_dominance_info and
	loop_optimizer_init.

2012-08-31  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.c (arm_expand_epilogue): Remove unused variable
	floats_from_frame.

2012-08-31  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/54409
	* ipa-inline-analysis.c (remap_predicate): Fix the offset_map
	checking condition.

2012-08-31  Martin Jambor  <mjambor@suse.cz>

	* ipa-inline-analysis.c (phi_result_unknown_predicate): New function.
	(predicate_for_phi_result): Likewise.
	(estimate_function_body_sizes): Use the above two functions.

2012-08-31  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/54394
	* ipa-inline-analysis.c (estimate_function_body_sizes): Compute
	dominance info and loops whenever optimizing.

2012-08-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/54252
	* config/arm/arm.c (neon_dereference_pointer): Adjust nelems by
	element size. Use elem_type from the formal parameter. New parameter
	fcode.
	(neon_expand_args): Adjust call to neon_dereference_pointer.

2012-08-29  Steven Bosscher  <steven@gcc.gnu.org>

	* cfg.c (dump_bb_info): Print a newline if there were no edges to dump.

2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>

	Revert:
	* config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
	mapping style, add ../lib/mips16.
	(MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
	(MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.

2012-08-29  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_synci
	if TARGET_SYNCI.

2012-08-29  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.opt (menable-tas): Rename to mtas.
	* doc/invoke.texi (SH options): Likewise.
	* config/sh/sync.md: Update comments.

2012-08-29  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/iterators.md: New file.
	* config/sh/sync.md (I124, I12, i124suffix): Delete.  Replace usage
	with new iterators QIHISI, QIHI, bw, bwl respectively throughout
	the file.
	* config/sh/sh.md: Include new file iterators.md.
	(zero_extendhisi2, zero_extendqisi2): Fold into zero_extend<mode>si2.
	(*zero_extendhisi2_compact, *zero_extendqisi2_compact): Fold into
	*zero_extend<mode>si2_compact.
	(*zero_extendqisi2_disp_mem, zero_extendhisi2_disp_mem): Fold into
	*zero_extend<mode>si2_disp_mem.
	(extendhisi2, extendqisi2): Fold into extend<mode>si2.
	(*extendqisi2_compact_reg, *extendhisi2_compact_reg): Fold into
	*extend<mode>si2_compact_reg.
	(*extendqisi2_compact_mem_disp, *extendhisi2_compact_mem_disp): Fold
	into *extend<mode>si2_compact_mem_disp.
	(*extendqisi2_compact_snd, *extendhisi2_compact_snd): Fold into
	*extend<mode>si2_compact_snd.
	(*movsi_index_disp, *movhi_index_disp): Fold with iterators and rename
	to *movsi_index_disp_load, *movhi_index_disp_load,
	*mov<mode>_index_disp_store.
	(*movqi_reg_reg, *movhi_reg_reg): Fold into *mov<mode>_reg_reg.
	(*movqi_store_mem_disp04, *movhi_store_mem_disp05): Fold into
	*mov<mode>_store_mem_disp04.
	(*movqi_store_mem_disp12, *movhi_store_mem_disp13): Fold into
	*mov<mode>_store_mem_disp12.
	(*movqi_load_mem_disp, *movhi_load_mem_disp): Fold into
	*mov<mode>_load_mem_disp04 and *mov<mode>_load_mem_disp12.

2012-08-29  Martin Jambor  <mjambor@suse.cz>

	* ipa-inline.h (estimate_edge_hints): Call do_estimate_edge_hints, not
	do_estimate_edge_time.

2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Add nomips16 asm
	directives, remove #ifndef __mips16 guards.
	* config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
	mapping style, add ../lib/mips16.
	(MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
	(MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.

2012-08-28  Walter Lee  <walt@tilera.com>
	* confg/tilegx/tilegx.md: Fix code style.
	(*zero_extendsidi_truncdisi): Fix typo.
	* config/tilegx/tilegx.c: Fix code style.
	(tilegx_function_profiler): Fix typo.

2012-08-28  Walter Lee  <walt@tilera.com>

	* doc/invoke.texi: Document -mcmodel=small, -mcmodel=large.
	* config/tilegx/tilegx.h: Include config/tilegx/tilegx-opts.h.
	(CRT_CALL_STATIC_FUNCTION): Define.
	* config/tilegx/predicates.md (const_last_symbolic_operand):
	Handle UNSPEC_HW2_LAST_PCREL, UNSPEC_HW1_LAST_PLT_PCREL, and
	UNSPEC_HW2_LAST_PLT_PCREL.
	(const_symbolic_operand): Handle UNSPEC_HW1_PCREL,
	UNSPEC_HW0_PLT_PCREL, and UNSPEC_HW1_PLT_PCREL.
	* config/tilegx/tilegx.md (UNSPEC_MOV_LARGE_PCREL_STEP4): Define,
	and renumber the constants that follow.
	(UNSPEC_HW1_PCREL): Ditto.
	(UNSPEC_HW2_LAST_PCREL): Ditto.
	(UNSPEC_HW0_PLT_PCREL): Define.
	(UNSPEC_HW1_PLT_PCREL): Define.
	(UNSPEC_HW1_LAST_PLT_PCREL): Define.
	(UNSPEC_HW2_LAST_PLT_PCREL): Define.
	(mov_large_pcrel_step1): Define.
	(mov_large_pcrel_step2): Define.
	(mov_large_pcrel_step3): Define.
	(mov_large_pcrel_step4): Define.
	(mov_plt_pcrel_step1): Define.
	(mov_plt_pcrel_step2): Define.
	(mov_plt_pcrel_step3): Define.
	(mov_plt_pcrel_step1_32bit): Define.
	(mov_plt_pcrel_step2_32bit): Define.
	(call): Handle tilegx_cmodel == CM_LARGE, CM_LARGE_PIC.
	(call_value): Ditto.
	* config/tilegx/tilegx.opt: Include config/tilegx/tilegx-opts.h.
	(mcmodel): New option.
	(enum cmodel): Define.
	(CM_SMALL): Define.
	(CM_LARGE): Define.
	* config/tilegx/tilegx-opts.h: New file.
	* config/tilegx/tilegx-protos.h (tilegx_compute_pcrel_address):
	Declare.
	(tilegx_compute_pcrel_plt_address): Declare.
	* config/tilegx/tilegx.c (tilegx_option_override): Handle
	tilegx_cmodel.
	(tilegx_function_ok_for_sibcall): Ditto.
	(compute_pcrel_address): Rename to tilegx_compute_pcrel_address,
	and don't declare static.  Handle tilegx_cmodel.
	(tilegx_compute_pcrel_plt_address): Define.
	(tilegx_legitimize_pic_address): Rename calls to
	compute_pcrel_address.
	(tilegx_delegitimize_address): Handle UNSPEC_HW1_PCREL,
	UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
	UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.
	(load_pic_register): Rename call to compute_pcrel_address.
	(tilegx_print_operand): Handle UNSPEC_HW1_PCREL,
	UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
	UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.

2012-08-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* sched-deps.c (add_dependence_list_and_free): Simplify.
	(flush_pending_list_and_free): Fix a hack that was fixing a hack.  Free
	lists when add_dependence_list_and_free doesn't free them.

2012-08-27  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46254
	* config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return
	true for TARGET_64BIT or !flag_pic.
	* config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove.
	(atomic_compare_and_swap_double<mode>): Change operand 2 predicate
	to cmpxchg8b_pic_memory_operand.  Use DWIH mode iterator.
	Add insn constraint.  Conditionally emit xchg asm insns.
	(atomic_compare_and_swap<mode>): Update calls.  Check only
	cmpxchg8b_pic_memory_operand in memory address fixup.
	(DCASMODE): Remove.
	(CASHMODE): Rename from DCASHMODE.
	(doublemodesuffix): Update modes.
	(regprefix): New mode attribute.

	(unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove.
	<UNSPECV_CMPXCHG>: New constant.
	(atomic_compare_and_swap<mode>_1): Rename from
	atomic_compare_and_swap_single<mode>.  Update calls and
	unspec_volatile constants.
	(atomic_compare_and_swap<mode>_doubleword): Rename from
	atomic_compare_and_swap_double<mode>.  Update calls and
	unspec_volatile constants.

2012-08-27  Walter Lee  <walt@tilera.com>

	* doc/md.texi (TILE-Gx): Fix typo.

2012-08-27  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_function_profiler): Fix typo.
	* config/tilepro/tilepro.c (tilepro_function_profiler): Ditto.

2012-08-27  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.md (*bfins): Rename to insn_bfins.
	(insn_bfins): Delete.

2012-08-27  Walter Lee  <walt@tilera.com>

	* config/tilegx/sync.md (atomic_compare_and_swap_bare<mode>,
	atomic_exchange_bare<mode>,
	atomic_fetch_<fetchop_name>_bare<mode>): Set type to X1_remote.
	* config/tilegx/tilegx-generic.md (X1_remote): New
	insn_reservation.
	* config/tilegx/tilegx.md (type): Add X1_remove.
	(insn_cmpexch<four_if_si>, insn_exch<four_if_si>,
	insn_fetchadd<four_if_si>, insn_fetchaddgez<four_if_si>,
	insn_fetchand<four_if_si>, insn_fetchor<four_if_si>): Set type to
	X1_remote.

2012-08-27  Andreas Schwab  <schwab@linux-m68k.org>

	* gdbinit.in: Fix syntax of skip command.

2012-08-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_pic_call_symbol_from_set): Check for
	SYMBOL_REF SET_SRCs.

2012-08-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (vr4130_align_insns): Don't simulate
	ghost instructions.  Assert that the required instructions exist.

2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (AVOID_CCMODE_COPIES): Update rationale for
	definition.
	* config/mips/mips.c (machine_function): Add next_fcc.
	(mips_output_move): Remove handling of fcc moves.
	(mips_allocate_fcc): New function.
	(mips_emit_compare, mips_expand_vcondv2sf): Use it.
	(mips_hard_regno_mode_ok_p): Restrict CCmode to ST registers.
	Remove special case for CCmode reloads.
	(mips_expand_builtin_compare_1): Use mips_allocate_fcc and treat
	the result a fixed operand.
	* config/mips/mips.md (move_type): Remove lui_movf.
	(type, length): Remove references to it.
	(movcc, reload_incc, reload_outcc): Delete.

2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_has_long_branch_p): New function,
	split out from...
	(mips_expand_ghost_gp_insns): ...here.  Look inside sequences.

2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (r10k_safe_mem_expr_p): Use get_inner_reference.

2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_rtx_costs): Add costs for CINS.

2012-08-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_rtx_costs): Add missing COSTS_N_INSNS
	to the size cost of multiplication.

2012-08-26  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Clarify what needs to be added to
	this section.

2012-08-26  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/tm.texi.in (Misc): Move descriptions of NO_DOLLAR_IN_LABEL
	and NO_DOT_IN_LABEL from here...
	(Label Output): ...to here.
	* doc/tm.texi: Regenerate.

2012-08-26  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (C++ Dialect Options): Add missing space.

2012-08-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/54088
	* jump.c (delete_related_insns): Robustify latest change.

2012-08-25  Ricardo Catalinas JimÃ©nez  <jimenezrick@gmail.com>

	* doc/extend.texi (__atomic Builtins): Remove space before comma.

2012-08-25  Richard Sandiford  <rdsandiford@googlemail.com>
	    Andrew Pinski  <apinski@cavium.com>

	* config/mips/mips.h (CASE_VECTOR_MODE): For not
	TARGET_MIPS16_SHORT_JUMP_TABLES use ptr_mode.
	(CASE_VECTOR_SHORTEN_MODE): Likewise.

2012-08-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (FP_REG_P): Remove macro.
	(FP_REGNO_P): Ditto.
	(HARD_REGNO_NREGS): Use STACK_REGNO_P instead of FP_REGNO_P.
	(HARD_REGNO_NREGS_HAS_PADDING): Ditto.
	(ANY_FP_REGNO_P): Ditto.
	(HARD_REGNO_RENAME_OK): Use STACK_REGNO_P.
	* config/i386/i386.c (output_387_ffreep): Use STACK_REGNO_P
	instead of FP_REGNO_P.
	(ix86_hard_regno_mode_ok): Ditto.
	* config/i386/predicates.md (fp_register_operand): Ditto.
	(register_and_not_fp_reg_operand): Ditto.
	* config/i386/sync.md (atomic_loaddi_fpu): Use STACK_REG_P instead
	of FP_REG_P.

	* reg-stack.c (get_true_reg): Use STACK_REG_P instead of FP_REG_P.

2012-08-24  Jason Merrill  <jason@redhat.com>

	* print-tree.c (print_node): Don't check TREE_LANG_FLAG_*
	on TREE_VEC or SSA_NAME.

2012-08-24  Jakub Jelinek  <jakub@redhat.com>

	PR c/54363
	* gimplify.c (optimize_compound_literals_in_ctor): Only recurse
	if init is a CONSTRUCTOR.

2012-08-24  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-ssa-live.c (dump_var_map): Do not dump the partition
	map of virtual operands.

2012-08-24  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* config/i386/i386.c (ia32_multipass_dfa_lookahead) : Add
	case for Atom processor.

2012-08-24  Simon Baldwin  <simonb@google.com>

	* dwarf2out.c (gen_producer_string): Omit command line switch if
	CL_NO_DWARF_RECORD flag set.
	* opts.h (CL_NO_DWARF_RECORD): New.
	* opt-functions.awk (switch_flags): Add NoDWARFRecord.
	* doc/options.texi: Document NoDWARFRecord option flag.

2012-08-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/52857
	* dwarf2out.c (mem_loc_descriptor): Allow arg_pointer_rtx and
	frame_pointer_rtx for based_loc_descr.

2012-08-24  Martin Jambor  <mjambor@suse.cz>

	* predict.c (maybe_hot_frequency_p): New parameter fun.  Use its decl
	instead of current_function_decl, use profile_status_for_function and
	ENTRY_BLOCK_PTR_FOR_FUNCTION with fun instead of their cfun variants.
	(maybe_hot_count_p): New parameter fun, use
	profile_status_for_function instead of its cfun_variant.
	(maybe_hot_bb_p): New parameter fun, checking-assert it, pass it to
	all callees.
	(maybe_hot_edge_p): Pass cfun to maybe_hot_count_p and
	maybe_hot_frequency_p.
	(probably_never_executed_bb_p): New parameter fun, use its decl
	instead of current_function_decl.
	(optimize_bb_for_size_p): Pass cfun to maybe_hot_bb_p.
	(rtl_profile_for_bb): Likewise.
	(compute_function_frequency): Pass cfun to maybe_hot_bb_p and
	probably_never_executed_bb_p.
	* tree-ssa-operands.c (ssa_operands_active): New operator fun.  Use it
	instead of cfun.
	(update_stmt_operands): Pass cfun as an argument of
	ssa_operands_active.
	(swap_tree_operands): Likewise.
	* gimple-iterator.c (update_modified_stmt): Likewise.
	(update_modified_stmts): Likewise.
	* tree-flow-inline.h (delink_stmt_imm_use): Likewise.
	* tree-ssa.c (delete_tree_ssa): Likewise.
	* bb-reorder.c (bb_to_key): Pass cfun to probably_never_executed_bb_p.
	(push_to_next_round_p): Likewise.
	(find_rarely_executed_basic_blocks_and_crossing_edges ): Likewise.
	* cfg.c: Inlude tree.h.
	(check_bb_profile): Use profile_status_for_function,
	EXIT_BLOCK_PTR_FOR_FUNCTION and ENTRY_BLOCK_PTR_FOR_FUNCTION with
	DECL_STRUCT_FUNCTION (current_function_decl) instead of their cfun
	variants.
	(dump_bb_info): Pass DECL_STRUCT_FUNCTION (current_function_decl) to
	maybe_hot_bb_p and probably_never_executed_bb_p.
	* gimple-pretty-print.c (gimple_dump_bb_buff): Checking-assert that
	DECL_STRUCT_FUNCTION (current_function_decl) is not NULL.  Pass it to
	dump_histograms_for_stmt.
	(dump_gimple_mem_ops): Pass
	DECL_STRUCT_FUNCTION (current_function_decl)
	as an argument to dump_gimple_mem_ops.
	* tree-cfg.c (dump_function_to_file): Rename parameter fn to fndecl.
	Do not change cfun.  Change and restore current_function_decl.
	* Makefile.in (cfg.o): Include TREE_H in dependencies.

2012-08-24  Georg-Johann Lay  <avr@gjlay.de>

	PR target/54222
	* avr-modes.def (HA, SA, DA, TA, UTA): Adjust modes.
	* avr/avr-fixed.md: New file.
	* avr/avr.md: Include it.
	(cc): Add: minus.
	(adjust_len): Add: minus, minus64, ufract, sfract.
	(ALL1, ALL2, ALL4, ORDERED234): New mode iterators.
	(MOVMODE): Add: QQ, UQQ, HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
	(MPUSH): Add: HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
	(pushqi1, xload8_A, xload_8, movqi_insn, *reload_inqi, addqi3,
	subqi3, ashlqi3, *ashlqi3, ashrqi3, lshrqi3, *lshrqi3, *cmpqi,
	cbranchqi4, *cpse.eq): Generalize to handle all 8-bit modes in ALL1.
	(*movhi, reload_inhi, addhi3, *addhi3, addhi3_clobber, subhi3,
	ashlhi3, *ashlhi3_const, ashrhi3, *ashirhi3_const, lshrhi3,
	*lshrhi3_const, *cmphi, cbranchhi4): Generalize to handle all
	16-bit modes in ALL2.
	(subhi3, casesi, strlenhi): Add clobber when expanding minus:HI.
	(*movsi, *reload_insi, addsi3, subsi3, ashlsi3, *ashlsi3_const,
	ashrsi3, *ashrhi3_const, *ashrsi3_const, lshrsi3, *lshrsi3_const,
	*reversed_tstsi, *cmpsi, cbranchsi4): Generalize to handle all
	32-bit modes in ALL4.
	* avr-dimode.md (ALL8): New mode iterator.
	(adddi3, adddi3_insn, adddi3_const_insn, subdi3, subdi3_insn,
	subdi3_const_insn, cbranchdi4, compare_di2,
	compare_const_di2, ashrdi3, lshrdi3, rotldi3, ashldi3_insn,
	ashrdi3_insn, lshrdi3_insn, rotldi3_insn): Generalize to handle
	all 64-bit modes in ALL8.
	* config/avr/avr-protos.h (avr_to_int_mode): New prototype.
	(avr_out_fract, avr_out_minus, avr_out_minus64): New prototypes.
	* config/avr/avr.c (TARGET_FIXED_POINT_SUPPORTED_P): Define to...
	(avr_fixed_point_supported_p): ...this new static function.
	(TARGET_BUILD_BUILTIN_VA_LIST): Define to...
	(avr_build_builtin_va_list): ...this new static function.
	(avr_adjust_type_node): New static function.
	(avr_scalar_mode_supported_p): Allow if ALL_FIXED_POINT_MODE_P.
	(avr_builtin_setjmp_frame_value): Use gen_subhi3 and return new
	pseudo instead of gen_rtx_MINUS.
	(avr_print_operand, avr_operand_rtx_cost): Handle: CONST_FIXED.
	(notice_update_cc): Handle: CC_MINUS.
	(output_movqi): Generalize to handle respective fixed-point modes.
	(output_movhi, output_movsisf, avr_2word_insn_p): Ditto.
	(avr_out_compare, avr_out_plus_1): Also handle fixed-point modes.
	(avr_assemble_integer): Ditto.
	(output_reload_in_const, output_reload_insisf): Ditto.
	(avr_compare_pattern): Skip all modes > 4 bytes.
	(avr_2word_insn_p): Skip movuqq_insn, movqq_insn.
	(avr_out_fract, avr_out_minus, avr_out_minus64): New functions.
	(avr_to_int_mode): New function.
	(adjust_insn_length): Handle: ADJUST_LEN_SFRACT,
	ADJUST_LEN_UFRACT, ADJUST_LEN_MINUS, ADJUST_LEN_MINUS64.
	* config/avr/predicates.md (const0_operand): Allow const_fixed.
	(const_operand, const_or_immediate_operand): New.
	(nonmemory_or_const_operand): New.
	* config/avr/constraints.md (Ynn, Y00, Y01, Y02, Ym1, Ym2, YIJ):
	New constraints.
	* config/avr/avr.h (LONG_LONG_ACCUM_TYPE_SIZE): Define.

2012-08-23  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* alias.c (rtx_equal_for_memref_p): Convert constant cases.
	* combine.c (find_single_use_1, mark_used_regs_combine): Convert
	to CASE_CONST_ANY.
	* cse.c (exp_equiv_p, canon_reg, fold_rtx, cse_process_notes_1,
	count_reg_usage): Convert constant cases.
	* cselib.c (cselib_expand_value_rtx_1): Convert to CASE_CONST_ANY.
	(cselib_subst_to_values): Convert constant cases.
	* df-scan.c (df_uses_record): Ditto.
	* dse.c (const_or_frame_p): Convert case statements to explicit
	if-then-else using mode classes.
	* emit-rtl.c (verify_rtx_sharing, copy_insn_1): Convert constant cases.
	* explow.c (convert_memory_address_addr_space): Ditto.
	* gcse.c (want_to_gcse_p, oprs_unchanged_p, compute_transp): Ditto.
	* genattrtab.c (attr_copy_rtx, clear_struct_flag): Ditto.
	* ira.c (equiv_init_varies_p, contains_replace_regs,
	memref_referenced_p, rtx_moveable_p): Ditto.
	* jump.c (mark_jump_label_1): Remove constant cases.
	(rtx_renumbered_equal_p): Convert to CASE_CONST_UNIQUE.
	* loop-invariant.c (check_maybe_invariant, hash_invariant_expr_1,
	invariant_expr_equal_p): Convert to CASE_CONST_ANY.
	* postreload-gcse.c (oprs_unchanged_p): Convert constant cases.
	* reginfo.c (reg_scan_mark_refs): Ditto.
	* regrename.c (scan_rtx): Ditto.
	* reload1.c (eliminate_regs_1, elimination_effects,
	scan_paradoxical_subregs): Ditto.
	* reload.c (operands_match_p, subst_reg_equivs):  Ditto.
	* resource.c (mark_referenced_resources, mark_set_resources): Ditto.
	* rtlanal.c (rtx_unstable_p, rtx_varies_p, count_occurrences)
	(reg_mentioned_p, modified_between_p, modified_in_p)
	(volatile_insn_p, volatile_refs_p, side_effects_p, may_trap_p_1,
	inequality_comparisons_p, computed_jump_p_1): Ditto.
	* rtl.c (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Ditto.
	* sched-deps.c (sched_analyze_2): Ditto.
	* valtrack.c (cleanup_auto_inc_dec): Ditto.
	* rtl.h: (CASE_CONST_SCALAR_INT, CASE_CONST_UNIQUE,
	CASE_CONST_ANY): New macros.

2012-08-23  Julian Brown  <julian@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/mips.md
	(UNSPEC_CASESI_DISPATCH): New.
	(MIPS16_T_REGNUM): New constant.
	(tablejump): Don't use for MIPS16_SHORT_JUMP_TABLES.
	(casesi): New.
	(casesi_internal_mips16_<mode>): New.
	* config/mips/mips.c (mips16_split_long_branches): Adjust test
	to ignore casesi jump tables.
	* config/mips/mips.h (TARGET_MIPS16_SHORT_JUMP_TABLES): Update
	comment.
	(CASE_VECTOR_MODE): Use SImode unconditionally.
	(CASE_VECTOR_SHORTEN_MODE): Define.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Output word-sized addr_diff_elts
	when necessary for MIPS16_SHORT_JUMP_TABLES.

2012-08-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_density_test): Free loop body.

2012-08-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/54335
	* doc/invoke.texi: Add -da and remove -dm.

2012-08-23  Richard Guenther  <rguenther@suse.de>

	* tree-vect-stmts.c (vect_finish_stmt_generation): Update
	virtual SSA form.

2012-08-23  Jakub Jelinek  <jakub@redhat.com>

	* tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION.

2012-08-23  Mingjie Xing  <mingjie.xing@gmail.com>

	* doc/gty.texi: Fix typo.

2012-08-23  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-manip.c (add_exit_phis_var): Allow virtual operands.
	(find_uses_to_rename_use): Likewise.
	(find_uses_to_rename_bb): Likewise.
	(find_uses_to_rename_stmt): Walk over all operands.

2012-08-22  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/predicates (p27_rshift_count_operand,
	not_p27_rshift_count_operand): New predicates.
	* config/sh/sh.c (sh_ashlsi_clobbers_t_reg_p,
	sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p): Handle special
	case when shift amount is 31.
	(gen_ashift): Emit gen_shlr instead of gen_lshrsi3_m.
	* config/sh/sh.md (ashlsi3_d): Set type to 'dyn_shift' instead
	of 'arith'.
	(ashlsi_c): Rename to shll.  Adapt calls to gen_ashlsi_c throughout
	the file.
	(lshrsi3): Remove clobber from expander.  Use shift_count_operand
	instead of nonmemory_operand predicate for second operand.  Add
	handling of case lshrsi3_n_clobbers_t.
	(lshrsi3_k): Use p27_rshift_count_operand for second operand.
	(lshrsi3_d): Make insn_and_split.  Split dynamic shift to constant
	shift sequences if beneficial.
	(lshrsi3_n): Make insn_and_split.  Split constant shift sequence to
	dynamic shift if beneficial.
	(lshrsi3_n_clobbers_t): New insn_and_split.
	(lshrsi3_m): Delete.

2012-08-22  Steven Bosscher  <steven@gcc.gnu.org>

	* tracer.c (mark_bb_seen): Use SBITMAP_SIZE.

	* alias.c (MAX_ALIAS_LOOP_PASSES): Update comment with rationale,
	or rather a lack thereof.
	(init_alias_analysis): Propagate the latest information across
	the CFG in topological order to propagate as far as possible in
	each iteration.  Ignore debug insns.

2012-08-22  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/invoke.texi: Document -mlong-double-64/-mlong-double-80.
	* config/i386/i386.c (flag_opts): Add -mlong-double-64.
	(TARGET_HAS_BIONIC): Default long double to 64-bit for Bionic.
	* config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 64 if
	TARGET_LONG_DOUBLE_64 is true.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New macro.
	(WIDEST_HARDWARE_FP_SIZE): Defined to 80.
	* config/i386/i386.opt (mlong-double-80): New option.
	(mlong-double-64): Likewise.
	* config/i386/i386-c.c (ix86_target_macros): Define
	__LONG_DOUBLE_64__ for TARGET_LONG_DOUBLE_64.

2012-08-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/54347
	* config/i386/i386.c (ix86_split_to_parts): Replace
	REAL_VALUE_TO_TARGET_LONG_DOUBLE with real_to_target.

2012-08-22  Richard Guenther  <rguenther@suse.de>

	* tree-vectorizer.c (vectorize_loops): Do not call
	mark_virtual_operands_for_renaming.
	* tree-vect-slp.c (vect_slp_transform_bb): Likewise.
	Do not update SSA form here.

2012-08-22  Dodji Seketeli  <dodji@redhat.com>

	* tree.h (TREE_NOTHROW): Use the base.nothrow_flag.

2012-08-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46590
	* tree-ssa-alias.h (get_continuation_for_phi): Add alias query
	counter output argument.
	(walk_non_aliased_vuses): Add alias query counter argument
	to the walker callback.
	* tree-ssa-alias.c (maybe_skip_until): Add alias query counter
	output argument and count alias queries.
	(get_continuation_for_phi_1): Likewise.
	(get_continuation_for_phi): Likewise.
	(walk_non_aliased_vuses): Add alias query counter argument
	to the walker callback and allow it to abort the walk by
	returning -1.
	* tree-ssa-pre.c (translate_vuse_through_block): Adjust.
	* tree-ssa-sccvn.c (vn_reference_lookup_2): Add alias query
	counter parmeter, abort walk if that is bigger than
	--param sccvn-max-alias-queries-per-access.
	* params.def (sccvn-max-alias-queries-per-access): New param.
	* doc/invoke.texi (sccvn-max-alias-queries-per-access): Document.

2012-08-22  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-ch.c (copy_loop_headers): Remove redundant checking.
	* tree-into-ssa.c (initialize_flags_in_bb): Use gcc_checking_assert
	instead of gcc_assert.
	(mark_block_for_update): Likewise.
	(add_new_name_mapping): Likewise.
	(mark_def_sites): Likewise.
	(insert_phi_nodes_for): Likewise.
	(rewrite_debug_stmt_uses): Likewise.
	(rewrite_stmt): Likewise.
	(maybe_register_def): Likewise.
	(rewrite_update_phi_arguments): Likewise.
	(rewrite_update_enter_block): Likewise.
	(mark_def_interesting): Likewise.
	(prepare_def_site_for): Likewise.
	(insert_updated_phi_nodes_for): Likewise.

2012-08-22  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-loop.c (vect_transform_loop): Initialize
	check_profitability to false.

	* tree-predcom.c (try_combine_chains): Free the worklist vector
	at the end.

2012-08-22  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/54317
	* tree-vrp.c (extract_range_from_binary_expr_1): Test for
	double_int overflow.
	Remove dead tests.

2012-08-22  Jakub Jelinek  <jakub@redhat.com>

	* tree-vrp.c (find_assert_locations): Skip also edges
	from the entry block.

	* tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Call
	free_stmt_vec_info on orig_cond after gsi_removing it.
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Always
	free body_cost_vec vector.
	(vect_analyze_data_refs): If gather is unsuccessful,
	free_data_ref (dr).
	* tree-inline.c (tree_function_versioning): Free
	old_transforms_to_apply vector.

2012-08-22  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-ssa-coalesce.c (struct ssa_conflicts_d): Make contents
	of this a VEC and add a bitmap obstack.
	(ssa_conflicts_new): Allocate the obstack and grow the VEC cleared
	to the right size.
	(ssa_conflicts_delete): Free the VEC and release the obstack.
	(ssa_conflicts_test_p, ssa_conflicts_test_p, ssa_conflicts_add_one,
	ssa_conflicts_merge, ssa_conflicts_dump): Update for above changes.
	(truct live_track_d): Add another bitmap obstack here.
	(new_live_track): Initialize it and use it for all bitmaps.
	(delete_live_track): Don't free the bitmaps one at a time, just
	release the obstack.
	(create_outofssa_var_map): Fix to conform to GCC code style rules.

2012-08-21  Nathan Froyd  <froydnj@gcc.gnu.org>

	* config/m32c/constraints.md: New file.
	* config/m32c/t-m32c (MD_FILES): Add constraints.
	* config/m32c/m32c-protos.h (m32c_const_ok_for_constraint_p): Delete.
	(m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
	(m32c_reg_class_from_constraint): Delete.
	(m32c_extra_constraint_p, m32c_extra_constraint_p2): Delete.
	(m32c_matches_constraint_p): Declare.
	* config/m32c/m32c.h (CONSTRAINT_LEN): Delete.
	(REG_CLASS_FROM_CONSTRAINT): Delete.
	(CONST_OK_FOR_CONSTRAINT_P): Delete.
	(CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Delete.
	(EXTRA_CONSTRAINT_STR): Delete.
	(EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Delete.
	* config/m32c/m32c.c: Include tm-constrs.h
	(m32c_reg_class_from_constraint): Delete.
	(m32c_const_ok_for_constraint_p): Delete.
	(m32c_extra_constraint_p2): Rename to...
	(m32c_matches_constraint_p): ...this.  Make it return bool.  Tweak
	formatting.
	(m32c_extra_constraint_p): Delete.
	(m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
	(m32c_split_move): Use satisfies_constraint_Ss.
	* config/m32c/predicates.md (memsym_operand): Use
	satisfies_constraint_Si.
	(memimmed_operand): Use satisfies_constraint_Sp.
	(m32c_psi_scale, m32c_1bit8_operand): Use satisfies_constraint_Ilb.
	(m32c_1bit16_operand): Use satisfies_constraint_Ilw.
	(m32c_1mask8_operand): Use satisfies_constraint_ImB.
	(m32c_1mask16_operand): Use satisfies_constraint_Imw.

2012-08-21  Nathan Froyd  <froydnj@gcc.gnu.org>

	* config/mep/mep.h (REG_CLASS_FROM_CONSTRAINT): Delete.
	(CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
	(CONSTRAINT_LEN, EXTRA_CONSTRAINT): Delete.
	* config/mep/mep.c (mep_reg_class_from_constraint): Delete.
	(mep_const_ok_for_letter_p, mep_extra_constraint): Delete.
	* config/mep/mep-protos.h (mep_reg_class_from_constraint): Delete.
	(mep_const_ok_for_letter_p, mep_extra_constraint): Delete.

2012-08-21  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md (cmpeqdi_t, cmpgtdi_t, cmpgedi_t, cmpgeudi_t,
	cmpgtudi_t, *movsicc_t_false, *movsicc_t_true, divsi_inv20, negsi_cond,
	truncdihi2, ic_invalidate_line_i, ic_invalidate_line_sh4a,
	ic_invalidate_line_media, movdf_i4, calli_pcrel, call_valuei,
	call_valuei_pcrel, sibcalli_pcrel, sibcall_compact,
	sibcall_valuei_pcrel, sibcall_value_compact, casesi_worker_1,
	casesi_worker_2, bandreg_m2a, borreg_m2a, bxorreg_m2a, sp_switch_1,
	sp_switch_2, stack_protect_set_si, stack_protect_set_si_media,
	stack_protect_set_di_media, stack_protect_test_si,
	stack_protect_test_si_media, stack_protect_test_di_media): Convert to
	multi-line asm output strings.
	(divsi_inv_qitable, divsi_inv_hitable): Use single-alternative asm
	output.
	(*andsi3_bclr, rotldi3_mextr, rotrdi3_mextr, calli,
	call_valuei_tbr_rel, movml_push_banked, movml_pop_banked, bclr_m2a,
	bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a, bldsign_m2a,
	bld_reg, *bld_regqi, band_m2a, bor_m2a, bxor_m2a, mextr_rl, *mextr_lr):
	Use tab char instead of '\\t'.
	(iordi3): Use braced string.
	(*movsi_pop): Use tab chars instead of spaces.

2012-08-21  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/39423
	* config/sh/sh.md (*movhi_index_disp): Add support for SH2A
	movu.w insn.

2012-08-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/54332
	* df-scan.c (df_bb_verify): Restore df_free_collection_rec call
	inside the insn traversal loop.

	* vec.h (vec_reserve): Remove the stack allocation check.

2012-08-21  Marc Glisse  <marc.glisse@inria.fr>

	* fold-const.c (fold_ternary_loc): Detect identity permutations.
	Canonicalize permutations more.
	* tree-ssa-forwprop.c (is_combined_permutation_identity): New function.
	(simplify_permutation): Likewise.
	(ssa_forward_propagate_and_combine): Call it.

2012-08-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-im.c (tree_ssa_lim_finalize): Properly free
	the affine expansion cache.
	* tree-ssa-dom.c (free_expr_hash_elt_contents): New function,
	split out from ...
	(free_expr_hash_elt): ... this one.
	(record_cond): Properly free a not needed hashtable element.
	(lookup_avail_expr): Likewise.
	* tree-into-ssa.c (init_ssa_renamer): Specify a free function
	for the var_infos hashtable.
	(update_ssa): Likewise.

2012-08-21  Richard Guenther  <rguenther@suse.de>

	* alloc-pool.c (pool_alloc): Fix valgrind annotation.
	* tree.h: Fix typo and complete flags documentation.

2012-08-21  Richard Guenther  <rguenther@suse.de>

	* tree.h (struct tree_base): Add union to make it possible to
	re-use the upper 4 bytes for tree codes that do not need as
	many flags as others.  Move visited and default_def_flag to
	common bits section in exchange for saturating_flag and
	unsigned_flag.  Add SSA name version and tree vec length
	fields here.
	(struct tree_vec): Remove length field here.
	(struct tree_ssa_name): Remove version field here.

2012-08-20  Jan Hubicka  <jh@suse.cz>

	PR fortran/48636
	* ipa-inline.c (want_inline_small_function_p): Take loop_iterations
	hint.
	(edge_badness): Likewise.
	* ipa-inline.h (inline_hints_vals): Add INLINE_HINT_loop_iterations.
	(inline_summary): Add loop_iterations.
	* ipa-inline-analysis.c: Include tree-scalar-evolution.h.
	(dump_inline_hints): Dump loop_iterations.
	(reset_inline_summary): Free loop_iterations.
	(inline_node_duplication_hook): Update loop_iterations.
	(dump_inline_summary): Dump loop_iterations.
	(will_be_nonconstant_expr_predicate): New function.
	(estimate_function_body_sizes): Analyze loops.
	(estimate_node_size_and_time): Set hint loop_iterations.
	(inline_merge_summary): Merge loop iterations.
	(inline_read_section): Stream in loop_iterations.
	(inline_write_summary): Stream out loop_iterations.

2012-08-20  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/sh.md (rotcr, *rotcr, shar, shlr): New insns and splits.
	(ashrdi3_k, lshrdi3_k): Rewrite as insn_and_split.
	* config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p): New function.
	* config/sh/sh-protos.h (sh_lshrsi_clobbers_t_reg_p): Declare it.

2012-08-20  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md (*cset_zero): New insns.

2012-08-20  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.h (enum dw_val_class): Add dw_val_class_high_pc.
	* dwarf2out.c (dw_val_equal_p): Handle dw_val_class_high_pc.
	(add_AT_low_high_pc): New function.
	(AT_lbl): Handle dw_val_class_high_pc.
	(print_die): Likewise.
	(attr_checksum): Likewise.
	(attr_checksum_ordered): Likewise.
	(same_dw_val_p): Likewise.
	(size_of_die): Likewise.
	(value_format): Likewise.
	(output_die): Likewise.
	(gen_subprogram_die): Use add_AT_low_high_pc.
	(add_high_low_attributes): Likewise.
	(dwarf2out_finish): Likewise.

2012-08-20  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/54294
	* fwprop.c (all_uses_available_at): Ignore debug insns in between
	def_insn and target_insn when checking whether the shortcut is
	possible.

2012-08-20  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.h (MAX_FIXED_MODE_SIZE): Define.

2012-08-20  Patrick Marlier  <patrick.marlier@gmail.com>

	PR middle-end/53992
	* omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION.

2012-08-20  Richard Earnshaw  <rearnsha@arm.com>

	PR tree-ssa/54295
	* tree-ssa-math-opts.c (is_widening_mult_rhs_p): Delete rhs_code
	declaration and setter.

2012-08-20  Richard Earnshaw  <rearnsha@arm.com>

	PR tree-ssa/54295
	* tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
	New function.
	(is_widening_mult_rhs_p): Use it.

2012-08-20  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (ffs): Check for declaration.
	* configure, config.in: Regenerate.

2012-08-20  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (register_new_name_mapping): Remove.
	* tree-into-ssa.c (register_new_name_mapping): Likewise.
	(add_new_name_mapping): Do not push/pop timevar here.
	(create_new_def_for): Instead do it here.  Initialize
	update-ssa here, handle a NULL def.
	* tree-vrp.c (build_assert_expr_for): Use create_new_def_for.

2012-08-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54327
	* gimple-fold.c (get_maxval_strlen): Do not walk use-def chains
	if the use is registered for SSA update.

2012-08-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/54321
	* tree-ssa-forwprop.c (simplify_builtin_call): Pass 0 instead of 1
	as second argument to tree_low_cst call on val2.

2012-08-20  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_statement_base): Annotate with GTY chain_next.

2012-08-20  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/54326
	* genoutput.c (note_constraint): Properly use CONST_CAST.

2012-08-19  Nick Clifton  <nickc@redhat.com>

	PR target/54306
	* config/arm/mmintrin.h: Remove spurious #endif.

2012-08-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/avr/avr-log.c (avr_log_vadump): Properly use
	int-promoted enum values.
	* config/avr/avr.h (struct mcu_type_s): Change `arch' from
	int to enum avr_arch.
	* config/avr/gen-avr-mmcu-texi.c (main): Use correct initializer.

2012-08-18  Jan Hubicka  <jh@suse.cz>

	PR lto/45375
	* ipa-inline.c (want_inline_small_function_p): Bypass
	inline limits for hinted functions.
	(edge_badness): Dump hints; decrease badness for hinted funcitons.
	* ipa-inline.h (enum inline_hints_vals): New enum.
	(inline_hints): New type.
	(edge_growth_cache_entry): Add hints.
	(dump_inline_summary): Update.
	(dump_inline_hints): Declare.
	(do_estimate_edge_hints): Declare.
	(estimate_edge_hints): New inline function.
	(reset_edge_growth_cache): Update.
	* predict.c (cgraph_maybe_hot_edge_p): Do not ice on indirect edges.
	* ipa-inline-analysis.c (dump_inline_hints): New function.
	(estimate_edge_devirt_benefit): Return true when function should be
	hinted.
	(estimate_calls_size_and_time): New hints argument; set it when
	devritualization happens.
	(estimate_node_size_and_time): New hints argument.
	(do_estimate_edge_time): Cache hints.
	(do_estimate_edge_growth): Update.
	(do_estimate_edge_hints): New function

2012-08-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/53823
	* expmed.c (expand_mult): Skip synth_mult for negative coefficients
	if the mode is larger than a wide int and it is too costly to multiply
	by a positive multiplier and negate the result.

2012-08-18  Steven Bosscher  <steven@gcc.gnu.org>

	* sparseset.c (sparseset_alloc): Use non-clearing allocation.  Tell
	valgrind not to worry about reading from unitialized memory.

2012-08-18  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/54313
	* dse.c (dse_step7): Don't free kill_on_calls bitmap, it is
	freed when its obstack is release.

2012-08-18  Andrew Pinski  <pinskia@gmail.com>

	* alloc-pool.c (pool_alloc): Add valgrind markers.
	(pool_free): Likewise.

2012-08-17  Walter Lee  <walt@tilera.com>

	* config/tilegx/feedback.h (FEEDBACK_ENTER_EXPLICIT): Define.
	(FEEDBACK_ENTER): Define.
	(FEEDBACK_REENTER): Define.
	(FEEDBACK_ENTRY): Define.
	* config/tilepro/feedback.h: (FEEDBACK_ENTER_EXPLICIT): Define.
	(FEEDBACK_ENTER): Define.
	(FEEDBACK_REENTER): Define.
	(FEEDBACK_ENTRY): Define.

2012-08-17  H.J. Lu  <hongjiu.lu@intel.com>
	    Gary Funck <gary@intrepid.com>

	PR target/20020
	* config/i386/i386.c (ix86_member_type_forces_blk): New function.
	(TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
	* config/i386/i386.h (MAX_FIXED_MODE_SIZE): New macro.

2012-08-17  Marc Glisse  <marc.glisse@inria.fr>

	* simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
	a concatenation.

2012-08-17  H.J. Lu  <hongjiu.lu@intel.com>

	* stor-layout.c (compute_record_mode): Replace
	MEMBER_TYPE_FORCES_BLK with targetm.member_type_forces_blk.
	(layout_type): Likewise.
	* system.h: Poison MEMBER_TYPE_FORCES_BLK.
	* target.def (member_type_forces_blk): New target hook.
	* targhooks.c (default_member_type_forces_blk): New.
	* targhooks.h (default_member_type_forces_blk): Likewise.
	* doc/tm.texi.in (MEMBER_TYPE_FORCES_BLK): Removed.
	(TARGET_MEMBER_TYPE_FORCES_BLK): New hook.
	* doc/tm.texi: Regenerated.
	* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Removed.
	* config/ia64/ia64.c (ia64_member_type_forces_blk): New function.
	(TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
	* config/rs6000/rs6000.c (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
	(rs6000_member_type_forces_blk): New function.
	* config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Removed.
	* config/xtensa/xtensa.c (xtensa_member_type_forces_blk): New function.
	(TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
	* config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Removed.

2012-08-17  Diego Novillo  <dnovillo@google.com>

	PR bootstrap/54281
	* configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
	* config.in: Regenerate.
	* configure: Regenerate.
	* intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.

2012-08-17  Richard Guenther  <rguenther@suse.de>

	* bitmap.h (struct bitmap_element_def): GTY annotate next/prev.
	(struct bitmap_head_def): GTY skip current field.

2012-08-17  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/54146
	* tree-ssa-loop-im.c (lim_bitmap_obstack): New bitmap_obstack.
	(memref_free): Don't free the bitmaps individually here.
	(mem_ref_alloc): Allocate the bitmaps on the new bitmap obstack.
	(analyze_memory_references): Likewise.
	(tree_ssa_lim_initialize): Initialize the new bitmap obstack.
	(tree_ssa_lim_finalize): Release it.
	* dse.c (dse_bitmap_obstack): New bitmap obstack.
	(dse_obstack): New obstack.
	(get_group_info): Allocate the bitmaps on the new bitmap obstack.
	(dse_step0): Allocate the scratch bitmap on reg_obstack.  Initialize
	the new bitmap obstack and normal obstack.  Use XNEWVEC for bb_table.
	(record_store): Allocate regs_set on reg_obstack.
	(dse_step1): Allocate regs_live on reg_obstack.
	(dse_step2_init): Allocate offset_map_n and offset_map_p on the new
	obstack.
	(dse_step3_scan): Allocate bitmaps on the new bitmap obstack.
	(dse_step3): Likewise.
	(dse_confluence_0): Likewise.
	(dse_confluence_n): Likewise.
	(dse_transfer_function): Likewise.
	(dse_step7): Destroy the new obstacks, and everything allocated on
	them, in one big sweep.
	(rest_of_handle_dse): Update.
	* cfgexpand.c (stack_var_bitmap_obstack): New bitmap obstack.
	(add_stack_var_conflict): Allocate bitmaps on it.
	(add_scope_conflicts_1): Likewise.
	(add_scope_conflicts): Likewise.
	(update_alias_info_with_stack_vars): Likewise.
	(init_vars_expansion): Move TREE_USED fiddling expand_used_vars.
	Initialize the new bitmap obstack.
	(fini_vars_expansion): Release it.
	(estimated_stack_frame_size): Use init_vars_expansion to set things up
	and always clean up at the end.
	(expand_used_vars): Do the TREE_USED trickery here.  Always call
	fini_vars_expansion.
	* tree-ssa-live.h (struct tree_live_info_d): Make livein and liveout
	arrays of bitmap_head to avoid one indirection per bitmap access.
	(live_on_entry, live_on_exit, live_var_map, live_merge_and_clear,
	make_live_on_entry): Update.
	* tree-ssa-live.c (partition_view_bitmap): Don't double-free 'used'.
	(liveness_bitmap_obstack): New bitmap obstack.
	(remove_unused_locals): Use it to allocate all bitmaps on.  Update
	for livein/liveout changes in tree-ssa-live.h.
	(delete_tree_live_info): Release the bitmap obstack.
	(loe_visit_block, live_worklist, set_var_live_on_entry,
	calculate_live_on_exit, dump_live_info): Update.
	(calculate_live_ranges): Initialize the bitmap.
	* tree-ssa-ter.c (ter_bitmap_obstack): New bitmap obstack.
	(new_temp_expr_table): Allocate bitmap on it.
	(make_dependent_on_partition, add_to_partition_kill_list,
	add_dependence, process_replaceable): Likewise.
	(find_replaceable_exprs): Initialize and release the new obstack here.
	* df-problems.c (df_lr_add_problem): Allocate persistent bitmap
	for out_of_date_transfer_functions on df_bitmap_obstack.
	(df_live_add_problem): Likewise.
	(df_chain_add_problem): Likewise.
	(df_word_lr_add_problem): Likewise.

2012-08-17  Nick Clifton  <nickc@redhat.com>

	* config/fr30/fr30.md (cbranchsi4): Remove mode from comparison.
	(branch_true): Likewise.
	(branch_false): Likewise.

	* config/mcore/mcore.md (cbranchsi4): Remove mode from comparison.

	* config/iq2000/iq2000.md (cbranchsi4): Remove mode from
	comparison and label.
	(branch_zero): Likewise.
	(branch_zero_inverted): Likewise.
	(branch_equality): Likewise.
	(branch_equality_inverted): Likewise.
	(extend-and-compare): Disable until reload issues can be resolved.
	* config/iq2000/iq2000.c (gen_conditional_branch): Use VOIDmode
	for comparison.
	(iq2000_function_arg_advance): Remove CONST_CAST2.

	* config/mep/t-mep (mep-pragma.o): Use $(COMPILER) to compile
	mep-pragma.c.

2012-08-17  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/t-avr (gen-avr-mmcu-texi): Use $(CC) to compile
	gen-avr-mmcu-texi.c.

2012-08-17  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.
	* arm.c (thumb2_reorg): Don't convert an ADD instruction that's
	already 16 bits.

2012-08-17  Richard Guenther  <rguenther@suse.de>

	* hash-table.h (class hash_table): Use a descriptor template
	argument instead of decomposed element type and support functions.
	(struct pointer_hash): New generic typed pointer-hash.
	(struct typed_free_remove, struct typed_noop_remove): Generic
	hash_table support pieces.
	* coverage.c (struct counts_entry): Add hash_table support members.
	* tree-ssa-ccp.c (gimple_htab): Use pointer_hash.
	* tree-ssa-coalesce.c (struct ssa_name_var_hash): New generic
	SSA name by SSA_NAME_VAR hash.
	(coalesce_ssa_name): Use it.
	* tree-ssa-pre.c (struct pre_expr_d): Add hash_table support.
	(expression_to_id): Adjust.
	(struct expr_pred_trans_d): Add hash_table support.
	(phi_translate_table): Adjust.
	(phi_trans_lookup): Likewise.
	(phi_trans_add): Likewise.
	(do_regular_insertion): Likewise.
	* tree-ssa-tail-merge.c (struct same_succ_def): Add hash_table support.
	(same_succ_htab): Adjust.
	(find_same_succ_bb): Likewise.
	(find_same_succ): Likewise.
	(update_worklist): Likewise.
	* tree-ssa-threadupdate.c (struct redirection_data): Add hash_table
	support.
	(redirection_data): Adjust.

2012-08-17  Richard Guenther  <rguenther@suse.de>

	* params.def (integer-share-limit): Decrease from 256 to 251,
	add rationale.

2012-08-17  Richard Guenther  <rguenther@suse.de>

	* tree-sra.c (modify_function): Free redirect_callers vector.
	* ipa-split.c (split_function): Free args_to_pass vector.
	* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Free
	body_cost_vec properly.
	(vect_enhance_data_refs_alignment): Likewise.
	* tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate
	vec_oprnds.
	(new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS.
	* tree-vect-slp.c (vect_free_slp_instance): Free the instance.
	(vect_analyze_slp_instance): Free everything.
	(destroy_bb_vec_info): Free the SLP instances.

2012-08-17  Iain Sandoe  <iain@codesourcery.com>

	* config/rs6000/rs6000.c (macho_branch_islands): Adjust for changes
	to vec.h.

2012-08-17  Jakub Jelinek  <jakub@redhat.com>

	* doc/invoke.texi (-Wsizeof-pointer-memaccess): Document.

2012-08-16  Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/mips-dsp.md (mips_dpau_h_qbl, mips_dpau_h_qbr)
	(mips_dpsu_h_qbl, mips_dpsu_h_qbr, mips_dpaq_s_w_ph)
	(mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph, mips_dpaq_sa_l_w)
	(mips_dpsq_sa_l_w, mips_maq_s_w_phl, mips_maq_s_w_phr)
	(mips_maq_sa_w_phl, mips_maq_sa_w_phr): Add accum_in attribute.

2012-08-16  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54236
	* config/sh/sh.md (addc): Add commutative modifier.
	(*addc, *minus_plus_one, *subc, *negc): New insns and splits.

2012-08-16  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/39423
	* config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): Handle
	potential T_REG clobber.  Convert zero extending split to
	insn_and_split.

2012-08-16  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/sh.md (ashlsi3_d): Do not split if it would result
	in a T_REG clobber.  Correct comment.
	(ashlsi3_n): Correct comment.

2012-08-16  Hans-Peter Nilsson  <hp@axis.com>

	PR middle-end/54261
	* optabs.c (expand_atomic_fetch_op): Save and restore code when
	retrying after failed attempt.

2012-08-16  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add
	additional argument.
	* config/i386/i386.md (ix86_split_lea_for_addr) : Add
	additional argument curr_insn.
	* config/i386/i386.c (ix86_split_lea_for_addr): Load base or index
	register first, depending on their defintion distances.
	(ix86_lea_outperforms): Prefer LEA only if split cost exceeds
	AGU stall.
	(find_nearest_reg-def): New function. Find register with
	nearest definition.

2012-08-16  Walter Lee  <walt@tilera.com>

	* config.gcc (tilegx-*-linux*): Add feedback.h.
	(tilepro-*-linux*): Likewise.
	* config/tilegx/feedback.h: New file.
	* config/tilepro/feedback.h: New file.

2012-08-16  Diego Novillo  <dnovillo@google.com>

	Revert

	PR bootstrap/54281
	* double-int.h: Move including of gmp.h ...
	* system.h: ... here.
	* realmpfr.h: Do not include gmp.h.
	* tree-ssa-loop-niter.c: Do not include gmp.h.

2012-08-16  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/darwin.h (TARGET_IEEE_QUAD): Fix comment.

2012-08-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/54146
	* tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the
	exit vector.
	* ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK.
	* cfgloop.h (FOR_EACH_LOOP_BREAK): Fix.
	* tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc.
	* tree-into-ssa.c (get_ssa_name_ann): Allocate info only when needed.
	* tree-ssa-loop-im.c (analyze_memory_references): Adjust.
	(tree_ssa_lim_finalize): Free all mem_refs.
	* tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free
	scc when bailing out.
	* modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK.
	* ira-build.c (loop_with_complex_edge_p): Free loop exit vector.
	* graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use
	FOR_EACH_LOOP_BREAK.

2012-08-16  Diego Novillo  <dnovillo@google.com>

	PR bootstrap/54281
	* double-int.h: Move including of gmp.h ...
	* system.h: ... here.
	* realmpfr.h: Do not include gmp.h.
	* tree-ssa-loop-niter.c: Do not include gmp.h.

2012-08-16  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/54146
	* tree-flow.h (compute_global_livein): Remove prototype.
	* tree-into-ssa.c (compute_global_livein): Remove function.
	* tree-ssa-loop-manip.c: Include gimple-pretty-print.h.
	(find_sibling_superloop): New function.
	(compute_live_loop_exits): New function.
	(add_exit_phis_edge): Rename to add_exit_phi.  Do not allow
	inserting a PHI in a block that is not a loop exit for VAR.
	Add dumping if TDF_DETAILS.
	(add_exit_phis_var): Rewrite.
	(add_exit_phis): Update.
	(get_loops_exits): Rewrite to return an array of per-loop exits
	rather than one bitmap with all loop exits.
	(find_uses_to_rename_bb): Ignore virtual PHI nodes.
	(rewrite_into_loop_closed_ssa): Update.

2012-08-16  Nick Clifton  <nickc@redhat.com>

	* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes
	before passing it to ASM_OUTPUT_LIMITED_STRING.

	* config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro.

	* config/avr/t-avr: Replace occurrences of $(CC) with $(COMPILER).
	* config/avr/avr.c (avr_legitimize_reload_address): Add casts
	for reload_type enums.
	(DEF_BUILTIN): Cast the icode to enum insn_code.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/aix43.h (ASM_CPU_SPEC): Use %(asm_default)
	instead of -mppc.
	* config/rs6000/aix51.h (ASM_CPU_SPEC): Ditto.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
	(RS6000_CALL_GLUE): Adjust for single assembler syntax.
	* config/rs6000/aix51.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
	* config/rs6000/aix52.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
	* config/rs6000/aix53.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
	* config/rs6000/aix61.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
	* config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/darwin.md (whole file): Adjust to single
	assembler syntax.
	* config/rs6000/darwin64.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
	* config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/dfp.md: (whole file): Adjust to single
	assembler syntax.
	* config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
	* config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/rs6000-cpus.def (whole file): Delete POWERPC_BASE_MASK.
	* config/rs6000/rs6000-tables.opt: Regenerate.
	* config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete.
	(num_insns_constant_wide): Adjust comments.
	(whole file): Adjust to single assembler syntax.
	(output_cbranch): Adjust comment.
	* config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Delete.
	* config/rs6000/rs6000.md: (whole file): Adjust to single
	assembler syntax.
	* config/rs6000/rs6000.opt (mnew-mnemonics): Delete.
	(mold-mnemonics): Delete.
	* config/rs6000/spe.md: (whole file): Adjust to single
	assembler syntax.
	* config/rs6000/sync.md: (whole file): Adjust to single
	assembler syntax.
	* config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
	(ASM_OUTPUT_REG_PUSH): Adjust.
	(ASM_OUTPUT_REG_POP): Adjust.
	* config/rs6000/sysv4le.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
	* config/rs6000/vsx.md: (whole file): Adjust to single
	assembler syntax.
	* config/rs6000/vxworks.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
	* doc/invoke.texi: Adjust documentation to reflect the
	removal of -mnew-mnemonics and -mold-mnemonics.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

	* common/config/rs6000/rs6000-common.c (rs6000_handle_option):
	Delete handling for -mno-powerpc and -mpowerpc.
	* config/rs6000/aix43.h (ASM_CPU_SPEC): Similar.
	(ASM_DEFAULT_SPEC): Use -mppc instead of -mcom.
	* config/rs6000/aix51.h (ASM_CPU_SPEC, ASM_DEFAULT_SPEC): Ditto.
	* config/rs6000/aix52.h (TARGET_DEFAULT): Delete MASK_POWERPC.
	* config/rs6000/aix53.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/aix61.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/darwin64.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/driver-rs6000.c (asm_names): Delete handling
	for -mcpu=common and -mpowerpc.
	* config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_POWERPC.
	* config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING):
	Use RS6000_BTM_ALWAYS instead of RS6000_BTM_POWERPC.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
	(rs6000_cpu_cpp_builtins): Adjust.
	* config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete MASK_POWERPC.
	(rs6000_builtin_mask_calculate): Adjust.
	(rs6000_emit_move): Delete code for ! TARGET_POWERPC.
	(rs6000_init_libfuncs): Ditto.
	(rs6000_output_function_prologue): Ditto.
	(rs6000_opt_masks): Delete MASK_POWERPC.
	(rs6000_builtin_mask_names): Delete RS6000_BTM_POWERPC.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete handling for -mpowerpc.
	(RS6000_BTM_POWERPC): Delete.
	(RS6000_BTM_COMMON): Delete RS6000_BTM_POWERPC.
	* config/rs6000/rs6000.md (extendqisi2 patterns): Adjust for
	TARGET_POWERPC always on.
	(extendqihi2 patterns): Similar.
	(various unnamed subtract patterns): Similar.
	(bswaphi2 patterns): Similar.
	(divmodsi4): Similar.
	(udiv<GPR:mode>3): Similar.
	(div<GPR:mode>3 patterns): Similar.
	(udivmodsi4): Similar.
	(mulhcall): Delete.
	(mullcall): Delete.
	(divss_call): Delete.
	(divus_call): Delete.
	(quoss_call): Delete.
	(quous_call): Delete.
	(insvsi patterns): Adjust.
	(addsf3 patterns): Adjust.
	(subsf3 patterns): Adjust.
	(mulsf3 patterns): Adjust.
	(divsf3 patterns): Adjust.
	(*fmasf4_fpr): Adjust.
	(*fmssf4_fpr): Adjust.
	(*nfmasf4_fpr): Adjust.
	(*nfmssf4_fpr): Adjust.
	(*floatunssidf2_internal): Adjust.
	(fix_trunc<SFDF:mode>si2_internal): Adjust.
	(fctiwz_<SFDF:mode>): Adjust.
	(mulsidi3 patterns): Adjust.
	(smulsi3_highpart patterns): Adjust.
	(umulsi3_highpart patterns): Adjust.
	(fix_trunctfsi2 patterns): Adjust.
	(prefetch): Adjust.
	* config/rs6000/rs6000.opt (mpowerpc): Replace by stub option.
	(mno-powerpc): Delete.
	* config/rs6000/sync.md (load_locked<ATOMIC:mode>): Adjust.
	(store_conditional<ATOMIC:mode>): Adjust.
	(atomic_compare_and_swap<ATOMIC:mode>): Adjust.
	(atomic_exchange<ATOMIC:mode>): Adjust.
	(atomic_<fetchop_name><ATOMIC:mode>): Adjust.
	(atomic_nand<ATOMIC:mode>): Adjust.
	(atomic_fetch_<fetchop_name><ATOMIC:mode>): Adjust.
	(atomic_fetch_nand<ATOMIC:mode>): Adjust.
	(atomic_<fetchop_name>_fetch<ATOMIC:mode>): Adjust.
	(atomic_nand_fetch<ATOMIC:mode>): Adjust.
	* config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_POWERPC.
	* config/rs6000/sysv4le.h (TARGET_DEFAULT): Ditto.
	* config/rs6000/vxworks.h (TARGET_DEFAULT): Ditto.
	* doc/invoke.texi: Adjust documentation.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.h (RS6000_BTM_ALWAYS): New.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/aix52.h (ASM_CPU_SPEC): Fix typo.
	* config/rs6000/aix53.h (ASM_CPU_SPEC): Ditto.
	* config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
	* config/rs6000/driver-rs6000.c (asm_names): Ditto.

2012-08-15  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/54142
	* config/rs6000/driver-rs6000.c (asm_names): Use %(asm_default)
	instead of -mcom.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Ditto.

2012-08-15  Sandra Loosemore  <sandra@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    MIPS Technologies, Inc.

	* config/mips/mips.md (dspmac, dspmacsat, accext, accmod, dspalu)
	(dspalusat): Add insn types.
	* config/mips/mips-dsp.md (add<DSPV:mode>3)
	(mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>)
	(sub<DSPV:mode>3, mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc)
	(mips_addwc, mips_modsub, mips_raddu_w_qb, mips_absq_s_<DSPQ:dspfmt2>)
	(mips_precrq_qb_ph, mips_precrq_ph_w, mips_precrq_rs_ph_w)
	(mips_precrqu_s_qb_ph, mips_preceq_w_phl, mips_preceq_w_phr)
	(mips_precequ_ph_qbl, mips_precequ_ph_qbr, mips_precequ_ph_qbla)
	(mips_precequ_ph_qbra, mips_preceu_ph_qbl, mips_preceu_ph_qbr)
	(mips_preceu_ph_qbla, mips_preceu_ph_qbra, mips_shll_<DSPV:dspfmt2>)
	(mips_shll_s_<DSPQ:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>, mips_shrl_qb)
	(mips_shra_ph, mips_shra_r_<DSPQ:dspfmt2>, mips_bitrev, mips_insv)
	(mips_repl_qb, mips_repl_ph)
	(mips_cmp<DSPV:dspfmt1_1>_eq_<DSPV:dspfmt2>)
	(mips_cmp<DSPV:dspfmt1_1>_lt_<DSPV:dspfmt2>)
	(mips_cmp<DSPV:dspfmt1_1>_le_<DSPV:dspfmt2>, mips_cmpgu_eq_qb)
	(mips_cmpgu_lt_qb, mips_cmpgu_le_qb, mips_pick_<DSPV:dspfmt2>)
	(mips_packrl_ph, mips_wrdsp, mips_rddsp): Change type to dspalu.
	(mips_dpau_h_qbl, mips_dpau_h_qbr, mips_dpsu_h_qbl, mips_dpsu_h_qbr)
	(mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph)
	(mips_maq_s_w_phl, mips_maq_s_w_phr, mips_maq_sa_w_phr): Set type to
	dspmac.
	(mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_sa_w_phl): Set type to
	dspmacsat.
	(mips_extr_w, mips_extr_r_w, mips_extr_rs_w, mips_extp, mips_extpdp):
	Set type to accext.
	(mips_shilo, mips_mthlip): Set type to accmod.
	* config/mips/mips-dspr2.md (mips_absq_s_qb, mips_addu_s_ph)
	(mips_adduh_r_qb): Set type to dspalusat.
	(mips_addu_ph, mips_adduh_qb, mips_append, mips_balign)
	(mips_cmpgdu_eq_qb, mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb)
	(mips_precr_qb_ph, mips_precr_sra_ph_w, mips_precr_sra_r_ph_w)
	(mips_prepend, mips_shra_qb, mips_shra_r_qb, mips_shrl_ph)
	(mips_subu_ph, mips_subuh_qb, mips_subuh_r_qb, mips_addqh_ph)
	(mips_addqh_r_ph, mips_addqh_w, mips_addqh_r_w, mips_subqh_ph)
	(mips_subqh_r_ph, mips_subqh_w, mips_subqh_r_w): Set type to dspalu.
	(mips_dpa_w_ph, mips_dps_w_ph, mips_mulsa_w_ph, mips_dpax_w_ph)
	(mips_dpsx_w_ph, mips_dpaqx_s_w_ph, mips_dpsqx_s_w_ph): Set type to
	dspmac.  Set accum_in attribute.
	(mips_subu_s_ph): Set type to dspalusat.
	(mips_dpaqx_sa_w_ph, mips_dpsqx_sa_w_ph): Set type to dspmacsat.
	Set accum_in attribute.
	* config/mips/mips-protos.h (mips_dspalu_bypass_p): Add prototype.
	* config/mips/mips.c (dspalu_bypass_table): New.
	(mips_dspalu_bypass_p): New.
	* config/mips/24k.md (r24k_dsp_alu, r24k_dsp_mac, r24k_dsp_mac_sat)
	(r24k_dsp_acc_ext, r24k_dsp_acc_mod): New insn reservations.
	(r24k_int_mult, r24k_int_mthilo, r24k_dsp_mac, r24k_dsp_mac_sat)
	(r24k_dsp_acc_ext, r24k_dsp_acc_mod, r24k_dsp_alu): New bypasses.
	* config/mips/74k.md (r74k_dsp_alu, r74k_dsp_alu_sat, r74k_dsp_mac)
	(r74k_dsp_mac_sat, r74k_dsp_acc_ext, r74k_dsp_acc_mod): New insn
	reservations.
	(r74k_dsp_mac, r74k_dsp_mac_sat, r74k_int_mult, r74k_int_mul3)
	(r74k_dsp_mac, r74k_dsp_mac_sat): New bypasses.

2012-08-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c: Include "cfgloop.h".
	(spu_machine_dependent_reorg): Call loop_optimizer_init and
	loop_optimizer_finalize.  Use bb_loop_depth instead of loop_depth.
	Directly compare loop_father values where appropriate.
	* config/spu/t-spu-elf (spu.o): Update dependencies.

2012-08-15  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (tree-cfg.o): Also depend on $(TARGET_H).

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/54245
	* gimple-ssa-strength-reduction.c (legal_cast_p_1): New function.
	(legal_cast_p): Split out logic to legal_cast_p_1.
	(analyze_increments): Avoid introducing multiplies in smaller types.

2012-08-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/54240
	* tree-ssa-phiopt.c (hoist_adjacent_loads): Correct test for
	existence of conditional move with given mode.

2012-08-15  Richard Guenther  <rguenther@suse.de>

	* double-int.h (double_int::from_unsigned): Rename to ...
	(double_int::from_uhwi): ... this.
	(double_int::from_signed): Rename to ...
	(double_int::from_shwi): ... this.
	(double_int::to_signed): Rename to ...
	(double_int::to_shwi): ... this.
	(double_int::to_unsigned): Rename to ...
	(double_int::to_uhwi): ... this.
	(double_int::fits_unsigned): Rename to ...
	(double_int::fits_uhwi): ... this.
	(double_int::fits_signed): Rename to ...
	(double_int::fits_shwi): ... this.
	(double_int::fits): Rename to ...
	(double_int::fits_hwi): ... this.
	* double-int.c: Likewise.

2012-08-15  Steven Bosscher  <steven@gcc.gnu.org>

	* timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE,
	TV_LIFE_UPDATE, TV_DF_UREC, TV_INLINE_HEURISTICS,
	TV_TREE_LINEAR_TRANSFORM, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI,
	TV_VPT, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_SEQABSTR): Remove.
	(TV_IPA_INLINING, TV_FLATTEN_INLINING, TV_EARLY_INLINING,
	TV_INLINE_PARAMETERS, TV_LOOP_INIT, TV_LOOP_FINI): New.
	* timevar.c (timevar_print): Make printing width of timevar names
	more flexible, but enforce maximum length.
	* ipa-inline.c (pass_early_inline): Use TV_EARLY_INLINING.
	(pass_ipa_inline): Use TV_IPA_INLINING.
	* ipa-inline-analysis.c (pass_inline_parameters): Use
	TV_INLINE_HEURISTICS.
	* tree-ssa-loop.c (pass_tree_loop_init): No timevar for wrapper pass.
	(pass_tree_loop_done): Likewise.
	* final.c (pass_shorten_branches): Use TV_SHORTEN_BRANCH.
	* loop-init.c (loop_optimizer_init): Push/pop TV_LOOP_INIT.
	(loop_optimizer_finalize): Push/pop TV_LOOP_FINI.

2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize operands.
	(neon_vabal<mode> VDQIW): Likewise.

2012-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/54212
	* config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
	mark as predicable. Adjust asm template.
	(vec_setv2di_internal): Likewise.
	(vec_extract<mode> VD, VQ): Likewise.
	(vec_extractv2di): Likewise.
	(neon_vget_lane<mode>_sext_internal VD, VQ): Likewise.
	(neon_vset_lane<mode>_sext_internal VD, VQ): Likewise.
	(neon_vdup_n<mode> VX, V32): Likewise.
	(neon_vdup_nv2di): Likewise.

2012-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips.md (define_attr accum_in): New instruction
	attribute.  Set it for imadd and fmadd patterns.
	* config/mips/mips.c (mips_linked_madd_p): Use accum_in to extract
	accumulator register.

2012-08-14  Diego Novillo  <dnovillo@google.com>

	Merge from cxx-conversion branch.  Configury.

	* configure.ac (CXX_FOR_BUILD): Define and substitute.
	(BUILD_CXXFLAGS): Define.
	Remove all handlers of ENABLE_BUILD_WITH_CXX.
	Force all build to be with C++.
	* Makefile.in (BUILD_CXXFLAGS): Use it.
	Remove all handlers of ENABLE_BUILD_WITH_CXX.
	* configure: Regenerate.
	* config.in: Regenerate.
	* doc/install.texi: Remove documentation for --enable-build-with-cxx
	and --enable-build-poststage1-with-cxx.

2012-08-14  Diego Novillo  <dnovillo@google.com>

	Merge from cxx-conversion branch.  Re-implement VEC in C++.

	* vec.c (vec_heap_free): Convert into a template function.
	(vec_gc_o_reserve_1): Make extern.
	(vec_gc_p_reserve): Remove.
	(vec_gc_p_reserve_exact): Remove.
	(vec_gc_o_reserve): Remove.
	(vec_gc_o_reserve_exact): Remove.
	(vec_heap_o_reserve_1): Make extern.
	(vec_heap_p_reserve): Remove.
	(vec_heap_p_reserve_exact): Remove.
	(vec_heap_o_reserve): Remove.
	(vec_heap_o_reserve_exact): Remove.
	(vec_stack_p_reserve): Remove.
	(vec_stack_p_reserve_exact): Remove.
	* vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS, VEC_ASSERT,
	VEC_ASSERT_FAIL, vec_assert_fail): Move earlier in the file.
	(VEC): Define to vec_t<T>.
	(vec_allocation_t): Define.
	(struct vec_prefix): Move earlier in the file.
	(vec_t<T>): New template.
	(DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
	DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
	DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
	DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
	(DEF_VEC_A): Provide template instantiations for
	GC/PCH markers that do not traverse the vector.
	(vec_stack_p_reserve): Remove.
	(vec_stack_p_reserve_exact): Remove.
	(vec_stack_p_reserve_exact_1): Remove.
	(vec_stack_o_reserve): Remove.
	(vec_stack_o_reserve_exact): Remove.
	(vec_stack_free): Re-write as a template function.
	(vec_reserve): New template function.
	(vec_reserve_exact): New template function.
	(vec_heap_free): New template function if GATHER_STATISTICS is
	defined.  Otherwise, macro that expands to free().
	(VEC_length_1): New template function.
	(VEC_length): Call it.
	(VEC_empty_1): New template function.
	(VEC_empty): Call it.
	(VEC_address_1): New template function.
	(VEC_address): Call it.
	(VEC_last_1): New template function.
	(VEC_last): Call it.  Change return type to T&.
	Change all users that used VEC_Os.
	(VEC_index_1): New template function.
	(VEC_index): Call it.  Return a T& instead of a T*.
	Update all callers that were using VEC_O before.
	(VEC_iterate_1): New template function.
	(VEC_iterate): Call it.
	(VEC_embedded_size_1): New template function.
	(VEC_embedded_size): Call it.
	(VEC_embedded_init_1): New template function.
	(VEC_embedded_init): Call it.
	(VEC_alloc_1): New template function.
	(VEC_alloc): Call it.  If A is 'stack', call XALLOCAVAR to
	do the allocation.
	(VEC_free_1): New template function.
	(VEC_free): Call it.
	(VEC_copy_1): New template function.
	(VEC_copy): Call it.
	(VEC_space_1): New template function
	(VEC_space): Call it.
	(VEC_reserve_1): New template function.
	(VEC_reserve): Call it.
	(VEC_reserve_exact_1): New template function.
	(VEC_reserve_exact): Call it.
	(VEC_splice_1): New template function.
	(VEC_splice): Call it.
	(VEC_safe_splice_1): New template function.
	(VEC_safe_splice): Call it.
	(VEC_quick_push_1): New template function.  Create two overloads, one
	accepting T, the other accepting T *.  Update all callers
	where T and T * are ambiguous.
	(VEC_quick_push): Call it.
	(VEC_safe_push_1): New template function. Create two overloads, one
	accepting T, the other accepting T *.  Update all callers
	where T and T * are ambiguous.
	(VEC_safe_push): Call it.
	(VEC_pop_1): New template function.
	(VEC_pop): Call it.
	(VEC_truncate_1): New template function.
	(VEC_truncate): Call it.
	(VEC_safe_grow_1): New template function.
	(VEC_safe_grow): Call it.
	(VEC_safe_grow_cleared_1): New template function.
	(VEC_safe_grow_cleared): Call it.
	(VEC_replace_1): New template function.
	(VEC_replace): Call it.  Always accept T instead of T*.
	Update all callers that used VEC_Os.
	(VEC_quick_insert_1): New template function.
	(VEC_quick_insert): Call it.
	(VEC_safe_insert_1): New template function.
	(VEC_safe_insert): Call it.
	(VEC_ordered_remove_1): New template function.
	(VEC_ordered_remove): Call it.
	(VEC_unordered_remove_1): New template function.
	(VEC_unordered_remove): Call it.
	(VEC_block_remove_1): New template function.
	(VEC_block_remove): Call it.
	(VEC_lower_bound_1): New template function.
	(VEC_lower_bound): Call it.
	(VEC_OP): Remove.
	(DEF_VEC_FUNC_P): Remove.
	(DEF_VEC_ALLOC_FUNC_P): Remove.
	(DEF_VEC_NONALLOC_FUNCS_P): Remove.
	(DEF_VEC_FUNC_O): Remove.
	(DEF_VEC_ALLOC_FUNC_O): Remove.
	(DEF_VEC_NONALLOC_FUNCS_O): Remove.
	(DEF_VEC_ALLOC_FUNC_I): Remove.
	(DEF_VEC_NONALLOC_FUNCS_I): Remove.
	(DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
	(DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
	(DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
	(vec_reserve_exact): New template function.

	* gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
	* gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
	(typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
	(def_vec_alloc): Remove.  Update all callers.
	* gengtype.c (filter_type_name): New.
	(output_mangled_typename): Call it.
	(write_func_for_structure): Likewise.
	(write_types): Likewise.
	(write_root): Likewise.
	(write_typed_alloc_def): Likewise.
	(note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
	(note_def_vec_alloc): Remove.
	* gengtype.h (note_def_vec_alloc): Remove.
	(DEFVEC_ALLOC): Remove token code.

	* df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
	inside the insn traversal loop.
	* gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
	* ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
	* reg-stack.c (stack): Rename to STACK_PTR.  Update all users.
	* tree-vrp.c (stack): Rename to EQUIV_STACK.  Update all users.

	* config/bfin/bfin.c (hwloop_optimize): Update some calls to
	VEC_* for vectors of non-pointers.
	* config/c6x/c6x.c (try_rename_operands): Likewise.
	(reshuffle_units): Likewise.
	* config/mips/mips.c (mips_multi_start): Likewise.
	(mips_multi_add): Likewise.
	(mips_multi_copy_insn): Likewise.
	(mips_multi_set_operand): Likewise.
	* hw-doloop.c (discover_loop): Likewise.
	(discover_loops): Likewise.
	(reorg_loops): Likewise.

2012-08-14  Diego Novillo  <dnovillo@google.com>

	Merge from cxx-conversion branch.  C++ support in gengtype.

	* coretypes.h (gt_pointer_operator): Move from ...
	* ggc.h: ... here.
	* doc/gty.texi: Document support for C++ templates and
	user-provided markers.
	* gengtype-lex.l: Update copyright year.
	Remove support for recognizing DEF_VEC_O, DEF_VEC_P and DEFVEC_I.
	* gengtype-parse.c: Update copyright year.
	(token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
	(require_template_declaration): New.
	(typedef_name): Call it.
	(type): Replace IS_UNION with KIND. Replace all users.
	(def_vec): Remove.  Update all users.
	* gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
	(write_state_user_struct_type): New.
	(write_state_type): Call it.
	(read_state_user_struct_type): New.
	(read_state_type): Call it.
	* gengtype.c: Update copyright year.
	(dump_pair): Move declaration to the top.
	(dump_type): Likewise.
	(dump_type_list): Likewise.
	(dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
	(create_user_defined_type): New.
	(resolve_typedef): Call it.
	(new_structure): Replace argument ISUNION with KIND.
	Change users to refer to KIND directly.
	Update all callers.
	(find_structure): Likewise.
	(set_gc_used_type): Handle TYPE_USER_STRUCT.
	(create_file): Update HDR to include new copyright year.
	(struct walk_type_data): Add field IN_PTR_FIELD.
	(output_mangled_typename): Handle TYPE_USER_STRUCT.
	(walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
	Clear it afterwards.
	Handle TYPE_USER_STRUCT.
	(write_types_process_field): Handle TYPE_USER_STRUCT.
	(get_type_specifier): Move earlier in the file.
	(write_type_decl): New.
	(write_marker_function_name): New.
	(write_user_func_for_structure_ptr): New.
	(write_user_func_for_structure_body): New.
	(write_user_marking_functions): New.
	(write_func_for_structure): Call write_marker_function_name
	and write_type_decl.
	Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
	function directly.
	Call write_user_marking_functions on TYPE_USER_STRUCTs.
	(write_types_local_user_process_field): New.
	(write_pch_user_walking_for_structure_body): New.
	(write_pch_user_walking_functions): New.
	(write_types_local_process_field): Handle TYPE_USER_STRUCT.
	(write_local_func_for_structure): Do not call walk_type for
	TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
	Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
	(write_root): Handle TYPE_USER_STRUCT.
	(vec_prefix_type): Remove.  Update all users.
	(note_def_vec): Remove.  Update all users.
	(dump_typekind): Handle TYPE_USER_STRUCT.
	(dump_type): Initialize SEEN_TYPES, if needed.
	Handle TYPE_USER_STRUCT.
	(dump_everything): Do not initialize SEEN_TYPES.
	* gengtype.h: Update copyright year.
	(enum typekind): Add TYPE_USER_STRUCT.
	(union_or_struct_p): Rename from UNION_OR_STRUCT_P.
	Convert into function.
	Add an overload taking const_type_p.
	Update all callers.
	(new_structure): Change second field to type enum typekind.
	Update all users.
	(find_structure): Likewise.
	(note_def_vec): Remove.
	(DEFVEC_OP): Remove.
	(DEFVEC_I): Remove.
	* ggc-page.c (gt_ggc_mx): Add entry points for marking
	'const char *&', 'unsigned char *&' and 'unsigned char&'.
	* ggc-zone.c (gt_ggc_mx): Add entry points for marking
	'const char *&' and 'unsigned char *&'.
	* stringpool.c (gt_pch_nx): Add entry points for marking
	'const char *&', 'unsigned char *&' and 'unsigned char&'.
	Add an entry point for the overload taking arguments 'unsigned char
	*', 'gt_pointer_operator' and 'void *'.
	* vec.h (struct vec_prefix): Remove GTY marker.
	(struct vec_t): Remove GTY((length)) attribute from field 'vec'.
	(gt_ggc_mx (vec_t<T> *)): New template function.
	(gt_pch_nx (vec_t<T> *)): New template function.
	(gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
	function.
	(gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
	function.

	* basic-block.h (struct edge_def): Mark GTY((user)).
	Remove all GTY markers from fields.
	(gt_ggc_mx): Declare.
	(gt_pch_nx): Declare.
	* tree-cfg.c (gt_ggc_mx): New.
	(gt_pch_nx): New.

	* gengtype-lex.l (USER_GTY): Add pattern for "user".
	* gengtype-parse.c (option): Handle USER_GTY.
	(opts_have): New.
	(type): Call it.
	If the keyword 'user' is used, do not walk the fields
	of the structure.
	* gengtype.h (USER_GTY): Add.
	* doc/gty.texi: Update.

2012-08-14  Lawrence Crowl  <crowl@google.com>

	Merge cxx-conversion branch.  Implement C++ hash table.

	* hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
	* hash-table.c: Likewise.
	* tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
	(static htab_t same_succ_htab): Change type to hash_table;
	move specification of helper functions from create call to declaration.
	Change users to invoke member functions.
	(same_succ_print_traverse): Make extern ssa_.... Change callers.
	Remove void* casting.
	(same_succ_hash): Likewise.
	(same_succ_equal): Likewise.
	(same_succ_delete): Likewise.
	* tree-ssa-threadupdate.c: Include hash-table.h.
	(struct local_info): Rename to ssa_local_info_t to avoid overloading
	the type name local_info with the variable name local_info.
	(static htab_t redirection_data): Change type to hash_table.
	Move specification of helper functions from create call to declaration.
	Change users to invoke member functions.
	(redirection_data_hash): Make extern ssa_.... Change callers.
	Remove void* casting.
	(redirection_data_eq): Likewise.
	(fix_duplicate_block_edges): Likewise.
	(create_duplicates): Likewise.
	(fixup_template_block): Likewise.
	(redirect_edges): Likewise.
	(lookup_redirection_data): Change types associated with the hash table
	from void* to their actual type. Remove unnecessary casts.
	* tree-ssa-ccp.c: Include hash-table.h.
	(typedef gimple_htab): New.  Uses hash_table.  Replace specific uses
	of htab_t with gimple_htab.  Change users to invoke member functions.
	Move specification of helper functions from create call to declaration.
	* tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
	(hash_ssa_name_by_var): Make extern. Remove void* casting.
	(eq_ssa_name_by_var): Likewise.
	(coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
	to hash_table. Change users to invoke member functions.
	Move specification of helper functions from create call to declaration.
	* coverage.c: Include hash-table.h instead of hashtab.h.
	(static htab_t counts_hash): Change type to hash_table;
	move specification of helper functions from create call to declaration.
	Change users to invoke member functions.
	(htab_counts_entry_hash): Make extern. Rename with coverage_... instead
	of htab_... Remove void* casting.
	(htab_counts_entry_eq): Likewise.
	(htab_counts_entry_del): Likewise.
	* tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
	(static htab_t expression_to_id): Change type to hash_table.
	Move specification of helper functions from create call to declaration.
	Change users to invoke member functions.
	(static htab_t phi_translate_table): Likewise.
	(pre_expr_eq): Make extern ssa_.... Change callers.
	Remove void* casting.
	(pre_expr_hash): Likewise.
	(expr_pred_trans_hash): Likewise.
	(expr_pred_trans_eq): Likewise.
	(alloc_expression_id): Change types associated with the hash table
	from void* to their actual type. Remove unnecessary casts.
	(lookup_expression_id): Likewise.
	(phi_trans_lookup): Likewise.
	(phi_trans_add): Likewise.
	* stringpool.c: Rename uses of libcpp typedef hash_table to
	cpp_hash_table.
	* Makefile.in: Add hash-table.o to OBJS-libcommon-target.
	Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).

2012-08-14  Lawrence Crowl  <crowl@google.com>

	Merge from cxx-conversion branch.  Re-write double_int in C++.

	* hash-table.h
	(typedef double_int): Change to struct (POD).
	(double_int::make): New overloads for int to double-int conversion.
	(double_int::mask): New.
	(double_int::max_value): New.
	(double_int::min_value): New.
	(double_int::operator ++): New.
	(double_int::operator --): New.
	(double_int::operator *=): New.
	(double_int::operator +=): New.
	(double_int::operator -=): New.
	(double_int::to_signed): New.
	(double_int::to_unsigned): New.
	(double_int::fits_unsigned): New.
	(double_int::fits_signed): New.
	(double_int::fits): New.
	(double_int::trailing_zeros): New.
	(double_int::popcount): New.
	(double_int::multiple_of): New.
	(double_int::set_bit): New.
	(double_int::mul_with_sign): New.
	(double_int::operator * (binary)): New.
	(double_int::operator + (binary)): New.
	(double_int::operator - (binary)): New.
	(double_int::operator - (unary)): New.
	(double_int::operator ~ (unary)): New.
	(double_int::operator & (binary)): New.
	(double_int::operator | (binary)): New.
	(double_int::operator ^ (binary)): New.
	(double_int::and_not): New.
	(double_int::lshift): New.
	(double_int::rshift): New.
	(double_int::alshift): New.
	(double_int::arshift): New.
	(double_int::llshift): New.
	(double_int::lrshift): New.
	(double_int::lrotate): New.
	(double_int::rrotate): New.
	(double_int::div): New.
	(double_int::sdiv): New.
	(double_int::udiv): New.
	(double_int::mod): New.
	(double_int::smod): New.
	(double_int::umod): New.
	(double_int::divmod): New.
	(double_int::sdivmod): New.
	(double_int::udivmod): New.
	(double_int::ext): New.
	(double_int::zext): New.
	(double_int::sext): New.
	(double_int::is_zero): New.
	(double_int::is_one): New.
	(double_int::is_minus_one): New.
	(double_int::is_negative): New.
	(double_int::cmp): New.
	(double_int::ucmp): New.
	(double_int::scmp): New.
	(double_int::ult): New.
	(double_int::ugt): New.
	(double_int::slt): New.
	(double_int::sgt): New.
	(double_int::max): New.
	(double_int::smax): New.
	(double_int::umax): New.
	(double_int::min): New.
	(double_int::smin): New.
	(double_int::umin): New.
	(double_int::operator ==): New.
	(double_int::operator !=): New.
	(shwi_to_double_int): Change implementation to use member function.
	(double_int_minus_one): Likewise.
	(double_int_zero): Likewise.
	(double_int_one): Likewise.
	(double_int_two): Likewise.
	(double_int_ten): Likewise.
	(uhwi_to_double_int): Likewise.
	(double_int_to_shwi): Likewise.
	(double_int_to_uhwi): Likewise.
	(double_int_fits_in_uhwi_p): Likewise.
	(double_int_fits_in_shwi_p): Likewise.
	(double_int_fits_in_hwi_p): Likewise.
	(double_int_mul): Likewise.
	(double_int_mul_with_sign): Likewise.
	(double_int_add): Likewise.
	(double_int_sub): Likewise.
	(double_int_neg): Likewise.
	(double_int_div): Likewise.
	(double_int_sdiv): Likewise.
	(double_int_udiv): Likewise.
	(double_int_mod): Likewise.
	(double_int_smod): Likewise.
	(double_int_umod): Likewise.
	(double_int_divmod): Likewise.
	(double_int_sdivmod): Likewise.
	(double_int_udivmod): Likewise.
	(double_int_multiple_of): Likewise.
	(double_int_setbit): Likewise.
	(double_int_ctz): Likewise.
	(double_int_not): Likewise.
	(double_int_ior): Likewise.
	(double_int_and): Likewise.
	(double_int_and_not): Likewise.
	(double_int_xor): Likewise.
	(double_int_lshift): Likewise.
	(double_int_rshift): Likewise.
	(double_int_lrotate): Likewise.
	(double_int_rrotate): Likewise.
	(double_int_cmp): Likewise.
	(double_int_scmp): Likewise.
	(double_int_ucmp): Likewise.
	(double_int_max): Likewise.
	(double_int_smax): Likewise.
	(double_int_umax): Likewise.
	(double_int_min): Likewise.
	(double_int_smin): Likewise.
	(double_int_umin): Likewise.
	(double_int_ext): Likewise.
	(double_int_sext): Likewise.
	(double_int_zext): Likewise.
	(double_int_mask): Likewise.
	(double_int_max_value): Likewise.
	(double_int_min_value): Likewise.
	(double_int_zero_p): Likewise.
	(double_int_one_p): Likewise.
	(double_int_minus_one_p): Likewise.
	(double_int_equal_p): Likewise.
	(double_int_popcount): Likewise.
	* hash-table.c
	(double_int_mask): Reuse implementation for double_int::mask.
	(double_int_max_value): Likewise.
	(double_int_min_value): Likewise.
	(double_int_ext): Likewise.
	(double_int_zext): Likewise.
	(double_int_sext): Likewise.
	(double_int_mul_with_sign): Likewise.
	(double_int_divmod): Likewise.
	(double_int_sdivmod): Likewise.
	(double_int_udivmod): Likewise.
	(double_int_div): Likewise.
	(double_int_sdiv): Likewise.
	(double_int_udiv): Likewise.
	(double_int_mod): Likewise.
	(double_int_smod): Likewise.
	(double_int_umod): Likewise.
	(double_int_multiple_of): Likewise.
	(double_int_lshift): Likewise.
	(double_int_rshift): Likewise.
	(double_int_lrotate): Likewise.
	(double_int_rrotate): Likewise.
	(double_int_cmp): Likewise.
	(double_int_ucmp): Likewise.
	(double_int_scmp): Likewise.
	(double_int_max): Likewise.
	(double_int_smax): Likewise.
	(double_int_umax): Likewise.
	(double_int_min): Likewise.
	(double_int_smin): Likewise.
	(double_int_umin): Likewise.
	(double_int_min): Likewise.
	(double_int_min): Likewise.
	(double_int_min): Likewise.
	(double_int_min): Likewise.
	(double_int_min): Likewise.
	(double_int_min): Likewise.
	(double_int::alshift): New.
	(double_int::arshift): New.
	(double_int::llshift): New.
	(double_int::lrshift): New.
	(double_int::ult): New.
	(double_int::ugt): New.
	(double_int::slt): New.
	(double_int::sgt): New.
	(double_int_setbit): Reuse implementation for double_int::set_bit,
	which avoids a name conflict with a macro.
	(double_int_double_int_ctz): Reuse implementation for
	double_int::trailing_zeros.
	(double_int_fits_in_shwi_p): Reuse implementation for
	double_int::fits_signed.
	(double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
	(double_int_mul): Reuse implementation for binary
	double_int::operator *.
	(double_int_add): Likewise.
	(double_int_sub): Likewise.
	(double_int_neg): Reuse implementation for unary
	double_int::operator -.
	(double_int_max_value): Likewise.
	* fixed-value.c: Change to use member functions introduced above.

2012-08-14  Lawrence Crowl  <crowl@google.com>

	Merge cxx-conversion branch.  Support tree macro calling from gdb.

	* tree.h (tree_check): New.
	(TREE_CHECK): Use inline function above instead of __extension__.
	(tree_not_check): New.
	(TREE_NOT_CHECK): Use inline function above instead of __extension__.
	(tree_check2): New.
	(TREE_CHECK2): Use inline function above instead of __extension__.
	(tree_not_check2): New.
	(TREE_NOT_CHECK2): Use inline function above instead of __extension__.
	(tree_check3): New.
	(TREE_CHECK3): Use inline function above instead of __extension__.
	(tree_not_check3): New.
	(TREE_NOT_CHECK3): Use inline function above instead of __extension__.
	(tree_check4): New.
	(TREE_CHECK4): Use inline function above instead of __extension__.
	(tree_not_check4): New.
	(TREE_NOT_CHECK4): Use inline function above instead of __extension__.
	(tree_check5): New.
	(TREE_CHECK5): Use inline function above instead of __extension__.
	(tree_not_check5): New.
	(TREE_NOT_CHECK5): Use inline function above instead of __extension__.
	(contains_struct_check): New.
	(CONTAINS_STRUCT_CHECK): Use inline function above instead of
	__extension__.
	(tree_class_check): New.
	(TREE_CLASS_CHECK): Use inline function above instead of __extension__.
	(tree_range_check): New.
	(TREE_RANGE_CHECK): Use inline function above instead of __extension__.
	(omp_clause_subcode_check): New.
	(OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
	__extension__.
	(omp_clause_range_check): New.
	(OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
	__extension__.
	(expr_check): New.
	(EXPR_CHECK): Use inline function above instead of __extension__.
	(non_type_check): New.
	(NON_TYPE_CHECK): Use inline function above instead of __extension__.
	(tree_vec_elt_check): New.
	(TREE_VEC_ELT_CHECK): Use inline function above instead of
	__extension__.
	(omp_clause_elt_check): New.
	(OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
	__extension__.
	(tree_operand_check): New.
	(TREE_OPERAND_CHECK): Use inline function above instead of
	__extension__.
	(tree_operand_check_code): New.
	(TREE_OPERAND_CHECK_CODE): Use inline function above instead of
	__extension__.
	(TREE_CHAIN): Simplify implementation.
	(TREE_TYPE): Simplify implementation.
	(tree_operand_length): Move for compilation dependences.
	* gdbinit.in: (macro define __FILE__): New.
	(macro define __LINE__): New.
	(skip "tree.h"): New.

2012-08-14  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/52933
	* config/sh/sh.md (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0,
	*cmp_div0s_1, *cbranch_div0s, *movsicc_div0s): New insns.
	* config/sh/sh.c (sh_rtx_costs): Handle div0s patterns.

2012-08-14  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/50751
	* config/sh/constraints.md (Sra): New constraint.
	* config/sh/predicates.md (simple_mem_operand,
	displacement_mem_operand, zero_extend_movu_operand): New predicates.
	(zero_extend_operand): Check zero_extend_movu_operand for SH2A.
	* config/sh/sh.md (*zero_extendqisi2_disp_mem,
	*zero_extendhisi2_disp_mem): Add new insns and two new related
	peephole2 patterns.

2012-08-14  Steven Bosscher  <steven@gcc.gnu.org>

	* graphite-scop-detection.c (create_sese_edges): Compute dominance
	info before trying to fix loop structure.
	* cfgloopmanip.c (fix_loop_structure): Require fast DOM queries.
	* tree-cfgcleanup.c (repair_loop_structures): Likewise.
	* cfgloop.c (verify_loop_structure): Verify loop fathers.

	* dominance.c (init_dom_info): Use gcc_checking_assert, not gcc_assert.
	(dom_convert_dir_to_idx, compute_dom_fast_query,
	get_immediate_dominator, set_immediate_dominator, get_dominated_by,
	redirect_immediate_dominators, nearest_common_dominator,
	(dominated_by_p, bb_dom_dfs_in, bb_dom_dfs_out, recompute_dominator,
	iterate_fix_dominators, add_to_dominance_info,
	delete_from_dominance_info): Likewise.

2012-08-14  Richard Guenther  <rguenther@suse.de>

	* cfgexpand.c (expand_used_vars): Use virtual_operand_p.
	* gimple-pretty-print.c (dump_phi_nodes): Likewise.
	* gimple-streamer-out.c (output_bb): Likewise.
	* graphite-sese-to-poly.c (scalar_close_phi_node_p): Likewise.
	(rewrite_reductions_out_of_ssa): Likewise.
	(rewrite_commutative_reductions_out_of_ss): Likewise.
	* ipa-split.c (verify_non_ssa_vars): Likewise.
	(consider_split): Likewise.
	(visit_bb): Likewise.
	(split_function): Likewise.
	* lto-streamer-out.c (output_ssa_names): Likewise.
	* sese.c (rename_uses): Likewise.
	* tree-cfg.c (replace_uses_by): Likewise.
	(gimple_merge_blocks): Likewise.
	(gimple_cfg2dot): Likewise.
	(verify_gimple_phi): Likewise.
	(replace_ssa_name): Likewise.
	(move_block_to_fn): Likewise.
	* tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
	* tree-if-conv.c (if_convertible_phi_p): Likewise.
	(predicate_scalar_phi): Likewise.
	* tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
	(copy_phis_for_bb): Likewise.
	* tree-loop-distribution.c (generate_loops_for_partition): Likewise.
	(destroy_loop): Likewise.
	* tree-outof-ssa.c (eliminate_useless_phis): Likewise.
	(insert_backedge_copies): Likewise.
	* tree-parloops.c (transform_to_exit_first_loop): Likewise.
	(gather_scalar_reductions): Likewise.
	(try_create_reduction_list): Likewise.
	* tree-scalar-evolution.c (analyze_scalar_evolution_for_all_loop_ph):
	Likewise.
	(scev_const_prop): Likewise.
	* tree-ssa-ccp.c (debug_lattice_value): Likewise.
	(get_default_value): Likewise.
	(ccp_initialize): Likewise.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
	* tree-ssa-copy.c (may_propagate_copy): Likewise.
	(init_copy_prop): Likewise.
	* tree-ssa-dce.c (propagate_necessity): Likewise.
	(remove_dead_phis): Likewise.
	(forward_edge_to_pdom): Likewise.
	(eliminate_unnecessary_stmts): Likewise.
	* tree-ssa-live.c (partition_view_init): Likewise.
	(remove_unused_locals): Likewise.
	(register_ssa_partition_check): Likewise.
	* tree-ssa-loop-im.c (movement_possibility): Likewise.
	(move_computations_stmt): Likewise.
	* tree-ssa-loop-ivopts.c (determine_biv_step): Likewise.
	(record_invariant): Likewise.
	(find_interesting_uses_outside): Likewise.
	(determine_set_costs): Likewise.
	* tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
	(find_uses_to_rename_use): Likewise.
	(check_loop_closed_ssa_use): Likewise.
	(rewrite_phi_with_iv): Likewise.
	(canonicalize_loop_ivs): Likewise.
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
	* tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
	* tree-ssa-pre.c (make_values_for_phi): Likewise.
	(compute_avail): Likewise.
	(eliminate): Likewise.
	* tree-ssa-propagate.c (substitute_and_fold): Likewise.
	* tree-ssa-reassoc.c (phi_rank): Likewise.
	* tree-ssa-strlen.c (strlen_enter_block): Likewise.
	* tree-ssa-structalias.c (compute_points_to_sets): Likewise.
	(ipa_pta_execute): Likewise.
	* tree-ssa-tail-merge.c (same_succ_hash): Likewise.
	(release_last_vdef): Likewise.
	(same_phi_alternatives_1): Likewise.
	(bb_has_non_vop_phi): Likewise.
	(vop_phi): Likewise.
	* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
	Likewise.
	* tree-ssa-uninit.c (warn_uninitialized_phi): Likewise.
	(execute_late_warn_uninitialized): Likewise.
	* tree-ssa.c (verify_ssa_name): Likewise.
	(verify_phi_args): Likewise.
	(verify_ssa): Likewise.
	* tree-stdarg.c (execute_optimize_stdarg): Likewise.
	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
	Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	(vect_can_advance_ivs_p): Likewise.
	(vect_update_ivs_after_vectorizer): Likewise.
	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
	* tree-vrp.c (remove_range_assertions): Likewise.
	* value-prof.c (gimple_divmod_values_to_profile): Likewise.

2012-08-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54146
	* tree-ssa-pre.c (do_regular_insertion): Use a VEC
	indexed by pred edge index for avail.
	(do_partial_partial_insertion): Likewise.
	(insert_into_preds_of_block): Adjust.

2012-08-14  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (create_tmp_from_val): Mark temporary with
	DECL_GIMPLE_REG_P here ...
	(internal_get_tmp_var): ... instead of here.  If we go into
	SSA create an SSA name instead of a VAR_DECL.
	(gimplify_modify_expr): Do not create SSA names here, assert
	we already got them.
	(force_gimple_operand_1): Create an SSA name if we go into SSA.
	* sese.c (rename_uses): Simplify.

2012-08-14  Richard Guenther  <rguenther@suse.de>

	* tree-into-ssa.c: Include diagnostic-core.h.
	* Makefile.in (tree-into-ssa.o): Adjust.

2012-08-14  Richard Guenther  <rguenther@suse.de>

	* tree-into-ssa.c (update_ssa): Verify we do not rename
	symbols that are already partly in SSA form.

2012-08-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/53411
	PR rtl-optimization/53495
	* ira.c (ira): Move delete_trivially_dead_insns call before
	find_moveable_pseudos call.

2012-08-13  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points
	of potentially huge memset overhead.
	(do_partial_partial_insertion): Likewise.
	* cfgexpand.c (gimple_expand_cfg): Use XCNEWVEC instead of xcalloc.
	* tree-vrp.c (find_assert_locations): Use XNEWVEC instead of XCNEWVEC
	for arrays to be filled by pre_and_rev_post_order_compute.  Allocate
	the right number of slots, not that number plus NUM_FIXED_BLOCKS.
	* tree-ssa-reassoc.c (init_reassoc): Likewise.
	* cfganal.c (dfs_enumerate_from): Use XNEWVEC instead of XCNEWVEC for
	array used as stack.
	* tree-ssa-sccvn.c (init_scc_vn): Use XNEWVEC instead of XCNEWVEC for
	arrays to be filled by pre_and_rev_post_order_compute.
	* cfgloopmanip.c (find_path): Use XNEWVEC instead of XCNEWVEC for
	array to be filled by dfs_enumerate_from.
	(remove_path): Likewise.
	(duplicate_loop_to_header_edge): Use XNEWVEC instead of XCNEWVEC for
	array of loops that is filled on the next lines.
	* cfgloop.c (get_loop_body): Use XNEWVEC instead of XCNEWVEC for
	array of basic blocks to be returned.
	(get_loop_body_in_dom_order): Likewise.
	(get_loop_body_in_bfs_order): Likewise.
	* tree-ssa-loop-manip.c (loop_renamer_obstack): New static obstack
	for all bitmaps used for rewriting into loop-closed SSA form.
	(add_exit_phis_var): Allocate the def bitmap on it.  Clear the livein
	bitmap at the end to release a lot of memory.
	(add_exit_phis): Allocate the exits bitmap on the new obstack.
	(get_loops_exits): Allocate the exits bitmap on the new obstack.
	(find_uses_to_rename_use): Allocate a use_blocks bitmap if ver is
	seen for the first time.
	(find_uses_to_rename): Add "???" for why the whole function must
	be re-scanned if changed_bbs is empty.
	(rewrite_into_loop_closed_ssa): Allocate bitmaps on the new obstack.
	Use XNEWVEC to allocate the use_blocks array.  Initialize the new
	obstack, and free it at the end.  Remove loop over all SSA names.
	(check_loop_closed_ssa_stmt): Look only at SSA_OP_USE operands.
	* tree-cfg.c (move_sese_region_to_fn): Use XNEWVEC instead of
	xcalloc to allocate edge_pred and edge_flag arrays.

2012-08-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here.
	(CALL_USED_REGISTERS): Use bitmaps to mark call-used registers
	for different ABIs.
	(enum reg_class): Move CLOBBERED_REGS just before GENERAL_REGS.
	(REG_CLASS_NAMES): Update.
	(REG_CLASS_CONTENTS): Update.  Clear CLOBBERED_REGS members.
	* config/i386/i386.c (ix86_conditional_register_usage): Disable
	REX registers on 32bit targets.  Handle bitmaps from
	CALL_USED_REGISTERS initializer.  Calculate CLOBBERED_REGS register
	set from GENERAL_REGS also for 32bit targets.  Do not change call
	used register set for TARGET_64BIT_MS_ABI separately.

2012-08-13  Richard Guenther  <rguenther@suse.de>

	* basic-block.h (struct basic_block): Remove loop_depth
	member, move flags and index members next to each other.
	* cfgloop.h (bb_loop_depth): New inline function.
	* cfghooks.c (split_block): Do not set loop_depth.
	(duplicate_block): Likewise.
	* cfgloop.c (flow_loop_nodes_find): Likewise.
	(flow_loops_find): Likewise.
	(add_bb_to_loop): Likewise.
	(remove_bb_from_loops): Likewise.
	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
	* gimple-streamer-in.c (input_bb): Do not stream loop_depth.
	* gimple-streamer-out.c (output_bb): Likewise.
	* bt-load.c: Include cfgloop.h.
	(migrate_btr_defs): Use bb_loop_depth.
	* cfg.c (dump_bb_info): Likewise.
	* final.c (compute_alignments): Likewise.
	* ira.c (update_equiv_regs): Likewise.
	* tree-ssa-copy.c (init_copy_prop): Likewise.
	* tree-ssa-dom.c (loop_depth_of_name): Likewise.
	* tree-ssa-forwprop.c: Include cfgloop.h.
	(forward_propagate_addr_expr): Use bb_loop_depth.
	* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
	* tree-ssa-sink.c (select_best_block): Likewise.
	* ipa-inline-analysis.c: Include cfgloop.h.
	(estimate_function_body_sizes): Use bb_loop_depth.
	* Makefile.in (tree-ssa-forwprop.o): Depend on $(CFGLOOP_H).
	(ipa-inline-analysis.o): Likewise.
	(bt-load.o): Likewise.

2012-08-13  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR driver/54210
	* config/i386/driver-i386.c (host_detect_local_cpu): Test bit_PRFCHW
	bit of CPUID 0x80000001 %ecx instead of CPUID 7 %ecx.
	* config/i386/cpuid.h (bits_PRFCHW): Move definition to CPUID
	0x80000001 %ecx flags.

2012-08-13  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (print_loop): Avoid ICEing for loops marked for
	removal and loops with multiple latches.

2012-08-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/53968
	* tree.c (integer_pow2p): Avoid undefined signed overflows.
	* simplify-rtx.c (neg_const_int): Likewise.
	* expr.c (fixup_args_size_notes): Likewise.
	* stor-layout.c (set_min_and_max_values_for_integral_type): Likewise.
	* double-int.c (mul_double_wide_with_sign): Likewise.
	(double_int_mask): Likewise.
	* tree-ssa-loop-ivopts.c (get_address_cost): Likewise.

2012-08-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54200
	* tree-ssa-copyrename.c (rename_ssa_copies): Do not add
	PHI results to another partition if not all PHI arguments
	have the same partition.

2012-08-12  Jan Hubicka  <jh@suse.cz>

	* tree-pass.h (write_summary, write_optimization_summary): Remove
	set and vset arguments.
	* ipa-cp.c (ipcp_write_summary): Remove set and vset arugments.
	(write_node_summary_p): Likewise; use the encoder.
	(ipa_reference_write_optimization_summary): Likewise.
	* lto-cgraph.c (output_cgraph_opt_summary): Use encoder.
	(lto_symtab_encoder_new): Initialize in_partition field.
	(lto_symtab_encoder_delete): Destroy in_partition field.
	(LCC_NOT_FOUND): Move to lto-streamer.h
	(lto_symtab_encoder_deref): Likewise.
	(lto_symtab_encoder_in_partition_p,
	lto_set_symtab_encoder_in_partition): New functions.
	(referenced_from_other_partition_p): Rewrite to use encoder.
	(reachable_from_other_partition_p): Likewise.
	(referenced_from_this_partition_p): Likewise.
	(reachable_from_this_partition_p): Likewise.
	(lto_output_node): Likewise.
	(lto_output_varpool_node): Likewise.
	(output_refs): Likewise.
	(compute_ltrans_boundary): Initialize in_partition fileds of
	the encoder.
	(output_symtab): Likewise.
	(input_refs): Match the changes in output_refs.
	(output_cgraph_opt_summary_p): Remove set argument.
	(output_node_opt_summary): Replace set by encoder.
	(output_cgraph_opt_summary): Remove set argument; use
	the encoder.
	* ipa-pure-const.c (pure_const_write_summary): Remove set and vset
	arguments; use the encoder.
	* lto-streamer-out.c (lto_output): Remove set and vset argument; use
	the encoder.
	(produce_symtab): Likewise.
	* ipa-inline.h (inline_write_summary): Remove set and vset arguments.
	* ipa-inline-analysis.c (inline_write_summary): Likewise.
	* ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument;
	use encoder.
	* ipa-prop.h (ipa_prop_write_jump_functions): Likewise.
	* passes.c (ipa_write_summaries_2): Remove set and vset arguments.
	(ipa_write_summaries_1): Update.
	(ipa_write_optimization_summaries_1): Likewise.
	(ipa_write_optimization_summaries): Likewise.
	* lto-streamer.h (lto_symtab_encoder_t): Add in_partition.
	(lto_symtab_encoder_iterator): New type.
	(lto_symtab_encoder_deref): Make inline.
	(output_symtab, referenced_from_other_partition_p,
	reachable_from_other_partition_p, referenced_from_this_partition_p,
	reachable_from_this_partition_p): Update.
	(lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node,
	lsei_varpool_node): New inline functions.
	(LCC_NOT_FOUND): New macro.
	(lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition,
	lsei_start_in_partition, lsei_next_function_in_partition,
	lsei_start_function_in_partition, lsei_next_variable_in_partition,
	lsei_start_variable_in_partition): New inline functions.

2012-08-12  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md (prefetch): Simplify expander.  Fix condition to
	allow SH3.
	(*prefetch_media): Move insn below expander.
	(*prefetch): Fix condition to allow SH3.

2012-08-12  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md: Add splits for inverted compare and branch
	opportunities.
	(*cmpeqsi_t): New insn.
	(cmpgtsi_t, cmpgesi_t): Swap r and N alternatives.
	(cmpgeusi_t): Use satisfies_constraint_Z.  Emit sett insn in
	replacement insn list and not in the preparation statements.
	(clrt, sett): Add mt_group attribute.

2012-08-12 Marc Glisse <marc.glisse@inria.fr>

	PR middle-end/54193
	* gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments.

2012-08-12  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/39423
	* config/sh/predicates.md (mem_index_disp_operand): Check for
	arith_reg_operand instead of REG_P.

2012-08-11  Bernd Schmidt  <bernds@codesourcery.com>

	* reload1.c (replaced_subreg, gen_reload): Add
	SECONDARY_MEMORY_NEEDED ifdefs as necessary.

2012-08-11  Jan Hubicka  <jh@suse.cz>

	* lto-section-in.c (lto_section_name): Do not use "symtab" as part of
	symtab_node sectoin name; it confuses plugin.

2012-08-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID
	index in the va_list_vars bitmap by num_ssa_names.

2012-08-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (xop integer multiply/add insns): Use
	register_operand for operand 3 predicate.
	(xop_phadd<u>bq):  Fix vec_select selectors.

2012-08-11  Martin Jambor  <mjambor@suse.cz>

	PR fortran/48636
	* ipa-inline.h (condition): New fields offset, agg_contents and by_ref.
	* ipa-inline-analysis.c (agg_position_info): New type.
	(add_condition): New parameter aggpos, also store agg_contents, by_ref
	and offset.
	(dump_condition): Also dump aggregate conditions.
	(evaluate_conditions_for_known_args): Also handle aggregate
	conditions.  New parameter known_aggs.
	(evaluate_properties_for_edge): Gather known aggregate contents.
	(inline_node_duplication_hook): Pass NULL known_aggs to
	evaluate_conditions_for_known_args.
	(unmodified_parm): Split into unmodified_parm and unmodified_parm_1.
	(unmodified_parm_or_parm_agg_item): New function.
	(set_cond_stmt_execution_predicate): Handle values passed in
	aggregates.
	(set_switch_stmt_execution_predicate): Likewise.
	(will_be_nonconstant_predicate): Likewise.
	(estimate_edge_devirt_benefit): Pass new parameter known_aggs to
	ipa_get_indirect_edge_target.
	(estimate_calls_size_and_time): New parameter known_aggs, pass it
	recrsively to itself and to estimate_edge_devirt_benefit.
	(estimate_node_size_and_time): New vector known_aggs, pass it o
	functions which need it.
	(remap_predicate): New parameter offset_map, use it to remap aggregate
	conditions.
	(remap_edge_summaries): New parameter offset_map, pass it recursively
	to itself and to remap_predicate.
	(inline_merge_summary): Also create and populate vector offset_map.
	(do_estimate_edge_time): New vector of known aggregate contents,
	passed to functions which need it.
	(inline_read_section): Stream new fields of condition.
	(inline_write_summary): Likewise.
	* ipa-cp.c (ipa_get_indirect_edge_target): Also examine the aggregate
	contents.  Let all local callers pass NULL for known_aggs.

2012-08-11  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (output_cgraph): Rename to ...
	(output_symtab): ... this one. Update for LTO_section_symtab_nodes.
	(input_cgraph): Rename to ...
	(input_symtab): ... this one. Update for LTO_section_symtab_nodes.
	* lto-streamer-out.c (create_output_block): Do not set
	section_type.
	(produce_asm): Likewise.
	(lto_output_toplevel_asms): Likewise.
	(produce_asm_for_decls): Likewise.
	(lto_output): Use output_symtab.
	* lto-section-in.c (lto_section_name): Update.
	* lto-section-out.c (lto_destroy_simple_output_block): Remove
	section_type.
	* lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool;
	rename LTO_section_cgraph to LTO_section_symtab_nodes.
	(struct lto_header): Remove section_type.

2012-08-11  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (vector types for symtab_node): Add.
	* ipa-reference.c (ipa_reference_write_optimization_summary): Update
	for new symtab encoder.
	(ipa_reference_read_optimization_summary): Likewise.
	* lto-cgraph.c (output_varpool): Remove.
	(input_cgraph_opt_summary): Take symtab nodes vector as argument.
	(LTO_cgraph_tags): Rename to ...
	(LTO_symtab_tags): ... this one; add LTO_symtab_variable.
	(lto_cgraph_encoder_new): Rename to ...
	(lto_symtab_encoder_new): ... this on.
	(lto_cgraph_encoder_encode): Rename to ...
	(lto_symtab_encoder_encode): ... this one.
	(lto_cgraph_encoder_delete): Rename to ...
	(lto_symtab_encoder_delete): ... this one.
	(lto_cgraph_encoder_deref): Rename to ...
	(lto_symtab_encoder_deref): ... this one.
	(lto_cgraph_encoder_encode_body_p): Rename to ...
	(lto_symtab_encoder_encode_body_p): ... this one.
	(lto_varpool_encoder_new, lto_varpool_encoder_delete,
	lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
	lto_varpool_encoder_deref): Remove.
	(lto_varpool_encoder_encode_initializer_p): Rename to ...
	(lto_symtab_encoder_encode_initializer_p): ... this one.
	(lto_set_varpool_encoder_encode_initializer): Rename to ...
	(lto_set_symtab_encoder_encode_initializer): ... this one.
	(lto_output_edge): Update.
	(lto_output_node): Update.
	(lto_output_varpool_node): Update; stream out LTO_symtab_variable tag.
	(lto_output_ref): Drop varpool_encoder; update.
	(add_node_to): Update.
	(add_references): Update.
	(output_outgoing_cgraph_edges): Update.
	(output_refs): Update.
	(compute_ltrans_boundary): Update.
	(output_cgraph): Update; output varpools too.
	(input_overwrite_node): Update.
	(output_varpool): Remove.
	(input_node): Update.
	(input_ref): Update.
	(input_edge): Update.
	(input_cgraph_1): Update; input varpool too; unify fixup code.
	(input_varpool_1): Remove.
	(input_refs): Update.
	(input_cgraph): Update.
	(output_node_opt_summary): Update.
	(input_cgraph_opt_section): Update.
	(input_cgraph_opt_summary): Update.
	* ipa-pure-const.c (pure_const_write_summary): Update.
	(pure_const_read_summary): Update.
	* lto-streamer-out.c (lto_write_tree): Update.
	(lto_output): Likewise.
	(produce_symtab): Update.
	(produce_asm_for_decls): Update.
	* ipa-inline-analysis.c (inline_read_section): Update.
	(inline_write_summary): Update.
	* ipa-prop.c (ipa_write_node_info): Update.
	(ipa_prop_read_section): Update.
	* lto-streamer.h (lto_cgraph_encoder_d): Rename to ...
	(lto_symtab_encoder_d): ... this one;  add initializer.
	(lto_cgraph_encoder_t): Rename to ...
	(lto_symtab_encoder_t): ... this one.
	(lto_cgraph_encoder_size): Rename to ...
	(lto_symtab_encoder_size): ... this one.
	(lto_varpool_encoder_d): ... remove.
	(lto_varpool_encoder_t): Remove.
	(lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder
	add symtab_node_encoder.
	(lto_file_decl_data): Likewise.
	(lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup,
	lto_cgraph_encoder_new, lto_cgraph_encoder_encode,
	lto_cgraph_encoder_delete, lto_cgraph_encoder_encode_body_p,
	lto_varpool_encoder_encode_body_p, lto_varpool_encoder_deref,
	lto_varpool_encoder_lookup, lto_varpool_encoder_new,
	lto_varpool_encoder_encode, lto_varpool_encoder_delete,
	lto_varpool_encoder_encode_initializer_p): Remove.
	(lto_symtab_encoder_deref, lto_symtab_encoder_lookup,
	lto_symtab_encoder_t, lto_symtab_encoder_encode,
	lto_symtab_encoder_delete, lto_symtab_encoder_encode_body_p,
	lto_symtab_encoder_encode_initializer_p): New.

2012-08-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (isa): Add fma and fma4.
	(enabled): Handle fma and fma4.
	* config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>.
	(*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>.
	(*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>.
	(*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>.
	(*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>.
	(*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>.

2012-08-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>,
	*fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>,
	*fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns.

2012-08-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (simple LEA peephole2s): Add zero-extend
	variants of PLUS and MULT simple LEA patterns.  Disable PLUS
	patterns for TARGET_OPT_AGU.

2012-08-10  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (OBJS): Remove matrix-reorg.o.
	(matrix-reorg.o): Remove dependence rule.
	(GTFILES): Remove matrix-reorg.c.
	* matrix-reorg.c: Remove.
	* passes.c (init_optimization_passes): Do not schedule
	pass_ipa_matrix_reorg.
	* tree-pass.h (pass_ipa_matrix_reorg): Remove.
	* common.opt (fipa-matrix-reorg): Stub out.
	* doc/invoke.texi (fipa-matrix-reorg): Remove documentation.

2012-08-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/54219
	* fold-const.c (fold_ternary_loc): Do not reverse the mask
	when canonicalizing it when folding VEC_PERM_EXPR.

2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR middle-end/54211
	* gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
	Use cand_type to determine whether pointer arithmetic will be generated.

2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* doc/sourcebuild.texi: Document long_neq_int effective target.

2012-08-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54109
	* tree-ssa-forwprop.c
	(forward_propagate_addr_into_variable_array_index): Remove.
	(forward_propagate_addr_expr_1): Adjust.

2012-08-10  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (dump_function_to_file): Make sure to dump
	anonymous SSA names when there are no local decls.

2012-08-10  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve.
	* tree-into-ssa.c (get_ssa_name_ann): Likewise.
	(mark_phi_for_rewrite): Likewise.
	(compute_global_livein): Use VEC_reserve outside the innermost
	loop and VEC_quick_push instead of VEC_safe_push in that loop.
	(update_ssa): Re-organize to avoid unnecessary sbitmap_zero'ing
	of new_ssa_names and old_ssa_names.  Allocate phis_to_rewrite to
	the correct initial size.

2012-08-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (pretemp, storetemp, prephitemp): Remove.
	(need_creation): Remove.
	(get_representative_for): Use anonymous named SSA names.
	(create_expression_by_pieces): Likewise.
	(insert_into_preds_of_block): Likewise.
	(init_pre): Do not init removed vars.
	(fini_pre): Do not free need_creation.
	* tree-ssa-forwprop.c (simplify_bitwise_binary): Use anonymous
	SSA names.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* value-prof.c (gimple_divmod_fixed_value): Likewise.
	(gimple_mod_pow2): Likewise.
	(gimple_mod_subtract): Likewise.
	(gimple_ic): Likewise.
	(gimple_stringop_fixed_value): Likewise.
	* tree-ssa-phiopt.c (condstoretemp): Remove.
	(tree_ssa_phiopt_worker): Use anonymous named SSA names.
	(conditional_replacement): Likewise.
	(abs_replacement): Likewise.
	(cond_store_replacement): Likewise.
	(cond_if_else_store_replacement_1): Likewise.
	* tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
	(rewrite_bittest): Likewise.
	* tree-ssa-reassoc.c (build_and_add_sum): Get type from callers
	and build anonymous SSA names.
	(undistribute_ops_list): Adjust.
	(eliminate_redundant_comparison): Use anonymous SSA names.
	(rewrite_expr_tree_parallel): Likewise.
	(get_reassoc_pow_ssa_name): Remove.
	(attempt_builtin_powi): Adjust.
	(reassociate_bb): Likewise.
	* tree-ssa-strlen.c (get_string_length): Use anonymous SSA names.
	* tree-switch-conversion.c (emit_case_bit_tests): Likewise.
	(build_arrays): Likewise.
	* tree-tailcall.c (adjust_return_value_with_ops): Likewise.
	(create_tailcall_accumulator): Likewise.
	* tree-vect-generic.c (expand_vector_divmod): Likewise.
	* tree-profile.c (gcov_type_tmp_var): Remove.
	(gimple_init_edge_profiler): Do not initialize it and use anonymous
	SSA names.
	(gimple_gen_ic_profiler): Likewise.
	(tree_profiling): Adjust.
	* tree-sra.c (build_ref_for_offset): Use anonymous SSA names.
	* tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise.
	(powi_as_mults_1): Likewise.
	(powi_as_mults): Likewise.
	(build_and_insert_call): Adjust.
	(build_and_insert_binop): Likewise.
	(build_and_insert_ref): Likewise.
	(build_and_insert_cast): Likewise.
	(gimple_expand_builtin_pow): Likewise.
	(gimple_expand_builtin_cabs): Likewise.
	(execute_optimize_bswap): Use anonymous SSA names.
	(convert_mult_to_widen): Likewise.
	(convert_plusminus_to_widen): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-ssa-propagate.c (update_call_from_tree): Likewise.
	* tree-if-conv.c (ifc_temp_var): Likewise.
	* tree-loop-distribution.c (generate_memset_builtin): Likewise.
	* tree-parloops.c (take_address_of): Likewise.
	* tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
	(vect_permute_load_chain): Likewise.
	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
	* tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
	(vect_handle_widen_op_by_const): Likewise.
	(vect_operation_fits_smaller_type): Likewise.
	(vect_recog_over_widening_pattern): Likewise.
	* tree-vect-stmts.c (vect_init_vector): Likewise.
	* tree-vrp.c (simplify_truth_ops_using_ranges): Likewise.
	(simplify_float_conversion_using_ranges): Likewise.

2012-08-10  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix
	target mask of __builtin_ia32_rdseed_di_step builtin.

2012-08-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54027
	* tree-vrp.c (extract_range_from_binary_expr_1): Merge RSHIFT_EXPR
	and LSHIFT_EXPR handling, force -fwrapv for the multiplication used
	to handle LSHIFT_EXPR with a constant.

2012-08-10  Richard Guenther  <rguenther@suse.de>

	* tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE
	is recorded as var.
	(SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME
	or its SSA_NAME_VAR.
	(SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter.
	* tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous
	SSA names by passing a type instead of a variable decl.
	(release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
	(copy_ssa_name_fn): Handle anonymous SSA names.
	(replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
	* tree-flow-inline.h (make_temp_ssa_name): New inline function.
	* tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER,
	dump SSA names without a name as <anon>.
	* cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are
	going to expand a decl.
	(gimple_expand_cfg): Assign all SSA names of a partition the
	decl we created for its leader.
	* tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs.
	(verify_ssa_name): Handle anonymous SSA names.
	(verify_def): Likewise.
	* tree-predcom.c (eliminate_temp_copies): Likewise.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
	* tree-ssa-live.c (var_map_base_init): Compute conflicts for
	anonymous SSA names with the same type.
	(mark_all_vars_used_1): Handle anonymous SSA names.
	(verify_live_on_entry): Likewise.
	* tree-ssa-coalesce.c (abnormal_corrupt): Remove.
	(create_outofssa_var_map): Adjust with respect to conflicts we
	compute for anonymous SSA names.  Do not restrict abnormal
	coalescing.
	(coalesce_partitions): Do not restrict abnormal coalescing.
	Assert we only ever coalesce variables we computed conflicts for.
	* tree-ssa-ter.c (process_replaceable): Do not restrict TER
	of anonymous names.
	* expr.c (expand_expr_real_1): Handle anonymous SSA names
	expanded from IVOPTs by creating a raw REG here.
	* tree-cfg.c (replace_ssa_name): Handle anonymous SSA names.
	(dump_function_to_file): Dump anonymous SSA names alongside
	with their types in the variable list.
	(verify_gimple_return): Guard use of SSA_NAME_VAR.
	* tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol.
	(rewrite_into_ssa): Make SSA names anonymous.
	* tree-ssa-structalias.c (alias_get_name): Rewrite.
	* tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous
	SSA names.
	(warn_uninitialized_phi): Likewise.
	* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding
	anonymous SSA names to the expander.
	(determine_iv_cost): Anonymous SSA names are artificial.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
	Handle anonymous SSA names.
	* lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR
	or if NULL, the type of the SSA name.
	* tree-inline.c (remap_ssa_name): Handle anonymous SSA names,
	remap names as anonymous where appropriate.
	(insert_init_stmt): Pass SSA names down to insert_init_debug_bind.
	* tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust
	according to what we create conflicts for in out-of-SSA
	coalescing.
	* tree-parloops.c (separate_decls_in_region_name): Handle
	anonymous SSA names.
	(add_field_for_name): Likewise.
	* tree.c (get_name): Handle SSA names.
	* tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for
	SSA_NAMEs.
	* tree-vect-loop-manip.c (adjust_debug_stmts): Use
	virtual_operand_p.
	* tree-sra.c (create_access_replacement): Give up generating
	a DECL_DEBUG_EXPR for SSA names in the memory reference.
	(replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR.
	* tree-complex.c (get_component_ssa_name): Handle anonymous
	SSA names.
	(set_component_ssa_name): Likewise.
	* tree-ssa-sccvn.c (visit_reference_op_load): Likewise.
	* tree-object-size.c (collect_object_sizes_for): Handle
	uninitialized SSA names properly.
	* ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of
	SSA_NAME_VAR.
	* ipa-split.c (test_nonssa_use): Likewise.
	(consider_split): Likewise.
	(mark_nonssa_use): Likewise.

2012-08-09  Jan Hubicka  <jh@suse.cz>

	PR middle-end/54146
	* ipa-inline-transform.c (inline_call): Add UPDATE_OVERALL_SUMMARY
	parameter; honnor it.
	* ipa-inline.c (recursive_inlining): Update call
	of inline_call.
	(inline_small_functions): Likewise.
	(ipa_inline): Likewise.
	(inline_always_inline_functions): Likewise.
	(early_inline_small_functions): Likewise.
	(flatten_function): Do separate update of summary info.
	* ipa-inline.h (inline_update_overall_summary): Declare.
	(inline_call): Update.
	* ipa-inline-analysis.c (inline_merge_summary): Break out
	updating code to ...
	(inline_update_overall_summary): Likewise.

2012-08-09  Richard Henderson  <rth@redhat.com>

	* config/s390/s390.c (s390_expand_insv): Use VOIDmode in gen_rtx_SET.

	* config/s390/s390.c (s390_expand_cs_hqi): Copy val to a temp before
	performing the compare for the restart loop.

2012-08-09  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.c (rl78_alloc_physical_registers): Check for
	SET before extracting SET_SRC.
	(rl78_remove_unused_sets): Check for REG before extractnig REGNO.

2012-08-09  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/sh-protos (shift_insns_rtx): Delete.
	(sh_ashlsi_clobbers_t_reg_p): Add.
	* config/sh/sh.c (shift_insns, shift_amounts, ext_shift_insns,
	ext_shift_amounts): Merge arrays of ints to array of structs.
	Adapt usage of arrays throughout the file.
	(shift_insns_rtx): Delete unused function.
	(sh_ashlsi_clobbers_t_reg_p): New function.
	* config/sh/sh.md (ashlsi3): Emit ashlsi3_n_clobbers_t insn if the
	final shift sequence will clobber T_REG.
	(ashlsi3_n): Split only if the final shift sequence will not
	clobber T_REG.
	(ashlsi3_n_clobbers_t): New insn_and_split.

2012-08-09  Steven Bosscher  <steven@gcc.gnu.org>

	* calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE
	instead of looking at sbitmap n_bits member directly.
	* gcse.c (hoist_code): Likewise.
	* sched-rgn.c (split_edges): Likewise.
	* tree-into-ssa.c (is_old_name, is_new_name, add_new_name_mapping,
	update_ssa): Likewise.

2012-08-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (LIMIT_RELOAD_CLASS): Return preferred
	single unit register class for classes that contain registers form
	multiple units.
	(REG_CLASS_CONTENTS): Add missing "frame" register to FLOAT_INT_REGS,
	INT_SSE_REGS and FLOAT_INT_SSE_REGS register classes.

2012-08-09  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_indirect_call_info): Field anc_offse renamd to
	offset, updated all users.  New field agg_contents.
	* ipa-prop.h (jump_func_type): Removed IPA_JF_CONST_MEMBER_PTR.
	(ipa_pass_through_data): New field agg_preserved.
	(ipa_ancestor_jf_data): Likewise.
	(ipa_member_ptr_cst): Removed.
	(ipa_agg_jf_item): New type.
	(ipa_agg_jump_function): Likewise.
	(ipa_jump_func): New field agg.  Removed field member_cst.
	(ipa_get_jf_pass_through_agg_preserved): New function.
	(ipa_get_jf_ancestor_agg_preserved): Likewise.
	(ipa_get_jf_member_ptr_pfn): Removed.
	(ipa_find_agg_cst_for_param): Declare.
	(ipa_load_from_parm_agg): Likewise.
	* ipa-prop.c (param_analysis_info): Fields modified and
	visited_statements rename to parm_modified and parm_visited_statements
	respectively, added fields ref_modified, ref_visited_statements,
	pt_modified and pt_visited_statements.
	(ipa_print_node_jump_functions_for_edge): Do not dump const member
	functions.  Dump agg_preserved flags and aggregate jump functions.
	(ipa_set_jf_simple_pass_through): Set also agg_preserved.
	(ipa_set_ancestor_jf): Likewise.
	(ipa_set_jf_arith_pass_through): Clear agg_preserved.
	(ipa_set_jf_member_ptr_cst): Removed.
	(is_parm_modified_before_stmt): Logic reversed, renamed to
	parm_preserved_before_stmt_p.  Cache visited bitmap only for
	naked DECL parameters.  All callers updated.
	(load_from_unmodified_param): Allow NULL parms_ainfo.
	(parm_ref_data_preserved_p): New function.
	(parm_ref_data_pass_through_p): Likewise.
	(ipa_load_from_parm_agg_1): Likewise.
	(ipa_load_from_parm_agg): Likewise.
	(compute_complex_assign_jump_func): Check if aggregate contents are
	preserved.
	(compute_complex_ancestor_jump_func): Likewise.
	(compute_scalar_jump_functions): Removed.
	(type_like_member_ptr_p): Also check field position are known and sane.
	(compute_pass_through_member_ptrs): Removed.
	(determine_cst_member_ptr): Likewise.
	(ipa_known_agg_contents_list): New type.
	(determine_known_aggregate_parts): New function.
	(compute_cst_member_ptr_arguments): Removed.
	(ipa_compute_jump_functions_for_edge): Compute all kinds of jump
	functions (scalar, aggregate and member pointer).
	(ipa_get_member_ptr_load_param): Incorporate into
	ipa_get_stmt_member_ptr_load_param, also pass back an offset.
	(ipa_note_param_call): Clear agg_contents.
	(ipa_analyze_indirect_call_uses): Also look for simple pointers loaded
	from aggregates.  In such cases, store offset of the called field.
	(ipa_analyze_node): Initialize new fields of param_analysis_info.
	(update_jump_functions_after_inlining): Handle aggregate contents.
	(ipa_find_agg_cst_for_param): New function.
	(try_make_edge_direct_simple_call): Handle called aggregate values.
	(update_indirect_edges_after_inlining): Make sure aggregate preserving
	jump functions comply with type compatibility requirements.
	(ipa_edge_duplication_hook): Copy also aggregate jump functions.
	(ipa_write_jump_function): Stream agg_preserved flags and aggregate
	jump functions.  Do not stream member pointer constant jump functions.
	(ipa_read_jump_function): Likewise.
	(ipa_write_indirect_edge_info): Stream new cgraph_indirect_call_info
	fields.
	(ipa_read_indirect_edge_info): Likewise.

2012-08-09  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/39423
	* config/sh/predicates.md (mem_index_disp_operand): New predicate.
	* config/sh/sh.md (*movsi_index_disp): Rewrite insns to use the new
	mem_index_disp_operand predicate.

2012-08-09  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md: Add negc extu sequence peephole.
	(movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate.
	(*movrt_negc): New insn.
	* config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to
	gen_movnegt.
	* config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t,
	sh_emit_compare_and_branch, sh_emit_compare_and_set): Use
	get_t_reg_rtx.
	(sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt.

2012-08-09  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/50751
	* config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg):
	Use arith_reg_operand predicate instead of register_operand.
	* config/sh/predicates.md (movsrc_no_disp_mem_operand): Accept
	only mem, simplify.

2012-08-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_pad_noreturn): Rename to ...
	(alpha_pad_function_end): ... this.  Also insert NOP between
	sibling call and GP load.
	(alpha_reorg): Update call to alpha_pad_function_end.  Expand comment.

2012-08-09  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/adxintrin.h: Remove guarding __ADX__ check.
	* config/i386/x86intrin.h: Likewise.
	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
	OPTION_MASK_ISA_ADX from needed options for
	__builtin_ia32_addcarryx_u32 and __builtin_ia32_addcarryx_u64.
	(ix86_expand_builtin): Use add<mode>3_carry in expanding of
	IX86_BUILTIN_ADDCARRYX32 and IX86_BUILTIN_ADDCARRYX64.

2012-08-09  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/53701
	* sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment.
	Process not only expr's vinsns but all old vinsns from expr's
	history of changes.
	(update_and_record_unavailable_insns): Clarify comment.

2012-08-09  Bernd Schmidt  <bernds@codesourcery.com>

	* reload.c (find_valid_class_1): New static function.
	(push_reload): Use it when reloading a SYMBOL_REG as the inner
	of a subreg.  Keep better track of needed classes for the
	secondary memory case.
	* config/i386/i386.h (LIMIT_RELOAD_CLASS): Limit INT_SSE_REGS to
	GENERAL_REGS.
	* reload1.c (replaced_subreg): New static function.
	(gen_reload): Use it when deciding whether to use secondary
	memory.

2012-08-09  Richard Guenther  <rguenther@suse.de>

	* tree.h (SSA_VAR_P): Simplify.
	* tree-ssanames.c (make_ssa_name_fn): Strengthen assert.
	* fold-const.c (fold_comparison): Check for default def first
	before checking for PARM_DECL.
	* tree-complex.c (get_component_ssa_name): Likewise.
	* tree-inline.c (remap_ssa_name): Likewise.
	* tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise.
	* tree-ssa-structalias.c (get_fi_for_callee): Likewise.
	(find_what_p_points_to): Likewise.
	* tree-ssa-operands.c (add_stmt_operand): Simplify.

2012-08-08  Joseph Myers  <joseph@codesourcery.com>

	* simplify-rtx.c (simplify_binary_operation_1): Do not simplify
	IOR to a constant if one operand has side effects.

2012-08-08  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* builtins.c (expand_builtin_atomic_compare_exchange): Pass old
	value operand as MEM to expand_atomic_compare_and_swap.

	* config/s390/s390.md ("atomic_compare_and_swap<mode>"): Accept
	nonimmediate_operand for old value; generate load and store if
	needed.
	* config/s390/s390.c (s390_expand_cs_hqi): Accept any operand
	as vtarget.

2012-08-08  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/54146
	* gimpify.c (gimplify_body): Only verify_gimple_in_seq with
	checking enabled.
	* tree-ssa-loop-manip.c (add_exit_phis_var): Assert that var is
	a gimple_reg if checking is enabled.
	(find_uses_to_rename_stmt): Only look at non-virtual USE operands.
	* tree-into-ssa (compute_global_livein): Change the worklist
	type from an array to a VEC.

2012-08-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.h (virtual_operand_p): Declare.
	* tree-ssa-operands.c (virtual_operand_p): New predicate.
	* gimple.c (is_gimple_reg): Use virtual_operand_p.
	* tree-into-ssa.c (prepare_block_for_update): Likewise.
	* tree-vect-loop-manip.c (adjust_debug_stmts): Likewise.

2012-08-08  Richard Guenther  <rguenther@suse.de>

	* tree-call-cdce.c (check_pow): Simplify.
	(gen_conditions_for_pow_int_base): Likewise.
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Do not handle
	virtual operands here.
	* tree-ssa-operands.c (get_name_decl): Remove unused function.
	* gimplify.c (gimple_regimplify_operands): Remove dead code.
	* tree-vrp.c (get_value_range): Move SSA_NAME_VAR access.
	* tree-parloops.c (create_phi_for_local_result): Use copy_ssa_name.
	* value-prof.c (gimple_ic): Use duplicate_ssa_name.
	(gimple_stringop_fixed_value): Likewise.
	* tree.c (needs_to_live_in_memory): Remove SSA name handling.
	* tree-stdarg.c (find_va_list_reference): Store SSA_NAME_VERSIONs
	in the bitmap alongside shifted DECL_UIDs.
	(va_list_counter_struct_op): Likewise.
	(va_list_ptr_read): Likewise.
	(va_list_ptr_write): Likewise.
	(check_va_list_escapes): Likewise.
	(check_all_va_list_escapes): Likewise.
	(execute_optimize_stdarg): Likewise.
	* tree-outof-ssa.c (insert_backedge_copies): Use copy_ssa_name.

2012-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/54157
	* combine.c (gen_lowpart_for_combine): Don't return identity
	for CONST or symbolic reference.

2012-08-08  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_ADX_SET): New.
	(OPTION_MASK_ISA_ADX_UNSET): Likewise.
	(ix86_handle_option): Handle madx option.
	* config.gcc (i[34567]86-*-*): Add adxintrin.h.
	(x86_64-*-*): Likewise.
	* config/i386/adxintrin.h: New header.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect ADCX/ADOX
	support.
	* config/i386/i386-builtin-types.def
	(UCHAR_FTYPE_UCHAR_UINT_UINT_PUNSIGNED): New function type.
	(UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG): Likewise.
	* config/i386/i386-c.c: Define __ADX__ if needed.
	* config/i386/i386.c (ix86_target_string): Define -madx option.
	(PTA_ADX): New.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add OPT_madx.
	(ix86_builtins): Add IX86_BUILTIN_ADDCARRYX32,
	IX86_BUILTIN_ADDCARRYX64.
	(ix86_init_mmx_sse_builtins): Define corresponding built-ins.
	(ix86_expand_builtin): Handle these built-ins.
	(ix86_expand_args_builtin): Handle new function types.
	* config/i386/i386.h (TARGET_ADX): New.
	* config/i386/i386.md (adcx<mode>3): New define_insn.
	* config/i386/i386.opt (madx): New.
	* config/i386/x86intrin.h: Include adxintrin.h.

2012-08-08  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c: Include tree-pass.h.

2012-08-08  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/54146
	* ira.c (init_live_subregs): Take live_subregs_used as a bitmap.
	(build_insn_chain): Make live_subregs_used a bitmap.
	Use SBITMAP_SIZE to ignore the paradoxical bytes of subregs.
	Use sbitmap_free to free the live_subreg sbitmaps.

	PR middle-end/54146
	* ifcvt.c: Include pointer-set.h.
	(cond_move_process_if_block): Change type of then_regs and
	else_regs from alloca'd array to pointer_sets.
	(check_cond_move_block): Update for this change.
	(cond_move_convert_if_block): Likewise.
	* Makefile.in: Fix dependencies for ifcvt.o.

2012-08-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gimple-ssa-strength-reduction.c (struct incr_info_d): New struct.
	(incr_vec): New static var.
	(incr_vec_len): Likewise.
	(address_arithmetic_p): Likewise.
	(stmt_cost): Remove dead assignment.
	(dump_incr_vec): New function.
	(cand_abs_increment): Likewise.
	(lazy_create_slsr_reg): Likewise.
	(incr_vec_index): Likewise.
	(count_candidates): Likewise.
	(record_increment): Likewise.
	(record_increments): Likewise.
	(unreplaced_cand_in_tree): Likewise.
	(optimize_cands_for_speed_p): Likewise.
	(lowest_cost_path): Likewise.
	(total_savings): Likewise.
	(analyze_increments): Likewise.
	(ncd_for_two_cands): Likewise.
	(nearest_common_dominator_for_cands): Likewise.
	(profitable_increment_p): Likewise.
	(insert_initializers): Likewise.
	(introduce_cast_before_cand): Likewise.
	(replace_rhs_if_not_dup): Likewise.
	(replace_one_candidate): Likewise.
	(replace_profitable_candidates): Likewise.
	(analyze_candidates_and_replace): Handle candidates with SSA-name
	strides.

2012-08-07  Steven Bosscher  <steven@gcc.gnu.org>

	* cfg.c (debug_bb): Do not set TDF_BLOCKS.
	* cfghooks.c (dump_bb): Honor ~TDF_BLOCKS.
	* pretty-print.c (pp_base_flush): Do not add a newline, and do not
	clear pp_needs_newline.
	* pretty-print.h (pp_newline_and_flush): New macro with the behavior
	of pp_base_flush before the above change.
	* langhooks.c (lhd_print_error_function): Use pp_newline_and_flush
	instead of pp_flush.
	* diagnostic.c (diagnostic_finish): Likewise.
	(diagnostic_report_diagnostic): Likewise.
	(verbatim): Likewise.
	(error_recursion): Likewise.
	* tree-pretty-print.c (print_generic_stmt): Likewise.
	(print_generic_stmt_indented): LIkewise.
	* gimple-pretty-print.c (print_gimple_stmt): Likewise.
	(print_gimple_seq): Likewise.
	(gimple_dump_bb_buff): Likewise.

2012-08-07  Uros Bizjak  <ubizjak@gmail.com>

	PR debug/54177
	* var-tracking.c (var_lowpart): Exit early for matched modes.

2012-08-07  Richard Henderson  <rth@redhat.com>

	* config/s390/s390.c (s390_emit_compare_and_swap): Update for
	atomic_compare_and_swapsi_internal name change.
	(s390_expand_insv): Try RISBG last, not requiring operands in
	registers but forcing them there.  Try a limited form of ICM.
	(s390_two_part_insv): New.
	(s390_expand_cs_hqi): Use it.  Update for atomic optabs.
	* config/s390/s390.md (UNSPEC_MOVA): New.
	(TDSI): Remove mode iterator.
	(DGPR, DINT, TDI): New mode iterators.
	(td): New mode attribute.
	(mem_signal_fence): New.
	(mem_thread_fence): Rename from memory_barrier; update for model arg.
	(mem_thread_fence_1): Rename from *memory_barrier.
	(atomic_load<DINT>, atomic_store<DINT>): New expanders.
	(atomic_loaddi_1, atomic_loadti_1): New.
	(atomic_storedi_1, atomic_storeti_1): New.
	(sync_compare_and_swap<TDSI>, sync_compare_and_swap<HQI>): Remove.
	(atomic_compare_and_swap<DGPR>, atomic_compare_and_swap<HQI>): New.
	(atomic_compare_and_swap<DGPR>_internal): New.
	(*sync_compare_and_swap<DW>, *sync_compare_and_swap<GPR>): Remove.
	(*atomic_compare_and_swap<TDI>_1): New.
	(*atomic_compare_and_swapdi_2, *atomic_compare_and_swapsi_3): New.
	(sync_<ATOMIC_Z196><GPR>, sync_old_<ATOMIC_Z196><GPR>): Remove.
	(atomic_fetch_<ATOMIC_Z196><GPR>): New.
	(atomic_fetch_<ATOMC_Z196><GPR>_iaf): New.
	(sync_<ATOMIC><HQI>, sync_old_<ATOMIC><HQI>): Remove.
	(sync_new_<ATOMIC><HQI>): Remove.
	(atomic_<ATOMIC><HQI>, atomic_fetch_<ATOMIC><HQI>): New.
	(atomic_<ATOMIC>_fetch<HQI>): New.
	(sync_lock_test_and_set<HQI>): Remove.
	(atomic_exchange<HQI>): New.

2012-08-07  Paul Brook  <paul@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* except.c (switch_to_exception_section): Place tables for
	DECL_ONE_ONLY functions in comdat groups.

2012-08-07  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (copy_ssa_name_fn): New function.
	(duplicate_ssa_name_fn): Likewise.
	* tree-flow-inline.h (copy_ssa_name): New function.
	(duplicate_ssa_name): Likewise.
	* tree-ssanames.c (copy_ssa_name_fn): New function.
	(duplicate_ssa_name): Rename to ...
	(duplicate_ssa_name_fn): ... this and adjust.
	* tree-tailcall.c (update_accumulator_with_ops): Use copy_ssa_name.
	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
	Likewise.
	(slpeel_update_phi_nodes_for_guard2): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	(vect_loop_versioning): Likewise.
	* tree-parloops.c (transform_to_exit_first_loop): Likewise.
	(create_parallel_loop): Likewise.
	* ipa-split.c (split_function): Likewise.
	* tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
	(vect_create_epilog_for_reduction): Likewise.
	* tree-vect-data-refs.c (bump_vector_ptr): Likewise.
	(vect_setup_realignment): Likewise.
	* tree-vect-stmts.c (vectorizable_load): Likewise.
	* tree-switch-conversion.c (build_one_array): Likewise.
	(gen_def_assigns): Likewise.
	* tree-cfg.c (gimple_make_forwarder_block): Likewise.
	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call
	create_zero_dim_array with the SSA name.
	(rewrite_phi_out_of_ssa): Likewise.
	(rewrite_cross_bb_scalar_dependence): Likewise.  Use copy_ssa_name.

2012-08-07  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (set_ssa_default_def): Clear the SSA_NAME_DEFAULT_DEF
	bit of the old name when we clear the slot.
	* tree-ssa-live.c (remove_unused_locals): Release any default
	def associated with an unused var.
	* tree-ssa-copy.c (may_propagate_copy_into_asm): Always return true.

2012-08-07  Richard Guenther  <rguenther@suse.de>

	* tree-into-ssa.c (rewrite_stmt): Remove clobbers for variables
	we rewrite into SSA form.
	(rewrite_enter_block): Adjust.
	* gimple-iterator.c (gsi_replace): Also allow replacement with
	a stmt without a lhs.
	* tree-ssa-live.c (remove_unused_locals): Remove code handling
	clobbers of SSA names.
	* tree-nested.c (convert_local_reference_stmt): Remove clobbers
	for variables we access through the local chain.
	* tree-cfg.c (verify_gimple_assign_single): Verify clobbers
	clobber full decls only.

2012-08-07  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_phi_set_result): Adjust SSA_NAME_DEF_STMT.
	* tree-phinodes.c (make_phi_node): Allow a NULL var.
	* tree-into-ssa.c (insert_phi_nodes_for): Simplify.
	* tree-complex.c (update_phi_components): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	(add_exit_phis_edge): Likewise.
	(split_loop_exit_edge): Likewise.
	(tree_transform_and_unroll_loop): Likewise.
	* value-prof.c (gimple_ic): Likewise.
	(gimple_stringop_fixed_value): Likewise.
	* tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
	* omp-low.c (expand_parallel_call): Likewise.
	(expand_omp_for_static_chunk): Likewise.
	(expand_omp_atomic_pipeline): Likewise.
	* tree-parloops.c (create_phi_for_local_result): Likewise.
	(transform_to_exit_first_loop): Likewise.
	* tree-vect-data-refs.c (vect_setup_realignment): Likewise.
	* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
	* tree-predcom.c (initialize_root_vars): Likewise.
	(initialize_root_vars_lm): Likewise.
	* sese.c (sese_add_exit_phis_edge): Likewise.
	* gimple-streamer-in.c (input_phi): Likewise.
	* tree-inline.c (copy_phis_for_bb): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-cfg.c (gimple_make_forwarder_block): Likewise.
	(gimple_duplicate_bb): Likewise.

2012-08-07  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c (mn10300_expand_prologue): Report
	stack usage if requested.

2012-08-06  Cary Coutant  <ccoutant@google.com>

	* cgraphunit.c (assemble_thunk): Add source line info.
	* final.c (final): Check for non-null cfg pointer.

2012-08-06  Sandra Loosemore  <sandra@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config/mips/24k.md (r24k_unknown_store): Delete special handling
	for cprestore.
	(r24k_int_load, r24k_int_arith, r24k_int_mul3, r24k_int_mfhilo)
	(r24k_int_cop, r24k_int_multi)
	(r24kf2_1_fcvt_f2i, r24kf2_1_fxfer)
	(r24kf1_1_fcvt_f2i, r24kf1_1_fxfer): Use mips_store_data_bypass_p
	instead of store_data_bypass_p.
	* config/mips/74k.md (r74k_int_store): Delete special handling for
	cprestore.
	(r74k_int_load, r74k_int_logical, r74k_int_arith, r74k_int_cmove):
	Use mips_store_data_bypass_p instead of store_data_bypass_p.

2012-08-06  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/51938
	PR tree-optimization/52005
	* tree-ssa-ifcombine.c (ifcombine_ifandif): New parameters for
	inverted conditions.
	(ifcombine_iforif): Remove, merge code into ifcombine_ifandif.
	(tree_ssa_ifcombine_bb): Update calls to the above. Detect !a&&b
	and !a||b patterns.

2012-08-06  Olivier Hainque  <hainque@adacore.com>

	* tree-emutls.c (new_emutls_decl): When a var_section is requested by
	the target, attach the new decl to that, not to the template section.

2012-08-06  Tom de Vries  <tom@codesourcery.com>

	* tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in
	unsigned type.

2012-08-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* doc/invoke.texi: Document AMD btver2.
	* doc/extend.texi: Document AMD btver1 and btver2.

2012-08-04  Sandra Loosemore  <sandra@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_option_override): Check -fpic
	for compatibility with -mabicalls and ABI.

2012-08-04  Catherine Moore  <clm@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/xlr.md (ir_xlr_alu_clz): New insn_reservation.
	(ir_xlr_alu): Remove clz.
	* config/mips/mips-cpus.def (xlr): Set PTF_AVOID_BRANCHLIKELY.

2012-08-04  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_gen_constant): Use SImode when preparing operands for
	gen_extzv_t2.

2012-08-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (QI_REGNO_P): New define.
	(ANY_QI_REGNO_P): Ditto.
	(GENERAL_REGNO_P): Use IN_RANGE macro.
	(QI_REG_P): Use QI_REGNO_P.
	(ANY_QI_REG_P): Use GENERAL_REGNO_P and QI_REGNO_P.
	(HARD_REGNO_CALLER_SAVE_MODE): Use QI_REGNO_P.
	* config/i386/i386.c (ix86_hard_regno_mode_ok): Ditto.
	(x86_extended_QIreg_mentioned_p): Ditto.  Also check if
	register is a general register.

2012-08-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sync.md (*atomic_fetch_add_cmp<mode>): Use
	incdec_operand predicate to return INC or DEC insn mnemonic.
	Add %K operand modifier.
	(atomic_add<mode>): Use incdec_operand predicate to
	return INC or DEC insn mnemonic.
	(atomic_dec<mode>): Ditto.

2012-08-03  Michael Matz  <matz@suse.de>

	PR tree-optimization/54146
	* cfgexpand.c (add_scope_conflicts_1): Use bitmap_ior_into.
	(add_scope_conflicts): Iterate in RPO order.
	(add_stack_protection_conflicts): Iterate over the other triangle.
	(fini_vars_expansion): Clear stack_vars_sorted.

2012-08-03  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/30318
	* double-int.c (mul_double_wide_with_sign): New function.
	(mul_double_with_sign): Call the new function.
	* double-int.h (mul_double_wide_with_sign): Declare the new function.
	* tree-vrp.c (extract_range_from_binary_expr_1) [MULT_EXPR]:
	Handle integer types that wrap on overflow.
	(quad_int_cmp): New helper function.
	(quad_int_pair_sort): Likewise.

2012-08-03  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query
	is_gimple_reg on the SSA name, not its variable.
	(vect_update_ivs_after_vectorizer): Likewise.
	* tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
	* tree-if-conv.c (if_convertible_phi_p): Likewise.
	(predicate_scalar_phi): Likewise.
	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
	(vect_analyze_scalar_cycles_1): Likewise.
	* tree-ssa-live.c (register_ssa_partition_check): Likewise.
	* tree-outof-ssa.c (eliminate_useless_phis): Likewise.
	* tree-ssa-reassoc.c (phi_rank): Likewise.
	* tree-parloops.c (separate_decls_in_region_name): Use
	replace_ssa_name_symbol.
	* tree-predcom.c (base_names_in_chain_on): Likewise.
	* matrix-reorg.c (update_type_size): Query the type of the SSA name,
	not its variable.
	* gimple-ssa-strength-reduction.c (create_mul_ssa_cand): Likewise.
	(create_mul_imm_cand): Likewise.
	(create_add_ssa_cand): Likewise.
	(create_add_imm_cand): Likewise.
	(slsr_process_add): Likewise.
	* tree-inline.c (remap_ssa_name): Do not set the type of the
	new SSA_NAME.
	* tree-ssa-structalias.c (get_constraint_for_ssa_var): Clarify assert.
	Check for default def first.

2012-08-04  Steven Bosscher  <steven@gcc.gnu.org>

	* cfgrtl.c (print_rtl_with_bb): Do not print a newline between insns.

	* sched-vis.c (print_pattern): Handle SEQUENCE also.

2012-08-02  Richard Henderson  <rth@redhat.com>

	Revert:
	PR 34548
	* function.h (struct rtl_data): Add max_dynamic_stack_alignment.
	* cfgexpand.c (gimple_expand_cfg): Initialise it.
	* explow.c (allocate_dynamic_stack_space): Set it.  Simplify
	alignment requirements given the known alignment of dynamic_offset.
	* function.c (instantiate_virtual_regs): Align dtnamic_offset.

2012-08-02  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* cfgexpand.c (expand_debug_locations):  Encapsulate test for
	CONST_DOUBLE in macro.
	* combine.c (try_combine, gen_lowpart_for_combine): Ditto.
	* cprop.c (implicit_set_cond_p): Ditto.
	* cselib.c (rtx_equal_for_cselib_1): Ditto.
	* expmed.c (expand_mult): Ditto.
	* expr.c (convert_modes): Ditto.
	* ira-costs.c (record_reg_classes): Ditto.
	* ira-lives.c (single_reg_class): Ditto.
	* optabs.c (expand_copysign_absneg, expand_copysign): Ditto.
	* print-rtl.c (print_rtx): Ditto.
	* recog.c (simplify_while_replacing, const_double_operand)
	(asm_operand_ok, constrain_operands): Ditto.
	* reg-stack.c (subst_stack_regs_pat): Ditto.
	* reload.c (find_reloads, find_equiv_reg): Ditto.
	* rtlanal.c (replace_rtx): Remove test.
	* rtlanal.c (constant_pool_constant_p, split_double): Encapsulate
	test for CONST_DOUBLE in macro.
	* simplify-rtx.c (mode_signbit_p, avoid_constant_pool_reference)
	(simplify_unary_operation_1, simplify_const_unary_operation)
	(simplify_binary_operation_1, simplify_const_binary_operation)
	(simplify_relational_operation_1)
	(simplify_const_relational_operations)
	(implify_subreg): Ditto.
	* varasm.c (output_constant_pool_2): Ditto.
	* rtl.h (CONST_DOUBLE_AS_INT_P, CONST_DOUBLE_AS_FLOAT_P): New macros.
	* rtl.def (CONST_DOUBLE):  Updated comments.

2012-08-02  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/51931
	* config/mips/mips-protos.h (mips_strip_unspec_address): Declare.
	* config/mips/mips.c (mips_strip_unspec_address): Make extern.
	(mips16_rewrite_pool_constant): Make a copy of the pool constant
	before adding to a PC-relative table.
	(mips16_lay_out_constants): Add a SPLIT_P parameter.
	(mips16_load_branch_target, mips16_split_long_branches): New functions.
	(mips_reorg): Update call to mips16_lay_out_constants.
	Call mips16_split_long_branches.
	* config/mips/predicates.md (pc_or_label_operand): Delete.
	* config/mips/mips.md (length): Add a calculation for MIPS16 branches.
	Move the extended_mips16 handling further down.
	(*branch_equality<mode>_mips16): Replace use pc_or_label_operand
	with explicit label_ref and pc.  Follow the usual operand numbering.
	(*branch_equality<mode>_mips16_inverted): New pattern.
	(*jump_mips16): Add length attribute.
	(indirect_jump_and_restore_<mode>): New pattern.
	(consttable_int): Call mips_strip_unspec_address on the operand.

2012-08-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* recog.c (split_insn): Copy the original SET_SRC before using
	it as a note.

2012-08-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* reorg.c (dbr_schedule): Delete REG_BR_PRED loop.

2012-08-02  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/53805
	* fold-const.c (invert_tree_comparison): Invert ORDERED_EXPR and
	UNORDERED_EXPR even for trapping floating point.

2012-08-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/53321
	PR middle-end/53865
	* ipa-inline-analysis.c (inline_free_summary): Return if
	inline_edge_summary_vec is NULL.
	* ipa-split.c (execute_split_functions): Check if a function
	is inlinable only if inline_edge_summary_vec != NULL.
	* ipa.c (symtab_remove_unreachable_nodes): Restore
	cgraph_propagate_frequency call when something was changed.
	(free_inline_summary): New function.
	(pass_ipa_free_inline_summary): New pass.
	* passes.c (init_optimization_passes): Add
	pass_ipa_free_inline_summary before pass_ipa_tree_profile.
	* timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New.
	* tree-pass.h (pass_ipa_free_inline_summary): New.

2012-08-02  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_gen_constant): Use UBFX for some AND operations when
	available.

2012-08-02  Richard Guenther  <rguenther@suse.de>

	* tree-into-ssa.c (struct common_info_d): New struct.
	(struct var_info_d, struct ssa_name_info): Use it.
	(get_ssa_name_ann): Adjust.
	(get_phi_state, set_phi_state): Remove.
	(get_common_info): New function.
	(get_current_def, set_current_def): Adjust.
	(get_def_blocks_for): Take a common info as param.
	(set_def_block): Call get_common_info once.
	(set_livein_block): Likewise.
	(find_def_blocks_for): Adjust.
	(insert_phi_nodes): Likewise.
	(register_new_def): Call get_common_info once.
	(get_reaching_def): Likewise.
	(rewrite_debug_stmt_uses): Likewise.
	(rewrite_leave_block): Likewise.
	(dump_currdefs): Likewise.
	(debug_var_infos_r): Adjust.
	(register_new_update_single): Call get_common_info once.
	(maybe_replace_use_in_debug_stmt): Likewise.
	(rewrite_update_leave_block): Likewise.
	(mark_use_interesting): Adjust.
	(create_new_def_for): Likewise.
	(update_ssa): Likewise.

2012-08-02  Michael Matz  <matz@suse.de>

	* tree-ssa-live.c (set_is_used): Return a bool.
	(mark_all_vars_used): Don't take data argument.
	(mark_all_vars_used_1): Adjust calls to above, merge handling
	of local and global vars.
	(remove_unused_scope_block_p): Don't take global_unused_vars,
	merge handling of local and global vars.
	(remove_unused_locals): Don't allocate/fill/pass global_unused_vars,
	use is_used_p for local and global vars.

2012-08-02  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (make_rename_temp): Remove.
	* tree-dfa.c (make_rename_temp): Likewise.
	* cgraphunit.c (thunk_adjust, assemble_thunk): Use create_tmp_reg
	instead of make_rename_temp.
	* omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_atomic_pipeline): Likewise.
	* trans-mem.c (tm_log_emit_save_or_restores, build_tm_load,
	build_tm_store, expand_call_tm, expand_transaction,
	ipa_tm_insert_gettmclone_call): Likewise.
	* tree-complex.c (expand_complex_div_wide): Likewise.
	* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
	Likewise.
	* tree-ssa-loop-im.c (execute_sm_if_changed_flag_set, execute_sm):
	Likewise.
	* tree-ssa-math-opts.c (insert_reciprocals): Likewise.
	* value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
	gimple_mod_subtract): Likewise.

2012-08-02  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (set_default_def): Rename to ...
	(set_ssa_default_def): ... this.  Take a struct function argument.
	(gimple_default_def): Rename to ...
	(ssa_default_def): ... this.
	(get_or_create_ssa_default_def): New function.
	* tree-dfa.c: Likewise.
	(dump_variable): Adjust.
	* ipa-prop.c (ipa_analyze_params_uses): Adjust, properly check
	for used parameters.
	* ipa-split.c (consider_split): Adjust, avoid repeated default-def
	lookups.
	(split_function): Likewise.
	* lto-streamer-in.c (input_ssa_names): Adjust.
	* omp-low.c (expand_omp_taskreg): Likewise.
	* tree-cfg.c (replace_ssa_name): Adjust, no need to push/pop cfun.
	* tree-complex.c (init_parameter_lattice_values): Adjust.
	(get_component_ssa_name): Likewise.
	(update_parameter_components): Likewise.
	* tree-inline.c (remap_ssa_name): Likewise.
	(setup_one_parameter): Likewise.
	(initialize_inlined_parameters): Likewise.
	(declare_return_variable): Likewise.
	(expand_call_inline): Likewise.
	(tree_function_versioning): Likewise.
	* tree-into-ssa.c (get_default_def_for): Remove.
	(get_reaching_def): Use get_or_create_ssa_default_def instead.
	* tree-predcom.c (replace_ref_with): Adjust.
	* tree-sra.c (get_repl_default_def_ssa_name): Likewise.
	(is_unused_scalar_param): Likewise.
	(ptr_parm_has_direct_uses): Likewise.
	(sra_ipa_reset_debug_stmts): Likewise.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Adjust.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
	* tree-ssa-live.c (verify_live_on_entry): Likewise.
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise,
	avoid repeated default def lookups.
	* tree-ssa-sccvn.c (run_scc_vn): Likewise.
	* tree-tailcall.c (arg_needs_copy_p): Adjust.
	(tree_optimize_tail_calls_1): Likewise.

2012-08-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50672
	Revert
	2012-08-01  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-tail-merge.c (release_last_vdef): Remove.
	(replace_block_by): Adjust.

2012-08-02  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (referenced_var_lookup): Remove.
	(find_referenced_vars): Remove.
	(pass_referenced_vars): Likewise.
	(make_rename_temp): Do not add referenced vars.
	(dump_referenced_vars): Remove.
	(debug_referenced_vars): Likewise.
	(dump_dfa_stats): Do not dump referenced var stats.
	(find_vars_r): Remove.
	(find_referenced_vars_in): Likewise.
	(referenced_var_check_and_insert): Likewise.
	(add_referenced_var_1): Likewise.
	(remove_referenced_var): Likewise.
	* tree-flow.h (referenced_var_lookup): Likewise.
	(struct gimple_df): Remove referenced_vars member.
	(typedef referenced_var_iterator): Remove.
	(FOR_EACH_REFERENCED_VAR): Likewise.
	(num_referenced_vars): Likewise.
	(debug_referenced_vars, dump_referenced_vars): Likewise.
	(add_referenced_var_1, add_referenced_var): Likewise.
	(remove_referenced_var): Likewise.
	(find_referenced_vars_in): Likewise.
	* tree-flow-inline.h (gimple_referenced_vars): Remove.
	(first_referenced_var): Likewise.
	(end_referenced_vars_p): Likewise.
	(next_referenced_var): Likewise.
	* cfgexpand.c (update_alias_info_with_stack_vars): Remove assert.
	* gimple-pretty-print.c (pp_points_to_solution): Dump UIDs
	unconditionally.
	* tree-into-ssa.c (dump_decl_set): Likewise.
	(pass_build_ssa): Do not require PROP_referenced_vars.
	* tree-ssa.c (target_for_debug_bind): Virtual operands are
	not suitable, but all register type vars are.
	(init_tree_ssa): Do not allocate referenced vars.
	(delete_tree_ssa): Do not free referenced vars.
	* cgraphunit.c (init_lowered_empty_function): Do not set
	PROP_referenced_vars.
	(assemble_thunk): Do not add referenced vars.
	* gimple-fold.c (canonicalize_constructor_val): Likewise.
	(gimplify_and_update_call_from_tree): Likewise.
	* gimple-streamer-in.c (input_bb): Likewise.
	* passes.c (init_optimization_passes): Do not run
	pass_referenced_vars.
	(dump_properties): Do not dump PROP_referenced_vars.
	* tree-inline.c (remap_decl): Do not add referenced vars.
	(remap_gimple_op_r): Likewise.
	(copy_tree_body_r): Likewise.
	(copy_bb): Likewise.
	(setup_one_parameter): Likewise.
	(declare_return_variable): Likewise.
	(copy_decl_for_dup_finish): Likewise.
	(copy_arguments_for_versioning): Likewise.
	(tree_function_versioning): Likewise.
	* tree-pass.h (PROP_referenced_vars): Remove.
	(pass_referenced_vars): Likewise.
	* tree-profile.c (gimple_gen_edge_profiler): Do not add
	referenced vars.
	(gimple_gen_interval_profiler): Likewise.
	(gimple_gen_pow2_profiler): Likewise.
	(gimple_gen_one_value_profiler): Likewise.
	(gimple_gen_ic_profiler): Likewise.
	(gimple_gen_average_profiler): Likewise.
	(gimple_gen_ior_profiler): Likewise.
	* tree-ssa-live.c (remove_unused_locals): Do not touch referenced vars.
	* tree-cfg.c (replace_ssa_name): Do not add referenced vars.
	(move_stmt_op): Likewise.
	* tree-ssa-operands.c (create_vop_var): Likewise.
	* gimple-low.c (record_vars_into): Likewise.
	* gimplify.c (gimple_regimplify_operands): Likewise.
	(force_gimple_operand_1): Likewise.
	* omp-low.c (expand_omp_for_generic): Likewise.
	(expand_omp_for_static_chunk): Likewise.
	(expand_omp_atomic_pipeline): Likewise.
	* graphite-clast-to-gimple.c (graphite_create_new_loop): Likewise.
	(translate_clast_assignment): Likewise.
	* graphite-sese-to-poly.c (create_zero_dim_array): Likewise.
	(handle_scalar_deps_crossing_scop_limits): Likewise.
	* ipa-prop.c (ipa_modify_formal_parameters): Likewise.
	* ipa-split.c (split_function): Likewise.
	* matrix-reorg.c (transform_access_sites): Likewise.
	* trans-mem.c (tm_log_add): Likewise.
	(ipa_tm_insert_gettmclone_call): Likewise.
	* tree-complex.c (create_one_component_var): Likewise.
	* tree-if-conv.c (ifc_temp_var): Likewise.
	* tree-parloops.c (take_address_of): Likewise.
	(initialize_reductions): Likewise.
	(separate_decls_in_region_name): Likewise.
	(create_call_for_reduction_1): Likewise.
	(separate_decls_in_region): Likewise.
	* tree-predcom.c (predcom_tmp_var): Likewise.
	(reassociate_to_the_same_stmt): Likewise.
	* tree-sra.c (build_ref_for_offset): Likewise.
	(create_access_replacement): Likewise.
	(get_replaced_param_substitute): Likewise.
	(sra_ipa_reset_debug_stmts): Likewise.
	* tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
	(rewrite_bittest): Likewise.
	* tree-ssa-loop-ivopts.c (create_new_iv): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	(tree_transform_and_unroll_loop): Likewise.
	* tree-ssa-math-opts.c (powi_as_mults): Likewise.
	(build_and_insert_call): Likewise.
	(gimple_expand_builtin_cabs): Likewise.
	(execute_optimize_bswap): Likewise.
	* tree-ssa-phiopt.c (conditional_replacement): Likewise.
	(abs_replacement): Likewise.
	(cond_store_replacement): Likewise.
	(cond_if_else_store_replacement_1): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-ssa-pre.c (get_representative_for): Likewise.
	(create_expression_by_pieces): Likewise.
	(insert_into_preds_of_block): Likewise.
	* tree-ssa-propagate.c (update_call_from_tree): Likewise.
	* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
	(eliminate_redundant_comparison): Likewise.
	(rewrite_expr_tree_parallel): Likewise.
	(get_reassoc_pow_ssa_name): Likewise.
	* tree-ssa-strlen.c (get_string_length): Likewise.
	* tree-switch-conversion.c (emit_case_bit_tests): Likewise.
	(build_arrays): Likewise.
	* tree-tailcall.c (adjust_return_value_with_ops): Likewise.
	(create_tailcall_accumulator): Likewise.
	* tree-vect-data-refs.c (vect_get_new_vect_var): Likewise.
	(vect_create_addr_base_for_vector_ref): Likewise.
	(vect_permute_store_chain): Likewise.
	(vect_permute_load_chain): Likewise.
	* tree-vect-generic.c (expand_vector_divmod): Likewise.
	* tree-vect-loop-manip.c (set_prologue_iterations): Likewise.
	(vect_build_loop_niters): Likewise.
	(vect_generate_tmps_on_preheader): Likewise.
	(vect_update_ivs_after_vectorizer): Likewise.
	(vect_gen_niters_for_prolog_loop): Likewise.
	(vect_do_peeling_for_alignment): Likewise.
	(vect_create_cond_for_align_checks): Likewise.
	* tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
	(vect_handle_widen_op_by_const): Likewise.
	(vect_operation_fits_smaller_type): Likewise.
	(vect_recog_over_widening_pattern): Likewise.
	* tree-vect-stmts.c (vect_init_vector): Likewise.

2012-08-01  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/52983
	* valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.

2012-08-01  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/52983
	* valtrack.c (cleanup_auto_inc_dec): Implement unconditionally,
	falling back to copy_rtx on non-autoinc machines.
	(propagate_for_debug_subst): Always use cleanup_auto_inc_dec.

2012-08-01  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/52983
	* valtrack.h, valtrack.c: New.
	* Makefile.in (VALTRACK_H): New.
	(OBJS): Add valtrack.o.
	(valtrack.o): New.
	(cselib.o, dce.o, df-problems.o, combine.o): Add VALTRACK_H.
	* combine.c: Include valtrack.h.
	(make_compound_operation): Publish.
	(cleanup_auto_inc_dec): Move to valtrack.c.
	(struct rtx_subst_pair, propagate_for_debug_subst): Likewise.
	(propagate_for_debug): Likewise.  Add this_basic_block parameter.
	Adjust all callers.
	* cselib.c: Include valtrack.h.
	* dce.c: Likewise.
	* df-problems.c: Likewise.
	(dead_debug_init, dead_debug_reset_uses): Move to valtrack.c.
	(dead_debug_finish, dead_debug_add): Likewise.
	(dead_debug_insert_temp): Likewise.
	* df.h (struct dead_debug_use): Move to valtrack.h.
	(struct dead_debug, enum debug_temp_where): Likewise.
	(dead_debug_init, dead_debug_reset_uses): Move to valtrack.h.
	(dead_debug_finish, dead_debug_add): Likewise.
	(dead_debug_insert_temp): Likewise.
	* rtl.h (make_compound_operation): Declare.

2012-08-01  Catherine Moore  <clm@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/mips-cpus.def (34kn): New.
	* config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Add 34kn.
	(BASE_DRIVER_SELF_SPECS): Do not imply -mdsp for the 34kn.
	* config/mips/mips-tables.opt: Regenerate.
	* doc/invoke.texi (MIPS Options): Document -march=34kn.

2012-08-01  Richard Henderson  <rth@redhat.com>

	* expmed.h (NUM_MODE_PARTIAL_INT): New.
	(NUM_MODE_VECTOR_INT, NUM_MODE_IP_INT, NUM_MODE_IPV_INT): New.
	(struct expmed_op_cheap): Size one array on NUM_MODE_IPV_INT.
	(struct expmed_op_costs): Likewise.
	(struct target_expmed): Size x_convert_cost on NUM_MODE_IP_INT.
	(expmed_mode_index): New.
	(expmed_op_cheap_ptr, expmed_op_cost_ptr): Use expmed_mode_index.
	(convert_cost_ptr): Likewise.
	* expmed.c (struct init_expmed_rtl): Rename convert to trunc.
	(init_expmed_one_conv): Split out from ...
	(init_expmed_one_mode): ... here.  Iterate conversions over
	partial integer modes too.
	(init_expmed): Iterate over partial integer modes too.

2012-08-01  Richard Henderson  <rth@redhat.com>

	* config/m32c/m32c.c (TARGET_INIT_LIBFUNCS): Remove.
	(m32c_init_libfuncs): Remove.
	* config/m32c/cond.md (cstore<QHPSI>4_16): Rename from cstore<QHPSI>4.
	(cstore<QHPSI>4): New expander.

2012-08-01  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (referenced_var): Remove.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Remove duplicate
	checking code.
	* tree-sra.c (candidates): New global hashtable.
	(candidate): New function.
	(sra_initialize): Initialize candidates.
	(sra_deinitialize): Free candidates.
	(disqualify_candidate): Remove candidate from candidates.
	(maybe_add_sra_candidate): New function.
	(find_var_candidates): Walk over all local decls and parameters,
	add candidates to candidates hashtable.
	(find_param_candidates): Add candidates to candidates hashtable.
	(analyze_all_variable_accesses): Use candidate instead of
	referenced_var.

2012-08-01  Tom de Vries  <tom@codesourcery.com>

	* tree-vrp.c (find_case_label_ranges): New function.
	(vrp_visit_switch_stmt, simplify_switch_using_ranges): Use
	find_case_label_ranges instead of find_case_label_range.  Handle second
	range.

2012-08-01  Michael Matz  <matz@suse.de>

	* tree-complex.c (init_parameter_lattice_values): Don't call var_ann.
	* tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member.
	(dump_dfa_stats): Don't dump stats about var anns.
	(collect_dfa_stats): Don't collect them.
	(add_referenced_var_1): Don't set var annotation pointers.
	(remove_referenced_var): Ditto, and only remove it it's in the
	hash table.

	* tree-flow-inline.h (var_ann): Remove.
	* tree-flow.h (struct var_ann_d, var_ann_t): Remove.

	* tree-inline.c (remapped_type): Remove.
	(can_be_nonlocal): Most variable will be considered live here,
	return false earlier.
	(remap_decls): Don't call var_ann, all variables will be considered
	referenced here.
	(copy_debug_stmt): Ditto, and use is_global_var.

	* tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to
	determine if a variable was referred to, not var_ann.
	* tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann.
	(remove_unused_locals): Ditto.
	* tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers.
	* tree-tailcall.c (arg_needs_copy_p): Don't check var_ann.
	* tree.c (copy_node_stat): Don't clear var ann pointer.
	* tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove
	ann member.
	(DECL_VAR_ANN_PTR): Remove.

2012-08-01  Michael Matz  <matz@suse.de>

	* tree-flow.h (struct var_ann_d): Rename used member.
	(set_is_used): Don't declare.
	* tree-flow-inline.h (clear_is_used): Remove.
	(set_is_used, is_used_p): Move to ...
	* tree-ssa-live.c (set_is_used, is_used_p): ... here, and use
	on the side bitmap.
	(usedvars): New bitmap.
	(dump_scope_block): Don't dump unusedness.
	(remove_unused_locals): Allocate and free usedvars.
	* tree-nrv.c (tree_nrv): Don't clear used flags here.

2012-08-01  Michael Matz  <matz@suse.de>

	* tree-flow.h (struct var_ann_d): Remove base_var_processed and
	base_index members.
	* tree-ssa-live.h (struct _var_map): Remove basevars member.
	(VAR_ANN_BASE_INDEX): Remove.
	* tree-ssa-live.c (var_map_base_init): Use a hash table instead
	of var annotation to compress index space.  Don't deal with above
	removed members.
	(var_map_base_fini): Don't free basevars.
	(init_var_map): Don't clear basevars.

2012-08-01  Bill Schmidt  <wschmidt@linux.ibm.com>

	* gimple-ssa-strength-reduction.c (struct slsr_cand_d): Change
	base_name to base_expr.
	(struct cand_chain_d): Likewise.
	(base_cand_hash): Likewise.
	(base_cand_eq): Likewise.
	(record_potential_basis): Likewise.
	(alloc_cand_and_find_basis): Likewise.
	(create_mul_ssa_cand): Likewise.
	(create_mul_imm_cand): Likewise.
	(create_add_ssa_cand): Likewise.
	(create_add_imm_cand): Likewise.
	(slsr_process_cast): Likewise.
	(slsr_process_copy): Likewise.
	(dump_candidate): Likewise.
	(base_cand_dump_callback): Likewise.
	(unconditional_cands_with_known_stride_p): Likewise.
	(cand_increment): Likewise.

2012-08-01  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR tree-optimization/46556
	* gimple-ssa-strength-reduction.c (enum cand_kind): Add CAND_REF.
	(base_cand_map): Change to hash table.
	(base_cand_hash): New function.
	(base_cand_free): Likewise.
	(base_cand_eq): Likewise.
	(lookup_cand): Change base_cand_map to hash table.
	(find_basis_for_candidate): Likewise.
	(base_cand_from_table): Exclude CAND_REF.
	(restructure_reference): New function.
	(slsr_process_ref): Likewise.
	(find_candidates_in_block): Call slsr_process_ref.
	(dump_candidate): Handle CAND_REF.
	(base_cand_dump_callback): New function.
	(dump_cand_chains): Change base_cand_map to hash table.
	(replace_ref): New function.
	(replace_refs): Likewise.
	(analyze_candidates_and_replace): Call replace_refs.
	(execute_strength_reduction): Change base_cand_map to hash table.

2012-08-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_address_subreg_operand): Reject
	stack pointer.
	(ix86_print_operand_address): Assert that parts.base and parts.index
	are non-NULL after call to simplify_subreg.

2012-08-01  Richard Guenther  <rguenther@suse.de>

	* doc/tree-ssa.texi: Remove pieces mentioning mark_sym_for_renaming.

2012-08-01  Richard Guenther  <rguenther@suse.de>

	* graphite-clast-to-gimple.c (translate_clast_user): Rename
	virtual operands.
	* sese.c (graphite_copy_stmts_from_block): Do not rename virtual
	operands here.
	* tree-call-cdce.c (tree_call_cdce): Use
	mark_virtual_operands_for_renaming.
	* tree-eh.c (sink_clobbers): Simplify.
	* tree-flow.h (mark_sym_for_renaming): Remove.
	(mark_virtual_operands_for_renaming): New function.
	* tree-if-conv.c (tree_if_conversion): Use
	mark_virtual_operands_for_renaming.
	* tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
	* tree-into-ssa.c (mark_sym_for_renaming): Remove.
	(mark_virtual_operands_for_renaming): New function.
	* tree-loop-distribution.c (tree_loop_distribution): Use
	mark_virtual_operands_for_renaming.
	* tree-ssa-dce.c (mark_virtual_operand_for_renaming): Do not
	update stmts, use mark_virtual_operands_for_renaming.
	* tree-ssa-tail-merge.c (release_last_vdef): Remove.
	(replace_block_by): Adjust.
	(tail_merge_optimize): Use mark_virtual_operands_for_renaming.
	* tree-tailcall.c (tree_optimize_tail_calls_1): Use
	mark_virtual_operands_for_renaming.
	* tree-vect-slp.c (vect_slp_transform_bb): Likewise.
	* tree-vectorizer.c (vectorize_loops): Likewise.

2012-08-01  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (struct gimple_df): Remove syms_to_rename member,
	add ssa_renaming_needed and rename_vops flags.
	(SYMS_TO_RENAME): Remove.
	(symbol_marked_for_renaming): Likewise.
	(mark_virtual_ops_for_renaming): Likewise.
	* tree-into-ssa.c (symbols_to_rename_set, symbols_to_rename):
	New globals.
	(mark_for_renaming, marked_for_renaming): New functions.
	(symbol_marked_for_renaming): Remove.
	(dump_currdefs): Adjust.
	(maybe_replace_use): Likewise.
	(maybe_replace_use_in_debug_stmt): Likewise.
	(maybe_register_def): Likewise.
	(rewrite_update_phi_arguments): Likewise.
	(rewrite_update_enter_block): Likewise.
	(fini_ssa_renamer): Clear update SSA status here ...
	(delete_update_ssa): ... not here.  Free rename set.
	(prepare_block_for_update): Compute which decls need renaming.
	(dump_update_ssa): Adjust.
	(mark_sym_for_renaming): Adjust update SSA status for virtuals.
	(need_ssa_update_p): Adjust.
	(insert_updated_phi_nodes_for): Likewise.
	(update_ssa): Likewise.
	* tree-ssa-operands.c (finalize_ssa_defs): Adjust update SSA status
	for virtual and real operands.
	(finalize_ssa_uses): Likewise.
	* tree-ssanames.c (init_ssanames): Adjust.
	* tree-ssa.c (maybe_rewrite_mem_ref_base, maybe_optimize_var,
	execute_update_addresses_taken): Add bitmap to keep track of which
	candidates are suitable for rewriting and later renaming by SSA update.
	* matrix-reorg.c (transform_access_sites): Do not rename all defs.
	* tree-dfa.c (make_rename_temp): Do not mark real operands for
	renaming.
	* cgraphunit.c (assemble_thunk): Likewise.
	* gimplify.c (gimple_regimplify_operands): Likewise.
	(force_gimple_operand_1): Likewise.
	* ipa-prop.c (ipa_modify_formal_parameters): Likewise.
	* tree-inline.c (declare_return_variable): Likewise.
	* tree-parloops.c (separate_decls_in_region_stmt): Do not call
	mark_virtual_ops_for_renaming.
	(create_stores_for_reduction): Likewise.
	(create_loads_and_stores_for_name): Likewise.
	* tree-predcom.c (mark_virtual_ops_for_renaming): Remove.
	(initialize_root_vars_lm): Do not call mark_virtual_ops_for_renaming.
	(execute_load_motion): Likewise.
	(remove_stmt): Likewise.
	(execute_pred_commoning_chain): Likewise.
	* tree-sra.c (create_access_replacement): Do not rename real operands.
	(get_unrenamed_access_replacement): Unify with ...
	(get_access_replacement): ... this.
	(get_repl_default_def_ssa_name): Adjust.
	* tree-ssa-loop-im.c (move_computations_stmt): Manually update
	virtual SSA form.
	(rewrite_mem_ref_loc): Do not call mark_virtual_ops_for_renaming.
	* tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.

2012-07-31  DJ Delorie  <dj@redhat.com>

	* config/s390/s390.c (s390_option_override): Disable DWARF 3/4
	extensions for TPF, unless specifically selected.

2012-08-01  Alan Modra  <amodra@gmail.com>

	PR target/54131
	* config/rs6000/rs6000.c (mem_operand_gpr): Don't limit range
	of lo_sum offsets.  Comment.  Assert mode at least word size
	rather than bypassing powerpc64 word offset check.

2012-07-31  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
	costs for vec_perm and vec_promote_demote down to more natural values.
	(struct _rs6000_cost_data): New data structure.
	(rs6000_density_test): New function.
	(rs6000_init_cost): Change to use rs6000_cost_data.
	(rs6000_add_stmt_cost): Likewise.
	(rs6000_finish_cost): Perform density test when vectorizing a loop.

2012-07-31  Steven Bosscher  <steven@gcc.gnu.org>

	* sched-vis.c (print_exp): Handle FMA explicitly.  Simplify handling
	of RTX_UNARY function-like operations.  Print unknown expression
	RTX classes as pseudo-functions.
	(print_pattern): Simplify return pattern printing.
	(dump_insn_slim): Print the value of notes as a pattern for proper
	printing of CFA notes.

2012-07-31  Dehao Chen  <dehao@google.com>

	* predict.c (tree_estimate_probability_driver): Normalize the
	loop when initializing the loop optimizer.

2012-07-31  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (struct var_ann_d): Remove need_phi_state
	and current_def members.
	* tree-into-ssa.c (struct def_blocks_d): Remove var member.
	(def_blocks): Remove.
	(struct var_info_d): New.
	(var_infos): New hashtable.
	(struct ssa_name_info): Add def_blocks member.
	(get_ssa_name_ann): Adjust.
	(get_var_info): New function.
	(get_phi_state, set_phi_state, get_current_def,
	set_current_def, get_def_blocks_for, find_def_blocks_for): Adjust.
	(insert_phi_nodes_compare_def_blocks): Rename to ...
	(insert_phi_nodes_compare_var_infos): ... this and adjust.
	(insert_phi_nodes): Adjust.
	(dump_tree_ssa, dump_tree_ssa_stats): Adjust.
	(def_blocks_hash, def_blocks_eq, def_blocks_free): Remove.
	(debug_def_blocks_r): Rename to ...
	(debug_var_infos_r): ... this and adjust.
	(var_info_hash): New function.
	(var_info_eq): Likewise.
	(rewrite_blocks): Adjust.
	(init_ssa_renamer): Likewise.
	(fini_ssa_renamer): Likewise.
	(delete_update_ssa): Likewise.
	(update_ssa): Likewise.
	* tree-ssanames.c (release_dead_ssa_names): Do not clear current defs.

2012-07-31  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR tree-optimization/53773
	* tree-vectorizer.h (struct _loop_vec_info): Add operands_swapped.
	(LOOP_VINFO_OPERANDS_SWAPPED): New macro.
	* tree-vect-loop.c (new_loop_vec_info): Initialize
	LOOP_VINFO_OPERANDS_SWAPPED field.
	(destroy_loop_vec_info): Restore canonical form.
	(vect_is_slp_reduction): Set LOOP_VINFO_OPERANDS_SWAPPED field.
	(vect_is_simple_reduction_1): Likewise.

2012-07-31  Steven Bosscher  <steven@gcc.gnu.org>

	* sched-vis.c (dump_insn_slim): Print print_rtx_head at the
	start of each new line.
	* final.c (final_scan_insn): If the final dump is requested as
	slim RTL, dump slim RTL to the assembly file also.

2012-07-31  Andrey Belevantsev  <abel@ispras.ru>

	PR target/53975

	* sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.

	Revert
	2011-08-04  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
	only if producer writes to the register given by regno.

2012-07-31  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.c (xstormy16_expand_prologue): Add
	support for reporting stack usage.

	* config/frv/frv.c (QUAD): Fix typo.
	(frv_expand_prologue): Report stack usage.

2012-07-31  Steven Bosscher  <steven@gcc.gnu.org>

	PR pch/53880
	* gengtype.c (struct walk_type_data): Add have_this_obj field.
	(walk_type): For functions that take a this_obj argument and
	that process fields with a GTY((length)) argument, write the
	test that write_types_local_process_field will write also at the
	head of the loop, effectively unswitching the loop.
	(write_func_for_structure, write_local_func_for_structure): Clear
	have_this_obj before calling walk_type.
	(write_local_func_for_structure): Set have_this_obj before walk_type.
	(write_array): Set have_this_obj for output of local pointer walking
	functions but not for marker functions.
	(write_types_local_process_field): Assert have_this_obj is set.

	* rtl.h (simplify_using_condition): Adjust prototype using bitmap
	from coretypes.h.

2012-07-30  Nathan Froyd  <froydnj@gcc.gnu.org>


	* defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* targhooks.c (default_mode_dependent_address_p): Delete code
	for GO_IF_MODE_DEPENDENT_ADDRESS.
	* system.h (GO_IF_MODE_DEPENDENT_ADDRESS): Poison.
	* doc/tm.texi.in (GO_IF_MODE_DEPENDENT_ADDRESS): Delete documention.
	* doc/tm.texi: Regenerate.
	* config/alpha.h (GO_IF_MODE_DEPENDENT_ADDRESS): Move code to...
	* config/alpha.c (alpha_mode_dependent_address_p): ...here.  New
	function.
	(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
	* config/cr16/cr16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/mep/mep.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/vax/vax-protos.h (vax_mode_dependent_address_p): Delete.
	* config/vax/vax.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	* config/vax/vax.c (vax_mode_dependent_address_p): Make static.
	Take a const_rtx.
	(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.

2012-07-30  Nathan Froyd  <froydnj@gcc.gnu.org>

	* expmed.h (NUM_MODE_VECTOR_INT): Define.
	(struct expmed_op_cheap, struct expmed_op_costs): New structures.
	(struct target_expmed): Convert x_mul_highpart_cost and
	x_mul_widen_cost fields to be indexed by integer modes.
	Convert x_sdiv_pow2_cheap and x_smod_pow2_cheap fields to be
	of type struct expmed_op_cheap.  Convert other cost fields to be
	of type struct_expmed_op_costs.
	(mul_widen_cost_ptr, mul_highpart_cost_ptr): Adjust for new
	indexing of respective fields.
	(expmed_op_cheap_ptr): New function.
	(sdiv_pow2_cheap_ptr, smod_pow2_cheap_ptr): Call it.
	(expmed_op_cost_ptr): New function.
	(add_cost_ptr, neg_cost_ptr, shift_cost_ptr, shiftadd_cost_ptr,
	shiftsub0_cost_ptr, shiftsub1_cost_ptr, mul_cost_ptr,
	sdiv_cost_ptr, udiv_cost_ptr): Call it.

2012-07-30  Sandra Loosemore  <sandra@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* doc/invoke.texi (MIPS Options): Document -mno-float.
	* config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Make it know
	about -mno-float.

2012-07-30  Joseph Myers  <joseph@codesourcery.com>

	* doc/sourcebuild.texi (Subdirectories): Document common subdirectory.

2012-07-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/53823
	* expmed.c (expand_mult): Skip synth_mult for constant double op1 except
	for special cases.  Don't initialize coeff and is_neg.

2012-07-30  Ulrich Weigand  <ulrich.weigand@linaro.org>
	    Richard Earnshaw  <rearnsha@arm.com>

	* target.def (vector_alignment): New target hook.
	* doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_vector_alignment): New function.
	* targhooks.h (default_vector_alignment): Add prototype.
	* stor-layout.c (layout_type): Use targetm.vector_alignment.
	* config/arm/arm.c (arm_vector_alignment): New function.
	(TARGET_VECTOR_ALIGNMENT): Define.

	* tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
	vector type alignment instead of size.
	* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
	element type size directly instead of computing it from alignment.
	Fix variable naming and comment.

2012-07-30  Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New.
	(OPTION_MASK_ISA_RDSEED_UNSET): Likewise.
	(ix86_handle_option): Handle mrdseed option.
	* config.gcc (i[34567]86-*-*): Add rdseedintrin.h.
	(x86_64-*-*): Likewise.
	* config/i386/prfchwintrin.h: New header.
	* config/i386/cpuid.h (bit_RDSEED): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	RDSEED support.
	* config/i386/i386-c.c: Define __RDSEED__ if needed.
	* config/i386/i386.c (ix86_target_string): Define -mrdseed option.
	(PTA_RDSEED): New.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add OPT_mrdseed.
	(ix86_builtins): Add enum entries for RDSEED* builtins.
	(ix86_init_mmx_sse_builtins): Define new builtins.
	(ix86_expand_builtin): Expand RDSEED* builtins.
	* config/i386/i386.h (TARGET_RDSEED): New.
	* config/i386/i386.md (rdseed<mode>_1): New.
	* config/i386/i386.opt (mrdseed): New.
	* config/i386/x86intrin.h: Include rdseedintrin.h.

2012-07-30  Richard Guenther  <rguenther@suse.de>

	* tree-into-ssa.c (mark_def_sites): Also process virtual operands.
	(rewrite_stmt): Likewise.
	(rewrite_enter_block): Likewise.
	(pass_build_ssa): Do not update virtual SSA form during TODO.
	(mark_symbol_for_renaming): Do nothing if we are not in SSA form.
	* lto-streamer-in.c (lto_read_body): Set in_ssa_p earlier.

2012-07-30  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/39423
	* config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): New
	insns.

2012-07-30  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md (mov_neg_si_t): Move to Scc instructions section.
	Use t_reg_operand predicate.  Add split for negated case.
	(ashrsi2_31): Pass get_t_reg_rtx to gen_mov_neg_si_t.
	* config/sh/sh.c (expand_ashiftrt): Likewise.

2012-07-30  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/sh.md (ashlsi3_d): Invoke gen_shifty_op directly instead
	of trying to emit ashlsi3_n.

2012-07-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
	    Steven Bosscher  <steven@gcc.gnu.org>

	* gengtype.c (adjust_field_type): Diagnose duplicate "length"
	option applications and option being applied to arrays of atomic types.
	(walk_type): Allow "atomic" option on strings too.
	* dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option
	for the array field.
	* vec.h: Describe the atomic object "A" type of the macros in
	the header comment.
	(VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define.
	* emit-rtl.c (locations_locators_vals): use the atomic object vector.
	* doc/gty.texi: Clarify that GTY option "length" is only for
	arrays of non-atomic objects.  Fix typo in the description of the
	"atomic" option.

2012-07-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_avoid_lea_for_addr): Handle
	zero-extended addresses.  Return false if the address has less
	than two components.
	(ix86_split_lea_for_addr): Unconditionally convert target and
	all address operands to requested mode.
	* config/i386/i386.md (*lea<mode>): Recover operands from curr_insn.
	Pass SImode to ix86_split_lea_for_addr when splitting zero-extended
	address.
	(zero-extended add splitter): New splitter to conditionally split
	non-destructive adds.
	(*zero_extendsidi2_rex64): Conditionally emit leal instead of movl.

2012-07-28  Alan Modra  <amodra@gmail.com>

	PR target/54093
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Limit 32-bit
	multi-gpr reload to cases where predicate passes.  Do the same for
	64-bit multi-gpr reload.

2012-07-27  Nathan Froyd  <froydnj@gcc.gnu.org>

	* expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap,
	smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost)
	shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost,
	sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete
	macro definitions and re-purpose as inline functions.
	(alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr,
	set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap,
	zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost,
	neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost,
	shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr,
	set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost,
	mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost,
	udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr,
	set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost):
	New functions.
	(convert_cost_ptr): New function, split out from...
	(set_convert_cost, convert_cost): ...here.
	* expmed.c, tree-ssa-loop-ivopts.c: Update for new functions.
	* gimple-ssa-strength-reduction.c: Likewise.

2012-07-20  Ryan Mansfield  <rmansfield@qnx.com>

	* gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after
	diagnostic_initialize.

2012-07-27  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/sh.c (shiftcosts): Remove case where first operand
	is a const_int.  Move COSTS_N_INSNS usage into caller ...
	(sh_rtx_costs) ... here.  Return false when shiftcosts cannot be
	calculated instead of MAX_COST.

2012-07-27  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained
	check whether SSA form is not up-to-date.
	* tree-flow.h (name_mappings_registered_p): Remove.
	* tree-into-ssa.c (struct repl_map_d): Remove.
	(repl_tbl): Likewise.
	(struct ssa_name_info): Add repl_set member.
	(update_ssa_obstack): New static global.
	(get_ssa_name_ann): Initialize repl_set.
	(clear_ssa_name_info): Assert age did not wrap.
	(repl_map_hash, repl_map_eq, repl_map_free): Remove.
	(names_replaced_by): Adjust.
	(add_to_repl_tbl): Likewise.
	(dump_tree_ssa_stats): Likewise.
	(init_update_ssa): Initialize update_ssa_obstack.
	(delete_update_ssa): Free update_ssa_obstack.
	(name_mappings_registered_p): Remove.
	(update_ssa): Adjust.

2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/constraints.md: Delete "q" constraint.
	* config/rs6000/dfp.md (movsd_hardfloat, movsd_softfloat):
	Delete the "q" alternative.
	* config/rs6000/predicates.md (gpc_reg_operand): Adjust.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global)
	(rs6000_init_hard_regno_mode_ok, rs6000_dbx_register_number):
	adjust to MQ_REGNO removal.
	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust
	comment.
	(REG_ALLOC_ORDER): Adjust comment.  Remove MQ from alloc order.
	(enum reg_class): Adjust comment.  Delete MQ_REGS.
	(REG_CLASS_CONTENTS): Adjust.
	(REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust comment.
	* config/rs6000/rs6000.md: Delete MQ_REGNO.
	(movsi_internal1, movsi_internal1_single, movhi_internal,
	movqi_internal, movcc_internal1, movsf_hardfloat,
	movsf_softfloat): Delete the "q" alternative.
	(ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
	ctr<mode>_internal6): Delete "q" constraint.

2012-07-27  Richard Guenther  <rguenther@suse.de>

	* tree-into-ssa.c (def_blocks_p): New typedef.
	(insert_phi_nodes_compare_def_blocks): New function.
	(insert_phi_nodes): Do not walk over referenced vars, instead
	walk over recorded def_blocks, record relevant ones and sort
	them to avoid repeated hashtable lookups.

2012-07-27  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (min-virtual-mappings, virtual-mappings-ratio):
	Remove param documentation.
	* params.def (PARAM_MIN_VIRTUAL_MAPPINGS,
	PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Remove.
	* tree-flow.h (mark_set_for_renaming): Remove.
	* tree-into-ssa.c (struct update_ssa_stats_d): Remove.
	(add_new_name_mapping): Remove bookkeeping code.
	(dump_update_ssa): Remove stats dumping code.
	(init_update_ssa): Remove stats allocation code.
	(delete_update_ssa): Remove stats freeing code.
	(mark_set_for_renaming): Remove.
	(switch_virtuals_to_full_rewrite_p): Likewise.
	(switch_virtuals_to_full_rewrite): Likewise.
	(update_ssa): Do not call switch_virtuals_to_full_rewrite.

2012-07-27  Marek Polacek  <polacek@redhat.com>

	* cgraphunit.c: Rename varpool_finalize_variable to
	varpool_finalize_decl in a comment.

2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>

	* common/config/rs6000/rs6000-common.c (rs6000_handle_option):
	Delete code for -mno-power, -mpower, and -mpower2.
	* config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete.
	(SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
	with -maix64.
	(ASM_CPU_SPEC): Delete support for POWER and POWER2.
	* config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete.
	(SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
	with -maix64.
	(ASM_CPU_SPEC): Delete support for POWER and POWER2.
	* config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete.
	(SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
	with -maix64.
	(TARGET_POWER): Delete.
	* config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
	(SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
	with -maix64.
	(TARGET_POWER): Delete.
	* config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
	(SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
	with -maix64.
	(TARGET_POWER): Delete.
	* config/rs6000/darwin.h (TARGET_POWER): Delete.
	* config/rs6000/driver-rs6000.c (struct asm_names): Delete
	support for -mpower, -mpower2, and -mno-power.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
	Likewise.
	(rs6000_cpu_cpp_builtins): Likewise.
	* config/rs6000/rs6000-cpus.def: Likewise.
	* config/rs6000/rs6000-tables.opt: Regenerate.
	* config/rs6000/rs6000.c (POWER_MASKS): Delete.
	(rs6000_option_override_internal): Adjust.
	(rs6000_conditional_register_usage): Adjust.
	(rs6000_emit_move): Adjust.
	(rs6000_common_init_builtins): Adjust.
	(rs6000_init_libfuncs): Adjust.
	(rs6000_output_function_prologue): Adjust.
	(rs6000_adjust_cost): Adjust.
	(struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
	POWER and POWER2.
	(TARGET_DEFAULT): Adjust.
	(PROCESSOR_POWER): Delete.
	(SHIFT_COUNT_TRUNCATED): Adjust.
	* config/rs6000/rs6000.md (extendqisi2): Delete POWER support.
	(extendqisi2_power): Delete.
	(extendqisi2_no_power): Adjust.
	(extendqihi2, extendqihi2_power, extendqihi2_no_power):
	Likewise.
	(sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
	(anonymous doz insn patterns): Delete.
	(abssi2): Adjust.
	(abssi2_power): Delete.
	(abssi2_nopower): Adjust.
	(nabs_power, nabs_nopower): Likewise.
	(mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1):
	Likewise.  Delete anonymous post-reload splitter.
	(mulsi3_no_mq_internal1): rename to...
	(mulsi3_internal1): New define_insn.
	(mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2):
	Likewise.
	(divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq,
	udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq,
	udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise.
	(mulh_call, mull_call, divss_call, divus_call, quoss_call,
	quous_call): Likewise.
	(maskir_internal1, maskir_internal2, maskir_internal3,
	maskir_internal4, maskir_internal5, maskir_internal6,
	maskir_internal7, maskir_internal8): Delete.
	(ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust.
	(anonymous sl insn patterns): Delete.
	(lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust.
	(lshrsi3_64): Adjust.
	(anonymous sr insn patterns): Delete.
	(anonymous rrib insn patterns): Delete.
	(ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust.
	(anonymous sra insn patterns): Delete.
	(sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust.
	(fix_trunc<mode>si2, fix_trunc<mode>si2_internal,
	fctiwz_<mode>): Adjust.
	(mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq,
	umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq,
	smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq,
	umulsi3_highpart_no_mq): Adjust.
	(ashldi3_power, lshrdi3_power, ashrdi3_power): Delete.
	(ashrdi3_no_power, ashldi3, ashldi3_internal1,
	lshrdi3_internal1): Adjust.
	(fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust.
	(movti_power): Delete.
	(movti_string): Adjust.
	(stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust.
	(stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power,
	stmsi4_power, stmsi3_power): Delete.
	(anonymous movmemsi insn patterns): Adjust.
	(lfq_power2, stfq_power2): Delete.
	(eq<mode>, eq<mode>_compare): Adjust.
	(eqsi_power): Delete.
	(ne0si): Adjust.
	(anonymous le, lt, ge, gt insn patterns): Delete.
	* config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete.
	* config/rs6000/sysv4.h (TARGET_POWER): Delete.
	* config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
	MULTILIB_MATCHES): Adjust.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete
	-mpower, -mno-power, -mpower2, -mno-power2 documentation.
	Delete -mcpu=power and -mcpu=power2 documentation.

2012-07-27  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/601.md: New file.
	* config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for
	RIOS CPUs.
	* config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise.
	* config/rs6000/driver-rs6000.c (detect_processor_aix,
	struct asm_names): Likewise.
	* config/rs6000/rios1.md: Delete file.
	* config/rs6000/rios2.md: Delete file.
	* config/rs6000/rs6000-cpus.def: Delete definitions for RIOS
	CPUs.
	* config/rs6000/rs6000-opts.h (enum processor_type): Delete
	PROCESSOR_RIOS1 and PROCESSOR_RIOS2.
	* config/rs6000/rs6000-tables.opt: Regenerated.
	* config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost):
	Delete.
	(rs6000_option_override_internal): Delete support for RIOS CPUs.
	(rs6000_conditional_register_usage): Adjust comment.
	(rs6000_issue_rate):Delete support for RIOS CPUs.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
	RIOS CPUs.
	(PROCESSOR_POWER): Change to PROCESSOR_PPC601.
	(PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
	* config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
	and rios2.
	(include "rios1.md", include "rios2.md"): Delete.
	(include "601.md"): New.
	* config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
	PROCESSOR_PPC603.
	* config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
	for RIOS CPUs.
	* config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and
	rios2.md .  Add 601.md .

2012-07-26  Richard Henderson  <rth@redhat.com>

	* doc/extend.texi (attribute): Document hot/cold for labels.
	* predict.c (tree_estimate_probability_bb): Handle hot/cold
	attributes on user labels.
	* predict.def (PRED_HOT_LABEL, PRED_COLD_LABEL): New.

2012-07-26  Andrew Jenner  <andrew@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* cse.c (find_comparison_args): Check for cycles of any length.

2012-07-26  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c (REG_SAVE_BYTES): Delete.
	(mn10300_get_live_callee_saved_regs): If requested return a count
	of the number of bytes in the mask.
	(mn10300_expand_prologue): Add argument to invocation of
	mn10300_get_live_callee_regs.
	(mn10300_expand_epilogue): Compute reg_save_bytes by calling
	mn10300_get_live_callee_saved_regs.
	(mn10300_initial_offset): Likewise.
	* config/mn10300/mn10300-protos.h (mn10300_get_live_callee_saved_regs):
	Update prototype.
	* config/mn10300/mn10300.md (return_ret): Add argument to
	invocation of mn10300_get_live_callee_saved_regs.

2012-07-26  Steven Bosscher  <steven@gcc.gnu.org>

	PR regression/54084
	* sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
	pointer difference check.

2012-07-26  Bill Schmidt  <wschmidt@linux.ibm.com>

	* tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
	(mbc_entry_eq): Likewise.
	(mult_costs): Likewise.
	(cost_tables_exist): Likewise.
	(initialize_costs): Likewise.
	(finalize_costs): Likewise.
	(tree_ssa_iv_optimize_init): Remove call to initialize_costs.
	(add_regs_cost): Remove.
	(multiply_regs_cost): Likewise.
	(add_const_cost): Likewise.
	(extend_or_trunc_reg_cost): Likewise.
	(negate_reg_cost): Likewise.
	(struct mbc_entry): Likewise.
	(multiply_by_const_cost): Likewise.
	(get_address_cost): Change add_regs_cost calls to add_cost lookups;
	change multiply_by_const_cost to mult_by_coeff_cost.
	(force_expr_to_var_cost): Likewise.
	(difference_cost): Change multiply_by_const_cost to mult_by_coeff_cost.
	(get_computation_cost_at): Change add_regs_cost calls to add_cost
	lookups; change multiply_by_const_cost to mult_by_coeff_cost.
	(determine_iv_cost): Change add_regs_cost calls to add_cost lookups.
	(tree_ssa_iv_optimize_finalize): Remove call to finalize_costs.
	* tree-ssa-address.c (expmed.h): New #include.
	(most_expensive_mult_to_index): Change multiply_by_const_cost to
	mult_by_coeff_cost.
	* gimple-ssa-strength-reduction.c (expmed.h): New #include.
	(stmt_cost): Change to use mult_by_coeff_cost, mul_cost, add_cost,
	neg_cost, and convert_cost instead of IVOPTS interfaces.
	(execute_strength_reduction): Remove calls to initialize_costs and
	finalize_costs.
	* expmed.c (struct init_expmed_rtl): Add convert rtx_def.
	(init_expmed_one_mode): Initialize convert rtx_def; initialize
	x_convert_cost for related modes.
	(mult_by_coeff_cost): New function.
	* expmed.h (NUM_MODE_INT): New #define.
	(struct target_expmed): Add x_convert_cost matrix.
	(set_convert_cost): New inline function.
	(convert_cost): Likewise.
	(mult_by_coeff_cost): New extern decl.
	* tree-flow.h (initialize_costs): Remove decl.
	(finalize_costs): Likewise.
	(multiply_by_const_cost): Likewise.
	(add_regs_cost): Likewise.
	(multiply_regs_cost): Likewise.
	(add_const_cost): Likewise.
	(extend_or_trunc_reg_cost): Likewise.
	(negate_reg_cost): Likewise.
	* Makefile.in (gimple-ssa-strength-reduction.o): Update dependencies.
	(tree-ssa-address.o): Update dependencies.

2012-07-26  Steven Bosscher  <steven@gcc.gnu.org>

	* bitmap.h: Add explanation of sparse set as linked-list bitmap.
	* sbitmap.h: Add explanation about non-sparse sets as simple bitmap.
	(TEST_BIT): Make a static inline function for stronger type checking.
	(SET_BIT): Don't handle sbitmaps with popcount.
	(RESET_BIT): Likewise.
	(SET_BIT_WITH_POPCOUNT): New, like SET_BIT but with popcount.
	(RESET_BIT_WITH_POPCOUNT): New, like RESET_BIT but with popcount.
	* ebitmap.c (ebitmap_clear_bit): Use SET_BIT_WITH_POPCOUNT and
	RESET_BIT_WITH_POPCOUNT on wordmask bitmaps.
	(ebitmap_set_bit, ebitmap_and_into, ebitmap_and, ebitmap_ior_into,
	ebitmap_and_compl_into, ebitmap_and_compl): Likewise.
	* sparseset.h: Add explanation of sparse set representation.

2012-07-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54098
	* tree-vrp.c (vrp_visit_phi_node): Iterate once more if the
	original range was UNDEFINED.

2012-07-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/neon.ml (ops): Fix regexp for vld1Q_dups64 and
	vld1Q_dupu64 tests.

2012-07-26  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.opt (mzdcbranch): New option.
	* doc/invoke.texi: Document it.
	* config/sh/sh.md (negsi_cond): Use TARGET_ZDCBRANCH as condition
	instead of TARGET_HARD_SH4.
	* config/sh/sh.c (sh_option_override): Set TARGET_ZDCBRANCH as default
	for TARGET_HARD_SH4.

2012-07-25  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
	case.
	(p27_shift_count_operand, not_p27_shift_count_operand): New predicates.
	* config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber
	from expander.  Do not emit shift insn for not-SHMEDIA case.
	(ashlsi3_std): Replace with ...
	(ashlsi3_k, ashlsi3_d): ... these new insns.
	* config/sh/sh.c (gen_ashift): Make static.  Add sanity checks.
	Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case.
	(gen_ashift_hi): Make static.
	* config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward
	declaration.

2012-07-25  Bharathi Seshadri  <bseshadr@cisco.com>
	    Jim Wilson  <jimwilso@cisco.com>

	* config/arm/bpabi.h (BE8_LINK_SPEC): Set according to
	TARGET_BIG_ENDIAN_DEFAULT.

2012-07-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-low.c (lower_try_catch): New function.
	(lower_stmt) <GIMPLE_TRY>: Use it to lower GIMPLE_TRY_CATCH.
	<GIMPLE_CATCH>: Delete.
	<GIMPLE_EH_FILTER>: Likewise.

2012-07-25  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1): Do not expand operand #1 and #2
	of BIT_FIELD_REF for ignored results.
	* fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
	CONSTRUCTOR has vector type before using vector accessors on it.
	* gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
	#2 of BIT_FIELD_REF.
	(gimplify_expr) <BIT_FIELD_REF>: Likewise.
	* tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
	not process operand #1 and #2.
	(convert_local_reference_op): Likewise.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
	breaks throughout.
	<BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
	* tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
	operand #1 and #2.
	(UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
	(build6_stat): Delete.
	* tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.

2012-07-25 Marc Glisse <marc.glisse@inria.fr>

	PR tree-optimization/30318
	* tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]:
	Handle __int128.
	[MINUS_EXPR]: Merge with PLUS_EXPR.

2012-07-25  Sandra Loosemore  <sandra@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>

	PR target/53633
	* target.def (warn_func_return): New hook.
	* doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook.
	* doc/tm.texi: Regenerate.
	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	naked_functions.
	* ipa-pure-const.c (warn_function_noreturn): Check
	targetm.warn_func_return.
	* tree-cfg.c (execute_warn_function_return): Likewise.
	* config/spu/spu.c (spu_warn_func_return): New.
	(TARGET_WARN_FUNC_RETURN): Define.
	* config/rx/rx.c (rx_warn_func_return): New.
	(TARGET_WARN_FUNC_RETURN): Define.
	* config/avr/avr.c (avr_warn_func_return): New.
	(TARGET_WARN_FUNC_RETURN): Define.
	* config/arm/arm.c (arm_warn_func_return): New.
	(TARGET_WARN_FUNC_RETURN): Define.
	* config/mcore/mcore.c (mcore_warn_func_return): New.
	(TARGET_WARN_FUNC_RETURN): Define.
	(saved_warn_return_type, saved_warn_return_type_count): Remove.
	(mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack.

2012-07-25  Siddhesh Poyarekar  <siddhesh@redhat.com>

	* final.c [ASSEMBLER_DIALECT](do_assembler_dialects): New
	function to implement assembler dialects.
	(output_asm_insn): Use do_assembler_dialects.
	(asm_fprintf): Likewise.

2012-07-25  Richard Henderson  <rth@redhat.com>

	PR bootstrap/54092
	* libfuncs.h: Don't include optabs.h.
	(struct libfunc_entry): Use "int" for op, mode1, mode2 members.
	* optabs.c (hash_libfunc): Don't cast members to int.
	* Makefile.in (LIBFUNCS_H): Don't include OPTABS_H.

2012-07-25  Dodji Seketeli  <dodji@redhat.com>

	* basic-block.c: Fix typo in comment.

2012-07-25  Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
	(OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
	(ix86_handle_option): Handle mprfchw option.
	* config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
	(x86_64-*-*): Likewise.
	* config/i386/prfchwintrin.h: New header.
	* config/i386/cpuid.h (bit_PRFCHW): New.
	(bit_BMI): Formatting fix.
	(bit_HLE): Likewise.
	(bit_RTM): Likewise.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	PREFETCHW support.
	* config/i386/i386-c.c: Define __PRFCHW__ if needed.
	* config/i386/i386.c (ix86_target_string): Define
	-mprfchw option. Formatting fixes.
	(PTA_HLE): Formatting fix.
	(PTA_PRFCHW): New.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
	* config/i386/i386.h (TARGET_PRFCHW): New.
	* config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
	* config/i386/i386.opt (mprfchw): New.
	* config/i386/mm3dnow.h: Move _m_prefetchw from here to	prfchwintrin.h.
	* config/i386/x86intrin.h: Include prfchwintrin.h.

2012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>

	* config/i386/i386.md (stack_protect_set): Disable the pattern
	for Android since Android libc (bionic) does not provide random
	value for stack protection guard at gs:0x14. Guard value
	will be provided from external symbol (default implementation).
	(stack_protect_set_<mode>): Likewise.
	(stack_protect_test): Likewise.
	(stack_protect_test_<mode>): Likewise.
	* defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
	not have Bionic by default
	* config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
	Macro OPTION_BIONIC is defined in this file and provides Bionic
	accessibility status

2012-07-25  Steven Bosscher  <steven@gcc.gnu.org>

	* gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.

2012-07-25  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	btver2 Enablement
	* config.gcc (i[34567]86-*-linux* | ...): Add btver2.
	(case ${target}): Add btver2.
	* config/i386/driver-i386.c (host_detect_local_cpu): Let
	-march=native recognize btver2 processors.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add
	btver2 def_and_undef
	* config/i386/i386.c (struct processor_costs btver2_cost): New
	btver2 cost table.
	(m_BTVER2): New definition.
	(m_AMD_MULTIPLE): Includes m_BTVER2.
	(initial_ix86_tune_features): Add btver2 tune.
	(processor_target_table): Add btver2 entry.
	(static const char *const cpu_names): Add btver2 entry.
	(software_prefetching_beneficial_p): Add btver2.
	(ix86_option_override_internal): Add btver2 instruction sets.
	(ix86_issue_rate): Add btver2.
	(ix86_adjust_cost): Add btver2.
	* config/i386/i386.h (TARGET_BTVER2): New definition.
	(enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver2.
	(enum processor_type): Add PROCESSOR_BTVER2.
	* config/i386/i386.md (define_attr "cpu"): Add btver2.

2012-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>

	* doc/tm.texi: Regenerate.
	* targhooks.c (default_init_cost): Add prologue and epilogue costs.
	(default_add_stmt_cost): Likewise; also handle NULL stmt_info.
	(default_finish_cost): Add prologue and epilogue costs.
	* targhooks.h (default_add_stmt_cost): Change parameter list.
	(default_finish_cost): Likewise.
	* target.def (init_cost): Change documentation string.
	(add_stmt_cost): Change documentation string and parameter list.
	(finish_cost): Likewise.
	* target.h (vect_cost_model_location): New enum.
	* tree-vectorizer.h (struct _slp_tree): Remove cost substruct.
	(struct _slp_instance): Remove cost substruct; rename stmt_cost_vec
	to body_cost_vec.
	(SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove.
	(SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC.
	(SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove.
	(struct _vect_peel_extended_info): Rename stmt_cost_vec to
	body_cost_vec.
	(struct _stmt_vec_info): Remove cost substruct.
	(STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove.
	(stmt_vinfo_set_outside_of_loop_cost): Remove.
	(builtin_vectorization_cost): New function.
	(vect_get_stmt_cost): Change to use builtin_vectorization_cost.
	(add_stmt_cost): Change parameter list.
	(finish_cost): Likewise.
	(vect_model_simple_cost): Likewise.
	(vect_model_store_cost): Likewise.
	(vect_model_load_cost): Likewise.
	(record_stmt_cost): Likewise.
	(vect_get_load_cost): Likewise.
	(vect_get_known_peeling_cost): Likewise.
	* tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter
	list; call record_stmt_cost for prologue and epilogue costs.
	(vect_estimate_min_profitable_iters): Call add_stmt_cost for
	prologue and epilogue costs; remove computation of vec_outside_cost;
	return vec_prologue_cost and vec_epilogue_cost from finish_cost.
	(vect_model_reduction_cost): Revise call to add_stmt_cost for body
	costs; call add_stmt_cost for prologue and epilogue costs.
	(vect_model_induction_cost): Revise call to add_stmt_cost for body
	costs; call add_stmt_cost for prologue costs.
	* tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter
	list for function and arguments for calls to vect_get_load_cost and
	vect_get_store_cost.
	(vect_peeling_hash_get_lowest_cost): Change argument list for calls to
	vect_get_data_access_cost and vect_get_known_peeling_cost; use
	temporary vectors prologue_cost_vec and epilogue_cost_vec for the
	latter call and discard their results; rename stmt_cost_vec to
	body_cost_vec; correct possible storage leak for body_cost_vec.
	(vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to
	body_cost_vec.
	(vect_enhance_data_refs_alignment): Rename stmt_cost_vec to
	body_cost_vec; add extra dummy parameter on calls to
	vect_get_data_access_cost; tolerate null si->stmt; add vect_body to
	argument list on call to add_stmt_cost.
	* tree-vect-stmts.c (record_stmt_cost): Change parameter list;
	rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call
	builtin_vectorization_cost; add "where" parameter on call to
	add_stmt_cost.
	(vect_model_simple_cost): Change parameter list; call record_stmt_cost
	for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost;
	rename stmt_cost_vec to body_cost_vec.
	(vect_model_promotion_demotion_cost): Add vect_body argument to call
	to add_stmt_cost; call add_stmt_cost for prologue costs; remove call
	to stmt_vinfo_set_outside_of_loop_cost.
	(vect_model_store_cost): Change parameter list; call record_stmt_cost
	for prologue costs; add vect_body argument to call to record_stmt_cost;
	rename stmt_cost_vec to body_cost_vec; remove call to
	stmt_vinfo_set_outside_of_loop_cost.
	(vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add
	vect_body argument to calls to record_stmt_cost.
	(vect_model_load_cost): Change parameter list; rename stmt_cost_vec to
	body_cost_vec; add vect_body argument to calls to record_stmt_cost;
	remove call to stmt_vinfo_set_outside_of_loop_cost.
	(vect_get_load_cost): Change parameter list; rename stmt_cost_vec to
	body_cost_vec; add vect_body argument to calls to record_stmt_cost;
	call record_stmt_cost for prologue costs.
	(vectorizable_store): Change argument list for call to
	vect_model_store_cost.
	(vectorizable_load): Change argument list for call to
	vect_model_load_cost.
	(new_stmt_vec_info): Remove assignment to
	STMT_VINFO_OUTSIDE_OF_LOOP_COST.
	* config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs.
	(spu_add_stmt_cost): Likewise; also handle NULL stmt_info.
	(spu_finish_cost): Add prologue and epilogue costs.
	* config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs.
	(i386_add_stmt_cost): Likewise; also handle NULL stmt_info.
	(i386_finish_cost): Add prologue and epilogue costs.
	* config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue
	costs.
	(rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info.
	(rs6000_finish_cost): Add prologue and epilogue costs.
	* tree-vect-slp.c (vect_free_slp_instance): Rename
	SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC.
	(vect_create_new_slp_node): Remove assignment to
	SLP_TREE_OUTSIDE_OF_LOOP_COST.
	(vect_get_and_check_slp_defs): Change parameter list; change argument
	lists to calls to vect_model_store_cost and vect_model_simple_cost.
	(vect_build_slp_tree): Change parameter list; change argument lists
	to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and
	recursive self-calls; remove setting of outside_cost from
	SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to
	record_stmt_cost.
	(vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec;
	rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC;
	remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP
	prologue costs.
	(vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to
	body_cost_vec; handle null ci->stmt; add vect_body argument to call
	to add_stmt_cost; simplify calls to targetm.vectorize.
	builtin_vectorization_cost; return vec_prologue_cost and
	vec_epilogue_cost from finish_cost.
	(vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to
	body_cost_vec; add vect_body argument to call to add_stmt_cost.

2012-07-24  Richard Henderson  <rth@redhat.com>

	* system.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Poison.
	* config/cris/cris.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
	* config/h8300/h8300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
	* config/mn10300/mn10300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
	* config/rs6000/rs6000.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove
	comment reference.
	* config/v850/v850.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
	* config/v850/v850.md (fixuns_truncsfsi2, fixuns_truncdfsi2): New.
	(fix_truncsfsi2, fix_truncdfsi2): Avoid double FIX.
	* config/vax/vax.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
	* config/vax/vax.md (fixuns_trunc<VAXfp><VAXint>): New.
	* doc/tm.texi.in (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
	* doc/tm.texi: Rebuild.

2012-07-24  Richard Henderson  <rth@redhat.com>

	* optabs.def: New file.
	* Makefile.in (OPTABS_H): Add insn-opinit.h.
	(MOSTLYCLEANFILES): Likewise.
	(insn-opinit.o): Remove reload.h
	(simple_rtl_generated_c): Remove insn-opinit.c.
	(s-opinit): New rule.
	(build/genopinit.o): Add optabs.def.
	* genopinit.c (rtx_upname): New.
	(optabs): Extract to optabs.def
	(enum optab_tag, struct optab_def_d, optabs): New.
	(struct pattern_d, patterns): New.
	(match_pattern): Split out from ...
	(gen_insn): ... here.  Push matches on patterns vec.
	(pattern_cmp, optab_kind_cmp, optab_rcode_cmp): New.
	(header_file_name, source_file_name, handle_arg): New.
	(open_outfile): New.
	(main): Sort and emit new tables.  Generate lookup_handler,
	raw_optab_handler, swap_optab_enable.
	* libfuncs.h (libfunc_entry): Change "size_t optab" to "optab op".
	* optabs.c (code_to_optab_): Remove.
	(hash_libfunc): Update for optab name change.
	(eq_libfunc): Likewise.
	(convert_optab_libfunc): Update computation of optab member;
	use the new convlib_def table.
	(optab_libfunc): Similarly.
	(set_optab_libfunc, set_conv_libfunc): Likewise.
	(sign_expand_binop): Use swap_optab_enable instead of fake optabs.
	(init_insn_codes, init_optab, init_optabv, init_convert_optab): Remove.
	(init_optabs): Don't call them; export the data to optabs.def.
	(gen_int_libfunc, gen_fp_libfunc): Export non-static.
	(gen_fixed_libfunc, gen_signed_fixed_libfunc): Likewise.
	(gen_unsigned_fixed_libfunc, gen_int_fp_libfunc): Likewise.
	(gen_intv_fp_libfunc, gen_int_fp_fixed_libfunc): Likewise.
	(gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc): Likewise.
	(gen_int_signed_fixed_libfunc): Likewise.
	(gen_int_unsigned_fixed_libfunc): Likewise.
	(gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc): Likewise.
	(gen_ufloat_conv_libfunc): Likewise.
	(gen_int_to_fp_nondecimal_conv_libfunc): Likewise.
	(gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
	(gen_trunc_conv_libfunc, gen_extend_conv_libfunc): Likewise.
	(gen_fract_conv_libfunc, gen_fractuns_conv_libfunc): Likewise.
	(gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): Likewise.
	(debug_optab_libfuncs): Update for optab representation change.
	* optabs.h: Include insn-opinit.h.
	(optab, convert_optab, direct_optab): New typedefs.
	(struct optab_handlers, struct widening_optab_handlers): Remove.
	(struct optab_libcall_d): Rename from optab_d; remove code_,
	handlers, widening members.
	(struct convert_optab_libcall_d): Rename from convert_optab_d;
	remove code_ and handlers members.
	(enum optab_index, enum convert_optab_index): Remove.
	(enum direct_optab_index): Remove.
	(code_to_optab_): Fix array range.
	(optab_to_code): Covert to inline function.
	(optab_to_code_, convlib_def, normlib_def): Declare.
	(raw_optab_handler, swap_optab_enable): Declare.
	(unknown_optab): Remove; export to optabs.def
	(ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
	usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
	ssashl_optab, usashl_optab, add_optab, sub_optab, smul_optab,
	addv_optab, subv_optab, smul_highpart_optab, umul_highpart_optab,
	smul_widen_optab, umul_widen_optab, usmul_widen_optab,
	smadd_widen_optab, umadd_widen_optab, ssmadd_widen_optab,
	usmadd_widen_optab, smsub_widen_optab, umsub_widen_optab,
	ssmsub_widen_optab, usmsub_widen_optab, sdiv_optab, smulv_optab,
	sdivv_optab, sdivmod_optab, udiv_optab, udivmod_optab, smod_optab,
	umod_optab, fmod_optab, remainder_optab, ftrunc_optab, and_optab,
	ior_optab, xor_optab, ashl_optab, lshr_optab, ashr_optab, rotl_optab,
	rotr_optab, vashl_optab, vlshr_optab, vashr_optab, vrotl_optab,
	vrotr_optab, smin_optab, smax_optab, umin_optab, umax_optab, pow_optab,
	atan2_optab, fma_optab, fms_optab, fnma_optab, fnms_optab, mov_optab,
	movstrict_optab, movmisalign_optab, storent_optab, neg_optab,
	negv_optab, abs_optab, absv_optab, one_cmpl_optab, bswap_optab,
	ffs_optab, clz_optab, ctz_optab, clrsb_optab, popcount_optab,
	parity_optab, sqrt_optab, sincos_optab, sin_optab, asin_optab,
	cos_optab, acos_optab, exp_optab, exp10_optab, exp2_optab, expm1_optab,
	ldexp_optab, scalb_optab, significand_optab, logb_optab, ilogb_optab,
	log_optab, log10_optab, log2_optab, log1p_optab, floor_optab,
	ceil_optab, btrunc_optab, round_optab, nearbyint_optab, rint_optab,
	tan_optab, atan_optab, copysign_optab, signbit_optab, isinf_optab,
	cmp_optab, ucmp_optab, eq_optab, ne_optab, gt_optab, ge_optab,
	lt_optab, le_optab, unord_optab, strlen_optab, cbranch_optab,
	cmov_optab, cstore_optab, ctrap_optab, push_optab, addcc_optab,
	reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
	reduc_splus_optab, reduc_uplus_optab, ssum_widen_optab,
	usum_widen_optab, sdot_prod_optab, udot_prod_optab, vec_set_optab,
	vec_extract_optab, vec_init_optab, vec_shl_optab, vec_shr_optab,
	vec_realign_load_optab, vec_widen_umult_hi_optab,
	vec_widen_umult_lo_optab, vec_widen_smult_hi_optab,
	vec_widen_smult_lo_optab, vec_widen_umult_even_optab,
	vec_widen_umult_odd_optab, vec_widen_smult_even_optab,
	vec_widen_smult_odd_optab, vec_widen_ushiftl_hi_optab,
	vec_widen_ushiftl_lo_optab, vec_widen_sshiftl_hi_optab,
	vec_widen_sshiftl_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab,
	vec_unpacku_hi_optab, vec_unpacku_lo_optab, vec_unpacks_float_hi_optab,
	vec_unpacks_float_lo_optab, vec_unpacku_float_hi_optab,
	vec_unpacku_float_lo_optab, vec_pack_trunc_optab, vec_pack_ssat_optab,
	vec_pack_usat_optab, vec_pack_sfix_trunc_optab,
	vec_pack_ufix_trunc_optab, powi_optab, sync_compare_and_swap_optab,
	sync_lock_test_and_set_optab, sync_old_add_optab, sync_old_sub_optab,
	sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab,
	sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab,
	sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab,
	sync_new_nand_optab, sext_optab, zext_optab, trunc_optab, sfix_optab,
	ufix_optab, sfixtrunc_optab, ufixtrunc_optab, sfloat_optab,
	ufloat_optab, lrint_optab, lround_optab, lfloor_optab, lceil_optab,
	fract_optab, fractuns_optab, satfract_optab, satfractuns_optab,
	vec_load_lanes_optab, vec_store_lanes_optab, vcond_optab, vcondu_optab,
	movcc_optab, reload_in_optab, reload_out_optab, movmem_optab,
	setmem_optab, cmpstr_optab, cmpstrn_optab, cmpmem_optab,
	sync_lock_release_optab, sync_add_optab, sync_sub_optab,
	sync_ior_optab, sync_and_optab, sync_xor_optab, sync_nand_optab,
	atomic_exchange_optab, atomic_compare_and_swap_optab,
	atomic_load_optab, atomic_store_optab, atomic_add_fetch_optab,
	atomic_sub_fetch_optab, atomic_and_fetch_optab,
	atomic_nand_fetch_optab, atomic_xor_fetch_optab, atomic_or_fetch_optab,
	atomic_fetch_add_optab, atomic_fetch_sub_optab, atomic_fetch_and_optab,
	atomic_fetch_nand_optab, atomic_fetch_xor_optab, atomic_fetch_or_optab,
	atomic_add_optab, atomic_sub_optab, atomic_and_optab,
	atomic_nand_optab, atomic_xor_optab, atomic_or_optab,
	atomic_always_lock_free_optab, atomic_is_lock_free_optab,
	atomic_thread_fence_optab, atomic_signal_fence_optab,
	vec_perm_optab, vec_perm_const_optab): Likewise.
	(struct target_optabs): Remove x_optab_table, x_convert_optab_table,
	and x_direct_optab_table members; add pat_enable.
	(optab_table, convert_optab_table, direct_optab_table): Remove.
	(optab_handler): Use raw_optab_handler.
	(widening_optab_handler, convert_optab_handler): Likewise.
	(set_optab_handler, set_widening_optab_handler): Remove.
	(set_convert_optab_handler, set_direct_optab_handler): Remove.
	(direct_optab_handler): Defer to optab_handler.
	* rtl.h (NON_GENERATOR_NUM_RTX_CODE): New.

2012-07-24  Jason Merrill  <jason@redhat.com>

	* bitmap.c (bitmap_descriptor): Adjust order of parameters to
	match MEM_STAT_DECL.
	* statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo.

2012-07-24  Richard Henderson  <rth@redhat.com>

	* optabs.h (struct optab_d): Rename code member to code_.
	(struct convert_optab_h): Likewise.
	(code_to_optab_): Rename from code_to_optab.
	(code_to_optab, optab_to_code): New.
	* dojump.c (do_compare_rtx_and_jump): Use code_to_optab.
	* ifcvt.c (noce_emit_move_insn): Likewise.
	* optabs.c (simplify_expand_binop): Use optab_to_code.
	(expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise.
	(avoid_expensive_constant, expand_binop_directly): Likewise.
	(expand_binop, expand_simple_unop, expand_unop_direct): Likewise.
	(expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise.
	(have_insn_for, debug_optab_libfuncs): Likewise.
	(init_optab, init_optabv, init_convert_optab): Update for optab
	member name change.

	* libfuncs.h: Include optabs.h.
	* dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h.
	* Makefile.in (LIBFUNCS_H): Add OPTABS_H.
	(lto-streamer-in.o, dwarf2out.o): Update deps.

	* optabs.h (unknown_optab): New.
	* builtins.c (interclass_mathfn_icode): Use it.
	* dojump.c (do_compare_rtx_and_jump): Likewise.
	* optabs.c (optab_for_tree_code, expand_binop): Likewise.
	* tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise.
	(expand_vector_operations_1): Likewise.
	* tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
	* tree-vect-stmts.c (supportable_narrowing_operation): Likewise.

2012-07-24  Steven Bosscher  <steven@gcc.gnu.org>

	* alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.

2012-07-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/54051
	* config/arm/arm.c (arm_print_operand_address): Remove superfluous
	printing of 0.
	* config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
	specifier.
	("neon_vld3_lane<mode>":VMQ): Likewise.
	("neon_vld3_dup<mode>":VDX): Likewise.
	("neon_vst3_lane<mode>":VD): Likewise.
	("neon_vst3_lane<mode>":VMQ): Likewise.

2012-07-24  Roland McGrath  <mcgrathr@google.com>

	* arm.c (arm_get_frame_offsets): Don't use fixed regs for
	stack alignment padding.

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53961
	* config/i386/i386.c (ix86_legitimate_address_p): Move check for
	negative constant address for TARGET_X32 ...
	(ix86_decompose_address): ... here.  Reject constant addresses
	that don't satisfy x86_64_immediate_operand predicate.

2012-07-24  Julian Brown  <julian@codesourcery.com>

	* doc/sourcebuild.texi (arm_hf_eabi): Document effective-target check.

2012-07-24  Steven Bosscher  <steven@gcc.gnu.org>

	* sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
	Move test to check that there is a popcount function for the the number
	of bits in SBITMAP_ELT_BITS to sbitmap.c.
	* sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
	MEM_STAT_INFO): Define in terms of their ALONE counterparts.

	* configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
	* configure: Regenerate.
	* statistics.h (GATHER_STATISTICS): Error out if it is not defined.
	(GCC_MEM_STAT_ARGUMENTS): New define.
	(ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
	(ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
	(MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT,
	FINAL_PASS_MEM_STAT): Define.
	* ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
	* ggc.h (ggc_record_overhead, ggc_free_overhead,
	ggc_prune_overhead_list): Remove internal prototypes, they are defined
	already in ggc-internal.h.
	* ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
	wrappers.
	(add_statistics): Likewise.
	(dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
	* ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
	wrappers around "survived" and "stats" members.
	(alloc_large_page): Always initialize survived.
	(ggc_internal_alloc_zone_stat): Likewise.
	Remove #ifdef GATHER_STATISTICS wrappers.  Record overhead if
	GATHER_STATISTICS is non-0.
	(ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
	(sweep_pages): Always increase survived.
	(ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
	(calculate_average_page_survival): Always define.
	(ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
	(ggc_print_statistics): Likewise.
	(ggc_pch_read): Likewise.
	* ggc-page.c (struct globals): Always define "stats" member.
	(ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
	(ggc_free): Likewise.
	(ggc_collec): Likewise.
	(ggc_print_statistics): Likewise.
	* bitmap.h (struct bitmap_head_def): Always define "desc" member.
	(bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
	* gimple.h (enum gimple_alloc_kind): Always define.
	(gimple_alloc_kind): Likewise.
	* tree-flow.h (phinodes_print_statistics): Always define.
	(ssanames_print_statistics): Likewise.
	* vec.h (vec_heap_free): Always define.
	(VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
	* alloc-pool.c (alloc_pool_descriptor): Always define.
	(create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
	(empty_alloc_pool): Likewise.
	(pool_alloc): Likewise.
	(pool_free): Likewise.
	(dump_alloc_pool_statistics): Likewise.
	(print_statistics): Always define.
	* bitmap.c (struct bitmap_descriptor): Always define.
	(bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
	(register_overhead): Always define.
	(bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
	(bitmap_element_allocate): Likewise.
	(bitmap_elt_clear_from): Likewise.
	(bitmap_obstack_alloc_stat): Likewise.
	(bitmap_gc_alloc_stat): Likewise.
	(bitmap_obstack_free): Likewise.
	(bitmap_find_bit): Likewise.
	(bitmap_ior_and_into):  Likewise.
	(bitmap_print): Likewise.
	(dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
	* gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
	(gimple_alloc_kind_names): Likewise.
	(gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
	(dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
	* rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
	rtvec_alloc_sizes): Always define.
	(rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
	(rtx_alloc_stat): Likewise.
	(dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
	* tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
	tree_node_sizes, tree_node_kind_names): Always define.
	(record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
	to if-code.
	(type_hash_canon): Likewise.
	(dump_tree_statistics): Likewise.
	* tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
	Always define.
	(ssanames_print_statistics): Likewise.
	(make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
	* tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
	(phinodes_print_statistics): Likewise.
	(allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
	* vec.c (struct vec_descriptor): Always define.
	(hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
	vec_descriptor, rester_overhead, free_overhead): Likewise.
	(cmp_statistic): Likewise.
	(vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
	(vec_heap_o_reserve_1): Likewise.
	(dump_vec_loc_statistics): Likewise.

2012-07-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53616
	* tree-loop-distribution.c (ldist_gen): Do not change
	partition ordering when merging partitions.

2012-07-24  Alan Modra  <amodra@gmail.com>

	PR target/53914
	PR target/54009
	* config/rs6000/constraints.md (Y): Use mem_operand_gpr.
	* config/rs6000/predicates.md (word_offset_memref_operand): Delete.
	Adjust all rs6000_legitimate_offset_address_p calls.
	* config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
	(rs6000_secondary_reload_gpr): Declare.
	(rs6000_legitimate_offset_address_p): Update prototype.
	(rs6000_offsettable_memref_p): Delete.
	(rs6000_secondary_reload_ppc64): Delete.
	* config/rs6000/rs6000.c (address_offset): New function.
	(mem_operand_gpr): Likewise.
	(rs6000_legitimate_offset_address_p): Add worst_case param.  When
	not worst_case assume class of regs with least restrictive offsets.
	Adjust all calls.
	(legitimate_lo_sum_address_p): Simplify register mode tests.
	(rs6000_legitimize_address): Likewise.  Assume best case offset
	addressing.  Combine ELF and MACHO lo_sum code.
	(rs6000_mode_dependent_address): Correct offset addressing limits.
	(rs6000_offsettable_memref_p): Make static, add reg_mode param.
	Use reg_mode to help rs6000_legitimate_offset_address_p.
	(rs6000_secondary_reload): Use address_offset.  Handle 32-bit multi
	gpr load/store when offset too large.
	(rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
	(rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
	* config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
	for gpr load/store.  Order alternatives as r->Y,Y->r,r->r and
	d->m,m->d,d->d.  Correct size of gpr load/store.
	(movdf_softfloat32): Use 'Y' constraint for gpr load/store.  Order
	alternatives.
	(movti_ppc64): Likewise.
	(movdi_internal32): Likewise.  Also disparage fprs.
	(movdi_mfpgpr, movdi_internal64): Likewise.
	(movtf_internal): Use 'm' for fpr load/store.  Order alternatives.
	(movtf_softfloat): Order alternatives.
	(extenddftf2_internal): Use 'm' and 'Y' for store.
	(movti_power, movti_string): Use 'Y' for gpr load/store.  Order.
	(stack_protect_setdi, stack_protect_testdi): Likewise.
	(movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
	(movdf_softfloat64): Likewise.
	(reload_<mode>_store): Adjust reload_di_store to provide
	reload_si_store as well.
	(reload_<mode>_load): Likewise.

2012-07-23  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/predicates.md (general_movsrc_operand,
	general_movdst_operand): Reject T_REG.
	* config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
	movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
	Remove T_REG alternatives.
	(*negtstsi): New insn.

2012-07-23  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53511
	* config/sh/sh.md (mulsf3_ie): Delete.
	(mulsf3_i4): Rename to mulsf3_i.
	(mulsf3): Emit mulsf3_i insn.

2012-07-23  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md (addc1, subc1): Delete.
	(adddi3_compact): Use addc instead of addc1.
	(subdi3_compact): Use subc instead of subc1.

2012-07-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-protos.h (ix86_lea_outperforms): Remove prototype.
	* config/i386/i386.c (ix86_lea_outperforms): Make static.  Make
	split_cost argument signed.
	(ix86_avoid_lea_for_add): Cleanup.
	(ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
	(ix86_avoid_lea_for_addr): Ditto.  Make split_cost signed.
	Use gen_lowpart instead of gen_rtx_SUBREG.  Cleanup.

2012-07-23  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* config/arm/arm.c (arm_reorg): Ensure all insns are split.

2012-07-23  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53961
	* config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
	* config/i386/i386.c (ix86_print_operand_address): Ditto.
	(ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
	addresses.  Prevent zero extensions of CONST_INT operands.

2012-07-23  Steven Bosscher  <steven@gcc.gnu.org>

	* sbitmap.h (struct int_list): Remove.
	(sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
	Remove prototypes of non-existing function.
	(sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
	sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
	unused defines.
	(sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
	sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
	* basic-block.h: ... here.
	* sbitmap.c: Do not include basic-block.h.
	(sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
	sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
	* cfganal.c: ... here.
	* bt-load.c (compute_out, link_btr_uses): Update for above changes.
	* gcse.c (compute_code_hoist_vbeinout): Likewise.
	* lcm.c (compute_antinout_edge, compute_available): Likewise.
	* Makefile.in: Fix sbitmap.o dependencies.

2012-07-23  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
	    Nick Clifton  <nickc@redhat.com>

	* config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
	* config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
	(unused) parameter to void *.

2012-07-23  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (dump_alias_info): Walk over local decls
	instead of referenced vars.

2012-07-23  Steven Bosscher  <steven@gcc.gnu.org>

	* coverage.c: Refer to "notes file" instead of "graph file"
	in all comments.  Explain history of bbg prefix.
	* gcov-io.h: Likewise.
	* gcov.c: Likewise.
	(find_source): Likewise in fnotice.
	(read_graph_file): Likewise.
	(read_count_file): Likewise.
	* doc/gcov.texi: Document -fprofile-dir flag.  Add "notes file"
	and "data file" explicitly in the explanation of the files.

2012-07-22  Steven Bosscher  <steven@gcc.gnu.org>

	PR tree-optimization/53881
	* tree-cfg.c (group_case_labels_stmt): Look up the basic block
	for each label and compare them instead of labels.

2012-07-22  Steven Bosscher <steven@gcc.gnu.org>

	* opts.c (common_handle_option): Do not set
	flag_value_profile_transformations for -fprofile-generate.
	* profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
	(BB_TO_GCOV_INDEX): Remove.
	(output_location): Don't use it.
	(branch_prob): Likewise.  Don't fiddle with the index of
	ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.  Use clear_aux_for_blocks.
	(find_spanning_tree):
	* gcov.c (struct function_info): Document that blocks 0 and 1
	are the entry resp. exit blocks in gcov, too, like in GCC itself.
	(solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
	blocks identification.
	(output_lines): Likewise.
	* value-prof.c (gimple_value_profile_transformations): Do not
	test flag_value_profile_transformations again.
	(gimple_ic_transform): Take a gimple_stmt_iterator like all other
	transformation functions.
	(gimple_values_to_profile):
	Don't test flag_value_profile_transformations
	* tree-profile.c (tree_profiling): Assert that the cgraph is in
	the CGRAPH_STATE_IPA_SSA state.
	Do not set, or look at, after_tree_profile.
	* function.h (struct function): Remove after_tree_profile bit.
	* omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
	* tree-inline.c (initialize_cfun): Don't copy it.
	* lto-streamer-out.c (output_struct_function_base): Don't stream it.
	* lto-streamer-in.c (input_struct_function_base): Likewise.

2012-07-22  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (TARGET_DYNSHIFT): New macro.
	(SH_DYNAMIC_SHIFT_COST): Use it.
	* config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise.
	(sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition.
	Add sanity check for input value.  Add function description.
	* config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3,
	lshrsi3_d): Use TARGET_DYNSHIFT.

2012-07-22  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md (negc): Delete expander.
	(*negc): Rename insn to negc.

2012-07-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53961
	* config/i386/i386.md (*lea): New insn pattern.
	(*lea_1): Remove.
	(*lea<mode>_2): Ditto.
	(*lea_{3,4,5,6}_zext): Ditto.
	* config/i386/predicates.md (lea_address_operand): Do not reject
	zero-extended address operands.
	* config/i386/constraints.md (j): Remove address constraint.
	* config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
	of an address.
	(ix86_print_operand_address): Handle SImode subreg of an address.
	(ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.

2012-07-22  Hans-Peter Nilsson  <hp@axis.com>

	Emit executable-stack note correctly for CRIS targets.
	* config/cris/cris.c (cris_file_end): New function.
	(TARGET_ASM_FILE_END): Define.

2012-07-22  Chung-Lin Tang  <cltang@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>
	    NetLogic Microsystems Inc.

	* config/mips/mips.c (mips_issue_rate): Handle XLP.
	* config/mips/mips.md: Include xlp.md.
	* config/mips/xlp.md: New file.

2012-07-21  Steven Bosscher <steven@gcc.gnu.org>

	PR gcov-profile/32543
	* profile.c (branch_prob): Update total_num_edges_instrumented and
	report the number of edges to instrument.

2012-07-21  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md: Correct comment regarding clrt and sett insns.

2012-07-21  Andrew Pinski  <apinski@cavium.com>

	* config/mips/mips.md (*popcountdi2_trunc): New pattern
	to handle popcount of a truncation.

2012-07-21  Andrew Pinski  <apinski@cavium.com>

	* config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load):
	Add a bool argument.
	* config/mips/mips.c (mips_block_move_straight): Update call to
	mips_expand_ext_as_unaligned_load.
	(mips_expand_ext_as_unaligned_load): Add unsigned_p argument.
	Accept DImode dest when the width is that of SImode.
	* config/mips/mips.md (extv): Update call to
	mips_expand_ext_as_unaligned_load.
	(extzv): Likewise.

2012-07-21  Andrew Pinski  <apinski@cavium.com>

	* config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
	adjust_address.

2012-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips.md (define_attr sync_*): Move before "type".
	(define_attr "type"): New values "atomic" and "syncloop".
	* config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>):
	Set "type" attribute.
	* config/mips/generic.md (generic_atomic, generic_syncloop):
	New reservations.
	* config/mips/10000.md, config/mips/20kc.md,
	* config/mips/24k.md, config/mips/4130.md,
	* config/mips/4k.md, config/mips/5400.md,
	* config/mips/5500.md, config/mips/5k.md,
	* config/mips/7000.md, config/mips/74k.md,
	* config/mips/9000.md, config/mips/loongson2ef.md,
	* config/mips/loongson3a.md, config/mips/octeon.md,
	* config/mips/sb1.md, config/mips/sr71k.md,
	* config/mips/xlr.md: Handle "atomic" and "syncloop" types.

2012-07-20  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md: Group and sort shift related patterns.
	(ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes.

2012-07-20  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_asm_output_ident): Remove unused
	local variables section_asm_op, size, buf.

2012-07-20  Pat Haugen <pthaugen@us.ibm.com>
	    Steven Bosscher  <steven@gcc.gnu.org>

	* config/rs6000/power4.md (power4-store-update): Fix reservation.
	(power4-three): Likewise.

2012-07-20  Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.c (arm_cortex_a15_tune): New tune.
	* config/arm/arm-cores.def (cortex-a15): Use it.

2012-07-20  Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
	* config/arm/arm.c (arm_slowmul_tune): Initialize it.
	(arm_fastmul_tune, arm_strongarm_tune): Likewise.
	(arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
	(arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
	(arm_fa726te_tune): Likewise.

2012-07-20  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (collect_dfa_stats): Simplify.
	* tree-ssa-structalias.c (compute_may_aliases): Do not dump
	referenced vars.
	* cfgexpand.c (estimated_stack_frame_size): Walk over local
	decls instead of referenced vars.
	* tree-ssa.c (delete_tree_ssa): Simplify.
	* tree-tailcall.c (find_tail_calls): Walk over local decls
	instead of referenced vars.
	(add_virtual_phis): Remove.
	(tree_optimize_tail_calls_1): Instead mark the virtual operand
	for renaming.

2012-07-20  Steven Bosscher  <steven@gcc.gnu.org>

	* basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
	(brief_dump_cfg): Update prototype to take flags argument.
	(check_bb_profile): Remove prototype.
	* tracer.c (tracer): Update brief_dump_cfg calls.
	* cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info.
	Call dump_bb_info before and after the cfghook dump_bb.  Terminate
	the dump with a newline.
	(dump_flow_info): Do not call check_bb_profile.
	* cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE.
	(check_bb_profile): Make static.  Take indent and flags arguments.
	(dump_bb_info): Always dump loop depth.  With TDF_DETAILS, call
	check_bb_profile.  Print one edge per line.
	(brief_dump_cfg): Take a flags argument, and filter out
	TDF_COMMENT and TDF_DETAILS.
	* pretty-print.c (pp_base_newline): Set pp_needs_newline to false.
	* gimple-pretty-print.c (dump_gimple_bb_header): Do not use
	dump_bb_info here, it is already called from dump_bb.  Idem for
	check_bb_profile.
	(dump_gimple_bb_footer): Likewise.
	(gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to
	avoid broken dumps for statement histograms.
	(gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK.  Do
	not call pp_flush here, the buffer should be empty.
	* sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb.
	* sched-vis.c (debug_bb_slim): Likewise.
	* tree-cfg.c (remove_bb): Pass dump_flags to dump_bb.
	(gimple_debug_bb): Pass TDF_BLOCKS to dump_bb.
	(gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT.
	(dump_function_to_file): Do not call check_bb_profile on
	ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them.
	Use dump_bb instead of gimple_dump_bb.
	(print_loops_bb): Use dump_bb instead of gimple_dump_bb.
	* passes.c (execute_function_dump): Always call print_rtl_with_bb
	for RTL dumps.
	* cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date
	CFG.  With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and
	bottom of each basic block.

2012-07-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54031
	* tree-ssa-ccp.c (get_value_from_alignment): Use
	get_pointer_alignment_1.

2012-07-20  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (add_local_variables): Remove check_var_ann
	parameter and dead code.
	(expand_call_inline): Adjust.
	(tree_function_versioning): Likewise.

2012-07-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/28656
	* tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead
	of just the first one.

2012-07-20  Richard Guenther  <rguenther@suse.de>

	* builtins.c (get_object_alignment_2): Correct offset handling
	when using type alignment of a MEM_REF kind base.

2012-07-20  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/53877
	* config/i386/lzcntintrin.h (_lzcnt_u32): New.
	(_lzcnt_u64): Ditto.

2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.

2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
	defining statement is a SSA name that occurs in abnormal PHIs.

2012-07-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-fold.c (canonicalize_constructor_val): Strip only useless type
	conversions.

2012-07-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/53942
	* function.c (assign_parm_setup_reg): Avoid zero/sign extension
	directly from likely spilled non-fixed hard registers, move them
	to pseudo first.

2012-07-19  Steve Ellcey  <sellcey@mips.com>

	* config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
	MIPS16 mode.

2012-07-19  Jason Merrill  <jason@redhat.com>

	PR debug/53235
	* dwarf2out.c (get_die_parent): New.
	(generate_type_signature): Use it.

2012-07-19  Richard Henderson  <rth@redhat.com>

	* config/ia64/vect.md (smulv4hi3_highpart): New.
	(umulv4hi3_highpart): New.
	(vec_widen_smult_even_v4hi): Rename from pmpy2_even.
	(vec_widen_smult_odd_v4hi): Rename from pmpy2_odd.
	(udot_prodv8qi, sdot_prodv8qi): Remove.
	(sdot_prodv4hi, udot_prodv4hi): Remove.
	* config/ia64/ia64.c (ia64_expand_dot_prod_v8qi): Remove.
	* config/ia64/ia64-protos.h: Update.

	* tree-vect-patterns.c (vect_recog_divmod_pattern): Do not require
	vectors larger than UNITS_PER_WORD.

	* expr.c (store_constructor): Initialize icode with CODE_FOR_nothing.
	* tree-vect-stmts.c (vectorizable_operation): Use LAST_INSN_CODE for
	dummy != CODE_FOR_nothing value.

2012-07-19  Uros Bizjak  <ubizjak@gmail.com>

	* doc/tm.texi.in (MODE_AFTER): Add entity as the first macro argument.
	* doc/tm.texi: Regenerate.
	* mode-switching.c (optimize_mode_switching): Update MODE_AFTER call.
	* config/sh/sh.h (MODE_AFTER): Update.
	* config/epiphany/epiphany.h (MODE_AFTER): Update.

2012-07-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/54017
	* tree-cfgcleanup.c (cleanup_omp_return): Remove.
	(cleanup_tree_cfg_bb): Don't call it.
	* omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
	handling.

2012-07-19  Christian Bruel  <christian.bruel@st.com>

	PR target/54029
	* config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.

2012-07-19  Richard Guenther  <rguenther@suse.de>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
	about transition from invariant to known bits.
	(likely_value): Addresses with UNDEFINED components are UNDEFINED.

2012-07-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53970
	* tree-vect-data-refs.c (not_size_aligned): Avoid sign-compare warning.

2012-07-19  Tristan Gingold  <gingold@adacore.com>
	    Richard Henderson  <rth@redhat.com>

	* opts.c (finish_options): Handle UI_SEH.
	* expr.c (build_personality_function): Handle UI_SEH.
	* dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
	* coretypes.h (unwind_info_type): Add UI_SEH.
	* config/i386/winnt.c (i386_pe_seh_emit_except_personality):
	New function.
	(i386_pe_seh_init_sections): Likewise.
	* config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
	(i386_except_unwind_info): New function.

2012-07-18  Maciej W. Rozycki  <macro@codesourcery.com>
	    Chao-ying Fu  <fu@mips.com>

	* config/mips/mips.opt (mmcu): New option.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
	_mips_mcu when TARGET_MCU.
	(ASM_SPEC): Pass mcu options to the assembler.
	* doc/invoke.texi (MIPS Options): Document -mmcu and -mno-mcu.

2012-07-18  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config.gcc (v850-*-rtems*): New target.
	* config/v850/rtems.h: New.
	* config/v850/t-rtems: New.

2012-07-18  Bill Schmidt  <wschmidt@linux.ibm.com>

	* doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list
	of flags controlling optimization; add -ftree-slsr to list of flags
	enabled by default at -O; add -fhoist-adjacent-loads to list of flags
	enabled by default at -O2; add -fvect-cost-model to list of flags
	enabled by default at -O3; document -fhoist-adjacent-loads and
	-ftree-slsr.
	* opts.c (default_option): Make -ftree-slsr default at -O1 and above.
	* gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
	flag_tree_slsr.
	* common.opt: Add -ftree-slsr with flag_tree_slsr.

2012-07-18  Jie Zhang  <jzhang918@gmail.com>
	    Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_rtx_costs_1): Adjust cost for CONST_VECTOR.
	(arm_size_rtx_costs): Likewise.
	(neon_valid_immediate): Add a case for double 0.0.

2012-07-18  Andrew Stubbs  <ams@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp)
	(*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp)
	(*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp)
	(*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add
	neon_type.
	* config/arm/arm.md (neon_type): Update comment.

2012-07-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53970
	* tree.h (contains_packed_reference): Remove.
	* expr.c (contains_packed_reference): Likewise.
	* tree-vect-data-refs.c (not_size_aligned): New function.
	(vector_alignment_reachable_p): Use it.
	(vect_supportable_dr_alignment): Likewise.

2012-07-18  Richard Guenther  <rguenther@suse.de>

	* tree.h (get_object_or_type_alignment): Remove.
	* builtins.c (get_object_alignment_2): New function copied from
	get_object_alignment_1.  Take extra argument to indicate whether
	we take the address of EXP.  Rework to use type alignment information
	if not, and return whether the result is an approximation or not.
	(get_object_alignment_1): Wrap around get_object_alignment_2.
	(get_pointer_alignment_1): Call get_object_alignment_2 indicating
	we take the address.
	(get_object_or_type_alignment): Remove.
	* expr.c (expand_assignment): Call get_object_alignment.
	(expand_expr_real_1): Likewise.

2012-07-18  Nick Clifton  <nickc@redhat.com>

	* doc/invoke.texi (ARM Options): Document -munaligned-access.

2012-07-18  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md (mulsidi3, umulsidi3): Remove constraints in
	expander.  Use arith_reg_dest predicate.
	(rotldi3, rotrdi3): Remove constraints in expander.
	(adddi3_compact, subdi3_compact, mulsidi3_compact, umulsidi3_compact,
	ashlsi3_n, *ashlhi3_n, ashrsi2_16, ashrsi2_31, lshrsi3_n): Convert to
	insn_and_split.

2012-07-18  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/33135
	* config/sh/sh.opt (mieee): Use Var instead of Mask.  Correct
	description.
	* config/sh/sh.c (sh_option_override): Do not change
	flag_finite_math_only.  Set TARGET_IEEE to complement of
	flag_finite_math_only.
	* doc/invoke.texi (SH options): Add mno-ieee.  Correct description
	of mieee and mno-ieee behavior.

2012-07-18  Steven Bosscher  <steven@gcc.gnu.org>

	* graphite-poly.c (print_pbb_body): Fixup dump_bb call.

2012-07-18  Steven Bosscher  <steven@gcc.gnu.org>

	* dumpfile.h (TDF_COMMENT): New define.
	* basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL,
	EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU,
	EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE,
	EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE):
	Move to new file cfg-flags.h.
	(enum cfg_edge_flags): New enum, using cfg-flags.h.
	(EDGE_ALL_FLAGS): Compute value automatically.
	(BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK,
	BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION,
	BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL,
	BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED,
	BB_IN_TRANSACTION): Move to new file cfg-flags.h.
	(enum bb_flags): Rename to cfg_bb_flags.  Use cfg-flags.h.
	(BB_ALL_FLAGS): New, compute value automatically.
	(dump_bb_info): Update prototype.
	(dump_edge_info): Update prototype.
	* cfg-flags.h: New file.
	* cfg.c (dump_edge_info): Take flags argument.  Be verbose only if
	TDF_DETAILS and not TDF_SLIM.  Include cfg-flags.h for bitnames.
	Check that the edge flags are within the range of EDGE_ALL_FLAGS.
	(debug_bb): Update dump_bb call.
	(dump_cfg_bb_info): Remove.
	(dump_bb_info): New function.  Use cfg-flags.h for bitnames.
	Adjust verbosity using TDF_* flags.  Check that the basic block flags
	are within the range of BB_ALL_FLAGS.
	(brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info.
	* cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE
	first for consistency with other dump functions.
	(dump_bb): Update prototype accordingly.
	* cfghooks.c: Include dumpfile.h.
	(verify_flow_info): Update dump_edge_info calls.
	(dump_bb): Take a flags argument and pass it around.
	Use dump_bb_info to dump common information about a basic block.
	(dump_flow_info): Moved here from cfgrtl.c.  Make IL agnostic.
	(debug_flow_info): Moved here from cfgrtl.c.
	* profile.c (is_edge_inconsistent): Update dump_bb calls.
	* loop-invariant.c (find_defs): Update print_rtl_with_bb call.
	* rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim,
	print_rtl_slim_with_bb): Remove prototypes.
	(dump_insn_slim): Adjust prototype to take a const_rtx.
	(print_rtl_with_bb): Adjust prototype.
	* sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim.
	* sched-vis.c (dump_insn_slim): Take a const_rtx.
	(debug_insn_slim): Prototype here near DEBUG_FUNCTION marker.
	(print_rtl_slim_with_bb): Remove.
	(print_rtl_slim): Rename to debug_rtl_slim.  Print only insn info,
	not basic block info (print_rtl_with_bb with TDF_SLIM should be used
	for that.  Prototype here near DEBUG_FUNCTION marker.
	(debug_bb_slim): Prototype here near DEBUG_FUNCTION marker.
	Use dump_bb.
	(debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker.
	* tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX.
	(remove_bb): Update dump_bb call.
	(gimple_debug_bb): Use dump_bb.
	(dump_function_to_file): Update gimple_dump_bb call.
	(print_loops_bb): Likewise.
	* tree-flow.h (gimple_dump_bb): Update prototype.
	* gimple-pretty-print.c (dump_bb_header): Rename to
	dump_gimple_bb_header.  Write to a stream instead of a pretty
	printer.  Use dump_bb_info to dump basic block info.
	(dump_bb_end): Rename to dump_gimple_bb_footer.  Write to a
	stream instead of a pretty printer.  Use dump_bb_info.
	(gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end.
	(gimple_dump_bb): Do it here with dump_gimple_bb_header and
	dump_gimple_bb_footer.
	* cfgrtl.c (rtl_dump_bb): Update prototype.  Only dump DF if the
	dump flags have TDF_DETAILS.  Use dump_insn_slim if TDF_SLIM.
	(print_rtl_with_bb): Take a flags argument and pass it around.
	Use dump_insn_slim if TDF_SLIM.
	(dump_bb_info): Removed and re-incarnated in cfg.c.
	(dump_flow_info): Moved to cfghooks.c.
	(debug_flow_info): Moved to cfghooks.c.
	* passes.c (execute_function_dump): Unconditionally use
	print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM.
	* final.c (dump_basic_block_info): Update dump_edge_info calls.
	* tree-vrp.c (dump_asserts_for): Likewise.
	* ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb.
	* tree-if-conv.c (if_convertible_bb_p): Don't look at
	EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world.
	* trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL,
	for the same reason.
	* config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls.

2012-07-17  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced
	vars here, use create_tmp_reg where appropriate.
	(vect_create_addr_base_for_vector_ref): Do not add referenced
	vars here, use create_tmp_reg where appropriate.
	(vect_create_data_ref_ptr): Likewise.
	(vect_create_destination_var): Likewise.
	(vect_permute_store_chain): Likewise.
	(vect_permute_load_chain): Likewise.
	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
	Likewise.
	* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
	* tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
	(vect_handle_widen_op_by_const): Likewise.
	* tree-vect-stmts.c (vect_init_vector): Likewise.
	(vectorizable_load): Likewise.

2012-07-17  Tom de Vries  <tom@codesourcery.com>

	* hwint.c: Fix loop range.

2012-07-17  Tom de Vries  <tom@codesourcery.com>

	* double-int.h (double_int_popcount): New inline function.
	* hwint.c (popcount_hwi): New function.
	* hwint.h (popcount_hwi): Declare function.  New inline function.

2012-07-17  Richard Henderson  <rth@redhat.com>

	* tree-vect-stmts.c (supportable_widening_operation): Remove decl
	parameters.
	(vectorizable_conversion): Update supportable_widening_operation call.
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
	(vect_recog_widen_shift_pattern): Likewise.
	* tree-vectorizer.h: Update decl.

2012-07-17  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* common/config/arm/arm-common.c (arm_option_optimization_table):
	Enable -fsched-pressure by default while optimizing.
	* config/arm/arm.c (arm_option_override): Use the alternate scheduler
	pressure algorithm by default.

2012-07-16  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (CONST_OK_FOR_I06): Delete.
	(CONST_OK_FOR_I10): Move macro to ...
	* config/sh/sh.c: ... here.
	(sh_legitimate_index_p): Use satisfies_constraint_I06 instead of
	CONST_OK_FOR_I06.

2012-07-16  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md: Delete mov related define_peephole patterns.

2012-07-16  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/53919
	* doc/install.texi (Installing GCC): Refer to instructions for
	released versions. Fix hyphenation.

2012-07-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (targetm): Move to bottom of file.
	(spu_attribute_table): Likewise.
	(spu_option_override, spu_init_builtins, spu_builtin_decl,
	spu_scalar_mode_supported_p, spu_vector_mode_supported_p,
	spu_legitimate_address_p, spu_addr_space_legitimate_address_p,
	adjust_operand, get_pic_reg, need_to_save_reg, frame_emit_store,
	frame_emit_load, frame_emit_add_imm, emit_nop_for_insn,
	insn_clobbers_hbr, spu_emit_branch_hint, spu_emit_vector_compare,
	get_branch_target, spu_machine_dependent_reorg, spu_sched_issue_rate,
	spu_sched_variable_issue, spu_sched_adjust_cost, spu_sched_init_global,
	spu_sched_init, spu_sched_reorder, spu_handle_fndecl_attribute,
	spu_handle_vector_attribute, spu_pass_by_reference, spu_function_arg,
	spu_function_arg_advance, spu_build_builtin_va_list, spu_va_start,
	spu_gimplify_va_arg_expr, store_with_one_insn_p, reg_aligned_for_addr,
	spu_assemble_integer, spu_asm_globalize_label, spu_rtx_costs,
	spu_function_ok_for_sibcall, spu_init_libfuncs, spu_return_in_memory,
	spu_encode_section_info, spu_legitimize_address,
	spu_addr_space_legitimize_address, spu_builtin_mask_for_load,
	spu_builtin_vectorization_cost, spu_vector_alignment_reachable,
	spu_addr_space_pointer_mode, spu_addr_space_address_mode,
	spu_addr_space_subset_p, spu_addr_space_convert, spu_sms_res_mii,
	spu_section_type_flags, spu_select_section, spu_unique_section,
	spu_trampoline_init, spu_conditional_register_usage,
	spu_ref_may_alias_errno, spu_output_mi_thunk, spu_unwind_word_mode,
	spu_libgcc_cmp_return_mode, spu_libgcc_shift_count_mode,
	spu_setup_incoming_varargs): Remove prototypes.
	(spu_legitimize_address): Add "static" to definition.

2012-07-16  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/rtmintrin.h (_xabort): Remove trailing semicolon.

2012-07-16  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p
	before calling gsi_stmt.

2012-07-16  Kirill Yukhin  <kirill.yukhin@intel.com>

	Revert
	2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>

	* config/i386/i386.md (stack_protect_set): Disable the pattern
	for Android since Android libc (bionic) does not provide random
	value for stack protection guard at gs:0x14. Guard value
	will be provided from external symbol (default implementation).
	(stack_protect_set_<mode>): Likewise.
	(stack_protect_test): Likewise.
	(stack_protect_test_<mode>): Likewise.

2012-07-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/53959
	PR bootstrap/53963
	* gimple.c (gimple_types_compatible_p_1): Restore type attribute
	comparison.

2012-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* opts.c (default_option): Add -fvect-cost-model to default options
	at -O3 and above.

2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>

	* graphite-clast-to-gimple.c, graphite-dependences.c,
	graphite-sese-to-poly.c: Include tree-pass.h instead of dumpfile.h
	for pass TODO flags.
	* Makefile.in: Fix dependencies.

2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>

	* haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU.
	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.

	* function.c (stack_protect_epilogue): Use expand_call to expand
	targetm.stack_protect_fail.
	* stmt.c (expand_expr_stmt): Remove now-unused function.
	* tree.h (expand_expr_stmt): Remove prototype.
	* doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this
	hook must return a CALL_EXPR.
	* doc/tm.texi: Regenerate.

	* emit-rtl.c (emit_label_before): Do not allow the same label
	to be emitted twice.
	(emit_label_after): Likewise.
	(emit_label): Likewise.

	* flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
	TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h.
	* tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
	TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home.

2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>

	* system.h (dump_file): Do not define.
	* tree-pass.h: Include dumpfile.h, which is a new file containing...
	(enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
	dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
	dump_flag_name, dump_file, dump_flags, dump_file_name,
	get_dump_file_info, struct dump_file_info): all of this, moved to...
	* dumpfile.h: Here, new file.
	* tree-dump.h: Include dumpfile.h, but not tree-pass.h.
	(dump_stmt): Remove prototype for C++ specific function.
	(dump_enumerated_decls): Move prototype from here...
	* tree-flow.h (dump_enumerated_decls): ... to here.
	(get_ref_base_and_extent) Move prototype from here ...
	* tree.h (get_ref_base_and_extent) ... to here.
	* tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
	gimple-pretty-print.h is enough.  Do not include tree-dump.h,
	include timevar.h and dumpfile.h instead.
	(struct numbered_tree_d, compare_decls_by_uid,
	dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
	* tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
	dump_enumerated_decls_push, dump_enumerated_decls):... to here.
	Do not include timevar.h.
	* tree.c: Do not include timevar.h.
	* tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
	timevar.h.
	(dump_cfg_stats): Use current_function_name.
	(gimple_cfg2vcg): Likewise.
	(dump_function_to_file): Likewise.
	* df-scan.c: Do not include tree-pass.h and timevar.h.
	Include dumpfile.h.
	(df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
	use print_current_pass.
	* df-problems.c: Include dumpfile.h.
	Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
	leads to errors in the code not selected.
	(df_note_compute): Do not print_rtl_with_bb here.  Fix compilation
	bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
	* lcm.c: Include dumpfile.h.
	Remove obsolete include of insn-attr.h.
	* dojump.c (do_compare_rtx_and_jump): Remove failure printing for
	missing probability notes.
	* stmt.c: Include dumpfile.h.
	(emit_case_decision_tree): Re-enable printing expand details only
	if TDF_DETAILS.
	* alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c,
	cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c,
	cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c,
	coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c,
	dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c,
	function.c, fwprop.c, gcse.c, gimple-fold.c,
	gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
	gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c,
	graphite-dependences.c, graphite-interchange.c,
	graphite-optimize-isl.c, graphite-poly.c,
	graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c,
	ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c,
	ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c,
	ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c,
	jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c,
	loop-unroll.c, loop-unswitch.c, lower-subreg.c,
	lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c,
	mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c,
	plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c,
	print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c,
	regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c,
	sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c,
	store-motion.c, tracer.c, trans-mem.c, tree-affine.c,
	tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c,
	tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
	tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c,
	tree-mudflap.c, tree-nrv.c, tree-object-size.c,
	tree-optimize.c, tree-outof-ssa.c, tree-predcom.c,
	tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c,
	tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c,
	tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c,
	tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c,
	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c,
	tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
	tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
	tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
	tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c,
	tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c,
	tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c,
	tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c,
	tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
	tree-ssa-uncprop.c, tree-ssa-uninit.c,
	tree-switch-conversion.c, tree-tailcall.c,
	tree-vect-data-refs.c, tree-vect-loop.c,
	tree-vect-loop-manip.c, tree-vectorizer.c,
	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
	tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
	only if needed.  If tree-pass.h is included, do not include timevar.h
	and dumpfile.h.  If tree-pass.h is not included but dump_file, or
	dump_flags, or the TDF_* flags are used, include dumpfile.h.
	If gimple-pretty-print.h is included, don't include
	tree-pretty-print.h.  Remove assorted unnecessary includes.

	* config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
	config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
	Include dumpfile.h.
	* config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
	* arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
	spu/t-spu-elf: Fix dependencies.

2012-07-16  Dehao Chen  <dehao@google.com>

	Revert
	2012-07-10  Dehao Chen  <dehao@google.com>

	* tree.h (phi_arg_d): New field.
	* tree-flow-inline.h (gimple_phi_arg_block): New function.
	(gimple_phi_arg_block_from_edge): New function.
	(gimple_phi_arg_set_block): New function.
	(gimple_phi_arg_has_block): New function.
	(redirect_edge_var_map_block): New function.
	* tree-flow.h (_edge_var_map): New field.
	* tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
	* tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
	redirect_edge_var_map_add.
	* tree-outof-ssa.c (_elim_graph): New field.
	(insert_partition_copy_on_edge): New parameter.
	(insert_value_copy_on_edge): New parameter.
	(insert_rtx_to_part_on_edge): New parameter.
	(insert_part_to_rtx_on_edge): New parameter.
	(elim_graph_add_edge): New parameter.
	(elim_graph_remove_succ_edge): New parameter.
	(FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
	(FOR_EACH_ELIM_GRAPH_PRED): New parameter.
	(new_elim_graph): Add block debug info.
	(clear_elim_graph): Likewise.
	(delete_elim_graph): Likewise.
	(elim_graph_add_node): Likewise.
	(elim_graph_add_edge): Likewise.
	(elim_graph_remove_succ_edge): Likewise.
	(eliminate_build): Likewise.
	(elim_forward): Likewise.
	(elim_unvisited_predecessor): Likewise.
	(elim_backward): Likewise.
	(elim_create): Likewise.
	(eliminate_phi): Likewise.
	(insert_backedge_copies): Likewise.
	* tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
	add_phi_arg.
	(rewrite_add_phi_arguments): Likewise.
	* tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
	* tree-ssa-tail-merge.c (replace_block_by): Likewise.
	* tree-ssa-threadupdate.c (copy_phi_args): Likewise.
	* tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	(add_exit_phis_edge): Likewise.
	(split_loop_exit_edge): Likewise.
	(copy_phi_node_args): Likewise.
	(tree_transform_and_unroll_loop): Likewise.
	* value-prof.c (gimple_ic): Likewise.
	(gimple_stringop_fixed_value): Likewise.
	* tree-tailcall.c (add_successor_phi_arg): Likewise.
	(eliminate_tail_call): Likewise.
	(create_tailcall_accumulator): Likewise.
	(tree_optimize_tail_calls_1): Likewise.
	* tree-phinodes.c (add_phi_arg): Likewise.
	(make_phi_node): Likewise.
	(resize_phi_node): Likewise.
	(remove_phi_arg_num): Likewise.
	* omp-low.c (expand_parallel_call): Likewise.
	(expand_omp_for_static_chunk): Likewise.
	* tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
	Likewise.
	(slpeel_update_phi_nodes_for_guard1): Likewise.
	(slpeel_update_phi_nodes_for_guard2): Likewise.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
	(set_prologue_iterations): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	(vect_loop_versioning): Likewise.
	* tree-parloops.c (create_phi_for_local_result): Likewise.
	(transform_to_exit_first_loop): Likewise.
	(create_parallel_loop): Likewise.
	* ipa-split.c (split_function): Likewise.
	* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
	(vect_create_epilog_for_reduction): Likewise.
	* tree-vect-data-refs.c (vect_setup_realignment): Likewise.
	* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
	* tree-ssa-phiopt.c (cond_store_replacement): Likewise.
	(cond_if_else_store_replacement_1): Likewise.
	* tree-cfgcleanup.c (remove_forwarder_block): Likewise.
	(remove_forwarder_block_with_phi): Likewise.
	* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
	* tree-predcom.c (initialize_root_vars): Likewise.
	(initialize_root_vars_lm): Likewise.
	* sese.c (sese_add_exit_phis_edge): Likewise.
	* tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
	* tree-ssa.c (flush_pending_stmts): Likewise.
	(redirect_edge_var_map_add): Likewise.
	(ssa_redirect_edge): Likewise.
	* gimple-streamer-in.c (input_phi): Likewise.
	* tree-vect-stmts.c (vectorizable_load): Likewise.
	* tree-inline.c (copy_phis_for_bb): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-switch-conversion.c (fix_phi_nodes): Likewise.
	* tree-cfg.c (reinstall_phi_args): Likewise.
	(gimple_make_forwarder_block): Likewise.
	(add_phi_args_after_copy_edge): Likewise.
	(gimple_duplicate_sese_tail): Likewise.

2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>

	* config/i386/i386.md (stack_protect_set): Disable the pattern
	for Android since Android libc (bionic) does not provide random
	value for stack protection guard at gs:0x14. Guard value
	will be provided from external symbol (default implementation).
	(stack_protect_set_<mode>): Likewise.
	(stack_protect_test): Likewise.
	(stack_protect_test_<mode>): Likewise.

2012-07-16  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris-protos.h (cris_legitimate_address_p): Declare.
	* config/cris/cris.h (CONSTANT_ADDRESS_P): Define in terms of
	CONSTANT_P and cris_legitimate_address_p.
	* config/cris/cris.c (cris_legitimate_address_p): Make non-static.
	(cris_preferred_reload_class): Don't return GENERAL_REGS as
	preferred to MOF_SRP_REGS.

	* config/cris/cris.c (cris_init_libfuncs): Handle initialization
	of library functions for basic atomic compare-and-swap.
	* config/cris/cris.h (TARGET_ATOMICS_MAY_CALL_LIBFUNCS): New macro.
	* config/cris/cris.opt (munaligned-atomic-may-use-library): New option.
	* config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>")
	("cris_atomic_fetch_<atomic_op_name><mode>_1")
	("atomic_compare_and_swap<mode>")
	("cris_atomic_compare_and_swap<mode>_1"): Make conditional on
	TARGET_ATOMICS_MAY_CALL_LIBFUNCS for sizes larger than byte.
	* config/cris/cris.c (cris_print_operand) <case 'P', 'q'>: New cases.
	* config/cris/sync.md (atomic_op_op_cnstr): New code_attr.
	(atomic_op_op_pred): Ditto.
	(atomic_op_mnem_pre_op2): Renamed from atomic_op_mnem_pre; to
	reflect the change to include %2 in expansion.  All callers changed.
	(qm3): New mode_attr.
	("atomic_fetch_<atomic_op_name><mode>"): Use <atomic_op_op_pred>
	as predicate for operand 2.
	("cris_atomic_fetch_<atomic_op_name><mode>_1"): Update FIXME.  Use
	"<atomic_op_op_pred>" "<atomic_op_op_cnstr>" for predicate and
	constraint for operand 2.
	("atomic_compare_and_swap<mode>"): Add FIXME.  Change predicate to
	nonmemory_operand for operand 3.
	("cris_atomic_compare_and_swap<mode>_1"): Change operand 3 to
	exclude memory.  Improve emitted sync code for v10 and v32.  Use
	<qm3> instead of <m> for size designator for cmp.
	("atomic_compare_and_swap<mode>"): Change predicate to
	nonmemory_operand for operand 3.  Add FIXME.
	("cris_atomic_compare_and_swap<mode>_1"): Change predicates and
	constraints for operand 3 to exclude memory.
	("atomic_fetch_<atomic_op_name><mode>")
	("atomic_compare_and_swap<mode>"): Gate expand_mem_thread_fence
	calls on result of call to need_atomic_barrier_p.

2012-07-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (move_type): Replace mfhilo and mthilo
	with mflo and mtlo.
	(type): Split mfhilo into mfhi and mflo.  Split mthilo into mthi
	and mtlo.  Adjust move_type->type mapping.
	(may_clobber_hilo): Split mthilo into mthi and mtlo.
	(*movdi_32bit, *movdi_32bit_mips16, *movdi_64bit, *movdi_64bit_mips16)
	(*mov<mode>_internal, *mov<mode>_mips16, *movhi_internal)
	(*movhi_mips16, *movqi_internal, *movqi_mips16): Use mtlo and mflo
	instead of mthilo and mfhilo.
	(mfhi<GPR:mode>_<HILO:mode>): Use mfhi instead of mfhilo.
	(mthi<GPR:mode>_<HILO:mode>): Use mthi instead of mthilo.
	* config/mips/mips-dsp.md (mips_extr_w, mips_extr_r_w, mips_extr_rs_w)
	(mips_extr_s_h, mips_extp, mips_extpdp, mips_shilo, mips_mthlip):
	Use mflo instead of mfhilo.
	* config/mips/10000.md (r10k_arith): Split mthilo.
	(r10k_mfhi, r10k_mflo): Use mfhi and mflo directly.
	* config/mips/sb1.md (ir_sb1_mfhi, ir_sb1_mflo): Likewise.
	(ir_sb1_mthilo): Split mthilo into mthi and mtlo.
	* config/mips/20kc.md (r20kc_imthilo, r20kc_imfhilo): Split
	mthilo and mfhilo.
	* config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise.
	* config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo):
	Likewise.
	* config/mips/4k.md (r4k_int_mthilo, r4k_int_mfhilo): Likewise.
	* config/mips/5400.md (ir_vr54_hilo): Likewise.
	* config/mips/5500.md (ir_vr55_mthilo, ir_vr55_mfhilo): Likewise.
	* config/mips/5k.md (r5k_int_mthilo, r5k_int_mfhilo): Likewise.
	* config/mips/7000.md (rm7_mthilo, rm7_mfhilo): Likewise.
	* config/mips/74k.md (r74k_int_mfhilo, r74k_int_mthilo): Likewise.
	* config/mips/9000.md (rm9k_mfhilo, rm9k_mthilo): Likewise.
	* config/mips/generic.md (generic_hilo): Likewise.
	* config/mips/loongson2ef.md (ls2_alu): Likewise.
	* config/mips/loongson3a.md (ls3a_mfhilo): Likewise.
	* config/mips/octeon.md (octeon_imul_o1, octeon_imul_o2)
	(octeon_mfhilo_o1, octeon_mfhilo_o2): Likewise.
	* config/mips/sr71k.md (ir_sr70_hilo): Likewise.
	* config/mips/xlr.md (xlr_hilo): Likewise.

2012-07-14  Andrew Stubbs  <ams@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/sh/sh.h (SH_ASM_SPEC): Add spaces between options.

2012-07-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_set_reg_reg_cost): Enable TFmode/TCmode
	for TARGET_SSE.

2012-07-14  Steven Bosscher  <steven@gcc.gnu.org>

	* toplev.c (init_asm_output): Open asm_out_file in 'w' mode.

2012-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR bootstrap/53955
	* config/spu/spu.c (spu_init_cost): Mark static.
	(spu_add_stmt_cost): Likewise.
	(spu_finish_cost): Likewise.
	(spu_destroy_cost_data): Likewise.
	* config/i386/i386.c (ix86_init_cost): Mark static.
	(ix86_add_stmt_cost): Likewise.
	(ix86_finish_cost): Likewise.
	(ix86_destroy_cost_data): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_cost): Mark static.
	(rs6000_add_stmt_cost): Likewise.
	(rs6000_finish_cost): Likewise.
	(rs6000_destroy_cost_data): Likewise.

2012-07-13  Steven Bosscher  <steven@gcc.gnu.org>

	* ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat,
	ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args,
	ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add
	ATTRIBUTE_MALLOC.
	* alloc-pool.h (pool_alloc): Likewise.

	* final.c (final): Do not loop to find max_uid.

2012-07-13  Steven Bosscher  <steven@gcc.gnu.org>

	* emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static.
	* rtl.h (make_debug_insn_raw, make_jump_insn_raw): Remove prototypes.

2012-07-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53907
	* tree-ssa-forwprop.c (associate_pointerplus): New function.
	(ssa_forward_propagate_and_combine): Call it.

2012-07-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53922
	* tree-vrp.c (value_inside_range): Change prototype to take
	min/max instead of value-range.
	(range_includes_zero_p): Likewise.  Return the result from
	value_inside_range.
	(extract_range_from_binary_expr_1): Adjust to handle dont-know
	return value from range_includes_zero_p.
	(extract_range_from_unary_expr_1): Likewise.
	(compare_range_with_value): Likewise.
	(vrp_meet_1): Likewise.

2012-07-13  Bill Schmidt  <wschmidt@linux.ibm.com>

	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): New hook.
	(TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
	(TARGET_VECTORIZE_FINISH_COST): Likewise.
	(TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
	* targhooks.c (default_init_cost): New function.
	(default_add_stmt_cost): Likewise.
	(default_finish_cost): Likewise.
	(default_destroy_cost_data): Likewise.
	* targhooks.h (default_init_cost): New decl.
	(default_add_stmt_cost): Likewise.
	(default_finish_cost): Likewise.
	(default_destroy_cost_data): Likewise.
	* target.def (init_cost): New DEFHOOK.
	(add_stmt_cost): Likewise.
	(finish_cost): Likewise.
	(destroy_cost_data): Likewise.
	* target.h (struct _stmt_vec_info): New extern decl.
	(stmt_vectype): Likewise.
	(stmt_in_inner_loop_p): Likewise.
	* tree-vectorizer.h (stmt_info_for_cost): New struct/typedef.
	(stmt_vector_for_cost): New VEC/typedef.
	(add_stmt_info_to_vec): New function.
	(struct _slp_tree): Remove cost.inside_of_loop field.
	(struct _slp_instance): Remove cost.inside_of_loop field; add
	stmt_cost_vec field.
	(SLP_INSTANCE_INSIDE_OF_LOOP_COST): Remove macro.
	(SLP_INSTANCE_STMT_COST_VEC): New accessor macro.
	(SLP_TREE_INSIDE_OF_LOOP_COST): Remove macro.
	(struct _vect_peel_extended_info): Add stmt_cost_vec field.
	(struct _loop_vec_info): Add target_cost_data field.
	(LOOP_VINFO_TARGET_COST_DATA): New accessor macro.
	(struct _bb_vec_info): Add target_cost_data field.
	(BB_VINFO_TARGET_COST_DATA): New accessor macro.
	(struct _stmt_vec_info): Remove cost.inside_of_loop field.
	(STMT_VINFO_INSIDE_OF_LOOP_COST): Remove macro.
	(stmt_vinfo_set_inside_of_loop_cost): Remove function.
	(init_cost): New function.
	(add_stmt_cost): Likewise.
	(finish_cost): Likewise.
	(destroy_cost_data): Likewise.
	(vect_model_simple_cost): Change parameter list.
	(vect_model_store_cost): Likewise.
	(vect_model_load_cost): Likewise.
	(record_stmt_cost): New extern decl.
	(vect_get_load_cost): Change parameter list.
	(vect_get_store_cost): Likewise.
	* tree-vect-loop.c (new_loop_vec_info): Call init_cost.
	(destroy_loop_vec_info): Call destroy_cost_data.
	(vect_estimate_min_profitable_iters): Remove old calculation of
	inside costs; call finish_cost instead.
	(vect_model_reduction_cost): Call add_stmt_cost instead of old
	inside-costs calculation.
	(vect_model_induction_cost): Likewise.
	* tree-vect-data-refs.c (vect_get_data_access_cost): Change to
	return a stmt_vector_for_cost; modify calls to vect_get_load_cost
	and vect_get_store_cost to obtain the value to return.
	(vect_peeling_hash_get_lowest_cost): Obtain a stmt_cost_vec from
	vect_get_data_access_cost and store it in the minimum peeling
	structure.
	(vect_peeling_hash_choose_best_peeling): Change the parameter list
	to add a (stmt_vector_for_cost *) output parameter, and set its value.
	(vect_enhance_data_refs_alignment): Ignore the new return value from
	calls to vect_get_data_access_cost; obtain stmt_cost_vec from
	vect_peeling_hash_choose_best_peeling and pass its contents to the
	target cost model.
	* tree-vect-stmts.c (stmt_vectype): New function.
	(stmt_in_inner_loop_p): Likewise.
	(record_stmt_cost): Likewise.
	(vect_model_simple_cost): Add stmt_cost_vec parameter; call
	record_stmt_cost instead of old calculation; don't call
	stmt_vinfo_set_inside_of_loop_cost.
	(vect_model_promotion_demotion_cost): Call add_stmt_cost instead of
	old calculation; don't call stmt_vinfo_set_inside_of_loop_cost.
	(vect_model_store_cost): Add stmt_cost_vec parameter; call
	record_stmt_cost instead of old calculation; add stmt_cost_vec
	parameter to vect_get_store_cost call; don't call
	stmt_vinfo_set_inside_of_loop_cost.
	(vect_get_store_cost): Add stmt_cost_vec parameter; call
	record_stmt_cost instead of old calculation.
	(vect_model_load_cost): Add stmt_cost_vec parameter; call
	record_stmt_cost instead of old calculation; add stmt_cost_vec
	parameter to vect_get_load_cost call; don't call
	stmt_vinfo_set_inside_of_loop_cost.
	(vect_get_load_cost): Add stmt_cost_vec parameter; call
	record_stmt_cost instead of old calculation.
	(vectorizable_call): Add NULL parameter to vect_model_simple_cost call.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Add NULL parameter to vect_model_store_cost call.
	(vectorizable_load): Add NULL parameter to vect_model_load_cost call.
	(new_stmt_vec_info): Don't set STMT_VINFO_INSIDE_OF_LOOP_COST.
	* config/spu/spu.c (TARGET_VECTORIZE_INIT_COST): New macro def.
	(TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
	(TARGET_VECTORIZE_FINISH_COST): Likewise.
	(TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
	(spu_init_cost): New function.
	(spu_add_stmt_cost): Likewise.
	(spu_finish_cost): Likewise.
	(spu_destroy_cost_data): Likewise.
	* config/i386/i386.c (ix86_init_cost): New function.
	(ix86_add_stmt_cost): Likewise.
	(ix86_finish_cost): Likewise.
	(ix86_destroy_cost_data): Likewise.
	(TARGET_VECTORIZE_INIT_COST): New macro def.
	(TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
	(TARGET_VECTORIZE_FINISH_COST): Likewise.
	(TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
	* config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): New macro def.
	(TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
	(TARGET_VECTORIZE_FINISH_COST): Likewise.
	(TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
	(rs6000_init_cost): New function.
	(rs6000_add_stmt_cost): Likewise.
	(rs6000_finish_cost): Likewise.
	(rs6000_destroy_cost_data): Likewise.
	* tree-vect-slp.c (vect_free_slp_instance): Free stmt_cost_vec.
	(vect_create_new_slp_node): Don't set SLP_TREE_INSIDE_OF_LOOP_COST.
	(vect_get_and_check_slp_defs): Add stmt_cost_vec parameter; add
	stmt_cost_vec parameter to vect_model_store_cost and
	vect_model_simple_cost calls.
	(vect_build_slp_tree): Remove inside_cost parameter; add stmt_cost_vec
	parameter; add stmt_cost_vec parameter to vect_get_and_check_slp_defs,
	vect_model_load_cost, and recursive vect_build_slp_tree calls; prevent
	calculating cost more than once for loads; remove inside_cost
	parameter from recursive vect_build_slp_tree calls; call
	record_stmt_cost instead of old calculation.
	(vect_analyze_slp_instance): Allocate stmt_cost_vec and save it with
	the instance; free it on premature exit; remove inside_cost parameter
	from vect_build_slp_tree call; add stmt_cost_vec parameter to
	vect_build_slp_tree call; don't set SLP_INSTANCE_INSIDE_OF_LOOP_COST.
	(new_bb_vec_info): Call init_cost.
	(destroy_bb_vec_info): Call destroy_cost_data.
	(vect_bb_vectorization_profitable_p): Call add_stmt_cost for each
	statement recorded with an SLP instance; call finish_cost instead of
	the old calculation.
	(vect_update_slp_costs_according_to_vf): Record statement costs from
	SLP instances, multiplying by the appropriate number of copies; don't
	update SLP_INSTANCE_INSIDE_OF_LOOP_COST.

2012-07-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53937
	* builtins.c (get_pointer_alignment_1): Handle constant
	pointers.

2012-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
	    Steven Bosscher  <steven@gcc.gnu.org>
	    Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/53908
	* df-problems.c (can_move_insns_across): When doing
	memory-reference book-keeping, handle call insns.

2012-07-13  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p_1): Remove redundant
	type attribute comparisons.
	(gimple_canonical_types_compatible_p): Likewise.

2012-07-12  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/53176
	* rtlanal.c (rtx_cost): Adjust default cost for X with a
	UNITS_PER_WORD factor for all X according to the size of
	its mode, not just for SUBREGs with untieable modes.
	Handle SET.  Use factor * factor for MULT, DIV, UDIV,
	MOD, UMOD.

2012-07-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (QImode and HImode cmove splitters): Merge
	QImode and HImode splitters.  Use ix86_comparison_operator.
	Explicitly match FLAGS_REG.
	(DFmode cmove splitter): Explicitly match FLAGS_REG.

2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>

	* expr.h (can_move_by_pieces): Move prototype from here ...
	* tree.h (can_move_by_pieces): ... to here.
	* optabs.h (set_widening_optab_handler): Use XCNEW.
	* gimplify.c: Do not include expr.h.

	* toplev.c: Do not include dwarf2out.h.
	* config/ia64/ia64.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sparc/t-sparc (sparc.o): Fix dependencies.

	* Makefile.in (toplev.o): Fix dependencies
	(c-family/c-gimplify.o): Likewise.
	(c-family/c-common.o): Likewise.

2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>

	* basic-block.h (struct edge_def): Use basic_block instead of
	basic_block_def *.
	* cfgloop.h (struct loop_exit, struct loop): Likewise.
	* gengenrtl.c (type_from_format): Likewise.  Also for 'tree'
	instead of union tree_node *.
	* rtl.h (union rtunion_def, emit_insn_before_noloc,
	emit_insn_after_noloc, add_insn_before, add_insn_after,
	debug_bb_slim): Likewise.
	* tree-inline.h (struct copy_body_data): Likewise.
	* sched-rgn.c (dump_region_dot): Likewise.
	* gimple.h (struct gimple_statement_base, gimple_set_bb,
	gsi_move_to_bb_end): Likewise.
	* sched-vis.c (debug_bb_slim): Likewise.
	(debug_bb_n_slim): Likewise.
	* config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Likewise.
	(mn10300_block_contains_call):

2012-07-11  Greta Yorsh  <Greta.Yorsh@arm.com>

	PR target/53859
	* config/arm/arm.c (arm_early_load_addr_dep): Handle new
	epilogue patterns.

2012-07-11  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/extend.texi (Namespace Association): Alter cautionary text.

2012-07-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53911
	* config/sh/sh.md: Remove displacement addresssing related splits.

2012-07-10  Xinliang David Li  <davidxl@google.com>

	* doc/invoke.texi: New option documented.
	* flag-types.h: New enum type.
	* gimplify.c (gimplify_bind_expr): Control
	clobber generation with new option.
	(gimplify_target_expr): Ditto.
	* common.opt: New option.

2012-07-10  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.md (movsi): Don't split symbol refs here.
	(define_split): New.

2012-07-10  Andreas Schwab  <schwab@linux-m68k.org>

	PR bootstrap/53913
	* config/m68k/m68k.c (m68k_epilogue_uses): New.
	* config/m68k/m68k.h (EPILOGUE_USES): Use it.
	* config/m68k/m68k-protos.h (m68k_epilogue_uses): Add prototype.

2012-07-10  Richard Henderson  <rth@redhat.com>

	* target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove.
	* system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison.
	* config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove.
	(IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove.
	(IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove.
	(IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove.
	(IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove.
	(IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove.
	(IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove.
	(bdesc_args): Remove entries to match.
	(ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
	* config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove.
	(rs6000_builtin_mul_widen_odd): Remove.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
	* config/spu/spu.c (spu_builtin_mul_widen_even): Remove.
	(spu_builtin_mul_widen_odd): Remove.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
	* doc/tm.texi.in: Don't document the removed hooks.

	* tree-vect-stmts.c (supportable_widening_operation): Expand
	WIDEN_MULT_EXPR via VEC_WIDEN_MULT_EVEN/ODD_EXPR if possible.

	* expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart.
	(expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab.
	* optabs.c (can_mult_highpart_p): New.
	(expand_mult_highpart): New.
	* expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it.
	* tree-vect-generic.c (expand_vector_operations_1): Don't expand
	by pieces if can_mult_highpart_p.
	(expand_vector_divmod): Use can_mult_highpart_p and always
	generate MULT_HIGHPART_EXPR.
	* tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
	* tree-vect-stmts.c (vectorizable_operation): Likewise.

	* config/spu/spu-builtins.md (spu_mpy): Move to spu.md.
	(spu_mpyu, spu_mpyhhu, spu_mpyhh): Likewise.
	* config/spu/spu.md (vec_widen_smult_odd_v8hi): Rename from spu_mpy.
	(vec_widen_umult_odd_v8hi): Rename from spu_mpyu.
	(vec_widen_smult_even_v8hi): Rename from spu_mpyhh.
	(vec_widen_umult_even_v8hi): Rename from spu_mpyhhu.
	* config/spu/spu-builtins.def: Update pattern names to match.

	* config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Rename
	from altivec_vmuleub.
	(vec_widen_smult_even_v16qi): Rename from altivec_vmulesb.
	(vec_widen_umult_even_v8hi): Rename from altivec_vmuleuh.
	(vec_widen_smult_even_v8hi): Rename from altivec_vmulesh.
	(vec_widen_umult_odd_v16qi): Rename from altivec_vmuloub.
	(vec_widen_smult_odd_v16qi): Rename from altivec_vmulosb.
	(vec_widen_umult_odd_v8hi): Rename from altivec_vmulouh.
	(vec_widen_smult_odd_v8hi): Rename from altivec_vmulosh.
	* config/rs6000/rs6000-builtin.def: Update pattern names to match.

	* config/i386/sse.md (vec_widen_umult_even_v8si): Rename from
	avx2_umulv4siv4di3.
	(vec_widen_umult_even_v4si): Rename from sse2_umulv2siv2di3.
	(vec_widen_smult_even_v8si): Rename from avx2_mulv4siv4di3.
	(mulv4si3): Remove XOP test shadowed by SSE4 test.
	* config/i386/i386.c (bdesc_args): Update pattern names.
	(ix86_expand_sse2_mulvxdi3): Likewise.
	(ix86_expand_mul_widen_evenodd): Likewise.  Remove XOP test
	shadowed by SSE4 test.

	* tree.def (VEC_WIDEN_MULT_EVEN_EXPR, VEC_WIDEN_MULT_ODD_EXPR): New.
	* cfgexpand.c (expand_debug_expr): Handle them.
	* expr.c (expand_expr_real_2): Likewise.
	* fold-const.c (fold_binary_loc): Likewise.
	* gimple-pretty-print.c (dump_binary_rhs): Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
	* tree-inline.c (estimate_operator_cost): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree.c (commutative_tree_code): Likewise.
	* tree-vect-generic.c (expand_vector_operations_1): Likewise.
	Handle type change before looking up optab.
	* optabs.h (OTI_vec_widen_umult_even, OTI_vec_widen_umult_odd): New.
	(OTI_vec_widen_smult_even, OTI_vec_widen_smult_odd): New.
	(vec_widen_umult_even_optab, vec_widen_umult_odd_optab): New.
	(vec_widen_smult_even_optab, vec_widen_smult_odd_optab): New.
	* genopinit.c (optabs): Initialize them.
	* doc/md.texi: Document them.

2012-07-10  Dehao Chen  <dehao@google.com>

	* tree.h (phi_arg_d): New field.
	* tree-flow-inline.h (gimple_phi_arg_block): New function.
	(gimple_phi_arg_block_from_edge): New function.
	(gimple_phi_arg_set_block): New function.
	(gimple_phi_arg_has_block): New function.
	(redirect_edge_var_map_block): New function.
	* tree-flow.h (_edge_var_map): New field.
	* tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
	* tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
	redirect_edge_var_map_add.
	* tree-outof-ssa.c (_elim_graph): New field.
	(insert_partition_copy_on_edge): New parameter.
	(insert_value_copy_on_edge): New parameter.
	(insert_rtx_to_part_on_edge): New parameter.
	(insert_part_to_rtx_on_edge): New parameter.
	(elim_graph_add_edge): New parameter.
	(elim_graph_remove_succ_edge): New parameter.
	(FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
	(FOR_EACH_ELIM_GRAPH_PRED): New parameter.
	(new_elim_graph): Add block debug info.
	(clear_elim_graph): Likewise.
	(delete_elim_graph): Likewise.
	(elim_graph_add_node): Likewise.
	(elim_graph_add_edge): Likewise.
	(elim_graph_remove_succ_edge): Likewise.
	(eliminate_build): Likewise.
	(elim_forward): Likewise.
	(elim_unvisited_predecessor): Likewise.
	(elim_backward): Likewise.
	(elim_create): Likewise.
	(eliminate_phi): Likewise.
	(insert_backedge_copies): Likewise.
	* tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
	add_phi_arg.
	(rewrite_add_phi_arguments): Likewise.
	* tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
	* tree-ssa-tail-merge.c (replace_block_by): Likewise.
	* tree-ssa-threadupdate.c (copy_phi_args): Likewise.
	* tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	(add_exit_phis_edge): Likewise.
	(split_loop_exit_edge): Likewise.
	(copy_phi_node_args): Likewise.
	(tree_transform_and_unroll_loop): Likewise.
	* value-prof.c (gimple_ic): Likewise.
	(gimple_stringop_fixed_value): Likewise.
	* tree-tailcall.c (add_successor_phi_arg): Likewise.
	(eliminate_tail_call): Likewise.
	(create_tailcall_accumulator): Likewise.
	(tree_optimize_tail_calls_1): Likewise.
	* tree-phinodes.c (add_phi_arg): Likewise.
	(make_phi_node): Likewise.
	(resize_phi_node): Likewise.
	(remove_phi_arg_num): Likewise.
	* omp-low.c (expand_parallel_call): Likewise.
	(expand_omp_for_static_chunk): Likewise.
	* tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
	Likewise.
	(slpeel_update_phi_nodes_for_guard1): Likewise.
	(slpeel_update_phi_nodes_for_guard2): Likewise.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
	(set_prologue_iterations): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	(vect_loop_versioning): Likewise.
	* tree-parloops.c (create_phi_for_local_result): Likewise.
	(transform_to_exit_first_loop): Likewise.
	(create_parallel_loop): Likewise.
	* ipa-split.c (split_function): Likewise.
	* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
	(vect_create_epilog_for_reduction): Likewise.
	* tree-vect-data-refs.c (vect_setup_realignment): Likewise.
	* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
	* tree-ssa-phiopt.c (cond_store_replacement): Likewise.
	(cond_if_else_store_replacement_1): Likewise.
	* tree-cfgcleanup.c (remove_forwarder_block): Likewise.
	(remove_forwarder_block_with_phi): Likewise.
	* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
	* tree-predcom.c (initialize_root_vars): Likewise.
	(initialize_root_vars_lm): Likewise.
	* sese.c (sese_add_exit_phis_edge): Likewise.
	* tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
	* tree-ssa.c (flush_pending_stmts): Likewise.
	(redirect_edge_var_map_add): Likewise.
	(ssa_redirect_edge): Likewise.
	* gimple-streamer-in.c (input_phi): Likewise.
	* tree-vect-stmts.c (vectorizable_load): Likewise.
	* tree-inline.c (copy_phis_for_bb): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-switch-conversion.c (fix_phi_nodes): Likewise.
	* tree-cfg.c (reinstall_phi_args): Likewise.
	(gimple_make_forwarder_block): Likewise.
	(add_phi_args_after_copy_edge): Likewise.
	(gimple_duplicate_sese_tail): Likewise.

2012-07-09  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53886
	* config/sh/sh.c (sequence_insn_p): New function.
	(find_barrier, sh_insn_length_adjustment): Use it.

2012-07-09  Iain Sandoe  <iain@codesourcery.com>

	PR target/53283
	* config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
	if defined.
	* config/darwin.h: Rename TARGET_FOLD_BUILTIN to
	SUBTARGET_FOLD_BUILTIN.
	* config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto
	SUBTARGET_FOLD_BUILTIN.

2012-07-09  Iain Sandoe  <iain@codesourcery.com>

	* config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Move NeXT
	runtime exceptions model setting from here ...
	* config/darwin.c (darwin_override_options): ... to here.

2012-07-09  Steven Bosscher  <steven@gcc.gnu.org>

	PR tree-optimization/53887
	* tree-cfg.c (group_case_labels_stmt): Make non-static.
	* tree-flow.h (group_case_labels_stmt): Add prototype.
	* tree-switch-conversion.c (process_switch): Use group_case_labels_stmt
	to pre-process every switch.

2012-07-09  Jason Merrill  <jason@redhat.com>

	PR c++/53882
	* tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
	(type_hash_eq): Likewise.

2012-07-09  Tom de Vries  <tom@codesourcery.com>
	    Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (optimize_unreachable): New function.
	(execute_fold_all_builtins): Use optimize_unreachable to optimize
	BUILT_IN_UNREACHABLE.  Don't optimize after BUILT_IN_UNREACHABLE.

2012-07-09  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/53898
	* graphite-optimize-isl.c: Make sure CU is not empty.

2012-07-09  Steven Bosscher  <steven@gcc.gnu.org>

	* gensupport.c (init_rtx_reader_args_cb): Start counting code
	generating patterns from 1 to free up 0 for CODE_FOR_nothing.
	* gencodes.c (main): Give CODE_FOR_nothing the value 0.  Add
	the LAST_INSN_CODE marker at the end.
	* genoutput.c (nothing): New static struct data.
	(idata): Initialize to &nothing.
	(idata_end): Initialize to &nothing.next.
	(init_insn_for_nothing): New function to create dummy 'nothing' insn.
	(main): Use it.
	* genpeep.c (insn_code_number): Remove global variable.
	(gen_peephole): Take it as an argument instead.
	(main): Take insn_code_number from read_md_rtx.
	* optabs.h: Revert r161809:
	(optab_handlers): Change type of insn_code back to insn_code.
	(optab_handler, widening_optab_handler, set_optab_handler,
	set_widening_optab_handler, convert_optab_handler,
	set_convert_optab_handler, direct_optab_handler,
	set_direct_optab_handler): Remove int casts.
	Revert to treating the insn_code field as "insn_code".

2012-07-08  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
	* config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
	* config/sh/sh-protos.h: Declare it.

2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>

	* mcf.c: Do not include tm.h, tree.h, and langhooks.h.
	(dump_fixup_graph): Use current_function_name.
	(adjust_cfg_counts): Likewise.
	* ira-conflicts.c: Do not include tree.h.
	(ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.

2012-07-08  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns.

2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>

	* basic-block.h: Re-group most prototypes per file.
	(struct edge_list): Remove num_blocks field.
	(dump_bb_info): Adjust prototypes.
	(dump_reg_info): Move prototype to regs.h.
	* function.h: Do not include tree.h.
	Include vec.h, vecir.h, input.h and machmode.h to compensate.
	(function_name): New prototype.
	* gimple.h: Include tree.h to compensate for basic-block.h change.
	* langhooks.h: Note that tree.h is only necessary for enum tree_code.
	* regs.h (dump_reg_info): Prototype here.
	* regset.h: Adjust file reference in comment.
	(debug_regset): Remove prototype.
	* rtl.h: Include flags.h for flag_var_tracking_assignments.
	(MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
	instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
	(dump_reg_info, dump_flow_info): Remove prototypes.
	* bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
	to here, the only user.  Make static.
	(reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
	* cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
	flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
	tree-pass.h, cfgloop.h, and tree-flow.h.
	Include basic-block.h, the first header I'd expect to be included.
	(reg_obstack): Move to df-core.c.
	(free_edge): Remove bogus ATTRIBUTE_UNUSED.
	(remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
	(redirect_edge_succ_nodup): Move to cfghooks.c.
	(dump_regset, debug_regset): Move to df-core.c.
	(dump_bb_info): Move to cfgrtl.c.
	(dump_reg_info): Move to regstat.c.
	(dump_flow_info): Move to cfgrtl.c.
	(debug_flow_info): Likewise.
	(dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
	* cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
	insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
	(flow_active_insn_p, forwarder_block_p, can_fallthru,
	could_fall_through): Move to cfgrtl.c.
	(set_edge_can_fallthru_flag): Moved to bb-reorder.c.
	(create_edge_list): Do not set edge_list's removed num_blocks.
	(print_edge_list): Look at n_basic_blocks instead of num_blocks.
	(flow_nodes_print): Remove.
	(flow_edge_list_print): Remove.
	(inverted_post_order_compute): Use FOR_ALL_BB.
	* cfgrtl.c (dump_flow_info): Moved from cfg.c.
	Do not call dump_reg_info.
	(debug_flow_info): Moved from cfg.c
	(dump_bb_info): Moved from cfg.c.  Take 'verbose' argument
	to avoid looking at TDF_* flags from tree-pass.h.
	(flow_active_insn_p, forwarder_block_p, can_fallthru,
	could_fall_through): Moved from cfganal.c.
	(print_rtl_with_bb): Adjust dump_bb_info calls.
	* cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
	(remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
	(cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
	* cselib.c: Include tree.h with a FIXME.
	* df-core.c (reg_obstack): Moved from cfg.c.
	(dump_regset): Likewise.
	(debug_regset): Likewise.  Make a DEBUG_FUNCTION.
	* final.c (compute_alignments): Call dump_reg_info before
	dump_flow_info.
	* function.c (function_name): New function.
	(current_function_name): Use it.
	* ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
	dump_flow_info.
	* ira-conflicts.c: Include tree.h with a note.
	* regstat.c (dump_reg_info): Moved here from cfg.c.
	* loop-init.c: Include regs.h instead of hard-reg-set.h.
	(rtl_loop_init): Call dump_reg_info before dump_flow_info.
	(rtl_loop_done): Likewise.
	* mcf.c: Include tree.h before langhooks.h.
	* predict.c (maybe_hot_count_p): Assert we have cfun.
	(probably_never_executed_bb_p): Likewise.
	* profile.c (compute_branch_probabilities): Use gimple_dump_cfg
	instead of dump_flow_info.
	* sched-deps.c: Include tree.h with a FIXME.
	(call_may_noreturn_p): Add FIXME note why this function has to
	look at function decls instead of function decl flags.
	* sched-vis.c: Include tree.h with a FIXME.
	(print_rtl_slim): Adjust dump_bb_info uses.
	* statistics.c (statistics_fini_pass_2): Use current_function_name
	to avoid including tree.h.
	(statistics_counter_event): Use function_name for the same reason.
	(statistics_histogram_event): Likewise.
	* tracer.c (tracer): Remove bogus gcc_assert.  Use brief_dump_cfg
	instead of dump_flow_info.
	* var-tracking.c (variable_tracking_main_1): Call dump_reg_info
	before dump_flow_info.
	* doc/cfg.texi: Update CFG documentation.
	* Makefile.in (RTL_H): Depend on FLAGS_H.
	(GIMPLE_H): Depend on TREE_H.
	(FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
	but no longer on TREE_H.
	(C_COMMON_H): Depend on TREE_H.
	(cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
	sched-deps.o, sched-vis.o): Fixup dependencies.

2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>

	* alias.h: Do not include coretypes.h in header files.
	* cppbuiltin.h: Likewise.
	* double-int.h: Likewise.
	* gimple-fold.h: Likewise.
	* flags.h: Likewise.
	* tree-ssa-alias.h: Likewise.
	* gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
	OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
	* Makefile.in (RTL_BASE_H): Depend on coretypes.h.
	(TREE_H): Likewise.
	(ALIAS_H): Do not depend on coretypes.h.
	(FLAGS_H): Likewise.
	(realmpfr.o): Depend on coretypes.h.

2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>

	* Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
	gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.

2012-07-07  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support.
	(TARGET_FPA): Delete definition.
	(TARGET_MAVERICK): Likewise.
	(TARGET_FPA_EMU2): Likewise.
	(arm_fp_model): Remove FPA and Maverick models.
	(arm_arch_cirrus): Delete declaration.
	(FLOAT_WORDS_BIG_ENDIAN): Delete definition.
	(FIXED_REGISTERS): Remove FPA and Maverick support.  Reorganize.
	(CALL_USED_REGISTERS): Likewise.
	(FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition.
	(FIRST_VFP_REGNUM): Renumbered.
	(D7_VFP_REGNUM): Chain definition.
	(LAST_LO_VFP_REGNUM): Likewise.
	(FIRST_HI_VFP_REGNUM): Likewise.
	(LAST_HI_VFP_REGNUM): Likewise.
	(FIRST_IWMMXT_GR_REGNUM): Likewise.
	(LAST_IWMMXT_GR_REGNUM): Likewise.
	(FIRST_IWMMXT_REGNUM): Likewise.
	(LAST_IWMMXT_REGNUM): Likewise.
	(FRAME_POINTER_REGNUM): Renumbered.
	(ARG_POINTER_REGNUM): Renumbered.
	(FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers.
	(FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions.
	(HARD_REGNO_REGNUM): Remove FPA support.
	(REG_ALLOC_ORDER): Remove FPA and Maverick registers.  Reorganize.
	(reg_class): Likewise.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(CANNOT_CHANGE_MODE_CLASS): Never true.  Update comment.
	(SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support.
	(CLASS_MAX_NREGS): Remove FPA and Maverick support.
	* aout.h (REGISTER_NAMES): Remove FPA and Maverick registers.
	Reorganize.  Use AAPCS preferred names.
	(ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick.  Update
	comments.
	(OVERLAPPING_REGISTER_NAMES): Update register numbering.
	* arm.c (FL_CIRRUS): Delete definition.
	(arm_arch_cirrus): Delete variable.
	(arm_float_words_big_endian): Delete function.
	(cirrus_memory_offset): Delete function.
	(output_mov_long_double_fpa_from_arm): Delete function.
	(output_mov_long_double_arm_from_fpa): Delete function.
	(output_mov_double_fpa_from_arm): Delete function.
	(output_mov_double_arm_from_fpa): Delete function.
	(emit_sfm): Delete function.
	(maybe_get_arm_condition_code): Update comment.
	(arm_file_start): Always use softvfp for softfloat systems.
	(thumb_core_reg_alloc_order): Adjust for updated register allocation.
	(arm_option_override): Remove FPA and Maverick support.  Always
	default to vfp as the fallback FPU format.
	(use_return_insn): Remove FPA support.
	(arm_get_frame_offsets): Likewise.
	(arm_save_coproc_regs): Likewise.
	(arm_canonicalize_comparison): Remove Maverick support.
	(arm_select_cc_mode): Likewise.
	(arm_gen_compare_reg): Likewise.
	(arm_print_operand): Likewise.
	(arm_libcall_value_1): Remove FPA and Maverick support.
	(arm_function_value_regno_p): Likewise.
	(arm_apply_result_size): Likewise.
	(arm_legitimate_index_p): Likewise.
	(thumb2_legitimate_index_p): Likewise.
	(legitimize_reload_address): Likewise.
	(arm_register_move_cost): Likewise.
	(arm_hard_regno_mode_ok): Likewise.
	(arm_regno_class): Likewise.
	(arm_dbx_register_number): Likewise.
	(arm_emit_unwind_sequence): Likewise.
	(arm_conditional_register_usage): Likewise.
	* arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration.
	(cirrus_memory_offset): Likewise.
	(output_move_long_double_fpa_from_arm): Likewise.
	(output_move_long_double_arm_from_fpa): Likewise.
	(output_move_double_fpa_from_arm): Likewise.
	(output_move_double_arm_from_fpa): Likewise.
	(arm_float_words_big_endian): Likewise.
	* arm.md (CC_REGNUM): Renumbered.
	(VFPCC_REGNUM): Moved here.  Renumbered.
	(FPA_F0_REGNUM, FPA_F7_REGNUM): Delete.
	(attr fpu): Remove FPA and Maverick support.
	* vfp.md (VFPCC_REGNUM): Delete.  Moved to arm.md.
	* arm-cores.def (ep9312): Remove Maverick support.
	* arm-arches.def (ep9312): Delete architecture.
	* arm-tables.opt: Regenerated.

	* arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp.

2012-07-07  Steven Bosscher  <steven@gcc.gnu.org>

	PR tree-optimization/53881
	* tree-switch-conversion.c (emit_case_bit_tests): Do not rely on
	comparing labels to establish uniqueness of a switch case target,
	use the CFG instead.

2012-07-07  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
	due to negative shift amount.

2012-07-07  Hans-Peter Nilsson  <hp@axis.com>

	Fix configure test for "stack protector support in target C library".
	* configure.ac (test_prefix, test_exec_prefix): Move setting from
	inside sysroot handling to before and outside it.
	* configure: Regenerate.

2012-07-06  Kai Tietz  <ktietz@redhat.com>

	PR bootstrap/52947
	* config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
	as "/mingw/include".

2012-07-06  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/53820
	* var-tracking.c (vt_add_function_parameter): Convert
	internal_arg_pointer into arg_pointer-based address even
	without DRAP.

2012-07-06  Alexandre Oilva  <aoliva@redhat.com>

	PR rtl-optimization/53827
	PR debug/53671
	PR debug/49888
	* alias.c (memrefs_conflict_p): Adjust offset and size by the
	same amount for alignment ANDs.

2012-07-06  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/51879
	* tree-ssa-sccvn.c (copy_reference_ops_from_call)
	(visit_reference_op_call): Handle case that lhs is not an SSA_NAME.
	(visit_use): Also call visit_reference_op_call for calls with a vdef.

2012-07-06  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/52009
	* tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
	value numbers of gimple_vdef.
	* tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
	prototype.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
	(vn_reference_insert): Add and handle vdef parameter.
	(visit_reference_op_load): Add argument to vn_reference_insert call.
	(visit_reference_op_store): Find value number of vdef of store.  Insert
	value number of vdef of store.

2012-07-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (simple lea to add peephole): Also transform
	RTXes where second PLUS operand matches output.

2012-07-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (construct_plt_address): Make static.
	* config/i386/i386-protos.h (construct_plt_address): Remove.

2012-07-06  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c (mn10300_encode_section_info): Call
	default_encode_section_info.

2012-07-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53853
	* config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
	emit PIC sequence for fnaddr symbol reference in advance.

2012-07-06  Eric Botcazou  <ebotcazou@adacore.com>

	Revert
	2012-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (function_possibly_abstracted_p): New static function.
	(gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
	cgraph_function_possibly_inlined_p.
	(gen_inlined_subroutine_die): Return if the origin is to be ignored.
	(process_scope_var): Do not emit concrete instances of abstracted
	nested functions from here.
	(gen_decl_die): Emit the abstract instance if the function is possibly
	abstracted and not only possibly inlined.
	(dwarf2out_finish): Find the first non-abstract parent instance and
	attach concrete instances on the limbo list to it.

2012-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
	    Julian Brown  <julian@codesourcery.com>

	PR target/48941
	PR target/51980
	* config/arm/neon-gen.ml (return_by_ptr): Delete.
	(print_function): Handle empty strings.
	(return): Delete use of return_by_ptr.
	(mask_shape_for_shuffle): New function.
	(mask_elems): Likewise.
	(shuffle_fn): Likewise.
	(params): Simplify and remove use of return_by_ptr.
	(get_shuffle): New function.
	(print_variant): Update.
	* config/arm/neon.ml (rev_elems): New function.
	(permute_range): Likewise.
	(zip_range): Likewise.
	(uzip_range): Likewise.
	(trn_range): Likewise.
	(zip_elems): Likewise.
	(uzip_elems): Likewise.
	(trn_elems): Likewise.
	(features): New enumeration Use_shuffle. Delete ReturnPtr.
	(pf_su_8_16): New.
	(suf_32): New.
	(ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp.
	* config/arm/arm_neon.h: Regenerate.

2012-07-05  Richard Guenther  <rguenther@suse.de>

	* tree-pretty-print.c (dump_generic_node): Properly test
	the result of exact_log2.

2012-07-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390-protos.h (s390_expand_movmem)
	(s390_expand_cmpmem): Add return value.
	* config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem):
	Return FALSE to use the library function in some cases.
	* config/s390/s390.md (movmem, cmpmem): Evaluate return value of C
	helper functions.

2012-07-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config.gcc: Enable ifunc attribute by default on s390 and s390x.

2012-07-05  Steven Bosscher  <steven@gcc.gnu.org>

	* expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers.
	* stmt.c (dump_case_nodes): New.
	(expand_case): Split out code generation parts into new functions.
	(expand_switch_as_decision_tree_p): Split out from expand_case.
	(emit_case_decision_tree): Likewise.
	(emit_case_dispatch_table): Likewise.

2012-07-05  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* config/arm/iterators.md (SDF): New mode iterator.
	(V_if_elem): Add support for SF and DF modes.
	(V_reg): Likewise.
	(F_constraint): New mode iterator attribute.
	(F_fma_type): Likewise.
	config/arm/vfp.md (fma<SDF:mode>4): New pattern.
	(*fmsub<SDF:mode>4): Likewise.
	(*fmnsub<SDF:mode>4): Likewise.
	(*fmnadd<SDF:mode>4): Likewise.

2012-07-04  Uros Bizjak  <ubizjak@gmail.com>

	* expmed.c (expand_mult): Initialize coeff and is_neg.

2012-07-04  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/predicates.md (zero_extend_operand): New predicate.
	* config/sh/sh.md (zero_extendhisi2): Simplify by using new
	zero_extend_operand predicate.
	(zero_extendqisi2): Likewise.

2012-07-04  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/53321
	* ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375
	to not call cgraph_propagate_frequency if something was changed.

2012-07-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53433
	* gimple-fold.c (get_base_constructor): Do not return an
	error_mark_node DECL_INITIAL.

2012-07-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53844
	* tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
	the loop virtual PHI.

2012-07-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53849
	* tree-cfg.c (move_stmt_op): Only call add_referenced_var
	for duplicated locals.  Use add_referenced_var_1 to avoid
	pushing/popping cfun.

2012-07-04  Kai Tietz  <ktietz@redhat.com>

	* config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
	* config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
	prototype.
	* config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
	as i386_pe_reloc_rw_mask.

2012-07-04  Richard Guenther  <rguenther@suse.de>

	* tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
	as in free_lang_data_in_type.

2012-07-04  Tobias Grosser <tobias@grosser.es>
	    Michael Matz  <matz@suse.de>

	* Makefile.in (OBJS): Add graphite-optimize-isl.o.
	(graphite-optimize-isl.o): Add dependencies.
	* common.opt (floop-nest-optimize): New flag.
	* doc/invoke.texi (floop-nest-optimize): Document.
	* graphite-dependences.c (compute_deps): Export.
	* graphite-poly.h (compute_deps): Declare.
	* graphite-optimize-isl.c: New file.
	* graphite-poly.c (apply_poly_transforms): Run the loop
	nest optimizer.
	* tree-ssa-loop.c (gate_graphite_transforms): Enable graphite
	if -floop-nest-optimize is enabled.

2012-07-03  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/predicates.md (logical_and_operand): New predicate.
	* config/sh/constraints.md (Jmb, Jmw): New constraints.
	* config/sh/sh.md (andsi3): Move expander above insns.  Add handling
	of 0xFFFF constant.  Use logical_and_operand predicate and
	satisfies_constraint_Jmb, satisfies_constraint_Jmw.
	(*andsi3_compact): Make it an insn_and_split.  Use
	logical_and_operand predicate.  Add Jmb,Jmw alternatives.

2012-07-03  Jason Merrill  <jason@redhat.com>

	PR c++/53826
	* tree.c (build_zero_cst): Handle NULLPTR_TYPE.

2012-07-03  Nick Clifton  <nickc@redhat.com>

	* config/mep/mep.c (mep_reorg_regmove): Use
	next_nonnote_non_debug_insn to advance to the next insn.  Do not
	expect delete_insn to return an rtx.

2012-07-03  Richard Guenther  <rguenther@suse.de>

	* doc/install.texi (CLooG): Clarify how CLooG needs to be
	configured and that it needs to be built against ISL 0.10.

2012-07-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_option_override_internal): Fix wrong
	code model string in the error message.

2012-07-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53811
	* config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
	sibcall_insn_operand.  Move it to a temporary register if not.

2012-07-03  Andreas Schwab  <schwab@linux-m68k.org>

	PR target/28896
	* config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
	if !TARGET_68020.

2012-07-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.

2012-07-03  Roland McGrath  <mcgrathr@google.com>

	* configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
	assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
	* configure: Regenerated.
	* config/i386/i386.md (simple_return_internal_long): Use %;
	(ctz<mode>2): Likewise.
	(*pause): Likewise.

2012-07-02  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
	predicates.
	* config/sh/sh-protos.h (get_t_reg_rtx): New prototype.
	* config/sh/sh.c (get_t_reg_rtx): New function.  Use it when invoking
	gen_branch_true and gen_branch_false.
	* config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and
	gen_branch_false.
	(branch_true, branch_false): Use t_reg_operand predicate.
	(*branch_true, *branch_false): Delete.
	(movt): Use t_reg_operand predicate.
	(*negnegt): Use negt_reg_operand predicate and fold little and big
	endian variants.
	(*movtt): Use t_reg_operand and fold little and big endian variants.
	(*movt_qi): Delete.

2012-07-02  Steven Bosscher  <steven@gcc.gnu.org>

	* stmt.c (emit_case_bit_tests): Remove.
	(expand_case): Remove expand_switch_using_bit_tests_p code.
	* tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
	(MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
	(lshift_cheap_p): Likewise.
	(expand_switch_using_bit_tests_p): Likewise.
	(struct case_bit_test): Likewise.
	(case_bit_test_cmp): Likewise.
	(emit_case_bit_tests): New implementation for GIMPLE.
	(gen_inbound_check): Do not release post-dominator info here.
	(process_switch): Reorder code.  Expand as bit tests if it
	looks like a win.
	(do_switchconv): Release post-dominator info here if something changed.
	(struct gimple_opt_pass): Verify more.
	* tree.h (expand_switch_using_bit_tests_p): Remove prototype.

2012-07-02  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/38474
	* ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
	dynamic type change check.

2012-07-02  Richard Guenther  <rguenther@suse.de>
	    Michael Matz  <matz@suse.de>
	    Tobias Grosser <tobias@grosser.es>
	    Sebastian Pop <sebpop@gmail.com>

	* Makefile.in: Remove PPL flags in favor of ISL ones.
	(BACKENDLIBS): Remove PPL libs.
	(INCLUDES): Remove PPL includes in favor of ISL ones.
	(graphite-clast-to-gimple.o): Remove graphite-dependences.h and
	graphite-cloog-compat.h dependencies.
	(graphite-dependences.o): Likewise.
	(graphite-poly.o): Likewise.
	* configure.ac: Declare ISL vars instead of PPL ones.
	* configure: Regenerated.
	* doc/install.texi: Replace PPL requirement documentation with ISL one.
	* graphite-blocking.c: Remove PPL code, add ISL equivalent.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-poly.h: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* graphite-scop-detection.c: Re-arrange includes.
	* graphite-cloog-util.c: Remove.
	* graphite-cloog-util.h: Likewise.
	* graphite-ppl.h: Likewise.
	* graphite-ppl.c: Likewise.
	* graphite-dependences.h: Likewise.

2012-07-02  Richard Guenther  <rguenther@suse.de>

	Merge from graphite branch
	2011-07-21  Tobias Grosser  <tobias@grosser.es>

	* Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
	Remove graphite-cloog-util.h.
	* graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
	build_iv_mapping, translate_clast_user, translate_clast,
	free_scattering, initialize_cloog_names, build_cloog_prog,
	create_params_index): Do not use old compatibility functions.
	(clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
	* graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
	compatibility functions.
	(new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
	cloog.
	* graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
	* graphite.c (graphite.c): Do not call outdated cloog_initialize() and
	cloog_finalize().
	* graphite-cloog-compat.h: Remove.

	2011-08-09  Tobias Grosser <tobias@grosser.es>

	* graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
	of the string, no just a reference.
	(clast_name_index): Add a new field, that specifies if we need to free
	the name.
	(free_clast_name_index): If necessary, free the name string.
	(clast_name_index_elt_info): Calculate the hash based on the string
	content, not the memory location it is stored in.
	(clast_name_to_level): Specify that we do not need to free the name.
	(clast_name_to_index): Dito.
	(clast_name_to_lb_ub): Dito.
	(eq_clast_name_indexes): Compare the strings, not their base pointers.
	(free_scattering): Removed.
	(initialize_cloog_names): Renamed to add_names_to_union_domain().
	(add_names_to_union_domain): Changed to work on a union_domain,
	instead of a CloogNames structure.
	(build_cloog_prog): Removed.
	(build_cloog_union_domain): New.
	(generate_cloog_input): New.
	(scop_to_clast): Use CloogInput instead of CloogProgram.
	(print_generated_program): Adapt to new scop_to_clast() and do not
	print the CloogProgram any more.
	(create_params_index): Removed, functionality integrated in
	add_names_to_union_domain().
	(gloog): Adapt to new scop_to_clast().
	* graphite-clast-to-gimple.h (scop_to_clast): Remove.

	2012-01-11  Tobias Grosser <tobias@grosser.es>

	* graphite-clast-to-gimple.c (clast_name_to_index,
	clast_name_to_lb_ub, clast_name_to_gcc): Change types.
	(clast_to_gcc_expression): Add clast_expr_name as a new
	case. Do not assume a clast_expr_term points always to a
	clast_expr_name.
	(type_for_clast_term): Do not assume a clast_expr_term points always to
	a clast_expr_name.
	(type_for_clast_name): New.
	(type_for_clast_expr): Add clast_expr_name as a new case.

	2011-08-03  Sebastian Pop <sebpop@gmail.com>

	* graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
	new_Cloog_Scattering_from_ppl_Polyhedron,
	new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.

2012-07-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53645
	* tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type)
	instead of TYPE_MODE (wider_type) as can_vec_perm_p argument.

2012-07-01  Wei Guozhi  <carrot@google.com>

	PR target/53447
	* config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
	* config/arm/arm.c (const_ok_for_dimode_op): New function.
	* config/arm/constraints.md (Dd): New constraint.
	* config/arm/predicates.md (arm_adddi_operand): New predicate.
	* config/arm/arm.md (adddi3): Extend it to handle constants.
	(arm_adddi3): Likewise.
	(addsi3_carryin_<optab>): Extend it to handle sbc case.
	(addsi3_carryin_alt2_<optab>): Likewise.
	* config/arm/neon.md (adddi3_neon): Extend it to handle constants.

2012-06-30  Nathan Sidwell  <nathan@acm.org>

	* coverage.c (bbg_file_stamp): New.
	(read_counts_file): Merge incoming stamp with bbg_file_stamp.
	(build_info): Write bbg_file_stamp.
	(coverage_init): Initialize bbg_file_stamp.  Read counts file
	before writing graph header.
	(coverage_finish): Don't unlink the data file if we can generate a
	unique file stamp.
	* tree.h (crc32_unsigned): Declare.
	* tree.c (crc32_unsigned_bits): New, broken out of ...
	(crc32_byte): ... here.  Use it.
	(crc32_unsigned): New.

2012-06-29  Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
	(gen_subprogram_die): Don't add pubname if want_pubnames is false.
	(gen_variable_die): Likewise.
	(gen_namespace_die): Likewise.

2012-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-eh.c (lower_try_finally_switch): Really put the location of the
	last statement of the finally block onto the switch.

2012-06-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/53539
	* config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
	TARGET_LP64.

2012-06-29  Sterling Augustine  <saugustine@google.com>

	* dwarf2out.c (add_pubname): Add comment.
	(add_pubtype): Fix indentation.
	(gen_enumeration_type_die): Likewise.

2012-06-29  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-generic.c (expand_vector_divmod): For even/odd
	widening multiply, put even always as first argument to VEC_PERM_EXPR.

2012-06-29  Richard Henderson  <rth@redhat.com>

	* tree-vect-generic.c: Include target.h.
	(expand_vector_divmod): Use builtin_mul_widen_even/odd if supported.
	* Makefile.in (tree-vect-generic.o): Update.

2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>

	* configure.ac: Remove special gtfiles case for C.
	* configure: Regenerate.
	* Makefile.in: Remove C front-end hooks and build hooks that
	will be picked up from c/Make-lang.in now.
	Add tree-mudflap to C_COMMON_OBJS.
	* gengtype.c (files_rules): Adjust gt-files for c/c-decl.c.
	* config/vms/vms.c: Look for c-tree.h in c/.
	* doc/gty.texi: Remove reference to c-config-lang.in.
	* doc/sourcebuild.texi: Document the c/ subdirectory.

2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>

	* system.h (CASE_USE_BIT_TESTS): Poison.
	* stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ...
	(expand_switch_using_bit_tests_p): ...here.
	* doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation.
	* doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate.

2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>

	* system.h (IFCVT_EXTRA_FIELDS): Poison.
	(IFCVT_INIT_EXTRA_FIELDS): Poison.
	* basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS.
	* ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of
	IFCVT_INIT_EXTRA_FIELDS.
	* gengtype-parse.c (struct_field_seq): Remove obsolete comment.
	* config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to
	IFCVT_MACHDEP_INIT.
	* config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to
	frv_ifcvt_machdep_init.
	* doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS):
	Remove documentation.
	(IFCVT_MACHDEP_INIT): Document.
	* doc/tm.texi: Regenerate.

2012-06-29  Nick Clifton  <nickc@redhat.com>

	* config/lm32/lm32.c (lm32_compute_frame_size): Fix typo.

2012-06-29  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-stmts.c (vectorizable_operation): Check both
	VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs.
	Verify that operand[0]'s mode is TYPE_MODE (wide_vectype).

2012-06-28  Richard Henderson  <rth@redhat.com>

	* doc/generic.texi (MULT_HIGHPART_EXPR): Document it.

2012-06-28  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/51581
	* tree-vect-stmts.c (permute_vec_elements): Add forward decl.
	(vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR
	also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus
	VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported.
	* tree-vect-patterns.c (vect_recog_divmod_pattern): Use
	MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts.

	PR tree-optimization/53645
	* tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR
	instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR
	if possible.

2012-06-28  Georg-Johann Lay  <avr@gjlay.de>

	PR 53595
	* config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
	* config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
	* config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
	avr_hard_regno_call_part_clobbered.

2012-06-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53790
	* expr.c (expand_expr_real_1): Verify if the type is complete
	before inspecting its size.

2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>

	* doc/include/gpl.texi: Remove.
	* doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi.

2012-06-28  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53645
	* tree-vect-generic.c (add_rshift): New function.
	(expand_vector_divmod): New function.
	(expand_vector_operation): Use it for vector integer
	TRUNC_{DIV,MOD}_EXPR by VECTOR_CST.
	* tree-vect-patterns.c (vect_recog_divmod_pattern): Replace
	unused lguup variable with dummy_int.

2012-06-28  OLivier Hainque  <hainque@adacore.com>

	* expr.c (convert_move): Latch mem integer inputs into a
	register before expanding a multi-instructions sequence.

2012-06-28  Alexandre Oliva  <aoliva@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR debug/53706
	PR debug/47624
	* var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool...
	(vt_finalize): ... here instead, if needed.

2012-06-28  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/53740
	PR debug/52983
	PR debug/48866
	* dce.c (word_dce_process_block): Check whether inserting debug
	temps are needed even for needed insns.
	(dce_process_block): Likewise.
	* df-problems.c (dead_debug_add): Add comment about multi-regs.
	(dead_debug_insert_temp): Likewise.  Don't subreg when we're
	setting fewer regs than a multi-reg requires.

2012-06-27  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_dimode_u): New.
	(alpha_init_builtins): Initialize it, and use it.
	(alpha_fold_builtin_cmpbge): Use alpha_dimode_u.
	(alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise.
	(alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise.
	(alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise.
	(alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise.
	(alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise.
	(alpha_fold_builtin_ctpop): Likewise.
	(alpha_fold_builtin_umulh): Remove.
	(alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix
	typo in MAX_ARGS check.

2012-06-27  Richard Henderson  <rth@redhat.com>

	* tree.def (MULT_HIGHPART_EXPR): New.
	* cfgexpand.c (expand_debug_expr): Ignore it.
	* expr.c (expand_expr_real_2): Handle it.
	* fold-const.c (int_const_binop_1): Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
	* tree-inline.c (estimate_operator_cost): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	(op_code_prio, op_symbol_code): Likewise.
	* tree.c (commutative_tree_code): Likewise.  Also handle
	WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.

2012-06-27  Richard Henderson  <rth@redhat.com>

	PR target/53749
	* config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD
	in 2012-06-23 change.  Adjust two other DImode tests as well.

2012-06-27  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (comparesi3_extend): Remove = modifier from
	input operand.

2012-06-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53676
	* tree-chrec.c (chrec_convert_1): Represent truncation to
	a type with undefined overflow as truncation to an unsigned
	type converted to the type with undefined overflow.
	* tree-scalar-evolution.c (interpret_rhs_expr): For computing
	the scalar evolution of a truncated widened operation avoid
	looking at the non-existing evolution of the widened operation
	result.

2012-06-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53774
	* tree-ssa-reassoc.c (get_rank): All default defs have
	precomputed rank.
	(init_reassoc): Precompute rank for all SSA default defs.

2012-06-27  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (simple_return): Use the simple_return rtx.

2012-06-26  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
	and don't fall thru from standard_80387_constant_p to the memory
	fallback.

2012-06-26  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (bdesc_args): Update.  Change
	IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
	(IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
	(ix86_builtin_mul_widen_even): Use it.
	(ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
	(ix86_expand_mul_widen_evenodd): Handle signed for sse2.
	* config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
	for all SSE2.
	(vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
	(vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise.  Relax from V124_AVX2.
	(vec_widen_smult_even_v4si): New.

2012-06-26  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
	to expander; move guts to ...
	* config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here.  Add
	highparts before shifting up.
	* config/i386/i386-protos.h: Update.

2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>

	* system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
	* defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
	* config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.

2012-06-26  Alexandre Oliva  <aoliva@redhat.com>

	* var-tracking.c (vt_add_function_parameter): Use a preserved
	VALUE for the MEM address of an incoming parameter.

2012-06-26  Sterling Augustine  <saugustine@google.com>

	* dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
	(prune_unused_types): Likewise.

2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>

	* system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
	UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
	* vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
	UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
	VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
	VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
	* config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
	UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
	* doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
	documentation.
	* doc/tm.texi: Regenerate.
	* doc/cpp.texi: Make example for #error generic.
	* config/frv/frv.h: Fix example text to match tm.texi.

2012-06-26  Bill Schmidt  <wschmidt@linux.ibm.com>

	* tree-pass.h (pass_strength_reduction): New decl.
	* tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
	(finalize_costs): Likewise.
	* timevar.def (TV_TREE_SLSR): New timevar.
	* gimple-ssa-strength-reduction.c: New.
	* tree-flow.h (initialize_costs): New decl.
	(finalize_costs): Likewise.
	* Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
	* passes.c (init_optimization_passes): Add pass_strength_reduction.

2012-06-26  Matt Turner  <mattst88@gmail.com>

	* doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter.
	(__builtin_arm_tinsrh): Likewise.
	(__builtin_arm_tinsrw): Likewise.
	(__builtin_arm_wsadb): Add missing v2si parameter.
	(__builtin_arm_wsadh): Likewise.
	(__builtin_arm_getwcx): Delete.
	(__builtin_arm_setwcx): Delete.
	(__builtin_arm_getwcgr0): Add.
	(__builtin_arm_getwcgr1): Add.
	(__builtin_arm_getwcgr2): Add.
	(__builtin_arm_getwcgr3): Add.
	(__builtin_arm_setwcgr0): Add.
	(__builtin_arm_setwcgr1): Add.
	(__builtin_arm_setwcgr2): Add.
	(__builtin_arm_setwcgr3): Add.

2012-06-26  Richard Guenther  <rguenther@suse.de>

	Revert
	2012-06-21  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (estimate_num_insns): Estimate call cost for
	tailcalls properly.

2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>

	PR other/33190
	* doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
	* doc/tm.texi: Regenerate.

2012-06-26  Steven Bosscher  <steven@gcc.gnu.org>

	PR other/33190
	* config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
	* config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
	* doc/tm.texi.in: Remove documentation for unused target macros
	ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
	DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
	REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
	TARGET_NARROW_VOLATILE_BITFIELDS.
	Document that MD_HANDLE_UNWABI is a macro in libgcc.
	* doc/tm.texi: Regenerate.
	* system.h: Poison target macros
	ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
	DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
	REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
	TARGET_NARROW_VOLATILE_BITFIELDS

2012-06-26  Jan Hubicka  <jh@suse.cz>

	PR lto/53572
	* cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
	used symbols.

2012-06-26  Dehao Chen  <dehao@google.com>

	* tree-inline.c: (expand_call_inline): Ensure that lexical block's
	source location is consistant with the call stmt.

2012-06-26  Ulrich Weigand  <ulrich.weigand@linaro.org>

	PR tree-optimization/53729
	PR tree-optimization/53636
	* tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
	vect_verify_datarefs_alignment until after statements have
	been marked as relevant/irrelevant.
	* tree-vect-data-refs.c (vect_verify_datarefs_alignment):
	Skip irrelevant statements.
	(vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
	instead of STMT_VINFO_RELEVANT.
	(vect_get_data_access_cost): Do not check for supportable
	alignment before calling vect_get_load_cost/vect_get_store_cost.
	* tree-vect-stmts.c (vect_get_store_cost): Do not abort when
	handling unsupported alignment.
	(vect_get_load_cost): Likewise.

2012-06-25  Steven Bosscher  <steven@gcc.gnu.org>

	* config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
	Do not define JMP_BUF_SIZE.

2012-06-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53748
	* tree-ssa-phiopt.c (conditional_replacement): Only optimize
	if arg0/arg1 have integral or pointer types.

2012-06-25  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (sse2_sse4_1): Remove code attr.
	(<s>dot_prodv4si, <s>dot_prodv8si): Remove
	(sdot_prodv4si): New; handle only XOP.

2012-06-25  Richard Henderson  <rth@redhat.com>

	* config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
	(V2UDI_FUNC_V4USI_V4USI): New.
	(V4UDI_FUNC_V8USI_V8USI): New.
	* config/i386/i386.c (ix86_expand_args_builtin): Handle them.
	(IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
	(IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
	(IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
	(IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
	(IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
	(IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
	(bdesc_args): Add them.
	(ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
	(TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
	(ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
	* config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.

2012-06-25  Richard Henderson  <rth@redhat.com>

	* config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.

2012-06-25  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost
	to V16QImode.
	(ix86_expand_vec_interleave): New.
	(ix86_expand_mul_widen_evenodd): New.
	(ix86_expand_mul_widen_hilo): New.
	(ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd.
	* config/i386/i386.md (u_bool) New code attr.
	* config/i386/predicates.md
	(nonimmediate_or_const_vector_operand): Remove.
	* config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test
	both AVX and SSE4_1.
	(vec_widen<s>mult_hi_<VI2_AVX2>): Remove.
	(vec_widen<s>mult_lo_<VI2_AVX2>): Remove.
	(vec_widen<s>mult_hi_v8si): Remove.
	(vec_widen<s>mult_lo_v8si): Remove.
	(vec_widen_smult_hi_v4si): Remove.
	(vec_widen_smult_lo_v4si): Remove.
	(vec_widen_umult_hi_v4si): Remove.
	(vec_widen_umult_lo_v4si): Remove.
	(vec_widen_<s>mult_hi_<VI124_AVX2>): New.
	(vec_widen_<s>mult_lo_<VI124_AVX2>): New.
	* config/i386/i386-protos.h: Update.

2012-06-25  Christophe Lyon  <christophe.lyon@st.com>

	* config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
	(neon_vld1_dup): Restrict to VQ operands.
	(neon_vld1_dupv2di): New, fixes vld1q_dup_s64.

2012-06-25  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
	    James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
	(TARGET_FMA): New macro.
	(TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
	(TARGET_ARM_ARCH): Likewise.
	(TARGET_ARM_ARCH_ISA_THUMB): Likewise.
	(TARGET_V6M, TARGET_V7M): Likewise.
	(TARGET_ARM_ARCH_PROFILE): Likewise.
	(TARGET_ARM_FEATURE_LDREX): Likewise.
	(TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
	(ARM_MIN_ENUM_SIZE): Likewise.
	* config/arm/arm.c (arm_file_start): Refactor appropriately.
	(base_architecture): New enumeration.
	(arm_base_arch): New global variable.
	(processors): Add field base_arch.
	(ARM_ARCH, ARM_CORE): Adjust accordingly.
	(arm_option_override): Add initialization of arm_base_arch.
	* doc/cpp.texi (system-specific predefined macros.): Change.

2012-06-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/53759
	* config/i386/sse.md (sse_loadlps): Use x m x constraints instead
	of x x x in the vmovlps load alternative.

2012-06-25  Richard Sandiford  <rdsandiford@googlemail.com>

	PR debug/53740
	* df.h (dead_debug_add): Remove third argument.
	* df-problems.c (dead_debug_add): Likewise.  Use the REGNO of the
	REG that we want to replace instead.
	(dead_debug_insert_temp): Use the REGNO of the reg that we want
	to replace instead of DF_REF_REGNO.  Require there to always be
	at least one such use.  Check for cases where the same location
	has more than df_ref associated with it.
	(df_note_bb_compute): Remove third dead_debug_add argument.
	* dce.c (word_dce_process_block): Likewise.

2012-06-25  Steven Bosscher  <steven@gcc.gnu.org>

	* config/v850/v850.c: Remove redundant extern declarations for
	last_assemble_variable_decl and size_directive_output.

	* doc/tm.texi.in: Document JMP_BUF_SIZE.
	* doc/tm.texi: Regenerate.
	* config/sparc/sparc.h (JMP_BUF_SIZE): Do not define.
	* config/pa/pa.h (JMP_BUF_SIZE): Likewise.
	* config/stormy16/stormy16.h: Likewise.

	* config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP.

	* doc/sourcebuild.texi: Add missing subdirectories.

2012-06-25  Tristan Gingold  <gingold@adacore.com>

	* config/i386/i386.h: Fix typo.

2012-06-25  Tristan Gingold  <gingold@adacore.com>

	* config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
	(seh_cfa_adjust_cfa): ... that function.
	(seh_emit_stackalloc): Do not emit out of range values.
	* config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
	UNSPEC_DEF_CFA constants.
	* config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
	* config/i386/i386.c (ix86_frame_pointer_required): Required
	for very large frames on SEH target.
	(ix86_compute_frame_layout): Save area is before frame pointer
	on SEH target.  Handle very large frames.
	(ix86_expand_prologue): Likewise.

2012-06-24  Steven Bosscher  <steven@gcc.gnu.org>

	* output.h: (current_function_is_leaf,
	current_function_sp_is_unchanging,
	current_function_uses_only_leaf_regs): Remove.
	* function.c (current_function_is_leaf,
	current_function_sp_is_unchanging,
	current_function_uses_only_leaf_regs): Remove.
	(rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs
	instead of current_function_uses_only_leaf_regs.
	* function.h (struct rtl_data): New fields sp_is_unchanging,
	is_leaf, uses_only_leaf_regs.
	* resource.c (init_resource_info): Replace current_function_is_leaf,
	current_function_sp_is_unchanging, and
	current_function_uses_only_leaf_regs with new crtl fields.
	* sdbout.c (sdbout_symbol): Likewise.
	* df-core.c (rest_of_handle_df_initialize): Likewise.
	* ira.c (ira): Likewise.
	* final.c (final_start_function): Likewise.
	* reorg.c (fill_simple_delay_slots): Likewise.
	* regrename.c (check_new_reg_p): Likewise.
	* stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise.
	(notice_stack_pointer_modification): Likewise.
	* dbxout.c (dbxout_symbol): Likewise.
	(dbxout_parms): Likewise.
	* sel-sched.c (init_regs_for_mode): Likewise.
	* dwarf2out.c (dbx_reg_number): Likewise.
	(multiple_reg_loc_descriptor): Likewise.
	* config/i386/i386.c (ix86_frame_pointer_required): Likewise.
	(gen_pop): Likewise.
	(ix86_select_alt_pic_regnum): Likewise.
	(ix86_compute_frame_layout): Likewise.
	(ix86_finalize_stack_realign_flags): Likewise.
	(ix86_expand_epilogue): Likewise.
	* config/rs6000/rs6000.c (rs6000_stack_info): Likewise.
	* config/h8300/h8300.c (byte_reg): Likewise.
	* config/c6x/c6x.c (must_reload_pic_reg_p): Likewise.
	(c6x_save_reg): Likewise.
	(c6x_compute_frame_layout): Likewise.
	* config/pa/pa.c (pa_compute_frame_size): Likewise.
	(pa_output_function_prologue): Likewise.
	* config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise.
	* config/sparc/sparc.md (attr "leaf_function"): Likewise.
	* config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise.
	(sparc_expand_prologue): Likewise.
	(sparc_flat_expand_prologue): Likewise.
	(sparc_asm_function_prologue): Likewise.
	(sparc_output_mi_thunk): Likewise.
	(sparc_frame_pointer_required): Likewise.
	* config/epiphany/epiphany.c (epiphany_compute_function_type):
	Likewise.
	(epiphany_compute_frame_size): Likewise.
	* config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
	* config/cris/cris.c (cris_md_asm_clobbers): Likewise.
	(cris_frame_pointer_required): Likewise.
	* config/tilepro/tilepro.c (emit_sp_adjust): Likewise.
	(tilepro_current_function_is_leaf): Likewise.
	* config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise.
	* config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
	* config/ia64/ia64.c (find_gr_spill): Likewise.
	(ia64_compute_frame_size): Likewise.
	(ia64_can_eliminate): Likewise.
	(ia64_initial_elimination_offset): Likewise.
	* config/m68k/m68k.c (m68k_save_reg): Likewise.
	(m68k_expand_epilogue): Likewise.
	* config/rx/rx.c (rx_get_stack_layout): Likewise.
	* config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise.
	* config/picochip/picochip.c (picochip_can_eliminate_link_sp_save):
	Likewise.
	(picochip_output_frame_debug): Likewise.
	* config/sh/sh.c (sh_media_register_for_return): Likewise.
	(sh_allocate_initial_value): Likewise.
	(sh_output_mi_thunk): Likewise.
	* config/microblaze/microblaze.c (microblaze_must_save_register):
	Likewise.
	(compute_frame_size): Likewise.
	(microblaze_initial_elimination_offset): Likewise.
	(microblaze_expand_prologue): Likewise.
	(microblaze_expand_epilogue): Likewise.
	* config/frv/frv.c (frv_expand_epilogue): Likewise.
	(frv_frame_pointer_required): Likewise.
	* config/spu/spu.c (get_pic_reg): Likewise.
	(direct_return): Likewise.
	(spu_expand_prologue): Likewise.
	(spu_expand_epilogue): Likewise.
	(spu_initial_elimination_offset): Likewise.
	* config/mips/mips.c (mips_global_pointer): Likewise.
	(mips_cfun_might_clobber_call_saved_reg_p): Likewise.
	(mips_compute_frame_info): Likewise.
	* config/mep/mep.c (mep_interrupt_saved_reg): Likewise.
	(mep_reload_pointer): Likewise.
	* config/rl78/rl78.c (need_to_save): Likewise.
	* config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
	* config/score/score.c (score_compute_frame_size): Likewise.
	(score_function_prologue): Likewise.
	* config/bfin/bfin.c (must_save_p): Likewise.
	(expand_prologue_reg_save): Likewise.
	(expand_epilogue_reg_restore): Likewise.
	(bfin_frame_pointer_required): Likewise.
	(n_regs_saved_by_prologue): Likewise.
	(add_to_reg): Likewise.
	(expand_interrupt_handler_prologue): Likewise.
	(expand_interrupt_handler_epilogue): Likewise.
	(bfin_expand_prologue): Likewise.
	* config/avr/avr.c (avr_regs_to_save): Likewise.
	(avr_prologue_setup_frame): Likewise.
	(expand_epilogue): Likewise.
	* config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
	(s390_register_info): Likewise.
	(s390_frame_info): Likewise.
	(s390_init_frame_layout): Likewise.
	(s390_emit_prologue): Likewise.


2012-06-24  Steven Bosscher  <steven@gcc.gnu.org>

	* system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE.
	* vmsdbgout: Do not undefine it if defined.
	Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP.
	* config/microblaze/microblaze/h: Do no define ASM_BYTE_OP.
	* config/mep/mep.h: Do not define ASM_OUTPUT_BYTE.

2012-06-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_process_sync_loop): Add missing enum cast.

2012-06-23  Richard Henderson  <rth@redhat.com>

	PR target/53749
	* config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for
	V*QImode shifts and multiply.
	(ix86_expand_vecop_qihi): Support shifts.
	* config/i386/i386.md (any_shift): New code iterator.
	* config/i386/sse.md (ashlv16qi3): Merge ...
	(<any_shiftrt>v16qi3): ... into ...
	(<any_shift><VI1_AVX2>3): ... here.  Use ix86_expand_vecop_qihi
	to support SSE and AVX.

	* config/i386/i386.c (ix86_expand_sse_unpack): Split operands[]
	parameter into src and dest.
	* config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call.
	(vec_unpacks_hi_<V124_AVX2>): Likewise.
	(vec_unpacku_lo_<V124_AVX2>): Likewise.
	(vec_unpacks_lo_<V124_AVX2>): Likewise.
	* config/i386/i386-protos.h: Update.

	* config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to
	pure expander; move expansion code ...
	* config/i386/i386.c (ix86_expand_vecop_qihi): ... here.  New function.
	* config/i386/i386-protos.h: Update.

2012-06-22  Edmar Wienskoski  <edmar@freescale.com>

	* config/rs6000/rs6000.md (define_attr "type"): New type popcnt.
	(popcntb<mode>2): Add attribute type popcnt.
	(popcntd<mode>2): Ditto.
	* config/rs6000/power4.md (define_insn_reservation): Add type popcnt.
	* config/rs6000/power5.md (define_insn_reservation): Ditto.
	* config/rs6000/power7.md (define_insn_reservation): Ditto.
	* config/rs6000/476.md (define_insn_reservation): Ditto.
	* config/rs6000/power6.md (define_insn_reservation): New
	reservation for popcnt instructions.

2012-06-22  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning.

2012-06-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/53383
	* doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3.
	* config/i386/i386.c (ix86_option_override_internal): Allow
	-mpreferred-stack-boundary=3 for 64-bit if SSE is disabled.
	* config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit
	if SSE is disabled.

2012-06-22  Bill Schmidt  <wschmidt@linux.ibm.com>

	* double-int.c (double_int_multiple_of): New function.
	* double-int.h (double_int_multiple_of): New decl.
	* tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs.
	(mbc_entry_hash): New forward decl.
	(mbc_entry_eq): Likewise.
	(zero_cost): Change to no_cost.
	(mult_costs): New static var.
	(cost_tables_exist): Likewise.
	(initialize_costs): New function.
	(finalize_costs): Likewise.
	(tree_ssa_iv_optimize_init): Call initialize_costs.
	(add_cost): Change to add_regs_cost; distinguish costs by speed.
	(multiply_regs_cost): New function.
	(add_const_cost): Likewise.
	(extend_or_trunc_reg_cost): Likewise.
	(negate_reg_cost): Likewise.
	(multiply_by_cost): Change to multiply_by_const_cost; distinguish
	costs by speed.
	(get_address_cost): Change add_cost to add_regs_cost; change
	multiply_by_cost to multiply_by_const_cost.
	(force_expr_to_var_cost): Change zero_cost to no_cost; change
	add_cost to add_regs_cost; change multiply_by_cost to
	multiply_by_const_cost.
	(split_cost): Change zero_cost to no_cost.
	(ptr_difference_cost): Likewise.
	(difference_cost): Change zero_cost to no_cost; change multiply_by_cost
	to multiply_by_const_cost.
	(get_computation_cost_at): Change add_cost to add_regs_cost; change
	multiply_by_cost to multiply_by_const_cost.
	(determine_use_iv_cost_generic): Change zero_cost to no_cost.
	(determine_iv_cost): Change add_cost to add_regs_cost.
	(iv_ca_new): Change zero_cost to no_cost.
	(tree_ssa_iv_optimize_finalize): Call finalize_costs.
	* tree-ssa-address.c (most_expensive_mult_to_index): Change
	multiply_by_cost to multiply_by_const_cost.
	* tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost.
	(add_regs_cost): New decl.
	(multiply_regs_cost): Likewise.
	(add_const_cost): Likewise.
	(extend_or_trunc_reg_cost): Likewise.
	(negate_reg_cost): Likewise.

2012-06-22  Richard Guenther  <rguenther@suse.de>

	Merge from graphite branch
	2011-08-10  Sebastian Pop <sebpop@gmail.com>

	* graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.

	2012-01-13  Tobias Grosser  <tobias@grosser.es>

	* tree-flow.h (parallelized_function_p): Declare.
	* tree-parloops.c (parallelized_function_p): Export.
	* graphite.c (graphite_transform_loops): Do not run graphite on
	already parallel functions.

2012-06-22  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and
	return mem.  Convert to indirect addressing if not indirect or
	indexed.  Adjust all callers.

2012-06-22  Richard Guenther  <rguenther@suse.de>

	* gcov-iov.c: Include bconfig.h and system.h.

2012-06-22  Andreas Schwab  <schwab@linux-m68k.org>

	* doc/include/texinfo.tex: Update to version 2012-06-05.14.

2012-06-22  Richard Guenther  <rguenther@suse.de>

	PR gcov-profile/53744
	* gcov-iov.c (main): Treat "" and "prerelease" the same.

2012-06-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR debug/53704
	* dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language
	for GNU Fortran if in strict DWARF2 mode.

2012-06-22  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-live.c (remove_unused_scope_block_p): Remove again
	DECL_IGNORED_P non-reg vars even if they are used.

2012-06-21  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/53671
	PR debug/49888
	* var-tracking.c (vt_get_canonicalize_base): New.
	(vt_canonicalize_addr, vt_stack_offset_p): New.
	(vt_canon_true_dep): New.
	(drop_overlapping_mem_locs): Use vt_canon_true_dep.
	(clobber_overlaping_mems): Use vt_canonicalize_addr.

2012-06-21  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/53671
	PR debug/49888
	* var-tracking.c (vt_initialize): Record initial offset between
	arg pointer and stack pointer.

2012-06-21  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/53671
	PR debug/49888
	* var-tracking.c (vt_init_cfa_base): Drop redundant recording of
	CFA base.

2012-06-21  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/53671
	PR debug/49888
	* alias.c (memrefs_conflict_p): Improve handling of AND for alignment.

2012-06-21  Alexandre Oliva  <aoliva@redhat.com>

	* ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug.

2012-06-21  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/53682
	* cselib.c (promote_debug_loc): Don't crash on NULL argument.

2012-06-21  Meador Inge  <meadori@codesourcery.com>

	PR c/53702
	* c-decl.c (c_push_function_context): Restore the behavior to reuse
	the language function allocated for -Wunused-local-typedefs.
	(c_pop_function_context): If necessary, clear the language function
	created in c_push_function_context.  Always clear out the
	x_cur_stmt_list field of the restored language function.

2012-06-21  Sterling Augustine  <saugustine@google.com>
	    Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
	add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
	(comdat_type_struct): New field 'skeleton_die'.
	(breakout_comdat_types): Update it.
	(add_pubname): Rework logic.  Call is_class_die, is_cu_die and
	is_namespace_die.  Fix minor style violation.  Call want_pubnames.
	(add_pubname_string): Call want_pubnames.
	(add_pubtype): Rework logic for calculating type name.  Call
	is_namespace_die.  Call want_pubnames.
	(output_pubnames): Move conditional logic deciding when to produce the
	section from dwarf2out_finish.  Use new skeleton_die field.
	(base_type_die): Call add_pubtype.
	(gen_enumeration_type_die): Unconditionally call add_pubtype.
	(gen_subprogram_die): Adjust calls to add_pubname.
	(gen_namespace_die): Call add_pubname_string.
	(dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
	produce pubnames and pubtypes sections to output_pubnames.
	* common.opt (-gpubnames): New option.
	* doc/invoke.texi: Document it.

2012-06-21  Steven Bosscher  <steven@gcc.gnu.org>

	* config/m32c/m32c-pragma.c: Remove unnecessary includes.

2012-06-21  Michael Matz  <matz@suse.de>

	PR middle-end/53688
	* builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
	with correct size.

2012-06-21  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (estimate_num_insns): Estimate call cost for
	tailcalls properly.

2012-06-20  RÃ¼diger Sonderfeld  <ruediger@c-plusplus.de>

	* tree.h (DECL_SOURCE_COLUMN): New accessor.

2012-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (SINCOS): New int iterator.
	(sincos): New int attribute.
	(*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
	SINCOS int iterator.
	(*<sincos>_extend<mode>xf2_i387): Macroize insn from
	*{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.

2012-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (RDFSGSBASE): New int iterator.
	(WRFSGSBASE): Ditto.
	(fsgs): New int attribute.
	(rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
	RDFSGSBASE int iterator.
	(wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
	WRFSGSBASE int iterator.

2012-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
	from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
	(l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
	from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
	int iterator.

2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>

	* system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.

2012-06-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30318
	* tree-vrp.c (range_int_cst_p): Do not reject overflowed
	constants here.
	(range_int_cst_singleton_p): But explicitely here.
	(zero_nonzero_bits_from_vr): And here.
	(extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
	to cover all cases we can perform arbitrary precision
	arithmetic with double-ints.
	(intersect_ranges): Handle adjacent anti-ranges.

2012-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (rounding_insn): New int attribute.
	(<rounding_insn>xf2): Macroize insn from
	{floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
	(l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.

2012-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (IEEE_MAXMIN): New int iterator.
	(ieee_maxmin): New int attribute.
	(*ieee_s<ieee_maxmin><mode>3): Macroize insn from
	*ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator.

2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>

	* config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
	* config/arm/arm.c: Do not include c-pragma.h.
	(arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
	(arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
	to arm_emit_eabi_attribute.
	* arm-c.c: Do not include output.h.
	(arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
	call to arm_emit_eabi_attribute.
	* config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.

2012-06-20  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
	Allow adjusting alignment of user-aligned decls again.

2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>

	* config/rl78/rl78-c.c: Remove unnecessary includes.

2012-06-20  Steven Bosscher  <steven@gcc.gnu.org>

	* config/cris/cris.c: Include cgraph.h.
	(cris_option_override): Do not set non-existing flag_no_gcc_ident.

2012-06-19  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* emit-rtl.c (need_atomic_barrier_p): New function.
	* emit-rtl.h (need_atomic_barrier_p): Declare it.
	* config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
	* config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
	* config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
	* config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
	(mips_process_sync_loop): Use generic version instead.

2012-06-19  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
	it is used.

2012-06-19  Tom de Vries  <vries@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/constraints.md (ZR): New constraint.
	* config/mips/predicates.md (mem_noofs_operand): New predicate.
	* config/mips/mips.c (mips_print_operand): Handle new print modifier.
	* config/mips/mips.h (TARGET_XLP): Define.
	(TARGET_SYNC_AFTER_SC): Update.
	(ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
	* config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
	XLP-specific swap and ldadd patterns.
	(atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.

2012-06-19  Tom de Vries  <vries@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
	(mips_emit_post_atomic_barrier_p): New static functions.
	(mips_process_sync_loop): Use them.  Emit sync memory barriers in
	accordance with memory model semantics.  Add return of CMP result for
	compare_and_swap.
	* config/mips/mips.md: Update comment.
	(sync_cmp): New attribute.
	(sync_memmodel): New attribute replacing sync_release_barrier.
	* config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
	(UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
	(sync_lock_test_and_set, test_and_set_12): Update.
	(atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
	(atomic_fetch_add, atomic_fetch_add_llsc): New patterns.

2012-06-19  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
	mov_si<mode>_e500_subreg0.
	(*mov_si<mode>_e500_subreg0_elf_low)
	(*mov_si<mode>_e500_subreg4_elf_low): New patterns.

2012-06-19  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c: Include params.h.
	(alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE,
	PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning.

2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>

	* doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
	TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
	(ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
	Remove.
	* doc/tm.texi: Regenerate.
	* config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
	.objc_class_name_*.
	* config/darwin-c.c: Include target.h.
	(darwin_objc_declare_unresolved_class_reference): New function.
	(darwin_objc_declare_class_definition): New function.
	(TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
	(TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.

2012-06-19  Steven Bosscher  <steven@gcc.gnu.org>

	* target.def (output_ident): New hook.
	* targhooks.h (default_asm_output_ident_directive): Add prototype.
	* varasm.c (assemble_asm): Only prefix a tab if the string does not
	already start with one.
	(default_asm_output_ident_directive): New function to emit
	.ident as a top-level asm node while parsing, or directly to
	asm_out_file after parsing.
	* toplev.c (compile_file): Print a GCC .ident with
	targetm.asm_out.output_ident.
	* doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
	(TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
	* doc/tm.texi: Update.

	* config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
	(TARGET_ASM_OUTPUT_IDENT): Define.
	* config/i386/djgpp.h (IDENT_ASM_OP): Remove.
	* config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
	* config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
	* config/sparc/sparc.h (IDENT_ASM_OP): Remove.
	(TARGET_ASM_OUTPUT_IDENT): Define.
	* config/picochip/picochip.h (IDENT_ASM_OP): Remove.
	(TARGET_ASM_OUTPUT_IDENT): Define.

	* config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
	* config/cris/cris.c (cris_asm_output_ident): New function.
	* config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.

	* config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
	Add prototype.
	* config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
	(microblaze_asm_output_ident): Rewrite to work similar to
	default_asm_output_ident_directive for front-end .idents.
	* config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
	(TARGET_ASM_OUTPUT_IDENT): Define.

	* config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
	* config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.

	* config/rx/rx.c: Include cgraph.h for add_asm_node.
	(rx_asm_output_ident): New function, similar to
	default_asm_output_ident_directive, but handle AS100 syntax also, so
	that #ident also works for rx in AS100 syntax.
	(TARGET_ASM_OUTPUT_IDENT): Define.
	* config/rx/rx.h (IDENT_ASM_OP): Remove.

	* Makefile.in: Fix dependencies for c-family/c-lex.o.

2012-06-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (FIST_ROUNDING): New int iterator.
	(rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
	(ROUNDING): Ditto.
	(*fist<mode>2_<rounding>_1): Macroize insn from
	*fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
	(fistdi2_<rounding>): Macroize insn from
	fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
	(fistdi2_<rounding>_with_temp and splitters): Macroize insn and
	corresponding splitters from fistdi2_{floor,ceil} and corresponding
	splitters using FIST_ROUNDING int iterator.
	(fist<mode>2_<rounding>): Macroize insn from
	fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
	(fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
	corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
	splitters using FIST_ROUNDING int iterator.
	(l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
	using FIST_ROUNDING int iterator.

2012-06-19  Richard Henderson  <rth@redhat.com>

	* config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare.
	* config/i386/i386.c (ix86_expand_sse2_mulv4si3): New.
	* config/i386/predicates.md (nonimmediate_or_const_vector_operand): New.
	* config/i386/sse.md (sse2_mulv4si3): Delete.
	(mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and
	nonimmediate_or_const_vector_operand.

2012-06-19  Richard Henderson  <rth@redhat.com>

	* expmed.c (struct init_expmed_rtl): Split ...
	(init_expmed_one_mode): ... out of ...
	(init_expmed): ... here.  Initialize integer vector modes also.
	(synth_mult): Handle integer vector modes.
	(choose_mult_variant): Likewise.
	(expand_mult_const): Likewise.
	(expand_mult): Likewise.
	* machmode.h (GET_MODE_UNIT_BITSIZE): New.

2012-06-19  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and
	integral vector modes.

2012-06-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
	(rounding): New int attribute.
	(ROUNDING): Ditto.
	(frndintxf2_<rounding>): Macroize insn from
	frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
	(frndintxf2_<rounding>_i387): Macroize insn from
	frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.

2012-06-19  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (union_ranges): New function.
	(vrp_meet_1): Use union_ranges.
	(vrp_meet): Dump what we union and call vrp_meet_1.

2012-06-19  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
	(attr type): Remove fmul, ffmul, farith, ffarith, float_em
	f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
	(attr write_conflict, attr core_cycles): Update.
	* arm-generic.md (r_mem_f_wbuf): Delete reservation.

2012-06-19  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (intersect_ranges): Handle more cases.
	(vrp_intersect_ranges): Dump what we intersect and call ...
	(vrp_intersect_ranges_1): ... this.

2012-06-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53708
	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
	user-supplied alignment and alignment of decls with the used
	attribute.

2012-06-18  Lawrence Crowl  <crowl@google.com>

	* timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
	(TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
	(TV_PHASE_STREAM_IN): New.
	(TV_PHASE_STREAM_OUT): New.
	* timevar.c (validate_phases): New.
	(timevar_print): Call validate_phases.
	* c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
	to TV_PHASE_OPT_GEN.
	* langhooks.c (write_global_declarations): Rename use of
	TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN.  Use TV_PHASE_DBGINFO instead of
	TV_PHASE_CHECK_DBGINFO.
	* toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
	TV_PHASE_LATE_ASM.  Move start of TV_PHASE_LATE_ASM to after call to
	lang_hooks.decls.final_write_globals.

2012-06-18  David Edelshn  <dje.gcc@gmail.com>

	* config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0.

2012-06-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53712
	* config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New.
	(*sse4_2_pcmpistr_unaligned): New.

2012-06-18  Ian Bolton  <ian.bolton@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <greta.yorsh@arm.com>

	* config/arm/arm-protos.h (arm_output_epilogue): Remove.
	* config/arm/arm.c (print_multi_reg): Remove.
	(vfp_output_fldmd): Likewise.
	(arm_output_epilogue): Likewise.
	* config/arm/arm.md (epilogue_insns): Update condition and code.

2012-06-18  Ian Bolton  <ian.bolton@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <greta.yorsh@arm.com>

	* config/arm/arm-protos.h (thumb2_expand_return): New declaration.
	* config/arm/arm.c (thumb2_expand_return): New function.
	* config/arm/arm.md (return): Update condition and code.

2012-06-18  Ian Bolton  <ian.bolton@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <greta.yorsh@arm.com>

	* config/arm/arm-protos.h (output_return_instruction): New parameter
	and int to bool change of parameter types.
	* config/arm/arm.c (output_return_instruction): Likewise.
	* config/arm/arm.md (arm_simple_return): New pattern.
	(arm_return, cond_return, cond_return_inverted): Add new arguments.
	* config/arm/thumb2.md (thumb2_return): Update condition and code.

2012-06-18  Ian Bolton  <ian.bolton@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <greta.yorsh@arm.com>

	* config/arm/arm-protos.h (arm_expand_epilogue): New declaration.
	* config/arm/arm.c (arm_expand_epilogue): New function.
	* config/arm/arm.md (epilogue): Update condition and code.
	(sibcall_epilogue): Likewise.

2012-06-18  Ian Bolton  <ian.bolton@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <greta.yorsh@arm.com>

	* config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
	* config/arm/arm.md (arm_addsi3) Add an alternative.

2012-06-18  Ian Bolton  <ian.bolton@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <greta.yorsh@arm.com>

	* config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn.
	* config/arm/predicates.md (pop_multiple_fp) New special predicate.
	* config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.

2012-06-18  Ian Bolton  <ian.bolton@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <greta.yorsh@arm.com>

	* config/arm/arm.md (load_multiple_with_writeback) New define_insn.
	(load_multiple, pop_multiple_with_writeback_and_return) Likewise.
	(pop_multiple_with_return, ldr_with_return) Likewise.
	* config/arm/predicates.md (pop_multiple_return) New special predicate.
	* config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
	* config/arm/arm.c (arm_output_multireg_pop) New function.
	(arm_emit_multi_reg_pop): New function.

2012-06-18  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.c (ldm_stm_operation_p): Require SP
	as base register for loads if SP is in the register list.

2012-06-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53693
	* tree-vect-patterns.c (vect_operation_fits_smaller_type):
	Reject operands with more than one use.

2012-06-18  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR tree-optimization/53703
	* tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
	correctly set bb_for_def[12].

2012-06-18  Steven Bosscher  <steven@gcc.gnu.org>

	* config/vax/vax.h (VMS_TARGET): Remove.

2012-06-18  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_assert): Split out range
	intersecting code.
	(intersect_ranges): New function.
	(vrp_intersect_ranges): Likewise.

2012-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_gimplify_va_arg): Revert change from
	r187965.

2012-06-18  Tejas Belagod  <tejas.belagod@arm.com>

	* doc/md.texi: Document int iterators.
	* read-rtl.c (ints): New iterator group.
	(find_int): Int iterator group callback.
	(apply_int_iterator): Likewise.
	(apply_iterators): Traverse int iterator table and add all the used
	iterators to list.
	(initialize_iterators): Initialize data structures and callbacks for
	int iterators.
	(read_rtx): Parse and read mappings for int iterators.
	(read_rtx_code): Record int iterator usage.

2012-06-18  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/53698
	* expr.c (expand_expr_addr_expr_1): Convert to tmode before
	performing an addition.

2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>

	* output.h (split_double): Move prototype to rtl.h.
	(constructor_static_from_elts_p): Move prototype to tree.c.
	* rtl.h (split_double): Moved here from output.h.
	* tree.h (constructor_static_from_elts_p): Moved here from output.h.
	* final.c (split_double): Move from here ...
	* rtlanal.c (split_double): ... to here.
	* expr.c: Do not include output.h.

2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>

	* cfglayout.h: Remove.
	* cfglayout.c: Remove.
	* function.h (struct function): Remove x_last_location field.
	* function.c: Do not include cfglayout.h.
	(expand_function_start): Do not call no-op force_next_line_note.
	(expand_function_end): Likewise.
	* cfgrtl.c: Do not include cfglayout.h.  Include gt-cfgrtl.h.
	(unlink_insn_chain): Moved here from cfglayout.c.
	(skip_insns_after_block, label_for_bb, record_effective_endpoints,
	into_cfg_layout_mode, outof_cfg_layout_mode,
	pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
	relink_block_chain, fixup_reorder_chain, verify_insn_chain,
	fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
	cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
	cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
	cfg_layout_finalize): Likewise.
	(rtl_can_remove_branch_p): Likewise.
	* rtl.h (insn_scope): Move prototype from cfglayout.h here.
	(duplicate_insn_chain): Likewise.
	(force_next_line_note): Remove prototype.
	* emit-rtl.c: Do not include tree-flow.h, egad.  Include vecprim.h.
	(last_location): Remove #define to emit.x_last_location.
	(force_next_line_note): Remove no-op function.
	(init_emit): Don't set x_last_location.
	(block_locators_locs, block_locators_blocks, locations_locators_locs,
	locations_locators_vals, prologue_locator, epilogue_locator,
	curr_location, last_location, curr_block, last_block, curr_rtl_loc):
	Move POD to here from cfglayout.c.
	(insn_locators_alloc, insn_locators_finalize, insn_locators_free,
	set_curr_insn_source_location, get_curr_insn_source_location,
	set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
	locator_scope, insn_scope, locator_location, locator_line, insn_line,
	locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
	* cfghooks.h: Remove double-include protection.
	(can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
	* cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
	* final.c: Do not include cfglayout.h.
	(choose_inner_scope, change_scope): Move to here from cfglayout.c.
	(reemit_insn_block_notes): Likewise.  Make static.
	* tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
	operation_could_trap_p, tree_could_throw_p): Move from here...
	* tree.h: ... to here.
	* gengtype.c (open_base_files): Remove cfglayout.h from the list.
	* profile.c: Do not include cfghooks.h.
	* cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
	* modulo-sched.c: Likewise.
	* loop-unswitch.c: Do not include cfglayout.h.
	* sched-ebb.c: Likewise.
	* tracer.c: Likewise.
	* ddg.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* loop-init.c: Likewise.
	* dwarf2out.c: Likewise.
	* hw-doloop.c: Likewise.
	* loop-unroll.c: Likewise.
	* cfgcleanup.c: Likewise.
	* bb-reorder.c: Likewise.
	* sched-rgn.c: Likewise.
	* tree-cfg.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/score/score.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* Makefile.in (CFGAYOUT_H): Remove, and fixup users.
	* config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
	* config/spu/t-spu-elf (spu.o: $): Likewise.
	* config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.

2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>

	* cfgloop.h: Do not include rtl.h.
	(enum iv_extend_code): New.
	(struct rtx_iv): Use iv_extend_code instead of rtx_code.
	* Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
	* loop-iv.c (iv_extend_to_rtx_code): New function to translate
	an IV_EXTEND_CODE to an RTX_CODE.
	(dump_iv_info): Update for rtx_iv field type change.
	(iv_constant): Likewise.
	(iv_subreg): Likewise.
	(iv_extend): Likewise.
	(iv_neg): Likewise.
	(iv_add): Likewise.
	(iv_mult): Likewise.
	(iv_shift): Likewise.
	(get_biv_step_1): Likewise.
	(get_biv_step): Likewise.
	(iv_analyze_biv): Likewise.
	(get_iv_value): Likewise.
	(shorten_into_mode): Likewise.
	(canonicalize_iv_subregs): Likewise.
	* sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
	of MAY_HAVE_DEBUG_INSNS.
	* tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
	* tree-ssa-loop-prefetch.c: Likewise.

2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>

	* expmed.c (ceil_log2): Move from here...
	* hwint.c: ... to here for older GCCs...
	* hwint.h: ... and here for newer GCCs.
	* rtl.h (ceil_log2): Remove prototype.

	* tree-phinodes.c: Do not include rtl.h.
	* Makefile.in (tree-phinodes.o): Do not depend on RTL_H.

2012-06-17  Steven Bosscher  <steven@gcc.gnu.org>

	* config/cris/cris.h (TARGET_ELF): Remove.
	(FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
	(CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
	(LOCAL_LABEL_PREFIX): Likewise.
	* config/cris/cris.c (cris_target_asm_named_section): Remove.
	(cris_option_override): Simpify using TARGET_ELF==1.
	(cris_file_start): Likewise.
	* config/cris/cris-protos.h (cris_target_asm_named_section): Remove.

2012-06-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (vcvtph2ps): Fix vec_select selector.

2012-06-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/53590
	* tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.

2012-06-15  Easwaran Raman  <eraman@google.com>

	* passes.c (init_optimization_passes): Remove pass_call_cdce
	from its current position and insert after pass_dce.

2012-06-15  Walter Lee  <walt@tilera.com>

	* config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.

2012-06-15  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (note_invalid_constants): Don't return a result.
	(arm_memory_load_p): Delete function.
	(arm_const_double_rtx): Delete iterator variable i;
	(fp_immediate_constant): Likewise.
	(fp_const_from_val): Likewise.

	* arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.

2012-06-15  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/51033
	* c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
	* c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.

2012-06-15  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_default_expand_builtin): New function.
	(avr_expand_builtin): Use it.
	(avr_expand_unop_builtin): Remove.
	(avr_expand_binop_builtin): Remove.
	(avr_expand_triop_builtin): Remove.

2012-06-15  Michael Matz  <matz@suse.de>

	PR middle-end/38474
	* cfgexpand.c (add_alias_set_conflicts): Remove.
	(expand_used_vars): Don't call it.
	(aggregate_contains_union_type): Remove.
	* function.c (n_temp_slots_in_use): New static data.
	(make_slot_available, assign_stack_temp_for_type): Update it.
	(init_temp_slots): Zero it.
	(remove_unused_temp_slot_addresses): Use it for quicker removal.
	(remove_unused_temp_slot_addresses_1): Use htab_clear_slot.

2012-06-15  Michael Matz  <matz@suse.de>

	* gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
	argument, don't emit assign statement if value is directly usable.
	(gimplify_expr): Adjust.

2012-06-15  Michael Matz  <matz@suse.de>

	* gimplify.c (gimplify_modify_expr): Fold generated statements.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.

2012-06-15  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (set_and_canonicalize_value_range): Use canonical
	predicates to set VR_UNDEFINED and VR_VARYING.  Drop a case
	we assert for in set_value_range to VR_VARYING.

2012-06-15  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (addsf3, adddf3): Use s_register_operand.
	(subsf3, subdf3): Likewise.
	(mulsf3, muldf3): Likewise.
	(difsf3, divdf3): Likewise.
	(movsfcc, movdfcc): Likewise.
	* predicates.md (f_register_operand): Delete.
	(arm_float_rhs_operand): Delete.
	(arm_float_add_operand): Delete.
	(arm_float_compare_operand): Use s_register_operand when
	there's no VFP.
	(cirrus_register_operand): Delete.
	(cirrus_fp_register): Delete.
	(cirrus_shift_const): Delete.
	(cmpdi_operand): Remove Maverick support.
	* constraints.md (f, v, H): Delete constraints.
	(G): Update documentation.
	* arm.c (fp_consts_inited): Convert to bool.
	(strings_fp): Delete.
	(values_fp): Delete.
	(value_fp0): New variable.
	(init_fp_table): Simplify logic.
	(arm_const_double_rtx): Likewise.
	(fp_immediate_constant): Likewise.
	(fp_const_from_val): Likewise.
	(neg_const_double_rtx_ok_for_fpa): Delete.
	* doc/md.texi (ARM constraints): Update documentation.

2012-06-15  Ulrich Weigand  <ulrich.weigand@linaro.org>

	PR tree-optimization/53636
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
	stride when doing basic-block vectorization.

2012-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* tree-vect-generic.c (lower_vec_perm): Propagate vector constants
	into VEC_PERM_EXPR.

2012-06-15  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
	allocate and free bbs array for the SLP case.

	PR tree-optimization/51581
	* expr.h (choose_multiplier): New prototype.
	* expmed.c (choose_multiplier): No longer static.
	Change multiplier_ptr from rtx * to UHWI *.
	(expand_divmod): Adjust callers.
	* tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to...
	(vect_recog_divmod_pattern): ... this.  Pass bb_vinfo as last
	argument to new_stmt_vec_info.  Attempt to optimize also divisions
	by non-pow2 constants if integer vector division isn't supported.
	* tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
	don't look at pattern stmts and sequences.

2012-06-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/53590
	* common.opt (-fdelete-dead-exceptions): New switch.
	* doc/invoke.texi (Code Gen Options): Document it.
	* cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
	insn_could_throw_p predicate.  Do not skip an insn that could throw
	if dead exceptions can be deleted.
	(insn_live_p): Likewise, do not return true in that case.
	* dce.c (can_alter_cfg): New flag.
	(deletable_insn_p): Do not return false for an insn that can throw if
	the CFG can be altered and dead exceptions can be deleted.
	(init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
	* dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
	predicate. Do not preserve an insn that could throw if dead exceptions
	can be deleted.
	* function.h (struct function): Add can_delete_dead_exceptions flag.
	* function.c (allocate_struct_function): Set it.
	* lto-streamer-in.c (input_struct_function_base): Stream it.
	* lto-streamer-out.c (input_struct_function_base): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
	statement that could throw as necessary if dead exceptions can be
	deleted.

2012-06-14  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.

2012-06-14  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53568
	* config/sh/sh.md: Add peephole for swapbsi2.
	(*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.

2012-06-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
	(*zero_extendsidi2_rex64): Ditto.  Remove isa attribute.

2012-06-14  Jakub Jelinek  <jakub@redhat.com>

	PR target/53639
	* config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.

2012-06-14  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_cirrus_insn_p): Delete.
	(cirrus_reorg): Delete.
	(arm_reorg): Don't call cirrus_reorg.
	(arm_final_prescan_insn_p): Don't check for cirrus insns.
	* arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
	(adddi3, subdi3): Remove Maverick support.
	(arm_adddi3): Likewise.
	(adddi_sesidi_di, adddi_zesidi_di): Likewise.
	(addsf3, adddf3): Likewise.
	(subsf3, subdf3): Likewise.
	(mulsf3, muldf3): Likewise.
	(ashldi3, ashrdi3, lshrdi3): Likewise.
	(floatsisf2, floatsidf2): Likewise.
	(fix_truncsfsi2, fix_truncdfsi2): Likewise.
	(arm_movdi, thumb1_movdi_insn): Likewise.
	(arm_cmpdi_insn): Likewise.
	(cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
	(cirrus.md): Don't include.
	* cirrus.md: Delete file.
	* t-arm (MD_INCLUDES): Remove cirrus.md.

2012-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (function_possibly_abstracted_p): New static function.
	(gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
	cgraph_function_possibly_inlined_p.
	(gen_inlined_subroutine_die): Return if the origin is to be ignored.
	(process_scope_var): Do not emit concrete instances of abstracted
	nested functions from here.
	(gen_decl_die): Emit the abstract instance if the function is possibly
	abstracted and not only possibly inlined.
	(dwarf2out_finish): Find the first non-abstract parent instance and
	attach concrete instances on the limbo list to it.

2012-06-14  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (divsf3, divdf3): Remove FPA support.
	(negsf2, negdf2): Likewise.
	(sqrtsf2, sqrtdf2): Likewise.
	(movdfcc): Likewise.
	(modsf3, moddf3, movxf): Delete.
	(push_fp_multi): Delete.
	(fpa.md): Don't include it.
	* fpa.md: Delete file.
	* t-arm (MD_INCLUDES): Remove fpa.md.

2012-06-14  Bill Schmidt  <wschmidt@linux.ibm.com>

	* tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c.
	(cost_for_stmt): Remove decl.
	(vect_get_single_scalar_iteration_cost): Correct typo in name.
	* tree-vect-loop.c (vect_get_cost): Remove.
	(vect_get_single_scalar_iteration_cost): Correct typo in name; use
	vect_get_stmt_cost rather than vect_get_cost.
	(vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than
	vect_get_cost.
	(vect_estimate_min_profitable_iters): Correct typo in call to
	vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
	than vect_get_cost.
	(vect_model_reduction_cost): Use vect_get_stmt_cost rather than
	vect_get_cost.
	(vect_model_induction_cost): Likewise.
	* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct
	typo in call to vect_get_single_scalar_iteration_cost.
	* tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h.
	(cost_for_stmt): Remove unnecessary function.
	* Makefile.in (TREE_VECTORIZER_H): Update dependencies.

2012-06-14  Richard Earnshaw  <rearnsha@arm.com>

	* arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options.
	* arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types.
	* arm-tables.opt: Regenerated.
	* doc/invoke.texi: Remove references to deleted options.

2012-06-14  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>

	* config/h8300/genmova.sh: Modified to add offset bits of
	mova/Sz assembly instruction for memory access.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/mova.md: Likewise.

2012-06-12  Christian Bruel  <christian.bruel@st.com>

	PR target/53621
	* config/sh/sh.c (sh_option_override): Don't force
	 flag_omit_frame_pointer and maccumulate_outgoing_args.
	* config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.

2012-06-14  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (VR_INITIALIZER): New define.
	(ranges_from_anti_range): New function.
	(extract_range_from_binary_expr_1): Decompose operations on
	VR_ANTI_RANGEs to operations on VR_RANGE.
	(extract_range_from_unary_expr_1): Likewise.
	(extract_range_from_binary_expr_1, extract_range_from_binary_expr,
	extract_range_from_unary_expr_1, extract_range_from_unary_expr,
	extract_range_from_cond_expr, adjust_range_with_scev,
	vrp_visit_assignment_or_call, vrp_visit_phi_node,
	simplify_bit_ops_using_ranges): Use VR_INITIALIZER.

2012-06-13  Richard Henderson  <rth@redhat.com>

	* hwint.h (HOST_WIDEST_INT_C): New.
	(HOST_WIDE_INT_C): New.
	(HOST_WIDE_INT_1): Use it.
	* config/alpha/alpha.c (alpha_trampoline_init): Use it.

2012-06-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/49888
	* var-tracking.c: Include alias.h.
	(overlapping_mems): New struct.
	(drop_overlapping_mem_locs): New.
	(clobber_overlapping_mems): New.
	(var_mem_delete_and_set, var_mem_delete): Call it.
	(val_bind): Likewise, but only if modified.
	(compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs.
	* Makefile.in (var-tracking.o): Depend in $(ALIAS_H).

2012-06-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/47624
	* var-tracking.c (loc_exp_dep_pool): New.
	(vt_emit_notes): Create and release the pool.
	(compute_bb_dataflow): Use value-based locations in MO_VAL_SET.
	(emit_notes_in_bb): Likewise.
	(loc_exp_dep_insert): Deal with NOT_ONEPART vars.
	(notify_dependents_of_changed_value): Likewise.
	(notify_dependents_of_resolved_value): Check that NOT_ONEPART
	variables don't have a VAR_LOC_DEP_LST.
	(emit_note_insn_var_location): Expand NOT_ONEPART locs that are
	VALUEs or MEMs of VALUEs.

2012-06-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/52983
	PR debug/48866
	* dce.c (word_dce_process_block): Insert debug temps only if the
	insn is not marked.
	(dce_process_block): Likewise, and if debug.used is not empty,
	and only after iterating over all DEFs that might mark the insn.

2012-06-13  Alexandre Oliva  <aoliva@redhat.com>

	* common.opt (ftree-coalesce-inlined-vars): New.
	(ftree-coalesce-vars): New.
	* doc/invoke.texi: Document them.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce):
	Implement them.

2012-06-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* read-rtl.c (mapping): Remove index field.  Add current_value field.
	Define heap vectors.
	(iterator_group): Fix long line.  Remove num_builtins field and
	uses_iterator fields.  Make apply_iterator take a void * parameter.
	(iterator_use, atttribute_use): New structures.
	(iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete.
	(current_iterators, iterator_uses, attribute_uses): New variables.
	(uses_mode_iterator_p, uses_code_iterator_p): Delete.
	(apply_mode_iterator, apply_code_iterator): Take a void * parameter.
	(map_attr_string, apply_iterator_to_string): Remove iterator
	and value parameters.  Look through all current iterator values
	for a matching attribute.
	(mode_attr_index, apply_mode_maps): Delete.
	(apply_iterator_to_rtx): Replace with...
	(copy_rtx_for_iterators): ...this new function.
	(uses_iterator_p, apply_iterator_traverse): Delete.
	(apply_attribute_uses, add_current_iterators, apply_iterators): New
	functions.
	(add_mapping): Remove index field.  Set current_value field.
	(initialize_iterators): Don't set num_builtins and uses_iterator_p
	fields.
	(find_iterator): Delete.
	(record_iterator_use, record_attribute_use): New functions.
	(record_potential_iterator_use): New function.
	(check_code_iterator): Remove handling of bellwether codes.
	(read_rtx): Remove mode maps.  Truncate iterator and attribute uses.
	(read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps
	parameter.  Use the first code iterator value instead of the
	bellwether_codes array.  Use record_potential_iterator_use for modes.

2012-06-13  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53568
	* config/sh/sh.md (bswapsi2): New expander.
	(swapbsi2): New insn.

2012-06-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/53647
	* config/i386/i386.c (ix86_tune_cost): New variable.
	(ix86_option_override_internal): Set ix86_tune_cost.  Use
	ix86_tune_cost for simultaneous_prefetches, prefetch_block,
	l1_cache_size and l2_cache_size.

2012-06-13  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
	Handle meeting two VR_RANGE to an VR_ANTI_RANGE.  Implement
	all possible meetings of VR_RANGE with VR_ANTI_RANGE and
	VR_ANTI_RANGE with VR_ANTI_RANGE.

2012-06-13  Richard Earnshaw  <rearnsha@arm.com>

	* config.gcc (unsupported): Move obsoleted FPA-based configurations
	here from ...
	(obsolete): ... here.
	(arm*-*-freebsd*): Remove.
	(arm*-*-linux*): Only accept EABI variants.  Simplify logic.
	(arm*-*-uclinux*): Likewise.
	(arm*-*-ecos-elf): Remove.
	(arm*-*-rtems*): Remove.
	(arm*-*-elf): Remove.
	(arm*-wince-pe*): Remove.
	(arm, --with-fpu): Remove support for fpa and Maverick variants.
	* arm/ecos-elf.h: Delete.
	* arm/t-strongarm-elf: Delete.
	* arm/rtems-elf.h: Delete.
	* arm/wince-pe.h: Delete.
	* arm/pe.c: Delete.
	* arm/pe.h: Delete.
	* arm/t-wince-pe: Delete.

2012-06-13  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR tree-optimization/53647
	* tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
	targets with no defined cache line size.

2012-06-13  Bill Schmidt  <wschmidt@linux.ibm.com>

	* targhooks.c (default_builtin_vectorized_conversion): Handle
	vec_construct, using vectype to base cost on subparts.
	* target.h (enum vect_cost_for_stmt): Add vec_construct.
	* tree-vect-stmts.c (vect_model_load_cost): Use vec_construct
	instead of scalar_to-vec.
	* config/spu/spu.c (spu_builtin_vectorization_cost): Handle
	vec_construct in same way as default for now.
	* config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
	* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
	Handle vec_construct, including special case for 32-bit loads.

2012-06-13  Xinyu Qi <xyqi@marvell.com>

	* config/arm/arm.c (FL_IWMMXT2): New define.
	(arm_arch_iwmmxt2): New variable.
	(arm_option_override): Enable use of iWMMXt with VFP.
	Disable use of iWMMXt with NEON. Disable use of iWMMXt under
	Thumb mode. Set arm_arch_iwmmxt2.
	(arm_expand_binop_builtin): Accept VOIDmode op.
	(enum arm_builtins): Revise built-in fcode.
	(IWMMXT2_BUILTIN): New define.
	(IWMMXT2_BUILTIN2): Likewise.
	(iwmmx2_mbuiltin): Likewise.
	(builtin_description bdesc_2arg): Revise built in declaration.
	(builtin_description bdesc_1arg): Likewise.
	(arm_init_iwmmxt_builtins): Revise built in initialization.
	(arm_expand_builtin): Revise built in expansion.
	(arm_output_iwmmxt_shift_immediate): New function.
	(arm_output_iwmmxt_tinsr): Likewise.
	* config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare.
	(arm_output_iwmmxt_tinsr): Likewise.
	* config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant.
	(iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete.
	(rorv4hi3, rorv2si3, rordi3): Likewise.
	(rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise.
	(ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise.
	(lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise.
	(ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise.
	(iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise
	(*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise.
	(tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern.
	(iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise.
	(*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise.
	(ror<mode>3, ror<mode>3_di): Likewise.
	(ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise.
	(ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise.
	(iwmmxt_walignr0, iwmmxt_walignr1): Likewise.
	(iwmmxt_walignr2, iwmmxt_walignr3): Likewise.
	(iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise.
	(iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise.
	(iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise.
	(iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise.
	(All instruction patterns): Add wtype attribute.
	(*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp.
	(iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern.
	(iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise.
	(ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise.
	(iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise.
	(eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise.
	(gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise.
	(iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise.
	(iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise.
	(iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise.
	(iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise.
	(iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise.
	(iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise.
	(iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise.
	(iwmmxt2.md): Include.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__.
	(TARGET_IWMMXT2): New define.
	(TARGET_REALLY_IWMMXT2): Likewise.
	(arm_arch_iwmmxt2): Declare.
	* config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics.
	Use __IWMMXT2__ to enable iWMMXt2 intrinsics.
	Use C name-mangling for intrinsics.
	(__v8qi): Redefine.
	(_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.
	(_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise.
	(_m_from_int): Likewise.
	(_mm_sada_pu8, _mm_sada_pu16): New intrinsic.
	(_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise.
	(_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise.
	(_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise.
	(_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise.
	(_mm_tbcst_pi32): Likewise.
	(_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic.
	(_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise.
	(_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise.
	(_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise.
	(_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise.
	(_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise.
	(_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise.
	(_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise.
	(_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise.
	(_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise.
	(_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise.
	(_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise.
	(_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise.
	(_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise.
	(_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise.
	(_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise.
	(_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise.
	(_mm_wmiawttn_si64, _mm_merge_si64): Likewise.
	(_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise.
	(_m_to_int): New define.
	* config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2.
	* config/arm/arm-arches.def (iwmmxt2): Likewise.
	* config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and
	iwmmxt2.md.
	* config/arm/arm.md (marvell-f-iwmmxt.md): Include.
	(arch): Add "iwmmxt2".
	(arch_enabled): Handle "iwmmxt2".
	(wtype): New attribute.
	(UNSPEC_WMADDS, UNSPEC_WMADDU): Delete.
	(UNSPEC_WALIGNI): New unspec.
	* config/arm/predicates.md (imm_or_reg_operand): New predicate.
	* config/arm/iterators.md (VMMX2): New mode_iterator.
	* config/arm/marvell-f-iwmmxt.md: New file.
	* config/arm/iwmmxt2.md: New file.

2012-06-12  Jakub Jelinek  <jakub@redhat.com>

	PR c/53532
	PR c/51034
	PR c/53196
	* c-decl.c (build_compound_literal): Call c_incomplete_type_error
	if type isn't complete.

2012-06-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/ia64/sync.md (fetchop_name): Change ior attribute to "or".

2012-06-12  Richard Henderson  <rth@redhat.com>

	* config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
	iterator instead of INT.

2012-06-12  Bill Schmidt  <wschmidt@linux.ibm.com>

	* opts.c: Add -fhoist-adjacent-loads to -O2 and above.
	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward
	declaration.
	(hoist_adjacent_loads, gate_hoist_loads): New forward declarations.
	(tree_ssa_phiopt): Call gate_hoist_loads.
	(tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call.
	(tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call
	hoist_adjacent_loads.
	(local_mem_dependence): New function.
	(hoist_adjacent_loads): Likewise.
	(gate_hoist_loads): Likewise.
	* common.opt (fhoist-adjacent-loads): New switch.
	* Makefile.in (tree-ssa-phiopt.o): Added dependencies.

2012-06-12  Michael Matz  <matz@suse.de>

	* alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
	(nonoverlapping_memrefs_p): Don't call it here ...
	(true_dependence_1): ... but here.

2012-06-12  Richard Guenther  <rguenther@suse.de>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
	* alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
	and MEM_SIZE only refines it.  Reflect that and be less conservative
	if either of the latter is not known.

2012-06-12  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/53589
	* cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
	discovery even when e->dest != target.  If any LABEL_REF points
	to e->dest label, redirect it to target's label.

2012-06-12  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
	condition for generating REG_FRAME_RELATED_EXPR note.
	(pop): Add code for generating REG_CFA_RESTORE,
	REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
	(sh_expand_epilogue): Use frame_insn() for FP to SP move.
	Set 'frame_p' of calls to output_stack_adjust() to 'true'.

2012-06-11  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (HWI_HEX2): Add missing shift.
	* vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix.

	* config/alpha/alpha.c (alpha_trampoline_init): Split large constants.

2012-06-12  Hans-Peter Nilsson  <hp@axis.com>

	* doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
	Mention that this hook needs to be defined for native TLS.
	* doc/tm.texi: Regenerate.

2012-06-11  Mike Stump  <mikestump@comcast.net>

	* emit-rtl.c (init_emit_once): Iterate through the
	MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
	MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
	all the MIN_MODE_PARTIAL_INT modes anymore.

2012-06-12  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips-tables.opt (xlp): Fix merge typo.

2012-06-11  Roland McGrath  <mcgrathr@google.com>

	* dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
	SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
	not a VAR_DECL.  Also don't limit it to UNSPECs with exactly one
	operand.

2012-06-11  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53511
	* config/sh/sh.md (fmasf4): New expander.
	(*macsf3): Rename to fmasf4_i.  Adapt to fma pattern.
	(mac_media): Rename to fmasf4_media.  Adapt to fma pattern.
	* config/sh/sh.opt (mfused-madd): Remove.
	* config/sh/sh.c (sh_option_override): Remove mfused-madd handling.
	(builtin_description bdesc): Remove __builtin_sh_media_FMAC_S.
	* config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt
	as extra options.
	* doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
	descriptions.

2012-06-11  Richard Henderson  <rth@redhat.com>

	* dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots.

2012-06-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53470
	* tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
	replace it with the first non-BLOCK context.

2012-06-11  Richard Guenther  <rguenther@suse.de>

	* alias.c (aliases_everything_p): Remove.
	(DIFFERENT_ALIAS_SETS_P): Likewise.
	(true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
	Do not use aliases_everything_p or special-case ANDs.  Do not
	special-case BLKmode moves.
	(may_alias_p): Likewise.  Handle BLKmode similar like everywhere
	- for SCATCH only.

2012-06-09  Hans-Peter Nilsson  <hp@axis.com>

	Fix CRIS build errors with --enable-build-with-cxx.
	* config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
	variable "and" to "andop".
	* config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
	temporary variable for memory model, passing C++-type-correct
	parameter type to expand_mem_thread_fence.
	("atomic_compare_and_swap<mode>"): Ditto.

2012-06-09  Richard Henderson  <rth@redhat.com>

	PR c++/53602
	* cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
	(pass_jump): Rename from pass_jump2.
	(execute_jump2, pass_jump2): New.
	* combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
	perform cfg cleanup here.  Move the test of PUSH_ROUNDING
	and ACCUMULATE_OUTGOING_ARGS test...
	(gate_handle_stack_adjustments): ... here.
	* passes.c (init_optimization_passes): Update for pass_jump2 rename.
	Place new pass_jump2 after pass_stack_adjustments.
	* tree-pass.h (pass_jump): Declare.

2012-06-09  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* simplify-rtx.c (simplify_const_binary_operation): Fixed shift
	count trucation.

2012-06-08  Richard Henderson  <rth@redhat.com>

	PR c++/53602
	* combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
	note to a clobber insn when no other insn is available.

2012-06-08  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_case_values_threshold): Return 7.

2012-06-07  Andreas Schwab  <schwab@linux-m68k.org>

	* genhooks.c (main): Set progname.
	(emit_documentation): Remove variable found_start, always bail out
	when a place is missing.
	* doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT.

2012-06-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/53580
	* omp-low.c (scan_omp): Change first argument to gimple_seq *,
	call walk_gimple_seq_mod instead of walk_gimple_seq.
	(scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
	scan_omp_for, scan_omp_sections, scan_omp_single,
	execute_lower_omp): Adjust callers.
	(scan_omp_1_stmt): Likewise.  If check_omp_nesting_restrictions
	returns false, replace stmt with GIMPLE_NOP.
	(check_omp_nesting_restrictions): Instead of issuing warnings,
	issue errors and return false if any errors were reported.

2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>

	* doc/invoke.texi (fconserve-space): Remove documentation.

2012-06-06  Edmar Wienskoski  <edmar@freescale.com>

	* config/rs6000/rs6000-tables.opt: Regenerated.

2012-06-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53081
	* tree-data-ref.h (adjacent_store_dr_p): Rename to ...
	(adjacent_dr_p): ... this and make it work for reads, too.
	* tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
	(struct partition_s): Change main_stmt to main_dr, add
	secondary_dr member.
	(build_size_arg_loc): Change to date data-reference and not
	gimplify here.
	(build_addr_arg_loc): New function split out from ...
	(generate_memset_builtin): ... here.  Use it and simplify.
	(generate_memcpy_builtin): New function.
	(generate_code_for_partition): Adjust.
	(classify_partition): Streamline pattern detection.  Detect memcpy.
	(ldist_gen): Adjust.
	(tree_loop_distribution): Adjust seed statements for memcpy
	recognition.

2012-06-06  Matt Turner  <mattst88@gmail.com>

	* config/arm/mmintrin.h (_mm_empty): New.
	(_m_empty): New.

2012-06-06  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* doc/invoke.texi (sched-pressure-algorithm): Document new --param.
	* common.opt (fsched-pressure-algorithm=): Remove.
	* flag-types.h (sched_pressure_algorithm): Move to...
	* sched-int.h (sched_pressure_algorithm): ...here.
	* params.def (sched-pressure-algorithm): New param.
	* haifa-sched.c (sched_init): Use it to initialize sched_pressure.
	* common/config/s390/s390-common.c (s390_option_optimization_table):
	Remove OPT_fsched_pressure_algorithm_ entry.
	* config/s390/s390.c (s390_option_override): Set a default value for
	PARAM_SCHED_PRESSURE_ALGORITHM.

2012-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/53487
	* config/rs6000/rs6000.c (rs6000_generate_compare): If we are
	doing an unsigned compare, make sure the second argument is not a
	negative constant.
	(rs6000_emit_cmove): Don't allow floating point comparisons when
	generating ISEL moves.

2012-06-05  Edmar Wienskoski  <edmar@freescale.com>

	* config/rs6000/e5500.md: New file.
	* config/rs6000/e6500.md: New file.
	* config/rs6000/rs6000.c (processor_costs): Add new costs for
	e5500 and e6500.
	(rs6000_option_override_internal): Altivec and Spe options not
	allowed with e5500. Spe options not allowed with e6500. Increase
	move inline limit for e5500 and e6500. Disable string instructions
	for e5500 and e6500. Enable branch targets alignment for e5500 and
	e6500. Initialize rs6000_cost for e5500 and e6500.
	(rs6000_adjust_cost): Add extra scheduling cycles between compare
	and brnach for e5500 and e6500.
	(rs6000_issue_rate): Set issue rate for e5500 and e6500.
	* config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
	e6500.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
	* config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
	ppce6500.
	Include e5500.md and e6500.md.
	* config/rs6000/rs6000-opt.h (processor_type): Add
	PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
	* config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
	(powerpc*-*-*): Add new cores e5500, e6500.
	* doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.

2012-06-05  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change.

2012-06-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/53575
	* config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
	is used for x86_64-*-*.

2012-06-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30442
	* tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
	vectorization stop analysis at the first stmt we cannot compute
	a data-reference for instead of giving up completely.

2012-06-05  Richard Guenther  <rguenther@suse.de>

	* tree-loop-distribution.c (struct partition_s): Add has_writes member.
	(partition_alloc): Initialize it.
	(partition_has_writes): New function.
	(rdg_flag_uses): Adjust.
	(rdg_flag_vertex): Likewise.
	(rdg_flag_vertex_and_dependent): Likewise.
	(rdg_flag_loop_exits): Likewise.
	(build_rdg_partition_for_component): Likewise.
	(rdg_build_partitions): Likewise.

2012-06-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53081
	* tree-loop-distribution.c (generate_memset_builtin): Handle all
	kinds of byte-sized stores.
	(classify_partition): Likewise.
	(tree_loop_distribution): Adjust seed statements used for
	!flag_tree_loop_distribution.

2012-06-05  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
	(rs6000_emit_prologue): Ensure register used for inline saves
	of vector regs is not the static chain register.  Revise comment.

2012-06-04  Oleg Endo  <olegendo@gcc.gnu.org>

	* doc/md.texi (Standard Pattern Names For Generation): Document
	sincos pattern.

2012-06-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/53555
	* config/i386/i386.c (ix86_sched_reorder): Skip debug insns.

2012-06-04  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (is_unit_die): New.
	(copy_declaration_context, copy_ancestor_tree): Use it.
	(copy_decls_walk): Likewise.

2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53524
	* doc/invoke.texi (Wenum-compare): Update documentation.

2012-06-04  Dodji Seketeli  <dodji@redhat.com>

	PR preprocessor/53463
	* parser.c (cp_parser_assignment_expression): Use the location
	for the '=' as the default location for the expression.

2012-06-04  Edmar Wienskoski  <edmar@freescale.com>

	PR target/53559
	* config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
	operands.
	(altivec_stvlxl): Ditto.
	(altivec_stvrx): Ditto.
	(altivec_stvrxl): Ditto.

2012-06-04  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p.
	(ira_uniform_class_p): New macro.

	* ira.c (setup_uniform_class_p): New function.
	(setup_allocno_and_important_classes): Call the function.
	(print_unform_and_important_classes): New function.
	(print_classes): Rename to print_translated_classes.
	(ira_debug_allocno_classes): Add call of
	print_unform_and_important_classes.

	* ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
	classes instead of pressure classes.

2012-06-04  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/47530
	* trans-mem.c (expand_block_edges): Do not skip the first
	statement when resetting the BB.

2012-06-04  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (stores_from_loop): Remove.
	(stmt_with_adjacent_zero_store_dr_p): Likewise.
	(stores_zero_from_loop): Likewise.
	* tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
	stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
	(adjacent_store_dr_p): New function.
	* tree-loop-distribution.c (generate_memset_builtin): Pass
	the RDG, use the already available data-reference.
	(generate_code_for_partition): Pass down RDG.
	(classify_partition): Inline parts of the former
	stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
	(ldist_gen): Remember if there was any detected builtin and
	do less work if not and flag_tree_loop_distribution is not set.
	(tree_loop_distribution): Inline and fuse stores_from_loop
	and stores_zero_from_loop here.

2012-06-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53471
	* dwarf2out.c (dwarf2out_finish): If generating LTO do not
	create new assembler names.

2012-06-04  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (struct rdg_vertex_info): Remove.
	(rdg_vertex_for_stmt): Simplify using gimple_uid.
	(create_rdg_vertices): Pass loop argument, remove stmt to RDG index
	hashtable.  Record stmt data-references.
	(hash_stmt_vertex_info): Remove.
	(eq_stmt_vertex_info): Likewise.
	(hash_stmt_vertex_del): Likewise.
	(build_empty_rdg): Simplify.
	(build_rdg): Adjust.
	(free_rdg): Likewise.
	(ref_base_address): Remove.
	(have_similar_memory_accesses): Likewise.
	* tree-data-ref.h (create_rdg_vertices): Remove.
	(struct rdg_vertex): Add datarefs member.
	(RDGV_DATAREFS): New define.
	(RDG_DATAREFS): Likewise.
	(have_similar_memory_accesses): Remove.
	(rdg_has_similar_memory_accesses): Likewise.
	* tree-loop-distribution.c (ref_base_address): Re-implement here.
	(similar_memory_accesses): Re-implement using existing data-references.
	(tree_loop_distribution): Initialize stmt uids for the stmt to
	RDG index mapping.
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Only
	access stmt vinfo for stmts in loop.

2012-06-04  Andreas Schwab  <schwab@linux-m68k.org>

	PR target/53461
	* config/m68k/m68k.md ("tablejump"): Fix check for
	CASE_VECTOR_PC_RELATIVE.

2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>

	* output.h (merge_weak, assemble_alias,
	initializer_constant_valid_p,
	initializer_constant_valid_for_bitfield_p): Move protos from here...
	* tree.h: ... to here.
	* cgraphclones.c: Do not include output.h.
	* gimplify.c: Likewise.
	* reload.c: Likewise.
	* recog.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.
	* Makefile.in: Fix dependencies.

2012-06-04  Georg-Johann Lay  <avr@gjlay.de>

	PR target/46261
	* config/avr/avr-stdint.h: New file.
	* config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
	newlib-stdint.h

2012-06-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53550
	* tree-ssa-loop-niter.c (number_of_iterations_cond): If type
	is POINTER_TYPE_P, use sizetype as step type instead of type.

2012-06-04  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (have_similar_memory_accesses_1): Remove.
	(ref_base_address_1): Likewise.
	(remove_similar_memory_refs): Likewise.
	* tree-data-ref.h (remove_similar_memory_refs): Remove.
	* tree-loop-distribution.c (classify_partition): Do not classify
	as builtin if -ftree-loop-distribute-patterns is not enabled.
	(fuse_partitions_with_similar_memory_accesses): Inline ...
	(ldist_gen): ... here.  Fuse all non-builtin partitions if
	-ftree-loop-distribution is not enabled.  Properly return
	the number of created partitions.  Do not update SSA form here but ...
	(tree_loop_distribution): ... once here for the whole function.
	Only walk innermost loops, constrain loops we consider here
	further.  Do not call remove_similar_memory_refs.
	(distribute_loop): Do not check number of loop nodes here.

2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>

	* Makefile.in (GIMPLE_H): Do not depend on TARGET_H.

2012-06-03  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (ipa_get_jf_known_type_offset): New function.
	(ipa_get_jf_known_type_base_type): Likewise.
	(ipa_get_jf_known_type_component_type): Likewise.
	(ipa_get_jf_constant): Likewise.
	(ipa_get_jf_pass_through_formal_id): Likewise.
	(ipa_get_jf_pass_through_operation): Likewise.
	(ipa_get_jf_ancestor_offset): Likewise.
	(ipa_get_jf_ancestor_type): Likewise.
	(ipa_get_jf_ancestor_formal_id): Likewise.
	(ipa_get_jf_member_ptr_pfn): Likewise.
	* ipa-prop.c (ipa_set_jf_known_type): New function.
	(ipa_set_jf_constant): Likewise.
	(ipa_set_jf_simple_pass_through): Likewise.
	(ipa_set_jf_arith_pass_through): Likewise.
	(ipa_set_ancestor_jf): Likewise.
	(fill_member_ptr_cst_jump_function): Moved up and renamed to
	ipa_set_jf_member_ptr_cst.
	(detect_type_change_1): Use the new jump function creation functions.
	(compute_complex_assign_jump_func): Likewise.
	(compute_complex_ancestor_jump_func): Likewise.
	(compute_known_type_jump_func): Likewise.
	(compute_scalar_jump_functions): Likewise.
	(compute_pass_through_member_ptrs): Likewise.
	(determine_cst_member_ptr): Likewise.
	(combine_known_type_and_ancestor_jfs): Likewise.
	(try_make_edge_direct_simple_call): Likewise.
	(try_make_edge_direct_virtual_call): Likewise.
	(update_indirect_edges_after_inlining): Likewise.
	* ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
	access functions.  Incorporat NOP_EXPR and BINFO handling from its
	callers.
	(ipa_get_jf_ancestor_result): Likewise.  Incorporate handling BINFOs
	which was in its callers.
	(ipa_value_from_jfunc): Use jump function access functions.  Some
	functionality moved to functions above.
	(propagate_vals_accross_ancestor): Likewise.
	(propagate_vals_accross_pass_through): Use jump function access
	functions.
	(propagate_accross_jump_function): Likewise.
	* ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
	access functions.
	(inline_merge_summary): Likewise.

2012-06-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
	* config/pa/pa.c (pa_attr_length_millicode_call): Use
	MAX_PCREL17F_OFFSET instead of fixed offset.
	(pa_attr_length_call): Likewise.
	(pa_attr_length_indirect_call): Likewise.

2012-06-03  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53512
	* config/sh/sh.opt (mfsca, mfsrra): New options.
	* config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
	condition.
	(fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
	(sinssf2, cossf2): Fold expanders to ...
	(sincossf3): ... this new expander.  Use TARGET_FPU_ANY and
	TARGET_FSCA condition.
	* config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and
	TARGET_FSCA.
	* doc/invoke.texi (SH Options): Add descriptions for -mfsca,
	-mno-fsca, -mfsrra, -mno-fsrra.

2012-06-03  Matt Turner  <mattst88@gmail.com>

	* config/mips/4600.md (r4700_imul_si): New.
	(r4700_imul_di): New.
	(r4700_fmul_single): New.
	(r4700_fmul_double): New.
	* config/mips/mips-cpus.def: Add r4700.
	* config/mips/mips.c: Likewise.
	* config/mips/mips.md: Likewise.
	* config/mips/mips-tables.opt: Regenerate.

2012-06-02  Steven Bosscher  <steven@gcc.gnu.org>

	* config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
	new function sparc_initial_elimination_offset.
	* config/sparc/sparc.c (sparc_initial_elimination_offset): New
	function.
	* config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
	Prototype it.

2012-06-02  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* expmed.c (expand_mult, choose_multiplier): Change
	"2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
	* expr.c (convert_modes): Likewise.
	* explow.c (plus_constant): Likewise.
	* fixed-value.c (fixed_saturate1, fixed_saturate2)
	(do_fixed_add, do_fixed_multiply, do_fixed_multiply)
	(do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
	(do_fixed_divide, do_fixed_divide, do_fixed_divide)
	(do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
	(do_fixed_shift, fixed_convert, fixed_convert)
	(fixed_convert_from_int, fixed_convert_from_int)
	(fixed_convert_from_real): Likewise.
	* fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
	(native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
	* varasm.c (output_constructor_bitfield): Likewise.
	* tree-vrp.c (register_edge_assert_for_2): Likewise.
	* double-int.c (rshift_double, lshift_double): Likewise.
	* double-int.h (double_int_fits_in_uhwi_p, double_int, double_int):
	Likewise.
	* simplify-rtx.c (mode_signbit_p)
	(simplify_const_unary_operation, simplify_binary_operation_1)
	(simplify_immed_subreg): Likewise.
	* builtins.c (c_readstr, fold_builtin_bitop): Likewise.
	* tree-vect-generic.c (build_replicated_const): Likewise.
	* dbxout.c (stabstr_O): Likewise.
	* emit-rtl.c (immed_double_int_const, immed_double_const)
	(gen_lowpart_common, init_emit_once): Likewise.
	* tree.c (integer_pow2p, tree_log2, tree_floor_log2)
	(widest_int_cst_value, upper_bound_in_type): Likewise.
	* stor-layout.c (initialize_sizetypes, fixup_signed_type)
	(fixup_unsigned_type): Likewise.
	* real.c (real_to_integer2, real_from_integer): Likewise.
	* dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
	(clz_loc_descriptor, mem_loc_descriptor): Likewise.

2012-06-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/53501
	* fold-const.c (fold_binary_loc): Refine previous change.

2012-06-01  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
	the "do {" part of the do-while(0) loop.

2012-06-01  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>

	* config/i386/i386.c (x86_sched_reorder): New function.
	Added new function x86_sched_reorder.

2012-06-01  Richard Guenther  <rguenther@suse.de>

	* tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
	Handle PHIs.
	(classify_partition): Likewise.

2012-06-01  Richard Guenther  <rguenther@suse.de>

	* tree-loop-distribution.c (enum partition_kind): New enum.
	(struct partition_s): Add kind and main_stmt members.
	(partition_alloc): Initialize kind to PKIND_NORMAL.
	(partition_builtin_p): New function.
	(copy_loop_before): Remove failure path and assert instead.
	(generate_loops_for_partition): Likewise.
	(generate_memset_zero): Fold into ...
	(generate_memset_builtin): ... this.
	(classify_partition): New function with code from
	can_generate_builtin and generate_builtin.
	(generate_builtin): Remove.
	(can_generate_builtin): Likewise.
	(fuse_partitions_with_similar_memory_accesses): Call
	partition_builtin_p instead of can_generate_builtin.
	(rdg_build_partitions): Do not call
	fuse_partitions_with_similar_memory_accesses here...
	(ldist_gen): ... but here after classifying all partitions.
	Remove failure path of generate_code_for_partition.
	(generate_code_for_partition): Generate code according
	to partition classification.

2012-06-01  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/50134
	* doc/invoke.texi (Warning Options): Explain purpose and differences
	between -Wmissing-prototypes and -Wmissing-declarations.

2012-06-01  Christian Bruel  <christian.bruel@st.com>

	* gcc.c (save_switch): Add user_p parameter.
	(read_specs): Likewise.
	(set_specs): Likewise.
	(validate_switches): Likewise.
	(validate_switches_from_spec): Likewise.
	(validate_all_switches): Pass on user_p parameter.
	(struct spec_list): Add user_p field.
	(struct switchstr): Add known field.
	(save_switch): Add known parameter.
	(INIT_STATIC_SPEC): Initialize user_p;
	(driver_unknown_option_callbac): call save_switch if
	OPT_SPECIAL_unknown.
	(driver_handle_option): Propagate OPT_specs.
	(do_spec_1): Set validated only if known.
	(check_live_switch): Likewise.
	(validate_switches): Set validated if known or user_spec.

2012-06-01  Hans-Peter Nilsson  <hp@axis.com>

	Add CRIS atomic patterns for 1, 2, and 4 bytes.
	* config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
	* config/cris/cris-protos.h: Declare it.
	* config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
	(TARGET_DEFAULT): Add alignment by 32.
	[!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
	case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
	TARGET_CPU_DEFAULT == 32.
	(TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
	* config/cris/cris.md: Include sync.md.  Avoid allocating specific
	numbers by replacing the define_constants for all UNSPECs with the
	equivalent define_c_enum construct.
	* config/cris/cris.opt (mtrap-unaligned-atomic): New option.
	* config/cris/sync.md: New file.

2012-05-31  Matt Turner  <mattst88@gmail.com>

	* config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
	(r4600_imul_di): New.
	(r4600_idiv_si): Rename from r4600_idiv.
	(r4600_idiv_di): New.

2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>

	* output.h (__gcc_host_wide_int__): Move to hwint.h.
	(decl_default_tls_model): Move to tree.h
	(dump_file): Move to system.h.
	(default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
	dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
	dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
	dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
	dbxout_stab_value_zero, dbxout_stab_value_label_diff,
	dbxout_stab_value_internal_label,
	dbxout_stab_value_internal_label_diff): Move from here ...
	* dbxout.h: ... to here.
	* system.h (dump_file): Moved here from output.h.
	* hwint.h (__gcc_host_wide_int__): Moved here from output.h.
	* tree.h (decl_default_tls_model): Moved here from output.h.
	* varasm.c (default_stabs_asm_out_destructor,
	default_stabs_asm_out_constructor): Move from here ...
	* dbxout.c: ... to here.

	* gcov-dump.c (dump_file): Rename to dump_gcov_file.  Update callers.

	* collect2.h (dump_file): Rename to dump_ld_file.
	* collect2.c: Likewise.
	* tlink.c: Likewise.

	* alias.c: Do not include output.h.
	* auto-inc-dec.c: Likewise.
	* bt-load.c: Likewise.
	* caller-save.c: Likewise.
	* cfg.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphclones.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* dbgcnt.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* dojump.c: Likewise.
	* fwprop.c: Likewise.
	* gcse.c: Likewise.
	* graph.c: Likewise.
	* haifa-sched.c: Likewise.
	* hw-doloop.c: Likewise.
	* ipa-inline-transform.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-utils.c: Likewise.
	* ira-build.c: Likewise.
	* ira-emit.c: Likewise.
	* lcm.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-iv.c: Likewise.
	* loop-unroll.c: Likewise.
	* loop-unswitch.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* mcf.c: Likewise.
	* mode-switching.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* profile.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* regmove.c: Likewise.
	* regstat.c: Likewise.
	* reload1.c: Likewise.
	* sched-ebb.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* tracer.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-nomudflap.c: Likewise.
	* tree-optimize.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* web.c: Likewise.

	* config/m32r/m32r.c: Include dbxout.h.
	* config/pa/pa.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.

	* Makefile.in: Fix dependencies.
	* config/rs6000/t-rs5000: Likewise.

2012-05-31  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
	* gimple.h (block_in_transaction): Check for flag_tm.

2012-05-31  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/52558
	* cfg.c (alloc_aux_for_edge): Fix comment.
	(alloc_aux_for_edge): Remove static.
	* basic-block.h (alloc_aux_for_edge): Protoize.
	* tree-ssa-loop-im.c (execute_sm_if_changed): New.
	(execute_sm_if_changed_flag): New.
	(execute_sm_if_changed_flag_set): New.
	(execute_sm): Do not generate data races unless requested.
	(tree_ssa_lim_initialize): Call alloc_aux_for_edges.
	(tree_ssa_lim_finalize): Call free_aux_for_edges.
	* gimple.h (block_in_transaction): New.
	(gimple_in_transaction): Use block_in_transaction.

2012-05-31  Georg-Johann Lay  <avr@gjlay.de>

	PR target/51345
	* config/avr/avr.opt (-msp8): Document it.
	* doc/invoke.texi (AVR Options): Ditto.  And document related
	built-in macros.

2012-05-31  Diego Novillo  <dnovillo@google.com>

	* configure.ac (CXX_FOR_BUILD): Define and substitute.
	(BUILD_CXXFLAGS): Define and substitute.
	* Makefile.in (BUILD_CXXFLAGS): Define.
	(CXX_FOR_BUILD): Define.
	(COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
	(LINKER_FOR_BUILD): Likewise.
	(BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
	(BUILD_LINKERFLAGS): Likewise.
	* configure: Regenerate.

2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>

	* Makefile.in: Fix many dependencies.
	* tree-profile.c: Don't include regs.h.
	* tree-vectorizer.c: Don't include cfglayout.h.
	* tree-vect-stmts.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* reg-stack.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* toplev.c: Likewise.
	* varasm.c: Don't include cfglayout.h, basic-block.h,
	and tree-iterator.h.
	* tree-cfgcleanup.c: Don't include cfglayout.h.
	* passes.c: Don't include cfglayout.h, dwarf2asm.h,
	dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
	* cgraphclones.c: Don't include plugin.h.

2012-05-31  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/t-avr: Correct avr-mmcu.texi dependencies.
	(s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
	* doc/avr-mmcu.texi (svn:eol-style): Set to native.

2012-05-31  Richard Guenther  <rguenther@suse.de>

	* tree-loop-distribution.c (struct partition_s): New struct,
	typedef and vector type.
	(partition_alloc, partition_free): New functions.
	(generate_loops_for_partition, generate_builtin,
	generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
	rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
	build_rdg_partition_for_component, can_generate_builtin,
	similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
	rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
	number_of_rw_in_partition, partition_contains_all_rw,
	ldist_gen): Use partition_t instead of bitmap.

2012-05-31  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
	* doc/avr-mmcu.texi: Regenerate.

2012-05-31  Richard Guenther  <rguenther@suse.de>

	* tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
	Use FOR_EACH_SSA_DEF_OPERAND.
	(generate_builtin): Adjust.
	(stmt_generated_in_another_partition): Remove.
	(add_scalar_computations_to_partition): Likewise.
	(rdg_build_partitions): Do not call
	add_scalar_computations_to_partition.

2012-05-31  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-dfa.c (get_ref_base_and_extent): Compute the offset using
	double ints throughout.
	* tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
	Check that the position of the field is representable as an integer.

2012-05-31  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (dr_analyze_innermost): Properly convert
	the MEM_REF offset to sizetype.

2012-05-31  Georg-Johann Lay  <avr@gjlay.de>

	* doc/invoke.texi (AVR Options): Fix typos.

2012-05-31  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (CC1_SPEC): Pass through all -march=
	and -mcpu= options.
	(ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
	non-v32 into --march=v0_v10.

2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-int.h (target_ira_int): Rename x_move_cost to
	x_ira_register_move_cost, x_may_move_in_cost to
	x_ira_may_move_in_cost and x_may_move_out_cost to
	x_ira_may_move_out_cost.  Delete the old fields with
	those names and also x_ira_max_register_move_cost,
	x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
	(move_cost, may_move_in_cost, may_move_out_cost)
	(ira_max_register_move_cost, ira_max_may_move_in_cost)
	(ira_max_may_move_out_cost): Delete.
	* ira.c (init_move_cost): Rename to...
	(ira_init_register_move_cost): ...this, deleting the old
	function with that name.  Apply above variable renamings.
	Retain asserts for null fields.
	(ira_init_once): Don't initialize register move costs here.
	(free_register_move_costs): Apply above variable renamings.
	Remove code for deleted fields.

2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.c (init_move_cost): Adjust choice of subclasses to match
	the current ira_init_register_move_cost choice.  Use
	ira_class_subset_p instead of reg_class_subset_p.
	(ira_init_register_move_cost): Assert that move_cost,
	may_move_in_cost and may_move_out_cost already hold the desired
	values for their ira_* equivalents.  For the latter two,
	ignore classes that can't store a register of the given mode.

2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.c (setup_allocno_and_important_classes): Use
	ira_class_hard_regs_num to check whether a class has any
	allocatable registers.
	(ira_init_register_move_cost): Likewise.

2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.c (init_move_cost): Adjust local variable names to match
	file conventions.  Use ira_assert instead of gcc_assert.

2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
	Move these definitions and associated target_globals fields to...
	* ira-int.h: ...here.
	* rtl.h (init_move_cost): Delete.
	* reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
	* ira.c: ...here, making the latter static.

2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
	and ira_register_move_cost instead of init_move_cost and move_cost.

2012-05-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.h (target_ira): Delete x_ira_available_class_regs.
	(ira_available_class_regs): Delete.
	* ira.c (setup_available_class_regs): Delete.
	(setup_alloc_classes): Don't call it.
	(setup_pressure_classes): Use ira_class_hard_regs_num instead of
	ira_available_class_regs.
	* haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
	(model_spill_cost): Likewise.
	* ira-build.c (low_pressure_loop_node_p): Likewise.
	* ira-color.c (color_pass): Likewise.
	* ira-emit.c (change_loop): Likewise.
	* ira-lives.c (inc_register_pressure, dec_register_pressure)
	(single_reg_class, ira_implicitly_set_insn_hard_regs)
	(process_bb_node_lives): Likewise.
	* loop-invariant.c (gain_for_invariant): Likewise.

2012-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/52999
	* config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
	(pa_section_type_flags): New.
	(pa_legitimate_constant_p): Revert previous change.

2012-05-30  Steven Bosscher  <steven@gcc.gnu.org>

	* ira.c (allocate_initial_values): Make static.

2012-05-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
	Generate tls_initial_exec_64_sun only when !TARGET_X32.

2012-05-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53501
	* fold-const.c (fold_binary_loc): Make sure to call
	fold_plusminus_mult_expr with the original sign of operands.

2012-05-30  Steven Bosscher  <steven@gcc.gnu.org>

	* Makefile.in: Fix many dependencies.
	(DWARF2_H): Depend on dwarf2.def.
	(RTL_ERROR_H): Depend on rtl-error.h.
	(TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New.  Replace
	all gimple-pretty-print.h and tree-pretty-print.h references.

2012-05-30  Marc Glisse  <marc.glisse@inria.fr>

	* simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
	concatenations.

2012-05-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53522
	* tree-emutls.c (gen_emutls_addr): Do not add globals to
	referenced-vars.

2012-05-30  Eric Botcazou  <ebotcazou@adacore.com>

	* explow.c (probe_stack_range): Restore simple control flow and stop
	again when the probe cannot be generated if HAVE_check_stack.

2012-05-30  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/53519
	* combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
	instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.

2012-05-30  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.

2012-05-29  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR debug/53453
	* doc/tm.texi: Update.
	* doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
	* target.def (force_at_comp_dir): New hook.
	* config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
	* dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.

2012-05-29  Jack Howarth  <howarth@bromo.med.uc.edu>

	* config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
	Darwin >= 10.
	(DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
	(DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.

2012-05-29  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51340
	* config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
	flag_unsafe_math_optimizations is set.
	* doc/invoke.texi (SH Options): Add -mno-fused-madd description.
	Update description of -mfused-madd.

2012-05-29  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/52941
	* config/sh/predicates.md (atomic_arith_operand,
	atomic_logical_operand): New predicates.
	* config/sh/sh.c (sh_option_override): Check atomic options.
	* config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
	UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
	(DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
	UNSUPPORTED_HARD_ATOMIC_CPU.
	* config/sh/sync.md: Update description comments.
	(I12): New mode iterator.
	(fetchop_predicate, fetchop_constraint): New code attributes.
	(atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
	atomic_exchangesi_hard, atomic_exchange<mode>_hard,
	atomic_fetch_<fetchop_name>si_hard,
	atomic_fetch_<fetchop_name><mode>_hard,
	atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
	atomic_<fetchop_name>_fetchsi_hard,
	atomic_<fetchop_name>_fetch<mode>_hard,
	atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
	atomic_test_and_set_hard): New insns.
	(atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
	atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
	atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
	atomic_test_and_set_soft): Use same formatting for the first line of
	the asm block as in new insns above.
	(atomic_compare_and_swap<mode>, atomic_exchange<mode>,
	atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
	atomic_test_and_set): Integrate new *_hard insns into expanders.
	* config/sh/sh.opt (mhard-atomic): New option.
	* doc/invoke.texi (SH Options): Document it.

2012-05-29  Meador Inge  <meadori@codesourcery.com>

	* c-decl.c (c_push_function_context): Always create a new language
	function.
	(c_pop_function_context): Clear the language function created in
	c_push_function_context.

2012-05-29  Matt Turner  <mattst88@gmail.com>

	* config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
	(define_bypass "ev6_fcmov"): New.

2012-05-29  Steven Bosscher  <steven@gcc.gnu.org>

	* integrate.c: Remove.
	* integrate.h: Remove.
	* Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
	* config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
	* config/rs6000/t-rs6000: Likewise
	* config/spu/t-spu-elf: Likewise.
	* function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
	get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
	from integrate.h to here.
	(initial_value_entry): New prototype.
	* reload.h (allocate_initial_values): Remove prototype.
	* tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
	* cse.c (fixed_base_plus_p): Don't handle virtual registers for
	integrate.c.
	* dwarf2out.c (set_decl_origin_self, set_block_origin_self,
	set_decl_abstract_flags, set_block_abstract_flags): Move from
	integrate.c to here, the only user.
	* expmed.c (extract_fixed_bit_field): Remove outdated comment
	about integrate.c.
	* function.c: Don't include integrate.h.
	(struct initial_value_pair, struct initial_value_struct,
	get_hard_reg_initial_val, has_hard_reg_initial_val,
	get_hard_reg_initial_reg, emit_initial_value_sets): Move from
	integrate.c to here.
	(initial_value_entry): New function.
	* genemit.c (main): Don't print integrate.h include line.
	* ira.c: Don't include integrate.h.
	(allocate_initial_values): Move from integrate.c to here.
	(ira): Update allocate_initial_values call.
	* tree-inline.c: Don't include integrate.h.
	(function_attribute_inlinable_p): Moved from integrate.c to here.
	* cfgexpand.c: Don't include integrate.h.
	* except.c: Likewise.
	* langhooks.c: Likewise.
	* passes.c: Likewise.
	* toplev.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/epiphany/epiphany.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/score/score.c: Likewise.
	* config/picochip/picochip.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/c6x/c6x.c: Include function.h instead of integrate.h.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.

2012-05-29  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/t-avr (s-avr-mmcu-texi): Call
	gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.

2012-05-29  Michael Matz  <matz@suse.de>

	* rtl.h (assign_stack_temp, assign_stack_temp_for_type,
	assign_temp): Remove 'keep' argument.
	(mark_temp_addr_taken): Remove prototype.
	* tree.h (expand_decl): Remove prototype.
	* function.c (struct temp_slot): Remove addr_taken and keep member.
	(assign_stack_temp_for_type) Don't initialize above, remove
	keep argument.
	(assign_stack_temp, assign_temp): Remove keep argument.
	(mark_temp_addr_taken): Remove.
	(preserve_temp_slots): Remove handling of addr_taken and keep members.
	(free_temp_slots): Ditto.
	* expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
	dead code.
	* stmt.c (expand_asm_operands): Remove dead code.
	(expand_decl): Remove.
	* c-decl.c (finish_struct): Don't call expand_decl.
	* builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
	and assign_stack_temp.
	* calls.c (save_fixed_argument_area, initialize_argument_information,
	expand_call, emit_library_call_value_1, store_one_arg): Ditto.
	* expmed.c (extract_bit_field_1): Ditto.
	* expr.c (emit_group_load_1, emit_group_store,
	copy_blkmode_from_reg, emit_push_insn, expand_assignment,
	store_field, expand_constructor, expand_cond_expr_using_cmove,
	expand_expr_real_2, expand_expr_real_1): Ditto.
	* stmt.c (expand_asm_operands, expand_return): Ditto.

	* function.c (pop_temp_slots): Call free_temp_slots.
	* calls.c (store_one_arg): Don't call preserve_temp_slots or
	free_temp_slots.
	* expr.c (expand_assignment): Don't call free_temp_slots.

	* config/arm/arm.c (neon_expand_vector_init): Ditto.
	* config/i386/i386.c (ix86_expand_vector_set): Ditto.
	(ix86_expand_vector_extract): Ditto.
	* config/ia64/ia64.c (spill_xfmode_rfmode_operand,
	ia64_expand_movxf_movrf): Ditto.
	* config/mips/mips.c (mips_expand_vi_general): Ditto.
	* config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
	extendsfdf2): Ditto.
	* config/rs6000/rs6000.c (rs6000_expand_vector_init,
	rs6000_expand_vector_set, rs6000_expand_vector_extract,
	rs6000_allocate_stack_temp): Ditto.
	* config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
	* config/sparc/sparc.c (emit_soft_tfmode_libcall,
	sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
	sparc_expand_vector_init): Ditto.

2012-05-29  Michael Matz  <matz@suse.de>

	* c-tree.h (c_expand_decl): Remove prototype.

	* expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
	a kept temp.
	(expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
	* gimple-fold.c (canonicalize_constructor_val): Canonicalize
	COMPOUND_LITERAL_EXPR.
	* function.c (expand_function_start): Don't call expand_decl,
	instead assert that we have RTL assigned.
	* tree-ssa-live.c (remove_unused_locals): Clear
	nonlocal_goto_save_area if its backing variable is removed.
	* stmt.c (expand_asm_operands): Remove handling of non-lvalues
	as mem inputs.
	(expand_decl): Assert that this does nothing.
	* calls.c (expand_call): Don't call mark_temp_addr_taken.

2012-05-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53516
	* tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
	bitfield accesses.
	* tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.

2012-05-29  Joseph Myers  <joseph@codesourcery.com>

	* LANGUAGES: Fix typos.
	* Makefile.in: Fix typos.
	* alias.c: Fix typos.
	* auto-inc-dec.c: Fix typos.
	* bb-reorder.c: Fix typos.
	* cfgcleanup.c: Fix typos.
	* cgraph.c: Fix typos.
	* cgraph.h: Fix typos.
	* cgraphunit.c: Fix typos.
	* collect2-aix.h: Fix typos.
	* collect2.c: Fix typos.
	* compare-elim.c: Fix typos.
	* config/alpha/vms.h: Fix typos.
	* config/arm/README-interworking: Fix typos.
	* config/arm/arm.c: Fix typos.
	* config/arm/iterators.md: Fix typos.
	* config/arm/vxworks.h: Fix typos.
	* config/avr/avr.c: Fix typos.
	* config/avr/avr.h: Fix typos.
	* config/avr/avr.md: Fix typos.
	* config/avr/builtins.def: Fix typos.
	* config/c6x/c6x.c: Fix typos.
	* config/cr16/cr16.c: Fix typos.
	* config/cr16/cr16.md: Fix typos.
	* config/cris/cris.md: Fix typos.
	* config/darwin.c: Fix typos.
	* config/darwin.opt: Fix typos.
	* config/i386/i386-c.c: Fix typos.
	* config/i386/i386.c: Fix typos.
	* config/ia64/ia64.c: Fix typos.
	* config/m68k/cf.md: Fix typos.
	* config/mep/mep.c: Fix typos.
	* config/microblaze/microblaze.c: Fix typos.
	* config/microblaze/microblaze.h: Fix typos.
	* config/mn10300/mn10300.c: Fix typos.
	* config/mn10300/mn10300.md: Fix typos.
	* config/pa/pa.c: Fix typos.
	* config/picochip/picochip.h: Fix typos.
	* config/rs6000/a2.md: Fix typos.
	* config/rs6000/rs6000.c: Fix typos.
	* config/rs6000/vector.md: Fix typos.
	* config/rx/rx.md: Fix typos.
	* config/rx/rx.opt: Fix typos.
	* config/s390/2097.md: Fix typos.
	* config/s390/s390.c: Fix typos.
	* config/s390/s390.h: Fix typos.
	* config/sh/sh.c: Fix typos.
	* config/sh/sh.md: Fix typos.
	* config/sparc/sync.md: Fix typos.
	* config/spu/spu.c: Fix typos.
	* config/spu/spu.md: Fix typos.
	* config/vms/vms.c: Fix typos.
	* config/vxworks-dummy.h: Fix typos.
	* config/vxworks.h: Fix typos.
	* cselib.c: Fix typos.
	* df-scan.c: Fix typos.
	* df.h: Fix typos.
	* doc/extend.texi: Fix typos.
	* doc/install.texi: Fix typos.
	* doc/invoke.texi: Fix typos.
	* doc/md.texi: Fix typos.
	* doc/plugins.texi: Fix typos.
	* doc/rtl.texi: Fix typos.
	* dse.c: Fix typos.
	* dwarf2asm.c: Fix typos.
	* dwarf2out.c: Fix typos.
	* except.h: Fix typos.
	* expr.c: Fix typos.
	* fold-const.c: Fix typos.
	* gcc.c: Fix typos.
	* gcse.c: Fix typos.
	* genautomata.c: Fix typos.
	* gengtype-state.c: Fix typos.
	* gengtype.c: Fix typos.
	* genhooks.c: Fix typos.
	* gimple-fold.c: Fix typos.
	* gimple-pretty-print.c: Fix typos.
	* gimple.c: Fix typos.
	* gimple.h: Fix typos.
	* gimplify.c: Fix typos.
	* graphite-interchange.c: Fix typos.
	* graphite-sese-to-poly.c: Fix typos.
	* ifcvt.c: Fix typos.
	* input.c: Fix typos.
	* ipa-cp.c: Fix typos.
	* ipa-inline-analysis.c: Fix typos.
	* ipa-inline-transform.c: Fix typos.
	* ipa-inline.c: Fix typos.
	* ipa-pure-const.c: Fix typos.
	* ipa-ref.h: Fix typos.
	* ipa-reference.c: Fix typos.
	* ipa-utils.c: Fix typos.
	* ipa.c: Fix typos.
	* ira-emit.c: Fix typos.
	* ira-lives.c: Fix typos.
	* lto-streamer.c: Fix typos.
	* lto-streamer.h: Fix typos.
	* lto-wrapper.c: Fix typos.
	* mcf.c: Fix typos.
	* mode-switching.c: Fix typos.
	* modulo-sched.c: Fix typos.
	* plugin.c: Fix typos.
	* postreload.c: Fix typos.
	* sched-deps.c: Fix typos.
	* sel-sched-ir.c: Fix typos.
	* sel-sched-ir.h: Fix typos.
	* sel-sched.c: Fix typos.
	* sese.c: Fix typos.
	* stor-layout.c: Fix typos.
	* target-hooks-macros.h: Fix typos.
	* target.def: Fix typos.
	* trans-mem.c: Fix typos.
	* tree-eh.c: Fix typos.
	* tree-predcom.c: Fix typos.
	* tree-sra.c: Fix typos.
	* tree-ssa-address.c: Fix typos.
	* tree-ssa-loop-ivopts.c: Fix typos.
	* tree-ssa-loop-niter.c: Fix typos.
	* tree-ssa-math-opts.c: Fix typos.
	* tree-ssa-pre.c: Fix typos.
	* tree-ssa-propagate.c: Fix typos.
	* tree-ssa-reassoc.c: Fix typos.
	* tree-ssa-sccvn.c: Fix typos.
	* tree-ssa-ter.c: Fix typos.
	* tree-ssa-uninit.c: Fix typos.
	* tree-ssanames.c: Fix typos.
	* tree-vect-generic.c: Fix typos.
	* tree-vect-slp.c: Fix typos.
	* tree.c: Fix typos.
	* tree.h: Fix typos.
	* varasm.c: Fix typos.
	* varpool.c: Fix typos.

2012-05-29  Joseph Myers  <joseph@codesourcery.com>

	* doc/include/texinfo.tex: Update to version 2012-05-16.16.

2012-05-29  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (find_vars_r): Do not call add_referenced_vars
	for globals.
	(add_referenced_var_1): Re-organize.  Assert we are not
	called for globals.
	(remove_referenced_var): Likewise.
	* varpool.c (add_new_static_var): Use create_tmp_var_raw.
	* tree-mudflap.c (execute_mudflap_function_ops): Do not
	call add_referenced_var on globals.
	* matrix-reorg.c (transform_access_sites): Likewise.

2012-05-29  Steven Bosscher  <steven@gcc.gnu.org>

	* alias.c (reg_known_value): Make this a VEC.
	(reg_known_equiv_p): Make this an sbitmap.
	(reg_known_value_size): Remove.
	(get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
	set_reg_known_equiv_p): Update for reg_known_value and
	reg_known_value_size data structure change.
	(init_alias_analysis, end_alias_analysis): Likewise.

2012-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/53510
	* input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
	to avoid leaking memory.  No need to handle memory allocation
	failure.  Double string_len on each reallocation instead of adding 2.
	* gcov.c (read_line): Likewise.

2012-05-29  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
	New macros.
	* config/cris/cris.md ("trap"): Define, enabled for
	TARGET_TRAP_USING_BREAK8.
	* config/cris/cris.opt (mtrap-using-break8): New option.

2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/25137
	* doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
	for C++.

2012-05-28  Hans-Peter Nilsson  <hp@axis.com>

	* doc/md.texi (stack_protect_test): Remove negation of branch to label.
	(Standard Names): Fix typos in documentation of atomic patterns.

2012-05-27  Nathan Sidwell  <nathan@acm.org>

	* tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.

2012-05-26  Jason Merrill  <jason@redhat.com>

	PR c++/53220
	* c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
	about array compound literals.

2012-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
	if CLEANUP_NO_INSN_DEL.
	* cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
	from cfg_layout_merge_blocks.
	(emit_nop_for_unique_locus_between): New function.
	(rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
	(cfg_layout_merge_blocks): Likewise.

2012-05-26  Dimitrios Apostolou  <jimis@gmx.net>
	    Paolo Bonzini  <bonzini@gnu.org>

	* df-scan.c (df_def_record_1): Assert a parallel must contain an
	EXPR_LIST at this point.  Receive the LOC and move its extraction...
	(df_defs_record): ... here. Change if-else to a switch statement.
	(df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
	(df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
	and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
	DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
	regs_invalidated_by_call.
	(df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
	df_get_call_refs().

2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/52178
	* tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
	* tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.

2012-05-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/t-linux64: Delete the 32-bit multilib that uses
	software floating point emulation.  No longer build the multilibs
	with -mstrict-align.

2012-05-25  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/53008
	* trans-mem.c (ipa_tm_create_version_alias): Output new_node if
	accessed indirectly.
	(ipa_tm_create_version): Same.

2012-05-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53474
	* config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
	<case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.

2012-05-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>

	PR target/53435
	* config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
	(ix86_expand_vec_perm): Use int mode instead of float.
	(expand_vec_perm_pshufb): Remove handling of useseless type
	conversion.

2012-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/52362
	* config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
	gnu_ld variables to yes.
	* configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
	(HAVE_GNU_AS): Likewise.
	* config.in: Regenerate.
	* configure: Likewise.

2012-05-25  Tristan Gingold  <gingold@adacore.com>

	* config/i386/i386.c (struct ix86_frame): Remove unused frame field.
	(ix86_compute_frame_layout): Fix type of stack_alignment_needed
	and preferred_alignment.

2012-05-25  Tristan Gingold  <gingold@adacore.com>

	* common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.

2012-05-25  Thomas Schwinge  <thomas@codesourcery.com>

	* fold-const.c (optimize_bit_field_compare): Abort early in the strict
	volatile bitfields case.

2012-05-24  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Change
	rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
	(adjacent_mem_locations): Move some code to and call...
	(get_memref_parts): ...new function.
	(mem_locations_overlap): New function.
	(rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
	(is_mem_ref): Rename to...
	(find_mem_ref): ...this. Return MEM rtx.
	(get_store_dest): Remove function.
	(is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
	new parameter and adjust calls.
	(rs6000_is_costly_dependence): Update calls for extra arg. Make sure
	mem refs overlap for true_store_to_load_dep_costly.
	(rs6000_sched_reorder2): Update calls for extra arg. Adjust args
	passed to adjacent_mem_locations.
	(is_costly_group): Walk resolved dependency list.
	(force_new_group): Emit group ending nop for Power6/Power7.
	* config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
	(group_ending_nop): New define_insn.

2012-05-24  Dodji Seketeli  <dodji@redhat.com>

	Make unwound macro expansion trace less redundant
	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
	context of macro definition in the trace, when it's redundant.
	Update comments.

2012-05-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53460
	* tree-profile.c (tree_profiling): Cleanup the CFG if
	execute_fixup_cfg requests it.

2012-05-24  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (create_var_ann): Remove.
	* tree-dfa.c (create_var_ann): Remove and inline into its
	single caller ...
	(add_referenced_var_1): ... here.
	* varpool.c (add_new_static_var): Do not call add_referenced_var
	for global vars.
	* gimple-fold.c (canonicalize_constructor_val): Likewise.
	* tree-switch-conversion.c (build_one_array): Likewise.
	* tree-profile.c (gimple_gen_ic_profiler): Likewise.
	* tree-flow-inline.h (gimple_referenced_vars): Guard against
	NULL fn argument.
	* tree-inline.c (remap_gimple_op_r): Likewise.  Check
	gimple_referenced_vars instead of gimple_in_ssa_p.
	(copy_tree_body_r): Likewise.
	(setup_one_parameter): Likewise.
	(declare_return_variable): Likewise.
	(tree_function_versioning): Likewise.

2012-05-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53465
	* tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
	vr0 into *vr, then vrp_meet that.
	(vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
	have any equivalences.
	(vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
	first time.

2012-05-24  Jim MacArthur  <jim.macarthur@arm.com>

	* recog.c (reg_fits_class_p): Check both regno and regno + offset are
	hard registers.
	* regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
	check end_regno - 1 is a hard register.

2012-05-24  Richard Guenther  <rguenther@suse.de>

	* varpool.c (add_new_static_var): Remove call to create_var_ann.
	* tree-ssa-operands.c (create_vop_var): Likewise.

2012-05-24  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/53466
	* tree-ssa-live.c (remove_unused_scope_block_p): Properly
	handle globals.
	(remove_unused_locals): Pass global_unused_vars to
	remove_unused_scope_block_p.  Restore code walking all
	referenced vars and pruning them.

2012-05-23  Jan Hubicka  <jh@suse.cz>

	* tree.h (alias_diag_flags): Remove.
	(alias_pair): Remove emitted_diags.
	(finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
	symbol_alias_set_t, symbol_alias_set_destroy,
	symbol_alias_set_contains, propagate_aliases_backward): Remove.
	* toplev.c (compile_file): Do not call finish_aliases_2
	* cgraphunit.c (cgraph_process_new_functions): Do not call
	finish_aliases_1.
	(handle_alias_pairs): Output diagnostics about aliases to externals.
	(assemble_thunks_and_aliases): Use do_assemble_alias.
	(output_weakrefs): Likewise.
	(finalize_compilation_unit): Do not call finish_aliases_1.
	* ipa.c (symtab_remove_unreachable_nodes): De not call
	remove_unreachable_alias_pairs.
	* varasm.c (do_assemble_alias): Export.
	(symbol_alias_set_create, symbol_alias_set_destroy,
	symbol_alias_set_contains, symbol_alias_set_insert,
	propagate_aliases_forward, propagate_aliases_backward,
	propagate_aliases_backward, trivially_visible_alias,
	trivially_defined_alias, remove_unreachable_alias_pairs,
	finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
	* output.h (do_assemble_alias): Declare.
	* varpool.c (varpool_remove_unreferenced_decls): Do not call
	finish_aliases_1.

2012-05-23  Martin Jambor  <mjambor@suse.cz>

	* ipa-inline-analysis.c (inline_merge_summary): Free operand_map.

2012-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
	size handling.
	(gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
	(iterative_hash_gimple_type): Adjust comment.
	(iterative_hash_canonical_type): Likewise.  Hash the bounds of the
	domain for an array type instead of the domain type itself.

2012-05-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53438
	* tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.

2012-05-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/53448
	* config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
	* config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
	ASM_OUTPUT_ALIGN.

2012-05-23  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (add_referenced_var_1): Do not add global vars.
	* tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
	via the global_unused_vars bitmap.
	(remove_unused_locals): Handle global vars in local-decls via
	a global_unused_vars bitmap instead of the used flag in the
	var annotation.  Simplify global variable handling and removal.

2012-05-22  Jan Hubicka  <jh@suse.cz>

	PR middle-end/53426
	* tree-ssa-structalias.c (create_variable_info_for): Skip constructors
	from other partitions.

2012-05-22  Jan Hubicka  <jh@suse.cz>

	PR middle-end/53161
	* symtab.c (symtab_register_node): Fix ordering issue.

2012-05-22  Steven Drake <sbd@NetBSD.org>

	* gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.

2012-05-22  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
	Use strip_name_encoding target hook.

2012-05-22  Richard Guenther  <rguenther@suse.de>

	* tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
	(init_function_for_compilation): Remove.
	* tree-dfa.c (find_vars_r): Take struct function argument.
	(find_referenced_vars_in): Adjust.
	* tree-ssa-operands.c (clobber_stats): Remove.
	(create_vop_var): Take struct function argument.  Mark
	virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
	(init_ssa_operands): Take struct function argument.
	(fini_ssa_operands): Do not dump dead stats.
	* tree-ssa-operands.h (init_ssa_operands): Take struct function
	argument.
	* cgraphunit.c (init_lowered_empty_function): Adjust.
	* lto-streamer-in.c (input_cfg): Likewise.
	* tree-inline.c (initialize_cfun): Likewise.
	* tree-into-ssa.c (rewrite_into_ssa): Likewise.
	* omp-low.c (expand_omp_taskreg): Likewise.  Avoid switching cfun.
	* gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
	virtual operands are not registers.

2012-05-22  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.

2012-05-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53437
	* tree-inline.c (setup_one_parameter): Create a dummy init
	statement for unused parameters when not optimizing.

2012-05-22  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (add_referenced_var_1): Declare.
	(add_referenced_var): Define.
	* tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
	(add_referenced_var): Rename to ...
	(add_referenced_var_1): ... this.  Take struct function argument.

2012-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/53334
	* config/arm/arm-protos.h (arm_validize_comparison): Declare.
	* config/arm/arm.c (arm_validize_comparison): Define.
	* config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
	arm_validize_comparison.
	("cbranchdi4"): Likewise.
	("cstoredi4"): Likewise.
	("movsicc"): Likewise.
	("movsfcc"): Likewise.
	("movdfcc"): Likewise.

2012-05-22  Dimitrios Apostolou  <jimis@gmx.net>

	* df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
	the mw_reg_pool size.

2012-05-22  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/53336
	* tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
	non-integer integral types to offset type and vice versa.

2012-05-22  Alan Modra  <amodra@gmail.com>

	* config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
	* config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
	* config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
	V_SAVE_INLINE): Delete.
	* config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
	(rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
	For ELF targets, use out-of-line restores for -Os and any number
	of regs if the restore exits, and out-of-line gp save for two or
	more regs.  Use save_reg_p to test for holes in reg restore set.
	Replace "#if" with "if".

2012-05-22  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (save_reg_p): New function.
	(first_reg_to_save, first_fp_reg_to_save): Use it here.
	(first_altivec_reg_to_save, restore_saved_cr): Likewise.
	(emit_frame_save): Use gen_frame_store.
	(gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
	(rs6000_emit_prologue): Use save_reg_p.  Use gen_frame_store for
	vrsave and toc.
	(rs6000_emit_epilogue): Use save_reg_p.  Use gen_frame_load for
	vrsave, toc, gp and fp restores.

2012-05-22  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c: Delete unnecessary forward declarations.
	Move those with ATTRIBUTE_UNUSED to immediately before definitions.
	Move function pointer variables after forward declarations.
	(rs6000_builtin_support_vector_misalignment): Make static.
	(rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
	(rs6000_function_value, rs6000_can_eliminate): Likewise.

2012-05-21  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/53373
	* caller-save.c (save_call_clobbered_regs): Look into a possible
	PARALLEL manually rather than using single_set on a call insn.

2012-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53436
	* omp-low.c (omp_build_component_ref): New function.
	(build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.

2012-05-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
	arguments to bool.
	(ix86_print_operand) <case 'O'>: Look at mode size of the operand.
	Do not print '.' here.  Output operand lossage error for unhandled
	sizes.  Move.
	<case '*'>: Move.
	<case '&'>: Ditto.
	<case 'Y'>: Ditto.
	<case 'z'>: Hardcode "code" argument into error strings.
	<case 'Z'>: Ditto.
	<case 'D'>: Merge AVX and non-AVX codes.
	<case 'C', case 'c', case 'F', case 'f'>: Merge.  Fix error string.
	Update call to put_condition_code.

2012-05-21  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2.  Call
	CC_STATUS_INIT.
	(clzsi2): New expander.
	(*clzsi2_68k): New insn.
	* config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.

2012-05-21  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.h (gimple_set_in_transaction): Remove.
	(gimple_in_transaction): Look in BB instead.
	(gimple_statement_base): Remove in_transaction field.
	* basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
	* trans-mem.c (compute_transaction_bits): Place transaction bit
	information into basic blocks.

2012-05-21  Andreas Schwab  <schwab@linux-m68k.org>

	* expr.c (get_def_for_expr_class): Define only if
	HAVE_conditional_move.
	(convert_tree_comp_to_rtx): Likewise.

2012-05-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53399
	* config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
	for TARGET_BMI.
	(ffssi2_no_cmove): Ditto.
	(*ffs<mode>_1): Remove insn pattern.
	(*tzcnt<mode>_1): New insn pattern.
	(*bsf<mode>1): Ditto.

2012-05-21  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
	more referenced vars.
	* tree-ssa-live.c (mark_all_vars_used_1): Only set the used
	flag on variables that have a var-annotation.

2012-05-21  Joseph Myers  <joseph@codesourcery.com>

	PR c/53418
	* c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
	from folded operands before wrapping another around the
	conditional expression.

2012-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53366
	* tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
	tests if complex_numbers == 2, but there are non-complex number loads
	too.

	PR tree-optimization/53409
	* tree-vect-loop.c (vect_analyze_loop_operations): Don't check
	vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.

	PR tree-optimization/53410
	* fold-const.c (fold_binary_loc): Use build_zero_cst (type)
	instead of build_int_cst (type, 0) where vector types might be
	involved. Instead of build_int_cst (type, 1) convert the original
	integer_onep argument to the desired type.

2012-05-21  Michael Matz  <matz@suse.de>

	* genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
	(simplify_test_exp): Handle one more case of distributive law,
	decrease cost threshold.
	(tests_attr_p, get_attr_order): New functions.
	(optimize_attrs): Use topological order, inline only cheap values.
	(write_attr_set): Reset our_known_true after some time.

2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/53425
	* config/i386/i386.c (type_natural_mode): Warn passing SSE
	vector argument without SSE enabled changes the ABI.

2012-05-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53408
	* tree-vect-loop.c (vectorizable_induction): Properly check
	the restriction that we cannot handle induction results from
	the inner loop outside of the outer loop.

2012-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/53416
	* config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
	(UNSPECV_RDRAND): This.
	(rdrand<mode>_1): Updated.

2012-05-21  Richard Guenther  <rguenther@suse.de>

	* tree-loop-distribution.c (can_generate_builtin): Reject
	volatile stmts.

2012-05-21  Chung-Lin Tang  <cltang@codesourcery.com>

	* Makefile.in (options.c): Add options.h to included header
	files, before tm.h.

2012-05-21  Razya Ladelsky  <razya@il.ibm.com>

	* tree-parloops.c : Add myself to contributors, update
	TODO list, add link to wiki.

2012-05-21  Alan Modra  <amodra@gmail.com>

	* config/rs6000/predicates.md (input_operand): Don't match
	constant pool addresses.  Remove label_ref, high and plus from
	match_code list.  Remove redundant CONSTANT_P test.
	(splat_input_operand): Similarly update match_code list.
	(small_toc_ref): New predicate.
	* config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
	* config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
	(legitimate_constant_pool_address_p): Move TARGET_TOC test and
	register checks to..
	(toc_relative_expr_p): ..here.  Add "strict" param.  Match new rtl
	generated by create_TOC_reference.
	(rs6000_legitimize_address): Update cerate_TOC_reference call.
	(rs6000_delegitimize_address): Handle new rtl for toc refs.
	(rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
	(use_toc_relative_ref): New function, split out from..
	(rs6000_emit_move): ..here.  Remove redundant tests.  Update
	create_TOC_reference calls.
	(rs6000_legitimize_reload_address): Formatting.  Handle splitting
	of medium/large model toc addresses.  Use use_toc_relative_ref.
	(print_operand): Formatting, style.  Adjust for toc changes.
	(print_operand_address): Likewise.
	(rs6000_output_addr_const_extra): Likewise.
	(create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
	than a PLUS.  Use this formulation for both high and low part
	of -mcmodel=medium/large toc reference too.  Before reload,
	always use the small model formulation.
	* config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
	a PLUS in high part of addresses here.
	(tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
	(tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
	(largetoc_high, largetoc_low): Move earlier.  Cope when no
	base reg available.
	(largetoc_high_plus): New insn.
	(movsi_internal1, movsi_internal1_single, movsf_softfloat,
	movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
	(tocref): ..instead do so here, new insn and split.

2012-05-20  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Support
	RDRND, F16C and FSGSBASE.

2012-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR rtl-optimzation/53373
	* config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
	call pattern.  Update split patterns.
	(call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
	call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.

2012-05-20  Razya Ladelsky  <razya@il.ibm.com>

	* tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
	for outer loops.

2012-05-18  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
	(cgraph_process_new_functions): Process also aliases.
	* lto-streamer-out.c (struct sets): Remove.
	(trivally_defined_alias): Remove.
	(output_alias_pair_p): Remove.
	(output_unreferenced_globals): Remove.
	(produce_symtab); Do not handle alias pairs.
	(produce_asm_for_decls): Likewise.
	* lto-streamer-in.c (input_alias_pairs): Remove.
	(lto_read_body): Do not input alias pairs.
	(lto_input_constructors_and_inits): Remove.

2012-05-18  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
	aliases.

2012-05-18  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (record_reference): Update.
	* lto-cgraph.c (lto_output_varpool_node): External vars
	are not in other partition even if they are not output
	in current partition.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
	argument; fix.
	(canonicalize_constructor_val): Take FROM_DECL argument.
	(fold_ctor_reference, fold_string_cst_ctor_reference,
	fold_array_ctor_reference, fold_nonarray_ctor_reference,
	fold_ctor_reference): Likewise.
	(fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
	* gimple.h (gimple_fold_builtin): Likewise.

2012-05-18  Olivier Hainque  <hainque@adacore.com>

	* Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
	$(libsubdir) as libexecsubdir.

2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (print_operand): Revise code that unsafely
	relied on signed overflow behavior.

2012-05-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53346
	* tree-loop-distribution.c (ldist_gen): Make sure to apply
	builtin transform even when only a single partition with
	all reads/writes exists.

2012-05-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53390
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
	strided loads.

2012-05-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* tree-ssa-reassoc.c (bip_map): Remove decl.
	(completely_remove_stmt): Remove function.
	(remove_def_if_absorbed_call): Remove function.
	(remove_visited_stmt_chain): Remove __builtin_powi handling.
	(possibly_move_powi): Remove function.
	(rewrite_expr_tree): Remove calls to possibly_move_powi.
	(rewrite_expr_tree_parallel): Likewise.
	(attempt_builtin_powi): Build multiplies explicitly rather than
	relying on the ops vector and rank system.
	(transform_stmt_to_copy): New function.
	(transform_stmt_to_multiply): Likewise.
	(reassociate_bb): Handle leftover operations after __builtin_powi
	optimization; build a final multiply if necessary.

2012-05-18  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (varpool_finalize_decl): Allow external decls.
	(mark_functions_to_output): Fix sanity check.
	* ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.

2012-05-18  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (mark_symbols_for_renaming): Remove.
	* tree-dfa.c (mark_symbols_for_renaming): Likewise.
	* tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
	(copy_debug_stmt): Likewise.
	(expand_call_inline): Likewise.
	(declare_return_variable): Mark the return variable for renaming
	if necessary.

2012-05-18  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
	prototype.
	* config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
	* config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
	(ashrdi3,lshrdi3): Likewise.
	(arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.

2012-05-18  Meador Inge  <meadori@codesourcery.com>

	PR rtl-optimization/53352
	* cse.c (equiv_constant): Ignore paradoxical subregs.

2012-05-17  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/53125
	* regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
	argument.  Simplify calculation of REG_LIVE_LENGTH for regnos that
	die in the basic block.  Correctly top off REG_FREQ and
	REG_FREQ_CALLS_CROSSED.
	Remove do_not_gen.
	(regstat_compute_ri): Allocate and free local_live_last_luid.
	Remove do_not_gen.
	(regstat_bb_compute_calls_crossed): Correctly top off
	REG_FREQ_CALLS_CROSSED.

2012-05-17  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
	constructor over decl without.
	* cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
	* cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
	* cgraphunit.c (process_function_and_variable_attributes): Finalize
	extrnal decls.
	(mark_functions_to_output): Also accept bodies for functions with
	clones.
	(output_in_order): Skip external vars.
	* lto-cgraph.c (lto_output_node): External functions are never in other
	partition.
	(lto_output_varpool_node): Likewise.
	* lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
	forgotten initializers.
	* ipa.c (process_references): Handle external vars.
	(symtab_remove_unreachable_nodes): Update to handle external vars.
	(varpool_externally_visible_p): External vars are externally visible.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
	* varpool.c (varpool_remove_node): Remove constructor.
	(decide_is_variable_needed): Handle externals.
	(varpool_remove_unreferenced_decls): Likewise.

2012-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
	(enable_warning_as_error): Do not special case Wuninitialized.
	* optc-gen.awk: Add sanity checks.

2012-05-17  Jan Hubicka  <jh@suse.cz>

	* ipa-reference.c (is_proper_for_analysis): Do not check flags
	that might change as result of global optimization.
	(analyze_function): Do not check analyzed and externally_visible
	flags; be happy about address dereferences.
	(propagate): Prune all_module_statics so it really contains just
	statics; prune all the local summaries.
	(ipa_reference_write_optimization_summary): Simplify.

2012-05-17  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
	* config/m68k/m68k-tables.opt: Regenerated.
	* doc/invoke.texi (M680x0 Options): Document.

2012-05-16  Dave Boutcher  <daveboutcher@gmail.com>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	* trans-mem.c (ipa_tm_transform_clone): Transform functions with
	indirect calls.

2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>

	* configure: Regenerated.

2012-05-16  Andrew Pinski  <apinski@cavium.com>

	* gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
	GIMPLE_ASSIGN.

2012-05-16  David S. Miller  <davem@davemloft.net>

	* jump.c (delete_related_insns): If we remove a CALL, make sure
	we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.

2012-05-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/53217
	* tree-ssa-reassoc.c (bip_map): New static variable.
	(possibly_move_powi): Move feeding multiplies with __builtin_powi call.
	(attempt_builtin_powi): Save feeding multiplies on a stack.
	(reassociate_bb): Create and destroy bip_map.

2012-05-16  Olivier Hainque  <hainque@adacore.com>

	* Makefile.in (install-no-fixedincludes): New target, former toplevel
	gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
	Add comments and improve stamp preservation across the whole sequence.
	(stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.

2012-05-16  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (insert_init_stmt): Do not call
	mark_symbols_for_renaming.
	(setup_one_parameter): Avoid initializing unused parameters.
	(declare_return_variable): Properly handle DECL_BY_REFERENCE
	return vars in SSA form.

2012-05-16  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (get_virtual_var): Remove.
	* tree-dfa.c (get_virtual_var): Likewise.

2012-05-16  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
	Remove set-only bitmap of new names.
	(slpeel_tree_peel_loop_to_edge): Likewise.  Do not set
	CFG hooks.
	* tree-flow.h (ssa_names_to_replace): Remove.
	* tree-into-ssa.c (ssa_names_to_replace): Likewise.

2012-05-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53364
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
	detect a view-conversion of the decl.

2012-05-16  Dodji Seketeli  <dodji@redhat.com>

	PR preprocessor/7263
	* c-tree.h (enum c_declspec_word): Declare new enum.
	(struct c_declspecs::locations): New member.
	(declspecs_add_qual, declspecs_add_scspec)
	(declspecs_add_addrspace, declspecs_add_alignas): Take a new
	location parameter.
	* c-decl.c (build_null_declspecs): Initialize the new struct
	c_declspecs::locations member.
	(declspecs_add_addrspace): Take a location parameter for the
	address space.  Store it onto declaration specifiers.
	(declspecs_add_qual): Likewise, take a location parameter for the
	qualifier.
	(declspecs_add_type): Likewise, take a location parameter for the
	type specifier.
	(declspecs_add_scspec): Likewise, take a location parameter for
	the storage class specifier.
	(declspecs_add_attrs): Likewise, take a location parameter for the
	first attribute.
	(declspecs_add_alignas): Likewise, take a location parameter for
	the alignas token.
	(finish_declspecs): For diagnostics, use the location of the
	relevant declspec, instead of the global input_location.
	* c-parser.c (c_parser_parameter_declaration): Pass the precise
	virtual location of the declspec to the declspecs-setters.
	(c_parser_declspecs): Likewise.  Avoid calling c_parser_peek_token
	repeatedly.

2012-05-16  Igor Zamyatin  <igor.zamyatin@intel.com>

	* configure.ac: Stack protector enabling for Android targets.
	* configure: Regenerate.

2012-05-16  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* ira.c (pseudo_move_insn): Delete.
	(find_moveable_pseudos): Don't set it.
	(move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
	the definitions of the original pseudo.  Delete all of them.

2012-05-16  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/rs6000-opts.h (enum processor_type): Add
	PROCESSOR_PPC8548.
	* config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
	* config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
	* config/rs6000/8540.md: indicate that the units/patterns apply to
	ppc8548 as well.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
	default_cpu into implicit_cpu, conveying what --with-cpu was passed at
	configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
	related flags,	check that what is queried is supported by the selected
	configuration. Rework the single/double_float and MASK_STRING resets to
	hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
	costs for PROCESSOR_PPC8548 as well.
	(rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
	(rs6000_use_sched_lookahead): Likewise, rewriting function as a case
	statement instead of a sequence of ifs.

	* config/rs6000/rs6000.h (TARGET_E500): Remove.
	(TARGET_NO_LWSYNC): Adjust accordingly.
	* config/rs6000/e500.h (TARGET_E500): Remove.
	(CHECK_E500_OPTIONS): Adjust accordingly.
	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
	(TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
	* config/rs6000/linuxspe.h: Likewise.
	* config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
	superfluous comments.
	* config/rs6000/e500-double.h: Remove.

	* config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
	default to with_cpu=8548 if --enable-e500-double, and to 8540
	otherwise.
	(set misc flags section): For powerpc*|rs6000*, remove inclusion
	of e500-double.h for --enable-e500-double.

2012-05-16  Olivier Hainque  <hainque@adacore.com>

	* Makefile.in (s-header-vars): Resort to -n instead of trailing
	-e d in sed invocation.

2012-05-16  Hans-Peter Nilsson  <hp@axis.com>

	* doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
	source-code.
	* doc/tm.texi: Regenerate.

2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.

2012-05-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/53358
	* config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
	that operands[2] is either immediate, or q_regs_operand.

2012-05-15  Richard Guenther  <rguenther@suse.de>

	* cgraphunit.c (thunk_adjust): Use make_rename_temp.
	(assemble_thunk): Likewise.  Manually rename and register
	function arguments.

2012-05-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53355
	* tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
	by constants.

2012-05-15  Tristan Gingold  <gingold@adacore.com>

	* tree-ssa-strlen.c (get_string_length): Convert lhs if needed.

2012-05-15  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_set_modified): Move ...
	* gimple.h (gimple_set_modified): ... here.

2012-05-15  Tristan Gingold  <gingold@adacore.com>

	* ira-color.c (move_spill_restore): Add a guard.

2012-05-15  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
	plus_constant.

2012-05-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_init_constructor): Do a block move for very
	small objects as well.

2012-05-15  Bernd Schmidt  <bernds@codesourcery.com>

	* ira.c (find_moveable_pseudos): Skip registers whose
	DF_REG_EQ_USE_COUNT is nonzero.

2012-05-15  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* doc/md.texi (fma): Define to only be applicable for single rounding.

2012-05-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46098
	* config/i386/i386.c (ix86_expand_special_args_builtin): Always
	generate target register for "load" class builtins.

	Revert:
	2010-10-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46098
	* config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
	Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
	(avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
	(*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
	(<sse>_movu<ssemodesuffix>): New expander.
	(*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
	(avx_movdqu<avxmodesuffix>): New expander.
	(*sse2_movdqu): Rename from sse2_movdqu.
	(sse2_movdqu): New expander.

2012-05-14  Marc Glisse  <marc.glisse@inria.fr>

	PR target/52607
	* config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
	(canonicalize_perm): ... new function.
	(expand_vec_perm_2vperm2f128_vshuf): New function.
	(ix86_expand_vec_perm_const_1): Call it.

2012-05-14  Andrew Pinski  <apinski@cavium.com>
	    H.J. Lu  <hongjiu.lu@intel.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/53315
	* config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
	(xbegin): Updated.

2012-05-14  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
	lineno 1 the same as lineno 0 before first start file directive.
	(optimize_macinfo_range): Likewise.

	* dwarf2out.c (have_macinfo): Define.
	(dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
	attribute, don't force empty compilation unit and don't emit any
	.debug_macinfo/.debug_macro section if macinfo_table is empty.

2012-05-14  Georg-Johann Lay  <avr@gjlay.de>

	PR target/53344
	* config/avr/avr.c (avr_const_address_lo16): Remove.
	(avr_assemble_integer):  Print ".byte lo8(x)",
	".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
	.warning if 3-byte address is assembled.
	* doc/extend.texi (AVR Named Address Spaces): Document that
	binutils 2.23 is needed to assemble 3-byte addresses.

2012-05-14  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_setup_realignment): Remove
	call to mark_symbols_for_renaming.
	(vect_permute_load_chain): Likewise.
	* tree-vect-loop.c (vect_is_slp_reduction): Update stmt
	instead of calling mark_symbols_for_renaming.
	* tree-vect-stmts.c (read_vector_array): Remove call to
	mark_symbols_for_renaming.
	(write_vector_array): Likewise.
	(vectorizable_call): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	* matrix-reorg.c (transform_allocation_sites): Likewise.
	* tree-ssa-pre.c (create_expression_by_pieces): Likewise.
	(create_expression_by_pieces): Likewise.

2012-05-14  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimple_regimplify_operands): Only mark the LHS
	of statements for renaming.
	(force_gimple_operand_1): Likewise, consistently for both
	calls to force_gimple_operand and force_gimple_operand_gsi.

2012-05-14  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
	* omp-low.c (expand_omp_taskreg): Properly conditionalize call
	to update_ssa.
	(expand_omp_for): Likewise.
	(expand_omp_for_generic): Adjust conditional add to referenced vars.
	Use make_rename_temp for temporaries that should be rewritten into
	SSA form.
	(expand_omp_for_static_nochunk): Likewise.
	(expand_omp_atomic_pipeline): Likewise.

2012-05-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53331
	* tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
	strided loads.
	* tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.

2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 53063
	* doc/options.texi: (LangEnabledBy): Document it.
	* optc-gen.awk: Handle LangEnabledBy.
	* opth-gen.awk: Generate declaration for lang-specific functions.
	* opt-read.awk: Record lang numbers.
	* opt-functions.awk (flag_set_p): Ignore the arguments of flags.
	(lang_sanitized_name): New.

2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>

	* attribs.c (decl_attributes): Avoid emitting a warning if
	ATTR_FLAG_BUILT_IN.
	* doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
	codes.  Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
	* builtin-attrs.def (DEF_ATTR_FOR_STRING): Define.  Use it to
	define a string "1".
	(ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
	* builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
	BUILT_IN_STRCPY): Use it for these functions.
	* postreload.c (reload_combine): Deal with SETs inside
	CALL_INSN_FUNCTION_USAGE.
	* caller-save.c (setup_save_areas, save_call_clobbered_regs):
	Look for REG_RETURNED notes and use a cheap restore if possible.
	* ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
	(ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
	* ira-build.c (ira_create_allocno, create_cap_allocno,
	propagate_allocno_info, propagate_some_info_from_allocno,
	copy_info_to_removed_store_destination, ira_flattening): Handle it.
	* ira-lives.c (pseudo_regno_single_word_and_live_p,
	find_call_crossed_cheap_reg): New static functions.
	(process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
	and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible.  Also make
	a REG_RETURNED note in that case.
	* ira.c (setup_reg_renumber): Change assert to allow cases where
	allocnos only cross calls for which they are cheap to restore.
	* ira-costs.c (ira_tune_allocno_costs): Compare
	ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
	than 0.
	* reg-notes.def (REG_RETURNED): New note.
	* cse.c (cse_insn): Likewise.
	* sched-deps.c (sched_analyze_insn): Likewise.
	* expr.c (init_block_move_fn): Set a "fn spec" attribute.
	* calls.c (decl_return_flags): New static function.
	(expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
	functions that return one of their arguments.
	* regcprop.c (struct kill_set_value_data): New.
	(kill_set_value): Interpret data as a pointer to such a struct.
	Do nothing if the caller wants the register to be ignored.
	(copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.

2012-05-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53340
	* tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.

2012-05-14  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_expr): Remove odd code.

2012-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
	into a PLUS_EXPR byte offset.

	* tree-ssa-pre.c (can_value_number_call): Delete.
	(compute_avail): Skip all statements with side effects.
	<GIMPLE_CALL>: Skip calls to internal functions.

2012-05-13  Steven Bosscher  <steven@gcc.gnu.org>

	* config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".

2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* common.opt (Wtype-limits): Use EnabledBy.

2012-05-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
	(pushtf splitter): Ditto.
	(movtf): Ditto.
	(*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
	(<code>tf2): Enable for TARGET_SSE.
	(*absnegtf2_sse): Ditto.
	(copysign<mode>3): Enable TFmode for TARGET_SSE.
	(copysign<mode>3_const): Ditto.
	(copysign<mode>3_var): Ditto.
	* config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
	(*andnottf3): Ditto.  Use V4SFmode for !TARGET_SSE2.
	(*<code>tf3): Ditto.
	* config/i386/i386.c (struct builtin_description bdesc_args)
	<IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
	<IX86_BUILTIN_COPYSIGNQ>: Ditto.
	(ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
	Emit a normal call if SSE isn't available.

2012-05-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (<sse>_andnot<mode>3): Handle
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
	(<code><mode>3): Ditto.
	(*andnot<mode>3): Ditto.
	(*andnottf3): Ditto.
	(*<code><mode>3): Ditto.
	(<code>tf3): Ditto.

2012-05-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* optc-gen.awk: Error instead of warning for conflicting help.

2012-05-12  Jason Merrill  <jason@redhat.com>

	PR debug/53235
	* dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
	comdat types.

2012-05-12  Eric Botcazou  <ebotcazou@adacore.com>

	* function.c (requires_stack_frame_p): If the function can throw
	non-call exceptions, return true if the insn can throw internally.

2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.

2012-05-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
	ORDERED and UNORDERED conditions.

2012-05-11  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (referenced_var_check_and_insert): Remove.
	(find_new_referenced_vars): Likewise.
	* tree-dfa.c (referenced_var_check_and_insert): Make static.
	(find_new_referenced_vars_1, find_new_referenced_vars): Remove.
	* tree-inline.c (copy_bb): Use find_referenced_vars_in
	instead of find_new_referenced_vars.
	* gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.

2012-05-11  Richard Guenther  <rguenther@suse.de>

	* tree-pass.h (pass_rest_of_compilation,
	pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
	Remove.
	* passes.c (pass_all_optimizations, pass_postreload,
	pass_all_early_optimizations): Make static.
	(pass_rest_of_compilation): Likewise.  Make it an RTL_PASS.
	* tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
	* tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
	(delete_tree_ssa): Do not call fini_phinodes.
	* tree-flow.h (init_phinodes, fini_phinodes): Remove.

2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 53063
	* doc/options.texi (EnabledBy): Document
	* opts.c: Include opts.h and options.h before tm.h.
	(finish_options): Do not handle some sub-options here...
	(common_handle_option): ... instead call common_handle_option_auto
	here.
	* optc-gen.awk: Handle EnabledBy.
	* opth-gen.awk: Declare common_handle_option_auto.
	* common.opt (Wuninitialized): Use EnabledBy. Delete Init.
	(Wmaybe-uninitialized): Likewise.
	(Wunused-but-set-variable): Likewise.
	(Wunused-function): Likewise.
	(Wunused-label): Likewise.
	(Wunused-value): Likewise.
	(Wunused-variable): Likewise.
	* opt-read.awk: Create opt_numbers array.

2012-05-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53295
	* tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
	strides.
	* tree-data-ref.c (dr_analyze_innermost): Allow non-constant
	strides when analyzing data-references in a loop context.
	* tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
	non-constant strides for now.
	(vect_enhance_data_refs_alignment): Ignore data references
	that are strided loads.
	(vect_analyze_data_ref_access): Handle non-constant strides.
	(vect_check_strided_load): Verify the data-reference is a load.
	(vect_analyze_data_refs): Restructure to make strided load
	support not dependent on gather support.
	* tree-vect-stmts.c (vectorizable_load): Avoid useless work
	when doing strided or gather loads.
	* tree-vect-loop-manip.c (vect_vfa_segment_size): Use
	integer_zerop to compare stride with zero.

2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.

2012-05-11  Jan Hubicka  <jh@suse.cz>

	PR bootstrap/53300
	* varpool.c (varpool_assemble_decl): Also output constat pool entries
	that output_constant_pool missed.

2012-05-11  Mingjie Xing  <mingjie.xing@gmail.com>

	* config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
	MULTILIB_EXTRA_OPTS.

2012-05-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53291
	* config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.

2012-05-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
	optimization for TARGET_AVX.
	(*movti_internal_sse): Ditto.
	(*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
	(*movdi_internal): Ditto.
	(*movsi_internal): Ditto.
	(*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
	(*movdf_internal_rex64): Ditto.
	(*movfd_internal): Ditto.
	(*movsf_internal): Ditto.
	* config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.

2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
	reference as size attribute.

2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>

	* doc/md.texi (Standard Names): Document probe_stack_address.
	* explow.c (emit_stack_probe): Handle probe_stack_address.
	* config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
	(UNSPECV_PROBE_STACK_RANGE): Likewise.
	(probe_stack_address): New insn.
	(probe_stack_range): Likewise.
	* config/ia64/ia64.c: Include common/common-target.h.
	(ia64_compute_frame_size): Mark r2 and r3 as used if static stack
	checking is enabled.
	(ia64_emit_probe_stack_range): New function.
	(output_probe_stack_range): Likewise.
	(ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
	builtin stack checking is enabled.
	(rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
	and UNSPECV_PROBE_STACK_ADDRESS.
	(unknown_for_bundling_p): New predicate.
	(group_barrier_needed): Use important_for_bundling_p.
	(ia64_dfa_new_cycle): Use unknown_for_bundling_p.
	(issue_nops_and_insn): Likewise.
	(bundling): Likewise.
	(final_emit_insn_group_barriers): Likewise.
	* config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
	* config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
	(STACK_CHECK_PROTECT): Likewise.
	* config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.

2012-05-10  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (update_all_callee_keys): Remove.
	(inline_small_functions): Simplify priority updating.

2012-05-10  Jan Hubicka  <jh@suse.cz>

	* ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.

2012-05-10  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
	(symtab_remove_unreachable_nodes): ... this one.
	* ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
	* cgraphunit.c (ipa_passes): Update.
	* cgraphclones.c (cgraph_materialize_all_clones): Update.
	* cgraph.c (cgraph_release_function_body): Only turn initial
	into error mark when initial was previously set.
	* ipa-inline.c (ipa_inline): Update.
	* ipa.c: Include ipa-inline.h
	(enqueue_cgraph_node, enqueue_varpool_node): Remove.
	(enqueue_node): New function.
	(process_references): Update.
	(symtab_remove_unreachable_nodes): Cleanup.
	* passes.c (execute_todo, execute_one_pass): Update.

2012-05-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/53125
	* ira.c (ira): Call find_moveable_pseudos and
	move_unallocated_pseudos if only ira_conflicts_p is true.

2012-05-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movoi_internal_avx): Handle
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
	(*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
	(*movti_internal_sse): Ditto.
	(*movtf_internal): Ditto.
	* config/i386/sse.md (ssePSmode): New mode attribute.
	(*move<mode>_internal): Use ssePSmode.
	(*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
	(*<sse2>_movdqu<avxsizesuffix>): Ditto.
	* config/i386/i386.c (standard_sse_constant_opcode): Do not handle
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.

2012-05-10  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
	DECL_ORIGINAL_TYPE if it is present.

2012-05-10  Nick Clifton  <nickc@redhat.com>

	PR target/53120
	* config/m32c/bitops.md (bset_qi): Change operand 2 from having
	a "0" constraint to being a (match_dup 0).

2012-05-10  Richard Guenther  <rguenther@suse.de>

	* stor-layout.c (byte_from_pos): Amend comment.

2012-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
	Document requirement to call in constructors.

	* config/i386/i386.c: Update comments for i386-cpuinfo.c name change.

2012-05-10  Richard Guenther  <rguenther@suse.de>

	* tree.h (TYPE_IS_SIZETYPE): Remove.
	* fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
	(extract_muldiv_1): Likewise.
	* gimple.c (gtc_visit): Likewise.
	(gimple_types_compatible_p): Likewise.
	(iterative_hash_canonical_type): Likewise.
	(gimple_canonical_types_compatible_p): Likewise.
	* gimplify.c (gimplify_one_sizepos): Likewise.
	* print-tree.c (print_node): Likewise.
	* stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.

2012-05-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52908
	* config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
	xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
	(vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
	instead of xop_mulv2div2di3_low.
	(xop_p<macs>dql): Fix vec_select selector.
	(xop_p<macs>dqh): Ditto.
	(xop_mulv2div2di3_low): Remove insn_and_split pattern.
	(xop_mulv2div2di3_high): Ditto.

2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/53289
	* diagnostic.h (diagnostic_context): Add last_location.
	* diagnostic.c (diagnostic_initialize): Initialize it.
	(diagnostic_show_locus): Use it.

2012-05-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/extend.texi (Function Attributes): Point xref to section
	about Pragmas.

2012-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (*movdf_internal_rex64): Remove
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
	Calculate "mode" attribute according to
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
	(*movdf_internal): Ditto.

2012-05-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/44141
	* config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
	128 bit vectors specially for TARGET_AVX.  Emit sse2_movupd and
	sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
	or when optimizing for size.
	* config/i386/sse.md (*mov<mode>_internal): Remove
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
	Calculate "mode" attribute according to optimize_function_for_size_p
	and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
	(*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
	depending on the mode of the instruction.  Calculate "mode" attribute
	according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
	and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
	(*<sse2>_movdqu<avxsizesuffix>): Ditto.

2012-05-09  Georg-Johann Lay  <avr@gjlay.de>

	PR target/53256
	* config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
	* config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
	* config/avr/avr.h (struct machine_function): Add attributes_checked_p.
	* config/avr/avr.c (avr_asm_declare_function_name): Remove.
	(expand_prologue): Move initialization of cfun->machine->is_naked,
	is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
	(avr_set_current_function): ...this new static function.
	(TARGET_SET_CURRENT_FUNCTION): New define.
	(avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
	checking attributes of current_function_decl.
	(avr_regs_to_save): Ditto.
	(signal_function_p): Rename to avr_signal_function_p.
	(interrupt_function_p): Rename to avr_interrupt_function_p.

	* doc/extend.texi (Function Attributes): Better explanation of
	'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
	alphabetical order.

2012-05-09  Michael Matz  <matz@suse.de>

	PR tree-optimization/53185
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
	peeling when we see strided loads.

2012-05-09  Matthias Klose  <doko@ubuntu.com>

	* gcc-ar.c (main): Don't check for execute bits for the plugin.

2012-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
	Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
	USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
	* config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
	(USE_LOAD_POST_INCREMENT): Define.
	(USE_LOAD_PRE_INCREMENT): Define.
	(USE_LOAD_POST_DECREMENT): Define.
	(USE_LOAD_PRE_DECREMENT): Define.
	(USE_STORE_PRE_DECREMENT): Define.
	(USE_STORE_PRE_INCREMENT): Define.
	(USE_STORE_POST_DECREMENT): Define.
	(USE_STORE_POST_INCREMENT): Define.
	(arm_auto_incmodes): Add enumeration.
	* config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
	* config/arm/arm.c (arm_autoinc_modes_ok_p): Define.

2012-05-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53226
	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
	prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
	before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
	doesn't need to be revisited, look for earliest stmt with
	!gimple_plf (stmt, GF_PLF_1) if something changed.

2012-05-09  Terry Guo  <terry.guo@arm.com>

	* genmultilib: Update copyright dates.
	* doc/fragments.texi: Ditto.

2012-05-09  Terry Guo  <terry.guo@arm.com>

	* Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
	* genmultilib (MULTILIB_REQUIRED): New.
	* doc/fragments.texi: Document the MULTILIB_REQUIRED.

2012-05-09  Richard Guenther  <rguenther@suse.de>

	* tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
	(vect_do_peeling_for_loop_bound): Likewise.
	(vect_do_peeling_for_alignment): Likewise.
	* tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
	(vect_do_peeling_for_loop_bound): Get check_profitability and
	threshold as parameters.
	(vect_do_peeling_for_alignment): Likewise.
	(vect_loop_versioning): Likewise.
	* tree-vect-loop.c (vect_transform_loop): Compute check_profitability
	and threshold here.  Control where to put the check here.

2012-05-09  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/53249
	* dwarf2out.h (get_address_mode): Move declaration to...
	* rtl.h: ...here.
	* dwarf2out.c (get_address_mode): Move definition to...
	* rtlanal.c: ...here.
	* var-tracking.c (get_address_mode): Delete.
	* combine.c (find_split_point): Use get_address_mode instead of
	targetm.addr_space.address_mode.
	* cselib.c (cselib_record_sets): Likewise.
	* dse.c (canon_address, record_store): Likewise.
	* emit-rtl.c (adjust_address_1, offset_address): Likewise.
	* expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
	(store_by_pieces_1, expand_assignment, store_expr, store_constructor)
	(expand_expr_real_1): Likewise.
	* ifcvt.c (noce_try_cmove_arith): Likewise.
	* optabs.c (maybe_legitimize_operand_same_code): Likewise.
	* reload.c (find_reloads): Likewise.
	* sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
	* sel-sched-dump.c (debug_mem_addr_value): Likewise.

2012-05-09  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
	information from the instruction produced.

2012-05-09  Richard Guenther  <rguenther@suse.de>

	* stor-layout.c (bit_from_pos): Document.
	(byte_from_pos): Likewise.  Optimize.
	(pos_from_bit): Likewise.
	(normalize_offset): Use pos_from_bit instead of replicating it.

2012-05-09  Alan Modra  <amodra@gmail.com>

	PR target/53271
	* config/rs6000/rs6000.c (gen_frame_set): New function.
	(gen_frame_load, gen_frame_store): New functions.
	(rs6000_savres_rtx): Use the above.
	(rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
	Correct mode used for CR2 in save/restore_world patterns.
	Don't emit instructions for eh_return frame unwind reg info.

2012-05-08  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (build_cgraph_edges): Do not finalize vars
	with VALUE_EXPR.
	* cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
	are removable.
	* toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
	need to wrapup.
	(compile_file): Do not output variables.
	* cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
	output it.
	* langhooks.c: Include timevar.h
	(write_global_declarations): Finalize compilation unit after wrapup;
	set timevars correctly.
	* passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
	not to be added to varpool.
	* varpool.c (varpool_assemble_decl): Sanity check that we are called
	only on cases where it makes sense; skip constant pool and value expr
	vars.

2012-05-08  David S. Miller  <davem@davemloft.net>

	* config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
	* config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
	* config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.

2012-05-08  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/53278
	* lower-subreg.c (decompose_multiword_subregs): Remove left-over
	speed_p code from earlier patch.

2012-05-08  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md (*branch_true, *branch_false): New insns.

2012-05-08  Teresa Johnson  <tejohnson@google.com>

	* gcov-io.h (__gcov_reset, __gcov_dump): Declare.
	* doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.

2012-05-08  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_call_edge_duplication_hooks): Export.
	(cgraph_create_node_1): Rename to ...
	(cgraph_create_empty_node): ... this one; export.
	(cgraph_create_node): Update.
	(cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
	(cgraph_create_edge_including_clones): Likewise.
	(cgraph_find_replacement_node): Likewise.
	(cgraph_clone_edge): Likewise.
	(cgraph_clone_node): Likewise.
	(clone_function_name): Likewise.
	(cgraph_create_virtual_clone): Likewise.
	(cgraph_remove_node_and_inline_clones): Likewise.
	(cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
	* cgraph.h: Reorder declarations so they match file of origin.
	(cgraph_create_empty_node): Declare.
	* cgraphunit.c (update_call_expr): Move to cgraphclones.c
	(cgraph_copy_node_for_versioning): Likewise.
	(cgraph_function_versioning): Likewise.
	(cgraph_materialize_clone): Likewise.
	(cgraph_redirect_edge_call_stmt_to_callee): Likewise.
	(cgraph_materialize_all_clones): Likewise.
	* cgraphclones.c: New file.
	* Makefile.in: Update for cgraphclones.

2012-05-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53176
	* config/i386/i386.c (ix86_set_reg_reg_cost): New function.
	(ix86_rtx_costs): Handle SET.

2012-05-08  Michael Matz  <matz@suse.de>

	* basic-block.h (struct rtl_bb_info): Remove visited member and
	move head_ member to ...
	(struct basic_block_def.basic_block_il_dependent): ... the new
	member x, replacing but containing old member rtl.
	(enum bb_flags): New BB_VISITED flag.
	(BB_HEADER, BB_FOOTER): New macros.

	* jump.c (mark_all_labels): Adjust.
	* cfgcleanup.c (try_optimize_cfg): Adjust.
	* cfglayout.c (record_effective_endpoints): Adjust.
	(relink_block_chain): Ditto (and don't fiddle with visited).
	(fixup_reorder_chain): Adjust.
	(fixup_fallthru_exit_predecessor): Ditto.
	(cfg_layout_duplicate_bb): Ditto.
	* combine.c (update_cfg_for_uncondjump): Adjust.
	* bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
	(bb_visited_trace): New accessor.
	(mark_bb_visited): Move in front.
	(rotate_loop): Use bb_visited_trace.
	(find_traces_1_round): Ditto.
	(emit_barrier_after): Ditto.
	(copy_bb): Ditto, and initialize visited on resize.
	(reorder_basic_blocks): Initize visited member.
	(duplicate_computed_gotos): Clear bb flags at start, use
	BB_VISITED flags.

	* cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
	(rtl_verify_flow_info_1): Ditto.
	(cfg_layout_split_block): Ditto.
	(cfg_layout_delete_block): Ditto.
	(cfg_layout_merge_blocks): Ditto.
	(init_rtl_bb_info): Adjust and initialize il.x.head_ member.

2012-05-08  Hans-Peter Nilsson  <hp@axis.com>

	PR target/53272
	* config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
	when a constant source operand matches an "I" constraint, the "no
	CC0 change" applies to a register-destination only, not a
	strict_low_part-destination.

2012-05-08  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
	to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.

2012-05-08  Georg-Johann Lay  <avr@gjlay.de>

	* Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.

	* doc/avr-mmcu.texi: New auto-generated file.
	* doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
	to document all valid -mmcu= arguments.

	* config/avr/avr.h (arch_info_s): New struct definition.
	* config/avr/avr-devices.c (avr_texinfo): New variable.
	* config/avr/gen-avr-mmcu-texi.c: New file.
	* config/avr/t-avr: New rules and dependencies to build	avr-mmcu.texi.

2012-05-08  Dehao Chen  <dehao@google.com>

	* predict.c (find_qualified_ssa_name): New.
	(find_ssa_name_in_expr): New.
	(find_ssa_name_in_assign_stmt): New.
	(is_comparison_with_loop_invariant_p): New.
	(is_bound_expr_similar): New.
	(predict_iv_comparison): New.
	(predict_loops): Add heuristic for loop-nested branches that compare an
	induction variable to a loop bound variable.
	* predict.def (PRED_LOOP_IV_COMPARE): New macro.

2012-05-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
	TARGET_BDVER2 defines where appropriate.

2012-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac (PLUGIN_LD): Rename into...
	(PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
	* config.in: Regenerate.
	* configure: Likewise.
	* collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.

2012-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
	computation using the precision of the index type.
	* gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
	(fold_array_ctor_reference): Do index computations in the index type.

2012-05-07  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
	down to plus_constant.
	(expand_epilogue): Ditto.

2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>

	* postreload.c (reload_cse_regs): Make static.
	* reload.h (reload_cse_regs): Remove prototype.

2012-05-07  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (clear_cache): New pattern.

2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/53245
	* gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
	is folded to a type boundary value, verify that the resulting case
	label is still a care range.

2012-05-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ctz<mode>2): Emit rep;bsf
	only for TARGET_GENERIC, when not optimizing for size.
	(*ffs<mode>_1): Ditto.

2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-cfg.c (verify_gimple_switch): Tighten checks.

2012-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53239
	* tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
	of DECL_BY_REFERENCE RESULT_DECL to nonnull.

2012-05-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53195
	* tree-inline.c (setup_one_parameter): Properly add referenced
	vars from the parameters new known value.

2012-05-07  Steven Bosscher  <steven@gcc.gnu.org>

	* config/m68k/m68k.c (m68k_sched_branch_type): Remove.
	(sched_branch_type): Remove.
	(m68k_sched_md_init_global): Don't allocate it.
	(m68k_sched_md_finish_global): Don't free it.
	* config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
	* config/m68k/m68k.md: Set the type of insns using
	m68k_sched_branch_type to bcc directly.

2012-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2.c (solaris_override_options): New function.
	* config/sol2-protos.h (solaris_override_options): Declare.
	* config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.

2012-05-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
	whether we failed to compute data dependences.
	(loop_prefetch_arrays): Fail if we failed.

2012-05-07  Uros Bizjak  <ubizjak@gmail.com>
	    Paolo Bonzini  <bonzini@gnu.org>

	* config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
	Emit bsf when optimizing for size.
	(*ffs<mode>_1): Ditto.

2012-05-07  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53250
	* config/sh/sh.c (sh_rtx_costs): Handle SET.

2012-05-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53227
	* config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
	(bswapdi2): Split from bswap<mode>2.  Use nonnimediate_operand
	predicate for operand 1.  Force operand 1 to register for TARGET_BSWAP.
	(bswapsi2): Ditto.
	(*bswapdi2_doubleword): New insn pattern.
	(*bswap<mode>2): Rename from *bswap<mode>2_1.

2012-05-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
	(mips_set_reg_reg_cost): Likewise.
	(mips_rtx_costs): Handle SET.

2012-05-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
	(compute_costs): Likewise for the zero extension.  Use set_rtx_cost
	to compute the cost of moves.  Set the mode of the target register.

2012-05-05  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (plus_constant, plus_constant_mode): Merge into a single
	plus_constant function.
	* explow.c (plus_constant, plus_constant_mode): Likewise.  Assert
	that the mode is sensible.
	(use_anchored_address, round_push, allocate_dynamic_stack_space)
	(probe_stack_range, anti_adjust_stack_and_probe): Update calls to
	plus_constant.

	* alias.c (canon_rtx): Likewise.
	(init_alias_analysis): Likewise.
	* builtins.c (expand_builtin_return_addr)
	(expand_builtin_setjmp_setup, expand_builtin_longjmp)
	(expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
	(expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
	(expand_builtin_stpcpy): Likewise.
	* calls.c (save_fixed_argument_area, restore_fixed_argument_area)
	(compute_argument_addresses, internal_arg_pointer_based_exp)
	(expand_call, emit_library_call_value_1): Likewise.
	* cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
	* combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
	* combine.c (combine_simplify_rtx, force_to_mode): Likewise.
	* cse.c (insert_const_anchor, find_reg_offset_for_const)
	(use_related_value, fold_rtx): Likewise.
	* cselib.c (cselib_subst_to_values): Likewise.
	* dse.c (record_store, check_mem_read_rtx): Likewise.
	* dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
	* emit-rtl.c (adjust_address_1): Likewise.
	* except.c (sjlj_emit_function_enter)
	(expand_builtin_extract_return_addr)
	(expand_builtin_frob_return_addr): Likewise.
	* expmed.c (expand_divmod): Likewise.
	* expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
	(emit_move_resolve_push, push_block, emit_push_insn, store_expr)
	(expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
	* function.c (assign_stack_local_1)
	(instantiate_virtual_regs_in_rtx): Likewise.
	* optabs.c (prepare_cmp_insn): Likewise.
	* recog.c (offsettable_address_addr_space_p): Likewise.
	* reload.c (find_reloads_address, form_sum)
	(find_reloads_subreg_address): Likewise.
	* reload1.c (init_reload, eliminate_regs_1)
	(eliminate_regs_in_insn): Likewise.
	* simplify-rtx.c (simplify_unary_operation_1)
	(simplify_binary_operation_1, simplify_plus_minus): Likewise.
	* var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
	(vt_add_function_parameter): Likewise.

	* config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
	* config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
	* config/alpha/alpha.c (alpha_legitimize_address_1)
	(get_unaligned_address, alpha_expand_unaligned_load)
	(alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
	(alpha_expand_unaligned_store_words, alpha_expand_block_clear)
	(alpha_expand_builtin_establish_vms_condition_handler)
	(alpha_setup_incoming_varargs, emit_frame_store_1)
	(alpha_expand_prologue, alpha_expand_epilogue)
	(alpha_use_linkage): Likewise.
	* config/alpha/alpha.md: Likewise.

	* config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
	(arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
	(thumb_legitimize_address, arm_gen_load_multiple_1)
	(arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
	(gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
	(arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
	(arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
	(emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
	(thumb1_emit_multi_reg_push, thumb1_expand_prologue)
	(thumb_expand_movmemqi, arm_set_return_address)
	(thumb_set_return_address): Likewise.
	* config/arm/arm.md: Likewise.

	* config/avr/avr.c (avr_incoming_return_addr_rtx)
	(avr_prologue_setup_frame, expand_epilogue)
	(avr_const_address_lo16): Likewise.

	* config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
	* config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
	(bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
	(bfin_output_mi_thunk): Likewise.

	* config/c6x/c6x.c (c6x_initialize_trampoline)
	(c6x_output_mi_thunk): Likewise.

	* config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
	* config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.

	* config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
	(cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
	(cris_emit_movem_store, cris_trampoline_init): Likewise.
	* config/cris/cris.md: Likewise.

	* config/darwin.c (machopic_indirect_data_reference)
	(machopic_legitimize_pic_address): Likewise.

	* config/epiphany/epiphany.c (epiphany_emit_save_restore)
	(epiphany_expand_prologue, epiphany_expand_epilogue)
	(epiphany_trampoline_init): Likewise.
	* config/epiphany/epiphany.md: Likewise.

	* config/fr30/fr30.c (fr30_move_double): Likewise.

	* config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
	(frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
	(frv_index_memory, unspec_got_name, frv_find_base_term)
	(frv_output_dwarf_dtprel): Likewise.

	* config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
	(h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.

	* config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
	* config/i386/i386.c (setup_incoming_varargs_64)
	(setup_incoming_varargs_ms_64, choose_baseaddr)
	(ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
	(ix86_emit_probe_stack_range, ix86_expand_prologue)
	(ix86_emit_restore_reg_using_pop, ix86_emit_leave)
	(ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
	(ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
	(ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
	(x86_output_mi_thunk): Likewise.
	* config/i386/i386.md: Likewise.

	* config/ia64/ia64.c (ia64_expand_load_address)
	(ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
	(do_spill, ia64_trampoline_init): Likewise.

	* config/iq2000/iq2000.c (iq2000_va_start)
	(iq2000_emit_frame_related_store, iq2000_expand_prologue)
	(iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
	(iq2000_print_operand, iq2000_legitimize_address): Likewise.

	* config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.

	* config/m32c/m32c.c (m32c_return_addr_rtx)
	(m32c_expand_insv): Likewise.

	* config/m32r/m32r.c (m32r_setup_incoming_varargs)
	(m32r_legitimize_pic_address, m32r_print_operand)
	(m32r_print_operand_address): Likewise.

	* config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
	* config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
	(EH_RETURN_HANDLER_RTX): Likewise.
	* config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
	(m68k_expand_epilogue, legitimize_pic_address)
	(m68k_output_mi_thunk): Likewise.
	* config/m68k/m68k.md: Likewise.

	* config/mcore/mcore.c (mcore_expand_prolog): Likewise.
	(mcore_expand_epilog): Likewise.
	* config/mcore/mcore.md: Likewise.

	* config/mep/mep.c (mep_allocate_initial_value)
	(mep_expand_prologue, mep_expand_epilogue): Likewise.

	* config/microblaze/microblaze.c (double_memory_operand)
	(microblaze_block_move_loop): Likewise.

	* config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
	(mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
	(mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
	(mips_expand_prologue, mips_epilogue_set_cfa)
	(mips_expand_epilogue): Likewise.
	* config/mips/mips.md: Likewise.

	* config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
	(mmix_expand_prologue, mmix_expand_epilogue): Likewise.

	* config/mn10300/mn10300.c (mn10300_gen_multiple_store)
	(mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.

	* config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
	(EH_RETURN_HANDLER_RTX): Likewise.
	* config/moxie/moxie.c (moxie_static_chain): Likewise.

	* config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
	(store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
	(pa_return_addr_rtx, hppa_builtin_saveregs)
	(pa_trampoline_init): Likewise.
	* config/pa/pa.md: Likewise.

	* config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.

	* config/picochip/picochip.c (picochip_static_chain): Likewise.

	* config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
	* config/rs6000/rs6000.c (rs6000_legitimize_address)
	(setup_incoming_varargs, print_operand, rs6000_return_addr)
	(rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
	(rs6000_emit_epilogue)
	(rs6000_machopic_legitimize_pic_address): Likewise.

	* config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.

	* config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
	(DYNAMIC_CHAIN_ADDRESS): Likewise.
	* config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
	(s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
	(replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
	(save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
	(s390_emit_epilogue, s390_function_profiler): Likewise.
	* config/s390/s390.md: Likewise.

	* config/score/score.c (score_add_offset, score_prologue): Likewise.

	* config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
	(sh_output_mi_thunk): Likewise.
	* config/sh/sh.md: Likewise.

	* config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
	(RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
	* config/sparc/sparc.c (sparc_legitimize_pic_address)
	(sparc_emit_probe_stack_range, emit_save_or_restore_regs)
	(emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
	(emit_and_preserve): Likewise.
	* config/sparc/sparc.md: Likewise.

	* config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
	* config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
	(spu_setup_incoming_varargs, ea_load_store_inline)
	(spu_expand_load): Likewise.

	* config/stormy16/stormy16.c (xstormy16_expand_prologue)
	(combine_bnp): Likewise.

	* config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
	* config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
	(tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.

	* config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
	* config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
	(tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.

	* config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
	* config/v850/v850.md: Likewise.

	* config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
	(EH_RETURN_HANDLER_RTX): Likewise.
	* config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
	* config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
	(print_operand_address, vax_trampoline_init): Likewise.

	* config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
	(xtensa_function_value_regno_p): Likewise.

2012-05-04  Andrew Pinski  <apinski@cavium.com>

	* expr.c (get_def_for_expr_class): New function.
	(convert_tree_comp_to_rtx): New function.
	(expand_cond_expr_using_cmove): New function.
	(expand_expr_real_2 <case COND_EXPR>): Call
	expand_cond_expr_using_cmove first and return if it succeeds.
	Remove the check for HAVE_conditional_move since we should have
	already converted it to a conditional move.
	* config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
	modes of DImode for 32bits and TImode.

2012-05-04  Steven Bosscher  <steven@gcc.gnu.org>

	PR other/29442
	* read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
	(print_md_ptr_loc, print_c_condition): Use them.
	* read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
	* genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
	attr_file, dfa_file, latency_file): New global variables.
	(write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
	write_upcase, write_indent, write_length_unit_log, write_test_expr,
	write_attr_get, write_insn_cases, write_eligible_delay,
	write_const_num_delay_slots): Accept FILE pointer and toss it around.
	Update all callers.
	(write_header, open_outfile, handle_arg): New funcions.
	(make_automaton_attrs): Write prototypes as extern to the output
	files.
	(main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
	names from the command line.  Open the output files and write out
	internal functions for DFA functions to dfa_file_name, insn latency
	functions to latency_file_name, and everything else to attr_file.
	* Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
	(BACKEND): Build libbackend first.
	(MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
	(.PRECIOUS): Likewise.
	(insn-dfatab.o): New rule.
	(insn-latencytab.o): New rule.
	(simple_rtl_generated_c): Do not include insn-attrtab.c.
	(s-attrtab): New rule.

2012-05-04  Steven Bosscher  <steven@gcc.gnu.org>

	* rtl.def (ATTR_FLAG): Remove probability indicating flags.
	* genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
	ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
	* reorg.c (get_jump_flags): Do not set the removed flags.

	* doc/md.texi (attr_flag): Update for abovementioned changes.

2012-05-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53228
	* config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
	(TARGET_CMOV): Rename from TARGET_CMOVE.
	(TARGET_CMOVE): New define.
	* config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
	Do not set TARGET_CMOVE here.

2012-05-04  Dodji Seketeli  <dodji@redhat.com>

	Enable -Wunused-local-typedefs when -Wall or -Wunused is on
	* opts.c (finish_options): Activate -Wunused-local-typedefs if
	-Wunused is activated.
	* doc/invoke.texi: Update blurb of -Wunused-local-typedefs.

2012-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (*movmem_short, *clrmem_short)
	(*cmpmem_short): Move the mode check from the insn condition to
	the match_scratch.

2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>

	PR tree-optimization/52633
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
	vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
	(vect_recog_over_widening_pattern): Remove handling of code that was
	already detected as over-widening pattern.  Remove special handling
	of "unsigned" cases.  Instead, support general case of conversion
	of the shift result to another type.

2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* tree-vect-patterns.c (vect_single_imm_use): New function.
	(vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
	(vect_recog_over_widening_pattern): Likewise.
	(vect_recog_widen_shift_pattern): Likewise.

2012-05-04  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
	(vect_handle_widen_op_by_const): Use it instead of open-coding test.
	(vect_recog_widen_mult_pattern): Likewise.
	(vect_operation_fits_smaller_type): Likewise.
	(vect_recog_over_widening_pattern): Likewise.
	(vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.

2012-05-04  Richard Guenther  <rguenther@suse.de>

	PR lto/50602
	* lto-wrapper.c (merge_and_complain): Complain about mismatches
	of -freg-struct-return and -fpcc-struct-return.
	(run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
	from the input file options and ignore those from the link
	command line.

2012-05-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53168
	* tree-ssa-pre.c (phi_translate_1): Only handle type-punned
	memory reads when the result is a constant we can pun.

2012-05-04  Richard Guenther  <rguenther@suse.de>

	* common.opt (flto-report): Do not mark as Optimization.

2012-05-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/48496
	* recog.c (constrain_operands): If extra constraints are present, also
	accept pseudo-registers with equivalent memory locations during reload.

2012-05-04  Olivier Hainque  <hainque@adacore.com>

	* collect2.c (may_unlink_output_file): New global.
	(maybe_unlink): Honor it.
	* collect2.h: Add extern for it.
	* tlink.c (do_tlink): Set it to true if the link succeeded.

2012-05-04  Olivier Hainque  <hainque@adacore.com>

	* gcc.c (eval_spec_function): Finalize/restore the current string
	obstack state as part of the context push/pop operations.

2012-05-04  Bin Cheng  <bin.cheng@arm.com>

	PR rtl-optimization/52804
	* reload1.c (reload_reg_reaches_end_p): Check whether successor
	reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
	of current one with type RELOAD_FOR_INPADDR_ADDRESS.
	Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
	RELOAD_FOR_OUTADDR_ADDRESS.

2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/24985
	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
	for macro expansion.

2012-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* flags.h (flag_permissive): Do not declare.
	* diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
	option specially.
	* toplev.c (flag_permissive): Do not define.
	* c-tree.h (system_header_p): Delete unused.

2012-05-03  David S. Miller  <davem@davemloft.net>

	PR target/52684
	* config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
	MEM directly into a libcall, mark it's MEM_EXPR as addressable.
	(sparc_emit_float_lib_cmp): Likewise.

2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/53199
	* config/rs6000/rs6000.md (bswapdi splitters): If
	-mavoid-indexed-addresses (or -mcpu=power6 which sets it by
	default) is used, generate an alternate sequence that does not
	depend on using indexed addressing.

2012-05-03  Jason Merrill  <jason@redhat.com>

	* gengtype.c (write_types): Fix warning message.
	(write_local): Likewise.

2012-05-02  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (struct external_ref, build_local_stub): New.
	(hash_external_ref, external_ref_eq, lookup_external_ref): New.
	(optimize_external_refs, optimize_external_refs_1): New.
	(change_AT_die_ref): New.
	(clone_as_declaration): Add DW_AT_signature when cloning a declaration.
	(build_abbrev_table): Take the external refs hashtable.
	(output_comp_unit): Get it from optimize_external_refs and pass it in.

2012-05-03  Jan Hubicka  <jh@suse.cz>

	PR middle-end/53093
	* tree-emutls.c (new_emutls_decl): Fix handling of aliases.

2012-05-03  Jan Hubicka  <jh@suse.cz>

	PR middle-end/53106
	* ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.

2012-05-03  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (die_struct): Add comdat_type_p flag.  Use it instead of
	use_debug_types to discriminate the die_id union.
	(print_die, assign_symbol_names, copy_decls_walk): Likewise.
	(build_abbrev_table, output_die): Likewise.
	(prune_unused_types_walk_attribs): Likewise.
	(generate_type_signature, copy_declaration_context): Set it.
	(remove_child_or_replace_with_skeleton): Set it.
	(dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
	check use_debug_types.
	(dwarf2out_finish): Do break_out_includes after .debug_types.

2012-05-03  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (modified_type_die): Use scope_die_for.
	(gen_type_die_with_usage, dwarf2out_finish): Likewise.
	(uses_local_type_r, uses_local_type): New.
	(scope_die_for): Keep a type that uses a local type in local scope.
	Use get_context_die for namespace and type scope.

2012-05-03  Jason Merrill  <jason@redhat.com>

	* config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
	pc thunk.
	* dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
	(dwarf2out_finish): Likewise.

2012-05-03  Martin Jambor  <mjambor@suse.cz>

	* builtins.c (get_object_alignment_1): Return whether we can determine
	the alignment or conservatively assume byte alignment.  Return the
	alignment by reference.  Use get_pointer_alignment_1 for dereference
	alignment.
	(get_pointer_alignment_1): Return whether we can determine the
	alignment or conservatively assume byte alignment.  Return the
	alignment by reference.  Use get_ptr_info_alignment to get SSA name
	alignment.
	(get_object_alignment): Update call to get_object_alignment_1.
	(get_object_or_type_alignment): Likewise, fall back to type alignment
	only when it returned false.
	(get_pointer_alignment): Update call to get_pointer_alignment_1.
	* fold-const.c (get_pointer_modulus_and_residue): Update call to
	get_object_alignment_1.
	* ipa-prop.c (ipa_modify_call_arguments): Update call to
	get_pointer_alignment_1.
	* tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
	of MEM_REF or TARGET_MEM_REF only when it returns false.
	* tree-ssa-ccp.c (get_value_from_alignment): Update call to
	get_object_alignment_1.
	(ccp_finalize): Use set_ptr_info_alignment.
	* tree.h (get_object_alignment_1): Update declaration.
	(get_pointer_alignment_1): Likewise.
	* gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
	(dump_gimple_stmt): Likewise.
	* tree-flow.h (ptr_info_def): Updated comments of fields align and
	misalign.
	(get_ptr_info_alignment): Declared.
	(mark_ptr_info_alignment_unknown): Likewise.
	(set_ptr_info_alignment): Likewise.
	(adjust_ptr_info_misalignment): Likewise.
	* tree-ssa-address.c (copy_ref_info): Use new access functions to get
	and set alignment of SSA names.
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
	mark_ptr_info_alignment_unknown.
	* tree-ssanames.c (get_ptr_info_alignment): New function.
	(mark_ptr_info_alignment_unknown): Likewise.
	(set_ptr_info_alignment): Likewise.
	(adjust_ptr_info_misalignment): Likewise.
	(get_ptr_info): Call mark_ptr_info_alignment_unknown.
	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
	Likewise.
	(bump_vector_ptr): Likewise.
	* tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.

2012-05-03  Michael Matz  <matz@suse.de>

	* basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
	in front of basic_block_def.
	(struct basic_block_def): Make il.gimple the full struct, not a
	pointer.
	(__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.

	* cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
	* gimple-iterator.c (gimple_stmt_iterator): Don't special case
	NULL il.gimple, which can't happen anymore.
	* gimple.h (bb_seq): il.gimple can't be NULL.
	(bb_seq_add): Ditto.
	(set_bb_seq): Adjust.
	(gsi_start_bb, gsi_last_bb): Tidy.
	* lto-streamer-in.c (make_new_block): Don't zero members that
	are zeroed already, don't allocate a gimple_bb_info.
	* tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
	(remove_bb): Clear all il.gimple members.
	(gimple_verify_flow_info): Adjust for flat il.gimple.
	* tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.

	* coretypes.h (const_gimple_seq): Remove typedef.
	* gimple.h (gimple_seq_first): Take gimple_seq.
	(gimple_seq_first_stmt): Ditto.
	(gimple_seq_last): Ditto.
	(gimple_seq_last_stmt): Ditto.
	(gimple_seq_empty_p): Ditto.

2012-05-03  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
	operations.
	(prune_clobbered_mems): Do it here.  Do not uselessly sort expressions.
	(compute_avail): Do not add possibly trapping operations to
	EXP_GEN if they might not be executed in the block.

2012-05-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.

2012-05-03  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-switch-conversion.c (gen_inbound_check): Free post-dominance
	information as early as possible.  Update dominance info instead of
	discarding it.

2012-05-03  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (debug_bitmap_sets_for): New function.
	(union_contains_value): Remove.
	(vro_valid_in_sets): Likewise.
	(op_valid_in_sets): New function.
	(valid_in_sets): Use op_valid_in_sets.
	(insert_into_preds_of_block): Move dumping ...
	(do_regular_insertion): ... here.
	(do_partial_partial_insertion): ... and here.  Dump that
	we've found a partial partial redundancy.
	(insert): Dump the current insert iteration.

2012-05-03  Jakub Jelinek  <jakub@redhat.com>

	PR plugins/53126
	* gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
	append program name to it and pass that as first argument
	to make_relative_prefix.  Always pass standard_libexec_prefix
	as last argument to make_relative_prefix.  If
	make_relative_prefix returns NULL, fall back to
	standard_libexec_prefix.

	PR debug/53174
	* tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
	removed.

	PR target/53187
	* config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
	mode, return that mode.

	PR target/53194
	* config/i386/i386-c.c (ix86_target_macros_internal): Don't
	define __ATOMIC_HLE_* macros here.
	(ix86_target_macros): But here, using cpp_define_formatted.

2012-05-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53144
	* tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
	Rename to ...
	(vn_reference_lookup_or_insert_for_pieces): ... this.  Properly deal
	with SSA name values.
	(vn_reference_lookup_3): Adjust callers.

2012-05-03  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Reset
	has_fma4 for AMD processors with both fma3 and fma4 support.

2012-05-03  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR target/53201
	* config/i386/driver-i386.c (host_detect_local_cpu): Add space to
	"-mno-hle".

2012-05-03  Michael Matz  <matz@suse.de>

	PR bootstrap/53197
	* tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
	(dse_enter_block): Properly iterate the whole sequence even
	if the last statement was removed.

2012-05-02  Steven Bosscher  <steven@gcc.gnu.org>

	* config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
	unset flag_jump_tables.
	* stmt.c (expand_case): Remove special flag_pic case conditional
	on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.

2012-05-02  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* common/config/s390/s390-common.c (s390_option_optimization_table):
	Enable -fsched-pressure using -fsched-pressure-algorithm=model by
	default when optimizing.

2012-05-02  Martin Jambor  <mjambor@suse.cz>

	PR lto/52605
	* dwarf2out.c (dwarf2out_decl): Only lookup die representing context
	of a variable when the contect is a function.

2012-05-02  Michael Matz  <matz@suse.de>

	* coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
	* gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
	(const_gimple_seq_node): Remove.
	(gimple_seq_node): Typedef as gimple.
	(struct gimple_statement_base): Add next and prev members,
	adjust all WORD markers in using structs.
	(union gimple_statement_d): Link via gsbase.next field for GC and PCH.
	(gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
	gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
	gimple are the same.
	(gimple_seq_set_last, gimple_seq_set_first): Don't allocate
	gimple_seq, adjust.
	(gimple_init_singleton): New function.
	(gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
	(gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
	(gsi_stmt): Adjust.
	(gsi_stmt_ptr): Remove.
	(enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.

	* gimple-iterator.c (update_bb_for_stmts): Take last parameter
	again, adjust for above changes.
	(update_call_edge_frequencies): Adjust for above changes.
	(gsi_insert_seq_nodes_before): Rewrite for new data structure.
	(gsi_insert_seq_nodes_after): Ditto.
	(gsi_split_seq_after): Ditto.
	(gsi_set_stmt): Ditto.
	(gsi_split_seq_before): Ditto.
	(gsi_remove): Ditto.
	(gsi_insert_seq_before_without_update): Don't free sequence.
	(gsi_insert_seq_after_without_update): Ditto.
	(gsi_replace): Assert some more invariants.
	(gsi_insert_before_without_update, gsi_insert_after_without_update):
	Tidy.
	(gsi_for_stmt): Don't search for stmt.
	(gsi_insert_on_edge_immediate): Tidy.

	* gimple.c (gimple_alloc_k): Remove "sequences".
	(gimple_seq_cache): Remove.
	(gimple_alloc_stat): Make stmt a singleton sequence.
	(gimple_seq_alloc, gimple_seq_free): Remove.
	(gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
	(gimple_copy): Ditto.
	* gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
	create iterator from correct sequence.
	* tree-phinodes.c (make_phi_node): Make stmt a singleton.

2012-05-02  Michael Matz  <matz@suse.de>

	* gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
	gimple_seq.
	(gimple_seq_set_last, gimple_seq_set_first): Take pointer to
	sequence, lazily allocate it.
	(bb_seq_addr): New function.
	(gsi_start_1): Rename from gsi_start, but take pointer to sequence.
	(gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
	(gsi_none): New function.
	(gsi_start_bb): Adjust.
	(gsi_last_1): Rename from gsi_last, but take pointer to sequence.
	(gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
	(gsi_last_bb): Adjust.
	(gsi_seq): Adjust.
	* tree-flow-inline.h (phi_nodes_ptr): New function.

	* gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
	datastructure and interface change.
	(gsi_insert_seq_before_without_update): Ditto.
	(gsi_insert_seq_nodes_after): Ditto.
	(gsi_insert_seq_after_without_update): Ditto.
	(gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
	(gsi_split_seq_before): Ditto.
	(gsi_start_phis): Adjust.
	* tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
	(vect_transform_loop): Ditto.
	* gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
	gimple_seq_copy): Don't use gimple_seq_alloc.
	* gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
	(gimplify_seq_add_seq): Ditto.
	* lto-streamer-in.c (make_new_block): Ditto.
	* tree-cfg.c (create_bb): Ditto.
	* tree-sra.c (initialize_parameter_reductions): Ditto.

2012-05-02  Michael Matz  <matz@suse.de>

	* gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
	gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
	gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
	set_bb_seq): Move down to after gimple_statement_d definition.

2012-05-02  Michael Matz  <matz@suse.de>

	* gimple-fold.c (gimplify_and_update_call_from_tree): Use
	gsi_replace_with_seq, instead of inserting itself.
	* gimple-iterator.c (gsi_replace_with_seq): New function.
	* tree-ssa-forwprop.c (forward_propagate_comparison): Take
	iterator instead of statement, advance it.
	(ssa_forward_propagate_and_combine): Adjust call to above.

2012-05-02  Michael Matz  <matz@suse.de>

	* tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
	gimple_seq_alloc.
	* omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
	* tree-nested.c (walk_gimple_omp_for): Ditto.
	* trans-mem.c (lower_transaction): Ditto.
	* tree-eh.c (do_return_redirection): Ditto.
	(do_goto_redirection): Ditto.
	(lower_try_finally_switch): Ditto.
	* gimplify.c (gimplify_stmt): Ditto.
	(gimplify_scan_omp_clauses): Ditto.
	(gimplify_omp_for): Ditto.
	(gimplify_function_tree): Ditto.
	* gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
	* tree-mudflap.c (mf_decl_cache_locals): Ditto.
	(mf_build_check_statement_for): Ditto.
	(mx_register_decls): Ditto.
	* graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
	and don't use itertors to append.
	(insert_stmts): Ditto.
	(insert_out_of_ssa_copy): Ditto.
	(insert_out_of_ssa_copy_on_edge): Ditto.

2012-05-02  Michael Matz  <matz@suse.de>

	* gimple.h (gimple_bind_body_ptr): New function.
	(gimple_bind_body): Use it.
	(gimple_catch_handler): Use gimple_catch_handler_ptr.
	(gimple_eh_filter_failure_ptr): New function.
	(gimple_eh_filter_failure): Use it.
	(gimple_eh_else_n_body_ptr): New function.
	(gimple_eh_else_n_body): Use it.
	(gimple_eh_else_e_body_ptr): New function.
	(gimple_eh_else_e_body): Use it.
	(gimple_try_eval_ptr): New function.
	(gimple_try_eval): Use it.
	(gimple_try_cleanup_ptr): New function.
	(gimple_try_cleanup): Use it.
	(gimple_wce_cleanup_ptr): New function.
	(gimple_wce_cleanup): Use it.
	(gimple_omp_body_ptr): New function.
	(gimple_omp_body): Use it.
	(gimple_omp_for_pre_body_ptr): New function.
	(gimple_omp_for_pre_body): Use it.
	(gimple_transaction_body_ptr): New function.
	(gimple_transaction_body): Use it.
	(gsi_split_seq_before): Adjust to return nothing and take pointer
	to sequence.
	(gsi_set_stmt): Declare.
	(gsi_replace_with_seq): Declare.
	(walk_gimple_seq_mod): Declare.
	* function.h (struct function <gimple_body>): Use typedef gimple_seq.

	* gimple-iterator.c (gsi_set_stmt): New function.
	(gsi_split_seq_before): Return new sequence via pointer argument.
	(gsi_replace): Use gsi_set_stmt.

	* tree-ssa-loop-im.c (move_computations_stmt): First remove
	then insert stmt.
	* tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
	* tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
	return new stmt.
	(reserve_phi_args_for_new_edge): Change call to above,
	use gsi_set_stmt.

	* omp-low.c (lower_omp): Change prototype to take pointer to sequence.
	(lower_rec_input_clauses): Use gimple_seq_add_seq instead of
	iterators.  Adjust call to lower_omp.
	(lower_lastprivate_clauses): Adjust call to lower_omp.
	(lower_reduction_clauses): Ditto.
	(expand_omp_taskreg): Nullify non-cfg body of child_fn.
	(lower_omp_sections): Don't explicitely count sequence length,
	nullify lowered bodies earlier, ensure stmts are part of only
	one sequence, adjust call to lower_omp.
	(lower_omp_single): Ensure stmts are part of only one sequence,
	adjust call to lower_omp.
	(lower_omp_master): Ditto.
	(lower_omp_ordered): Ditto.
	(lower_omp_critical): Ditto.
	(lower_omp_for): Ditto.
	(lower_omp_taskreg): Ditto, tidy.
	(lower_omp_1): Adjust calls to lower_omp.
	(execute_lower_omp): Ditto.
	(lower_omp): Adjust to take pointer to sequence.
	(diagnose_sb_2): Use walk_gimple_seq_mod.
	(diagnose_omp_structured_block_errors): Ditto and set possibly
	changed function body.
	* gimple-low.c (lower_function_body): Set function body after
	it stabilizes.
	(lower_sequence): Adjust to take pointer to sequence.
	(lower_omp_directive): Ensure stmt isn't put twice into the
	sequence, adjust call to lower_sequence.
	(lower_stmt): Adjust calls to lower_sequence.
	(lower_gimple_bind): Ditto.
	(gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
	* tree-nested.c (walk_body): Take pointer to sequence, use
	walk_gimple_seq_mod.
	(walk_function): Adjust call to walk_body, set possibly changed body.
	(walk_gimple_omp_for): Adjust calls to walk_body.
	(convert_nonlocal_omp_clauses): Ditto.
	(convert_nonlocal_reference_stmt): Ditto.
	(convert_local_omp_clauses): Ditto.
	(convert_local_reference_stmt): Ditto.
	(convert_tramp_reference_stmt): Ditto.
	(convert_gimple_call): Ditto.
	(convert_nl_goto_reference): Use local iterator copy.
	* gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
	but taking pointer to sequence, ensure gsi_start is called with
	callers lvalue.
	(walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
	asserting that the sequence head didn't change.
	(walk_gimple_stmt): Replace all calls to walk_gimple_seq with
	walk_gimple_seq_mod.
	* trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
	(execute_lower_tm): Ditto, and set possibly changed body.
	* tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
	call gsi_start with that lvalue.
	(replace_goto_queue_stmt_list): Ditto.
	(replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
	(replace_goto_queue): Ditto.
	(lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
	(lower_try_finally_onedest): Ditto.
	(lower_try_finally_copy): Ditto.
	(lower_try_finally_switch): Ditto.
	(lower_try_finally): Ditto.
	(lower_eh_filter): Ditto.
	(lower_eh_must_not_throw): Ditto.
	(lower_cleanup): Ditto.
	(lower_eh_constructs_2): Ditto.
	(lower_catch): Ditto, and ensure gsi_start is called with lvalue.
	(lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
	set possibly changed body.
	(optimize_double_finally): Call gsi_start with lvalue.

	* tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
	(gimple_split_block): Ditto.
	(gimple_merge_blocks): Use gsi_start_phis.
	(move_stmt_r): Use walk_gimple_seq_mod.
	* tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
	* cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
	(rebuild_cgraph_edges): Ditto.
	(cgraph_rebuild_references): Ditto.
	* ipa-prop.c (ipa_analyze_params_uses): Ditto.
	* tree-inline.c (copy_phis_for_bb): Ditto.
	* tree-ssa-dce.c: Ditto.

	* cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.

2012-05-02  Kirill Yukhin  <kirill.yukhin@intel.com>
	    Andi Kleen  <ak@linux.intel.com>

	* coretypes.h (MEMMODEL_MASK): New.
	* builtins.c (get_memmodel): Add val. Call target.memmodel_check
	and return new variable.
	(expand_builtin_atomic_exchange):  Mask memmodel values.
	(expand_builtin_atomic_compare_exchange): Ditto.
	(expand_builtin_atomic_load): Ditto.
	(expand_builtin_atomic_store): Ditto.
	(expand_builtin_atomic_clear): Ditto.
	* doc/extend.texi: Mention port-dependent memory model flags.
	* config/i386/cpuid.h (bit_HLE): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	HLE support.
	* config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
	* config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
	(ix86_target_string)<-mhle>: New.
	(ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
	* config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
	(ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
	(ix86_option_override_internal) <PTA_HLE>: New switch, set it
	enabled for generic, generic64 and core-avx2.
	(ix86_print_operand): Generate HLE lock prefixes.
	(ix86_memmodel_check): New.
	(TARGET_MEMMODEL_CHECK): Ditto.
	* config/i386/i386.h (OPTION_ISA_HLE): Ditto.
	(IX86_HLE_ACQUIRE): Ditto.
	(IX86_HLE_RELEASE): Ditto.
	* config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
	* config/i386/i386.opt (mhle): Ditto.
	* config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
	success model to instruction emitter.
	(atomic_fetch_add<mode>): Ditto.
	(atomic_exchange<mode>): Ditto.
	(atomic_add<mode>): Ditto.
	(atomic_sub<mode>): Ditto.
	(atomic_<code><mode>): Ditto.
	(*atomic_compare_and_swap_doubledi_pic): Ditto.
	(atomic_compare_and_swap_single<mode>): Define and use argument
	for success model.
	(atomic_compare_and_swap_double<mode>): Ditto.
	* configure.ac: Check if assembler support HLE prefixes.
	* configure: Regenerate.
	* config.in: Ditto.

2012-05-02  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/53153
	* gimplify.c (preprocess_case_label_vec_for_gimple): New function,
	split out from ...
	(gimplify_switch_expr): ... here.
	* gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
	* tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
	to clean up case labels with values outside the index type range.
	(simplify_gimple_switch): Call it if something changed.
	Remove strange and unnecessary assert.

2012-05-02  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (div_if_zero_remainder): sizetypes no longer
	sign-extend.
	(int_const_binop_1): New worker for int_const_binop with
	overflowable parameter.  Pass it through to force_fit_type_double.
	(int_const_binop): Wrap around int_const_binop_1 with overflowable
	equal to one.
	(size_binop_loc): Call int_const_binop_1 with overflowable equal
	to minus one, forcing overflow detection for even unsigned types.
	(extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
	(fold_binary_loc): Call try_move_mult_to_index with signed offset.
	* stor-layout.c (initialize_sizetypes): sizetypes no longer
	sign-extend.
	(layout_type): For zero-sized arrays ignore overflow on the
	size calculations.
	* tree-ssa-ccp.c (bit_value_unop_1): Likewise.
	(bit_value_binop_1): Likewise.
	* tree.c (double_int_to_tree): Likewise.
	(double_int_fits_to_tree_p): Likewise.
	(force_fit_type_double): Likewise.
	(host_integerp): Likewise.
	(int_fits_type_p): Likewise.
	* varasm.c (output_constructor_regular_field): Sign-extend the
	field-offset to cater for negative offsets produced by the Ada
	frontend.
	* omp-low.c (extract_omp_for_data): Convert the loop step to
	signed for pointer adjustments.

2012-05-02  Richard Guenther  <rguenther@suse.de>

	* tree.c (valid_constant_size_p): New function.
	* tree.h (valid_constant_size_p): Declare.
	* cfgexpand.c (expand_one_var): Adjust check for too large
	variables by using valid_constant_size_p.
	* varasm.c (assemble_variable): Likewise.

	* c-decl.c (grokdeclarator): Properly check for sizes that
	cover more than half of the address-space.

2012-05-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/53163
	* tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
	return value from compute_all_dependences.

	PR rtl-optimization/53160
	* ree.c (combine_reaching_defs): Handle the case where cand->insn
	has been modified by ree pass already.

2012-05-01  Ian Lance Taylor  <iant@google.com>

	PR c/37303
	* c-decl.c (build_compound_literal): Make the decl readonly if it
	an array of a readonly type.
	* gimplify.c (gimplify_compound_literal_expr): Add fallback
	parameter.  Change all callers.  If the decl is not addressable
	and is not an l-value, make it readonly.

2012-05-01  Bernd Schmidt  <bernds@codesourcery.com>

	* ira.c (allocated_reg_info_size): New static variable.
	(expand_reg_info): Manage it. Call
	setup_preferred_alternate_classes_for_new_pseudos.
	(ira): Don't do it here.  Remove local allocated_reg_info_size,
	set the global before calling find_moveable_pseudos.
	(find_moveable_pseudos): Call expand_reg_info rather than
	resize_reg_info.

2012-05-01  Richard Henderson  <rth@redhat.com>

	* common.opt (fsync-libcalls): New.
	* doc/invoke.texi: Document it.
	* optabs.c (init_sync_libfuncs): Honor it.

2012-05-01  Kenneth Zadeck  <zadeck@naturalbridge.com>
	    Richard Sandiford  <r.sandiford@uk.ibm.com>

	PR rtl-optimization/52543
	* Makefile.in (lower-subreg.o, target-globals.o): Depend on
	lower-subreg.h.
	* lower-subreg.h: New file.
	* target-globals.h (this_target_lower_subreg): Declare.
	(target_globals): Add lower_subreg;
	(restore_target_globals): Restore this_target_lower_subreg.
	* target-globals.c: Include it.
	(default_target_globals): Add default_target_lower_subreg.
	(save_target_globals): Initialize target_lower_subreg.
	* rtl.h (init_lower_subreg): Added declaration.
	* toplev.c (backend_init_target): Call initializer for lower-subreg
	pass.
	* lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
	(default_target_lower_subreg): New variable.
	(this_target_lower_subreg): Likewise.
	(twice_word_mode, choices): New macros.
	(shift_cost, compute_splitting_shift, compute_costs)
	(init_lower_subreg): New functions.
	(resolve_simple_move): Add speed_p argument.  Check choices.
	(find_pseudo_copy): Don't check the mode size here.
	(resolve_simple_move): Assert the mode size.
	(find_decomposable_shift_zext): Add speed_p argument and return
	a bool.  Check choices.
	(resolve_shift_zext): Add comment.
	(dump_shift_choices, dump_choices): New functions.
	(decompose_multiword_subregs): Dump list of profitable
	transformations.  Add code to skip non profitable transformations.
	Update calls to simple_move and find_decomposable_shift_zext.

2012-05-01  Ian Bolton  <ian.bolton@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh  <greta.yorsh@arm.com>

	* config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
	(thumb1_unexpanded_epilogue): ...this.
	* config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
	(thumb1_unexpanded_epilogue): ...this.
	* config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
	(thumb1_unexpanded_epilogue): ...this.

2012-05-01  Richard Earnshaw  <rearnsha@arm.com>

	* arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
	comparing enumeration values.  Update comments.

2012-05-01  Alan Modra  <amodra@gmail.com>

	PR target/53038
	* config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
	load_cr_save, add_crlr_cfa_restore): New functions.
	(rs6000_restore_saved_cr): Rename to..
	(restore_saved_cr): ..this.  Add cfa_restore notes for cr.
	(rs6000_emit_epilogue): Use new functions.  Adjust condition
	for emitting lr and cr cfa_restore.  Emit cfa_restores for fp
	regs when using out-of-line restore only when shrink wrapping.

2012-04-30  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/53136
	* ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
	calls to cgraph_node_name in xstrdup.
	(ipa_make_edge_direct_to_target): Ditto.
	* cgraph.c (dump_cgraph_node): Ditto.
	* tree-sra.c (convert_callers_for_node): Ditto.
	* lto-symtab.c (lto_cgraph_replace_node): Ditto.
	* ipa-cp.c (perhaps_add_new_callers): Ditto.
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
	(cgraph_materialize_all_clones): Ditto.
	* ipa-inline.c (report_inline_failed_reason): Ditto.
	(want_early_inline_function_p): Ditto.
	(edge_badness): Ditto.
	(update_edge_key): Ditto.
	(flatten_function): Ditto.
	(ipa_inline): Ditto.
	(inline_always_inline_functions): Ditto.
	(early_inline_small_functions): Ditto.

2012-04-30  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53141
	* config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
	constraints 0 and 1.

012-04-30  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
	(cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
	(cgraph_add_to_same_comdat_group): Remove.
	(cgraph_add_asm_node): Move to cgraphunit.c.
	(cgraph_make_decl_local): Move to symtab.c
	(cgraph_make_node_local_1): Update.
	(cgraph_can_remove_if_no_direct_calls_and): Update.
	(used_from_object_file_p): Update.
	(resolution_used_from_other_file_p): Move to symtab.c
	(cgraph_used_from_object_file_p): move to symtab.c
	(verify_cgraph_node): Verify same comdat groups.
	* cgraph.h (cgraph_asm_node): Rename to ...
	(asm_node): ... this one.
	(cgraph_asm_nodes): Rename to ...
	(asm_nodes): ... this one.
	(symtab_add_to_same_comdat_group): New function.
	(symtab_dissolve_same_comdat_group_list): New function.
	(symtab_used_from_object_file_p): Declare.
	(symtab_make_decl_local): Declare.
	(cgraph_add_to_same_comdat_group): Remove.
	(cgraph_add_asm_node): Remove.
	(cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
	Remove.
	(cgraph_finalize_compilation_unit): Rename to ...
	(finalize_compilation_unit): ... this one.
	(cgraph_optimize): Rename to ....
	(compile): ... this one.
	(add_asm_node): Declare.
	(fixup_same_cpp_alias_visibility): Declare.
	(cgraph_make_decl_local): Remove.
	(varpool_assemble_pending_decls): Rename to ...
	(varpool_output_variables): ... this one.
	(varpool_remove_unreferenced_decls): Remove.
	* ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
	(preserve_function_body_p): Make static.
	* toplev.c (compile_file): Update comments; update.
	* cgraphunit.c: Update comments.
	(cgraph_expand_all_functions): Rename to ...
	(expand_all_functions): ... this one; update.
	(cgraph_mark_functions_to_output): Rename to ...
	(mark_functions_to_output): ... this one; cleanup.
	(cgraph_output_pending_asms): Remove prototype.
	(asm_nodes, asm_last_node): New static vars.
	(cgraph_process_new_functions): Update.
	(cgraph_reset_node): Cleanup; add comment.
	(cgraph_add_new_function): Update.
	(cgraph_output_pending_asms): Rename to ...
	(output_asm_statements): ... this one.
	(add_asm_node): New function.
	(fixup_same_cpp_alias_visibility): New function based on code
	in cgraph_analyze_function.
	(cgraph_analyze_function): Use it.
	(cgraph_order_sort): Update.
	(cgraph_output_in_order): Update.
	(cgraph_function_versioning): Update.
	(cgraph_optimize): Rename to ...
	(compile): ... this one; initialize streamer hooks here.
	(cgraph_finalize_compilation_unit): Rename to ...
	(finalize_compilation_unit): ... this one; do not initialize streamer
	hook here.
	* lto-streamer-out.c (lto_output_toplevel_asms): Update.
	* dwarf2out.c: Update ocmment.
	* optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
	* method.c (use_thunk): Likewise.
	* semantics.c (maybe_add_lambda_conv_op): Likewise.
	* decl2.c (maybe_emit_vtables): Likewise.
	(cp_write_global_declarations): Use finalize_compilation_unit.
	* parser.c (cp_parser_asm_definition): Use add_asm_node.
	* lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
	* c-decl.c (c_write_global_declarations): Use
	finalize_compilation_unit.
	* langhooks.c (write_global_declarations): Update.
	* ipa.c (cgraph_externally_visible_p): Update.
	(dissolve_same_comdat_group_list): Remove.
	(function_and_variable_visibility): Update.
	* symtab.c: Inlcude lto-streamer.h and rtl.h
	(ld_plugin_symbol_resolution_names): New.
	(symtab_add_to_same_comdat_group): New.
	(symtab_dissolve_same_comdat_group_list): New.
	(resolution_used_from_other_file_p): Move here from cgraph.c
	(symtab_used_from_object_file_p): New.
	(symtab_make_decl_local): New.
	* passes.c (register_pass): Update comments.
	* c-parser.c (c_parser_asm_definition): Update.
	* varpool.c (varpool_analyze_node): Use
	fixup_same_cpp_alias_visibility.
	(varpool_remove_unreferenced_decls): Make static.
	(varpool_assemble_pending_decls): Rename to ...
	(varpool_output_variables): ... this one; call
	varpool_remove_unreferenced_decls.
	(varpool_used_from_object_file_p): Remove.

2012-04-30  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/51033
	* c-typeck.c (build_array_ref): Call
	convert_vector_to_pointer_for_subscript.
	* doc/extend.texi (Vector Extensions): Subscripting not just for C.

2012-04-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (and<mode>3): Change runtime operand mode checks
	to compile-time "mode == <MODE>mode" checks.
	(and splitter): Ditto.

2012-04-30  Richard Henderson  <rth@redhat.com>

	* config/arm/arm.md (UNSPEC_LL): New.
	* config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
	(arm_load_exclusivedi): Use %H0.

2012-04-30  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (comdat_symbol_id): Add const.
	(union die_symbol_or_type_node): Add const to die_symbol.
	(output_die_symbol, output_die, output_comp_unit): Adjust.

2012-04-30  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.md (negdi2): Use gen_negdi2_neon.
	* config/arm/neon.md (negdi2_neon): New insn.
	Also add splitters for core and NEON registers.

2012-04-30  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (neon_valid_immediate): Allow const_int.
	(arm_print_operand): Add 'x' format.
	* config/arm/constraints.md (Dn): Allow const_int.
	* config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
	Use 'x' format to print constants.
	* config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
	* config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
	is enabled.
	(movdi_vfp_cortexa8): Likewise.

2012-04-30  Ian Bolton  <ian.bolton@arm.com>
	    Sameera Deshpande  <sameera.deshpande@arm.com>
	    Greta Yorsh	 <greta.yorsh@arm.com>

	* config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
	* config/arm/arm.c (ldm_stm_operation_p): New function.
	* config/arm/predicates.md (load_multiple_operation): Update predicate.
	(store_multiple_operation): Likewise.

	* config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
	* config/arm/arm.c (ldm_stm_operation_p): New parameters.
	* config/arm/predicates.md (load_multiple_operation): Add arguments.
	(store_multiple_operation): Likewise.

2012-04-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (and<mode>3): Expand masking operations with
	0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
	(and splitter): Split to DImode zero_extend RTX for DImode operand[0].

2012-04-30  Dodji Seketeli  <dodji@redhat.com>

	Add -Wvarargs option
	* builtins.c (fold_builtin_next_arg):  Use OPT_Wvarargs as an
	argument for the various warning_at calls.
	* docs/invoke.texi: Update the documentation.

2012-04-30  Dodji Seketeli  <dodji@redhat.com>

	Switch -ftrack-macro-expansion=2 on by default.
	* docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
	by default.

	Fix va_start related location
	* builtins.c (fold_builtin_next_arg): Unwinds to the first
	location in real source code.

	Make conversion warnings work on NULL with -ftrack-macro-expansion
	* input.h (expansion_point_location_if_in_system_header): Declare
	new function.
	* input.c (expansion_point_location_if_in_system_header): Define it.

	Fix -Wuninitialized for -ftrack-macro-expansion
	* tree-ssa.c (warn_uninit): Use the spelling location of the variable
	declaration.  Use linemap_location_before_p for source locations.

	Strip "<built-in>" loc from displayed expansion context
	* input.c (expand_location_1): When expanding to spelling location
	in a context of a macro expansion, skip reserved system header
	locations.  Update comments.  * tree-diagnostic.c
	(maybe_unwind_expanded_macro_loc): Likewise.

	Make expand_location resolve to locus in main source file
	* input.c (expand_location_1): New.  Takes a parameter to choose
	whether to resolve the location to spelling or expansion point.
	Was factorized from ...
	(expand_location): ... here.
	(expand_location_to_spelling_point): New.  Implemented in terms of
	expand_location_1.
	* diagnostic.c (diagnostic_build_prefix): Use the new
	expand_location_to_spelling_point instead of expand_location.

	Fix PCH crash on GTYed pointer-to-scalar field of a struct
	* gengtype.c (write_types_process_field): Force second argument of
	the call to the PCH object hierarchy walker to be 'x'.

2012-04-30  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
	predicate to discriminate types.

2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Wmissing-format-attribute): Document as an
	alias of Wsuggest-attribute=format.
	* c-typeck.c (convert_for_assignment): Replace
	Wmissing-format-attribute with Wsuggest-attribute=format.
	(digest_init): Likewise.

2012-04-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* opts.c (finish_options): Do not handle -Wmissing-noreturn here.
	* common.opt (Wmissing-noreturn): Alias of
	-Wsuggest-attribute=noreturn.

2012-04-29  Hans-Peter Nilsson  <hp@axis.com>

	PR target/53156
	* config/cris/cris.md (andqu): New peephole2.
	(andu): Tweak head comment.

2012-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Steven Bosscher  <steven@gcc.gnu.org>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR tree-optimization/38785
	* common.opt (ftree-partial-pre): New option.
	* doc/invoke.texi: Document it.
	* opts.c (default_options_table): Initialize flag_tree_partial_pre.
	* tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
	benefit speed path.
	(execute_pre): Use flag_tree_partial_pre.

2012-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/52999
	* config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
	in constant pool.

2012-04-27  Ollie Wild  <aaw@google.com>

	* doc/invoke.texi (Wliteral-suffix): Document new option.

2012-04-27  Tom Tromey  <tromey@redhat.com>

	* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
	(dwarf_tag_name): Use get_DW_TAG_name.
	(dwarf_attr_name): Use get_DW_AT_name.
	(dwarf_form_name): Use get_DW_FORM_name.
	* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.

2012-04-27  Paolo Bonzini  <bonzini@gnu.org>

	* tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
	arguments are -1 and 0, by negating the result of the conditional.

2012-04-27  Paolo Bonzini  <bonzini@gnu.org>

	PR target/53138
	* config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.

2012-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (is_hidden_global_store): Remove.
	* tree-ssa-sink.c (is_hidden_global_store): Likewise.
	* tree-ssa-alias.h (ref_may_alias_global_p): Declare.
	(stmt_may_clobber_global_p): Likewise.
	* tree-ssa-alias.c (ref_may_alias_global_p): New function.
	(stmt_may_clobber_global_p): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
	stmt_may_clobber_global_p.
	* tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.

2012-04-27  Steven Bosscher  <steven@gcc.gnu.org>

	* cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
	place.

	* tree-switch-conversion.c (struct switch_conv_info): Add range_max,
	reorganize some fields and update comments.  Rename bit_test_uniq
	and bit_test_count to uniq resp. count.  Remove bit_test_bb.
	(collect_switch_conv_info): New function, collects info about a
	GIMPLE_SWITCH into a struct switch_conv_info.
	(check_range): Simplify to use pre-recorded info.  Fix think-o in
	range-branch ratio check.
	(check_process_case): Remove function.
	(check_all_empty_except_final): New function, verifies that all
	non-final basic blocks are empty.
	(process_switch): Simplify to use pre-recorded info.  Call
	collect_switch_conv_info to do that.  Assert that degenerate switch
	statements have been cleaned up.

2012-04-27  Marc Glisse  <marc.glisse@inria.fr>

	PR middle-end/27139
	* tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.

2012-04-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/53130
	* c-typeck.c (pop_init_level): Use %qD instead of %qT.

2012-04-27  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/51879
	* tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
	* tree-ssa-sccvn.c (mark_use_processed): New function, factored out
	of ...
	(defs_to_varying): ... here.  Don't set use_processed.
	(visit_reference_op_call): Handle gimple_vdef.
	Handle case that lhs is NULL_TREE.
	(visit_use): Use mark_use_processed.  Handle calls with side-effect
	using visit_reference_op_call.

2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>

	* sched-deps.c (fixup_sched_groups): Rename to...
	(chain_to_prev_insn): ...this.
	(chain_to_prev_insn_p): New function.
	(deps_analyze_insn): Use it instead of SCHED_GROUP_P.

2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>

	* sched-int.h (_haifa_insn_data): Move priority_status.
	Add model_index.
	(INSN_MODEL_INDEX): New macro.
	* haifa-sched.c (insn_delay): New function.
	(sched_regno_pressure_class): Update commentary.
	(mark_regno_birth_or_death): Pass the liveness bitmap and
	pressure array as arguments, instead of using curr_reg_live and
	curr_reg_pressure.  Only update the pressure if the bit in the
	liveness set has changed.
	(initiate_reg_pressure_info): Always trust the live-in set for
	SCHED_PRESSURE_MODEL.
	(initiate_bb_reg_pressure_info): Update call to
	mark_regno_birth_or_death.
	(dep_list_size): Take the list as argument.
	(calculate_reg_deaths): New function, extracted from...
	(setup_insn_reg_pressure_info): ...here.
	(MODEL_BAR): New macro.
	(model_pressure_data, model_insn_info, model_pressure_limit)
	(model_pressure_group): New structures.
	(model_schedule, model_worklist, model_insns, model_num_insns)
	(model_curr_point, model_before_pressure, model_next_priority):
	New variables.
	(MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
	(MODEL_INSN_INFO, MODEL_INSN): New macros.
	(model_index, model_update_limit_points_in_group): New functions.
	(model_update_limit_points, model_last_use_except): Likewise.
	(model_start_update_pressure, model_update_pressure): Likewise.
	(model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
	(model_excess_cost, model_dump_pressure_points): Likewise.
	(model_set_excess_costs): Likewise.
	(rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
	SCHED_PRIORITY_MODEL.  Use insn_delay.  Use the order in the model
	schedule as an alternative tie-breaker.  Update the call to
	dep_list_size.
	(ready_sort): Call model_set_excess_costs.
	(update_register_pressure): Update call to mark_regno_birth_or_death.
	Rely on that function to check liveness rather than doing it here.
	(model_classify_pressure, model_order_p, model_add_to_worklist_at)
	(model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
	(model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
	(model_record_pressure, model_record_pressures): New functions.
	(model_record_final_pressures, model_add_successors_to_worklist)
	(model_promote_predecessors, model_choose_insn): Likewise.
	(model_reset_queue_indices, model_dump_pressure_summary): Likewise.
	(model_start_schedule, model_finalize_pressure_group): Likewise.
	(model_end_schedule): Likewise.
	(schedule_insn): Say when we're scheduling the next instruction
	in the model schedule.
	(schedule_insn): Handle SCHED_PRESSURE_MODEL.
	(queue_to_ready): Do not add instructions that are
	MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
	Always allow the next instruction in the model schedule to be added.
	(debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
	and delay for SCHED_PRESSURE_MODEL too.
	(prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
	SCHED_PRIORITY_MODEL, but also take the DFA into account.
	(schedule_block): Call model_start_schedule and model_end_schedule.
	Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
	(sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
	to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
	region_ref_regs.
	(sched_finish): Update accordingly.
	(fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
	to SCHED_PRESSURE_MODEL.
	(add_jump_dependencies): Update call to dep_list_size.
	(haifa_finish_h_i_d): Fix leak of max_reg_pressure.
	(haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
	to SCHED_PRESSURE_MODEL.
	* sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
	allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
	(sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
	handling to SCHED_PRESSURE_MODEL.

2012-04-26  Richard Sandiford  <richard.sandiford@linaro.org>

	* common.opt (fsched-pressure-algorithm=): New option.
	* flag-types.h (sched_pressure_algorithm): New enum.
	* sched-int.h (sched_pressure_p): Replace with...
	(sched_pressure): ...this new variable.
	* haifa-sched.c (sched_pressure_p): Replace with...
	(sched_pressure): ...this new variable.
	(sched_regno_pressure_class, rank_for_schedule, ready_sort)
	(update_reg_and_insn_max_reg_pressure, schedule_insn)
	(debug_ready_list, prune_ready_list, schedule_block, sched_init)
	(sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
	* sched-deps.c (init_insn_reg_pressure_info): Likewise.
	(sched_analyze_insn): Likewise.
	* sched-rgn.c (schedule_region): Likewise.
	* config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.

2012-04-26  Bernd Schmidt  <bernds@codesourcery.com>

	PR middle-end/52997
	* ira.c (find_moveable_pseudos): Call resize_reg_info.

	PR middle-end/52940
	* machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
	* expr.c (convert_move): Honor unsignedp when extending partial int
	modes.
	* genmodes.c (complete_mode): Don't clear component field of partial
	int modes.
	(emit_mode_inner): Don't emit it however.
	(calc_wider_mode): Partial int modes widen to their component.

2012-04-26  David S. Miller  <davem@davemloft.net>

	* config/sparc/niagara4.md: New file.
	* config/sparc/sparc.md: Include it.
	* config/sparc/sparc.c (niagara4_costs): New processor costs.
	(sparc_option_override): Use it.
	(sparc_use_sched_lookahead): Return 2 for niagara4.
	(sparc_issue_rate): Likewise.

	* config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
	(fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
	(fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
	fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
	(alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
	alignaddrldi_vis): Set type to gsr.
	(pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
	(fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
	cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
	v<vis3_shift_patname><mode>3, fmean16_vis,
	fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
	fucmp<code>8<P:mode>_vis): Set type to fga.
	* config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
	* config/sparc/niagara.md: Likewise.
	* config/sparc/niagara2.md: Likewise.
	* config/sparc/ultra3.md: Likewise, and fix type matching for
	us3_ialuX reservation.

2012-04-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* reload.c (find_reloads): Change the loop nesting when trying an
	alternative with swapped operands.

2012-04-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
	comment. Delete unused parameter first_exp_point_map.
	(virt_loc_aware_diagnostic_finalizer): Update call.

2012-04-26  Michael Hope  <michael.hope@linaro.org>
	    Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
	(GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
	(GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
	(GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.

2012-04-25  Sriraman Tallam  <tmsriram@google.com>

	* doc/extend.texi: Document avx2 support.
	* config/i386/i386.c (fold_builtin_cpu): Add avx2.

2012-04-26  Hans-Peter Nilsson  <hp@axis.com>

	PR target/53120
	* config/cris/cris.md ("*andhi_lowpart_v32")
	("*andqi_lowpart_v32"): Change first input-only operand from
	a (match_operand ...) to (match_dup 0).  Drop alternatives with
	const_int-matching constraints for redundancy.
	("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto.  Drop
	three-operand alternative.

2012-04-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/53110
	* config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
	instead expand it as zero extension.

2012-04-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/52857
	* dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.

2012-04-25  Jakub Jelinek  <jakub@redhat.com>

	* common.opt (flag_debug_types_section): Default to 0.
	(dwarf_version): Default to 4.
	(dwarf_record_gcc_switches): Default to 1.
	(dwarf_strict): Default to 0.
	* toplev.c (process_options): Don't handle dwarf_strict
	or dwarf_version here.
	* config/vxworks.c (vxworks_override_options): Don't
	test whether dwarf_strict or dwarf_version are negative,
	instead test !global_options_set.x_dwarf_*.
	* config/darwin.c (darwin_override_options): Default to
	dwarf_version 2.
	* doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
	and -fno-debug-types-section are now the default.

2012-04-25  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c: Update toplevel comment.
	(tree_rest_of_compilation): Merge into cgraph_expand_function.
	(cgraph_analyze_function): Make static.
	(cgraph_decide_is_function_needed): Make static.
	(cgraph_add_new_function): Use expand_function instead of
	rest_of_compilation.
	(clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
	verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
	Move to cgraph.c
	(cgraph_inline_p): Remove.
	(cgraph_preserve_function_body_p): Move to ipa-inline-transform.
	(init_cgraph): Add comment.
	* cgraphbuild.c (record_reference, mark_address, mark_load,
	mark_store): Do not call analyze_expr hook.
	* cgraph.c: Update toplevel comment.
	(clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
	verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
	Move fere from cgraphunit.c
	(cgraph_mark_force_output_node): Move to cgraph.h
	* cgraph.h: Reorder so the comments match the function placement.
	(cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
	(cgraph_mark_force_output_node): Move here from cgraph.c
	* tree.c (free_lang_data): Do not clear analyze_expr hook.
	* ipa-inline-transform.c (preserve_function_body_p): New function.
	(inline_transform): Update.
	* langhooks.c (lhd_callgraph_analyze_expr): Remove.
	* langhooks.h (lang_hooks_for_callgraph): Remove.
	(lang_hooks): Remove callgraph.
	* tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
	* varpool.c: Remove out of date comment.
	* langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
	(LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.

2012-04-25  Jan Hubicka  <jh@suse.cz>

	PR middle-end/53089
	* cgraphunit.c (referred_to_p): Move ahead in file to avoid
	forward declaration.
	(cgraph_finalize_function): Finalize them here.
	* symtab.c (dump_symtab): Dump ctors and dtors.

2012-04-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/52979
	* stor-layout.c (get_best_mode): Don't return mode with bitsize
	larger than maxbits.  Don't compute maxbits modulo align.
	Also check that unit bytes long store at bitpos / unit * unit
	doesn't affect bits beyond bitregion_end.
	* expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
	would not fit into bitregion_start ... bitregion_end + 1 bit region.
	(store_split_bit_field): Decrease unit close to end of bitregion_end
	if access is restricted in order to avoid mutual recursion.

	PR tree-optimization/53058
	* double-int.h (double_int_max_value, double_int_min_value): New
	prototypes.
	* double-int.c (double_int_max_value, double_int_min_value): New
	functions.
	* tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
	or GT_EXPR with double_int_max_value instead of double_int_mask.

2012-04-25  Richard Guenther  <rguenther@suse.de>

	* tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
	* tree-vect-loop.c (vect_transform_loop): Adjust.
	* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
	the maximum number of iterations for the epilogue loop.
	(vect_loop_versioning): Remove case re-using the peeled epilogue loop.

2012-04-25  Jakub Jelinek  <jakub@redhat.com>

	PR c/52880
	* c-typeck.c (set_nonincremental_init,
	set_nonincremental_init_from_string): Pass true instead of false
	as IMPLICIT to add_pending_init.

2012-04-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-typeck.c (pop_init_level): Improve diagnostics.

2012-04-25  Uros Bizjak  <ubizjak@gmail.com>

	* compare-elim.c (try_eliminate_compare): Also handle operands with
	implicit extensions.

2012-04-25  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
	V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
	SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
	(no_global_regs_above): Delete.
	(no_global_regs): New function.
	(rs6000_savres_strategy): Handle vector regs.  Use proper lr_save_p
	value for load multiple test.
	(savres_routine_syms): Increase size.
	(rs6000_savres_routine_name, rs6000_savres_routine_sym,
	ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
	rather than a number of boolean flags.  Update all callers.
	(rs6000_savres_routine_name): Generate vector save/restore names.
	(rs6000_savres_routine_sym): Handle vector regs.  Delete forward decl.
	(ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
	(rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
	and using_store_multiple.  Expand uses.  Don't always use r11 as
	frame reg when needed for out-of-line saves.  Set up initial offset
	for out-of-line vector saves when buying stack frame.  Handle pointer
	reg setup for out-of-line fp save.  Emit call to out-of-line vector
	save function.  Choose r11 or r12 for vrsave reg when available for
	better scheduling.
	(rs6000_output_function_prologue): Don't emit .extern for ELF.
	(rs6000_emit_epilogue): Choose a better frame reg when restoring
	from back-chain to suit out-of-line vector restore functions.  Emit
	call to out-of-line vector restore function.  Adjust register used
	for cr restore.  Tweak pointer register setup for gpr restore.
	* config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
	FIXED_R13.
	* config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
	(V_SAVE_INLINE): Define.
	* config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.

2012-04-25  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
	out-of-line save/restore for large frames.  Don't disable
	out-of-line saves on ABI_AIX when using static chain reg.
	(rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
	clobber static chain reg, and tweak for out-of-line gpr saves
	that use r1.

2012-04-25  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
	(rs6000_emit_prologue): Use the above to catch register overlap.

2012-04-25  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
	decl.  Move logic selecting update reg to callers.  Update all callers.
	(rs6000_emit_allocate_stack): Add copy_off param.
	(emit_frame_save): Don't handle reg+reg addressing.
	(ptr_regno_for_savres): New function, extracted from..
	(rs6000_emit_savres_rtx): ..here.  Add lr_offset param.
	(rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
	Set frame_reg_rtx to r11 whenever r11 is needed, and merge
	frame offset adjustment for out-of-line save with copy from sp.
	Simplify condition controlling whether cr is saved early or
	late.  Use ptr_regno_for_savres to verify correct reg is set
	up for out-of-line saves.  Pass the actual pointer reg used to
	rs6000_emit_savres_rtx so rtl matches insns in out-of-line
	function.  Rearrange spe vars so code is similar to that
	elsewhere in this function.  Don't update frame_off when spe
	save code will restore r11.  Use emit_frame_save for spe and
	gpr saves.  Consolidate darwin out-of-line gpr setup with that
	for other abis.  Don't assume frame_offset is zero and frame
	reg is sp when setting up altivec reg saves, and calculate
	exact offset requirement.
	(rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off.  Tidy
	spe restore code.  Consolidate darwin out-of-line gpr setup
	with that for other abis.

2012-04-25  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
	REG_FRAME_RELATED_EXPR note when the instruction exactly matches
	the replacement.
	(emit_frame_save): Delete frame_ptr param.  Rename total_size to
	frame_reg_to_sp.
	(rs6000_emit_prologue): Add sp_off.  Update rs6000_frame_related
	and emit_frame_save calls.  Cope with possibly missing note.

2012-04-24  Sriraman Tallam  <tmsriram@google.com>

	* config/i386/i386.c (build_processor_model_struct): New function.
	(make_var_decl): New function.
	(fold_builtin_cpu): New function.
	(ix86_fold_builtin): New function.
	(make_cpu_type_builtin): New function.
	(ix86_init_platform_type_builtins): New function.
	(ix86_expand_builtin): Expand new builtins by folding them.
	(ix86_init_builtins): Make new builtins to detect CPU type.
	(TARGET_FOLD_BUILTIN): New macro.
	(IX86_BUILTIN_CPU_INIT): New enum value.
	(IX86_BUILTIN_CPU_IS): New enum value.
	(IX86_BUILTIN_CPU_SUPPORTS): New enum value.
	* config/i386/i386-builtin-types.def: New function type.
	* doc/extend.texi: Document builtins.

2012-04-24  Olivier Hainque  <hainque@adacore.com>

	* common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
	* toplev.c (process_options): Default to dwarf_version 2.
	* config/vxworks.c (vxworks_override_options): Default to strict-dwarf
	and dwarf_version 2.

2012-04-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree-pretty-print.h (default_tree_printer): Do not declare.
	* tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
	intl.h.
	(default_tree_diagnostic_starter): Make static.
	(default_tree_printer): Move to here. Make static.
	(tree_diagnostics_defaults): New.
	* tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
	* tree.c (free_lang_data): Use tree_diagnostics_defaults.
	* toplev.c: Do not include tree-pass.h.
	(default_tree_printer): Move from here.
	(general_init): Use tree_diagnostics_defaults.

2012-04-24  Chao-ying Fu  <fu@mips.com>

	* config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
	(mips*-*-linux*): Append mips/linux-common.h to tm_file.
	* config/mips/gnu-user.h
	(SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
	(GNU_USER_TARGET_LINK_SPEC): New define.
	(LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
	(LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
	(GNU_USER_TARGET_MATHFILE_SPEC): New define.
	(ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
	GNU_USER_TARGET_ENDFILE_SPEC.
	* config/mips/gnu-user64.h (LIB_SPEC): Remove.
	(GNU_USER_TARGET_LINK_SPEC): New define.
	(LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
	* config/mips/linux-common.h: New file.

2012-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/47197
	* config/rs6000/rs6000-c.c (fully_fold_convert): New function.
	(altivec_build_resolved_builtin): Call fully_fold_convert.

2012-04-24  Georg-Johann Lay  <avr@gjlay.de>

	PR target/53065
	* config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.

2012-04-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53085
	* tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
	stores.

2012-04-24  Richard Guenther  <rguenther@suse.de>

	* tree-if-conv.c (main_tree_if_conversion): Move bb under
	ENABLE_CHECKING.

2012-04-24  Jim Meyering  <meyering@redhat.com>

	* genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
	absence of an define_enum call.

2012-04-24  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
	the epilogue loop is not re-used as unvectorized version
	record the its maximum number of iterations.

2012-04-24  Andrew Pinski  <apinski@cavium.com>

	* tree-ssa-forwprop.c (simplify_bitwise_binary):
	Don't directly use def1/def2.

2012-04-24  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53098
	* tree-vect-loop.c (vect_analyze_loop_operations): Fixup
	comparison sign.

2012-04-24  Andrew Pinski  <apinski@cavium.com>

	PR tree-opt/33512
	* tree-ssa-forwprop.c (defcodefor_name): New function.
	(simplify_bitwise_binary): Use defcodefor_name instead of manually
	Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
	Simplify "(~X | Y) & X" to "X & Y" and
	"(~X & Y) | X" to "X | Y".

2012-04-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* recog.c (insn_invalid_p): Add IN_GROUP parameter and use
	validate_change to add clobbers if IN_GROUP is nonzero.
	(verify_changes): Call insn_invalid_p with IN_GROUP set to true.
	* recog.h (insn_invalid_p): Add IN_GROUP parameter to function
	prototype.
	* gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
	set to false.
	* config/s390/s390.c (insn_invalid_p): Likewise.

2012-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/53084
	* varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
	(output_addressed_constants): Likewise.

	PR middle-end/52999
	* varasm.c (get_section): Don't ICE for section conflicts with
	built-in section kinds.

2012-04-23  DJ Delorie  <dj@redhat.com>

	* config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
	(LIBSTDCXX): Change to CPP2.

2012-04-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/52878
	* opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
	extra_masks.

2012-04-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
	(*addsi_2_zext): Ditto.
	(*add<mode>_3): Ditto.
	(*addsi_3_zext): Ditto.
	(*add<mode>_5): Ditto.

2012-04-23  Andrew Pinski  <apinski@cavium.com>

	* tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
	(C & B) to (A OP0) & B.

2012-04-23  Martin Jambor  <mjambor@suse.cz>

	* expr.c (expand_expr_real_1): Remove setting parent's alias set for
	temporaries created for a bitfield (reverting revision 122014).

2012-04-23  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
	the condition using is_gimple_condexpr and avoid the not necessary
	boolification.
	(set_prologue_iterations): Likewise.
	(vect_loop_versioning): Likewise.

2012-04-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53070
	* tree-if-conv.c (combine_blocks): Free predicates in all blocks.
	(main_tree_if_conversion): Verify we succeeded in that.

2012-04-23  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Do not call
	mark_reahcable_node.
	* cgraph.c (cgraph_remove_node): Do not clear reachable.
	(cgraph_mark_reachable_node): Remove.
	(cgraph_mark_force_output_node): Do not set reachable.
	(dump_cgraph_node): Do not dump reachable.
	(cgraph_create_virtual_clone): Do not set reachable.
	* cgraph.h (cgraph_node): Remove reachable flag.
	(varpool_node): Remove reachable flag.
	(cgraph_mark_if_needed): Remove.
	(cgraph_mark_reachable_node): Remove.
	* tree-emutls.c (ipa_lower_emutls): Do not check reachable.
	* cgraphunit.c (cgraph_finalize_function): Do not mark node as
	reachable.
	(cgraph_add_new_function): Likewise.
	(cgraph_mark_if_needed): Remove.
	(cgraph_analyze_function): Do not set target as reachable.
	(process_function_and_variable_attributes): Do not care about
	dllexport.
	(cgraph_analyze_functions): Do not set reachable flags.
	(cgraph_mark_functions_to_output): Do not check reachability.
	(cgraph_copy_node_for_versioning): Do not set reachable flag.
	(dbxout_expand_expr): Update.
	* c-decl.c (merge_decls): Do not track changed externs.
	* ipa.c: Include pointer-set.h
	(enqueue_cgraph_node): Use reachable pointer set.
	(process_references): Likewise.
	(cgraph_remove_unreachable_nodes): Likewise.
	(whole_program_function_and_variable_visibility): Do not recompute
	reachable.
	* trans-mem.c (ipa_tm_execute): Do not check reachable flag.

2012-04-23  Georg-Johann Lay  <avr@gjlay.de>

	* doc/extend.texi (AVR Named Address Spaces): Fix typos.

2012-04-23  Richard Guenther  <rguenther@suse.de>

	PR c/53060
	* c-typeck.c (build_binary_op): Fix typo.

2012-04-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimizations/52891
	* tree-vect-patterns.c (adjust_bool_pattern): Use
	build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
	but with non-standard precision.

2012-04-22  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
	tree refs.

2012-04-22  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
	* cgraphbuild.c (record_reference, record_type_list, mark_address,
	mark_load, mark_store): Do not mark varpool nodes as needed.
	* cgraph.c (cgraph_new_nodes): Remove.
	(cgraph_create_function_alias): Do not mark nodes as reachable.
	(cgraph_add_thunk): Likewise.
	(cgraph_mark_reachable_node): Do not manage the queue.
	* cgraph.h (cgraph_node): Remove next_needed.
	(varpool_nodes_queue): Remove next_needed and prev_needed.
	(x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
	(cgraph_new_nodes): Declare.
	(x_varpool_nodes_queue, varpool_nodes_queue); Remove.
	(varpool_analyze_pending_decls): Remove.
	(varpool_analyze_node): New.
	(varpool_mark_needed_node): Remove.
	(varpool_first_variable, varpool_next_variable): New inlines.
	(varpool_first_static_initializer, varpool_next_static_initializer):
	Update.
	(FOR_EACH_STATIC_VARIABLE): Remove unused walker.
	(varpool_first_defined_variable): New inline.
	(varpool_next_defined_variable): New inline
	(FOR_EACH_VARIABLE): Reimplement.
	(FOR_EACH_DEFINED_VARIABLE): Reimplement.
	* toplev.c (wrapup_global_declaration_2): Use analyzed instead of
	needed flag.
	* cgraphunit.c (cgraph_new_nodes): Declare here.
	(enqueue_node): New function.
	(cgraph_process_new_functions): update for new
	node set; when constructing cgraph enqueue node for processing.
	(cgraph_add_new_function): Use new node set.
	(process_function_and_variable_attributes): Do not set varpool needed
	flags.
	(referred_to_p): New function.
	(varpool_finalize_decl): Move here from varpool.c; enqueue needed node
	when varpool is in construction.
	(cgraph_analyze_functions): Rewrite.
	(cgraph_expand_all_functions): Update.
	(cgraph_output_in_order): Do not analyze pending decls; do not set
	needed flags.
	(cgraph_optimize): Do not analyze pending decls.
	* lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
	in other partition; do not mark node as needed.
	* dwarf2out.c (reference_to_unused): Use analyzed flag.
	(premark_types_used_by_global_vars_helper): Likewise.
	* ipa.c (process_references): Do not call varpool_mark_needed_node.
	(cgraph_remove_unreachable_nodes): Do not rely on varpool and
	cgrpah queues.
	(function_and_variable_visibility): Do not mark node as needed.
	(whole_program_function_and_variable_visibility): Likewise.
	* Makefile.in (gt-varpool.h): No longer needed.
	* passes.c (execute_one_pass, execute_ipa_pass_list): Update.
	(ipa_write_summaries): Do not use needed flag.
	* varpool.c: Do not include gt-varpool.h
	(x_varpool_nodes_queue, x_varpool_last_needed_node,
	x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
	x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
	Remove.
	(varpool_remove_node): Do not update the lists.
	(dump_varpool_node): Do not dump needed flag.
	(varpool_enqueue_needed_node): Remove.
	(varpool_mark_needed_node): Remove.
	(varpool_reset_queue): Remove.
	(varpool_finalize_decl): Move to cgraphunit.c
	(varpool_analyze_node): New functions based on former
	varpool_analyze_pending_decls.
	(varpool_analyze_pending_decls): Remove.
	(varpool_assemble_decl): Do not update the lists.
	(enqueue_node): New function.
	(varpool_remove_unreferenced_decls): Rewrite.
	(varpool_empty_needed_queue): Remove.
	(add_new_static_var): Do not mark node as needed.
	(varpool_create_variable_alias): Handle expansion state
	creation.
	* except.c (output_ttype): Do not mark node as needed.
	* varasm.c (mark_decl_referenced): Do not use mark_needed_node.
	* tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
	Likewise.
	* tree-switch-conversion.c (build_one_array): Likewise.

2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/44774
	* doc/invoke.texi (pedantic): Rename to Wpedantic.
	* common.opt (Wpedantic): New.
	(pedantic): Alias Wpedantic.
	* diagnostic.c (warning_at): Likewise.
	* c-decl.c (diagnose_mismatched_decls): Likewise.
	(build_array_declarator): Likewise.
	(mark_forward_parm_decls):
	(check_bitfield_type_and_width): Likewise.
	(grokdeclarator): Likewise.
	(grokfield): Likewise.
	(finish_struct): Likewise.
	(build_enumerator): Likewise.
	(store_parm_decls_oldstyle): Likewise.
	(declspecs_add_qual): Likewise.
	(declspecs_add_type): Likewise.
	(finish_declspecs): Likewise.
	* c-typeck.c (composite_type): Likewise.
	(comp_target_types): Likewise.
	(build_array_ref): Likewise.
	(pointer_diff): Likewise.
	(build_unary_op): Likewise.
	(build_conditional_expr): Likewise.
	(build_c_cast): Likewise.
	(convert_for_assignment): Likewise.
	(maybe_warn_string_init): Likewise.
	(digest_init): Likewise.
	(pop_init_level): Likewise.
	(set_init_index): Likewise.
	(c_finish_goto_label): Likewise.
	(c_finish_return): Likewise.
	(do_case): Likewise.
	(build_binary_op): Likewise.
	* c-parser.c (static): Likewise.
	(c_parser_external_declaration): Likewise.
	(c_parser_declaration_or_fndef): Likewise.
	(c_parser_static_assert_declaration_no_se): Likewise.
	(c_parser_enum_specifier): Likewise.
	(c_parser_struct_or_union_specifier): Likewise.
	(c_parser_struct_declaration): Likewise.
	(c_parser_alignas_specifier): Likewise.
	(c_parser_braced_init): Likewise.
	(c_parser_initelt): Likewise.
	(c_parser_compound_statement_nostart): Likewise.
	(c_parser_conditional_expression): Likewise.
	(c_parser_alignof_expression): Likewise.
	(c_parser_postfix_expression): Likewise.
	(c_parser_postfix_expression_after_paren_): Likewise.
	(c_parser_objc_class_instance_variables): Likewise.
	(c_parser_objc_method_definition): Likewise.
	(c_parser_objc_methodprotolist): Likewise.

2012-04-22  Ian Lance Taylor  <iant@google.com>

	* godump.c (go_output_typedef): Dump size of structs.

2012-04-22  Razya Ladelsky  <razya@il.ibm.com>

	Correcting transform_to_exit_first_loop + fix to PR46886
	* tree-parloops.c (transform_to_exit_first_loop): Remove
	setting of number of iterations according to the loop pattern.
	Duplicate from entry to exit->src instead of loop->latch.
	(pallelize_loops): Remove the condition preventing do-while loops.
	* tree-cfg.c (bool bb_in_region_p): New.
	(gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
	Adjust redirection of the duplicated iteration.

2012-04-21  Richard Sandiford  <rdsandiford@googlemail.com>

	PR bootstrap/53021
	* rtl.def (ADDRESS): Use "i" rather than "w".
	* rtl.h (find_base_term): Delete.
	(may_be_sp_based_p): Declare.
	* rtl.c (rtx_code_size): Remove ADDRESS special case.
	* alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
	(UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
	* alias.c: ...here.
	(find_base_term): Make static.
	(may_be_sp_based_p): New function.
	* dse.c (record_store): Use it.
	* store-motion.c (store_killed_in_insn): Likewise.

2012-04-21  Richard Sandiford  <rdsandiford@googlemail.com>

	* fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.

2012-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 35441
	* c-typeck.c (inform_declaration): New.
	(build_function_call_vec):  Do not pretty-print
	expressions when caret is enabled.
	(convert_arguments): Use inform_declaration.

2012-04-20  Jim Meyering  <meyering@redhat.com>

	* genmodes.c (make_complex_modes): Don't truncate a mode name of
	length 7 or more when prepending a "C".  Suggested by Richard Guenther.

2012-04-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR rtl-optimization/44214
	* fold-const.c (exact_inverse): New function.
	(fold_binary_loc): Fold vector and complex division by constant into
	multiply by recripocal with flag_reciprocal_math; fold vector division
	by constant into multiply by reciprocal with exact inverse.

2012-04-20  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
	force flags.
	* cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
	(cgraph_remove_node): Update.
	(cgraph_mark_needed_node): Remove.
	(cgraph_mark_force_output_node): New.
	(dump_cgraph_node): Do not dump needed flag.
	(cgraph_node_cannot_be_local_p_1): Update.
	(cgraph_can_remove_if_no_direct_calls_and_refs): Update.
	* cgraph.h (symtab_node_base): Add force_output flag.
	(cgraph_node): Remove needed flag.
	(varpool_node): Remove force_output flag.
	(cgraph_mark_needed_node): Remove.
	(cgraph_mark_force_output_node): New.
	(cgraph_only_called_directly_or_aliased_p,
	varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
	* ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
	* cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
	(cgraph_add_new_function): Update.
	(cgraph_mark_if_needed): Update.
	(verify_cgraph_node): Update.
	(cgraph_analyze_function): Alias target is reachable.
	(process_function_and_variable_attributes): Update: externally_visible
	flag makes function reachable.
	(cgraph_analyze_functions): Update dumping.
	* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
	input_overwrite_node, input_varpool_node): Update streaming.
	* lto-streamer-out.c (produce_symtab): Use force_output.
	* ipa.c (process_references): Weakrefs must be processed.
	(cgraph_remove_unreachable_nodes): Likewise; update for new
	force_output flag.
	(varpool_externally_visible_p): Weakrefs are externally visible
	even if they are not.
	(function_and_variable_visibility): Update; when processing alias
	pair force the targets to be output.
	(whole_program_function_and_variable_visility): Use
	mark_reachable_node.
	* trans-mem.c (ipa_tm_mark_needed_node): Remove
	(ipa_tm_mark_force_output_node): New function.
	(ipa_tm_create_version_alias, ipa_tm_create_version): Update.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
	aliases.
	* varasm.c (mark_decl_referenced): Update.
	(find_decl_and_mark_needed): Remove.
	(find_decl): New function.
	(weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
	alias targets as needed.
	(dump_tm_clone_pairs): Update.
	* tree-inline.c (copy_bb): Update check.
	* symtab.c (dump_symtab_base): Dump force_output.
	* tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
	* passes.c (execute_todo): Fix dumping.
	* varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
	(varpool_analyze_pending_decls): Alias target is reachable.
	(varpool_create_variable_alias): Finalize weakrefs.

2012-04-20  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/53021
	* alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
	UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
	* alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
	macros instead of constants.
	* dse.c (record_store): Check for SP ADDRESS by comparing
	XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
	XEXP to be stack_pointer_rtx.

2012-04-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
	update_call_from_tree when propagating into a call.

2012-04-20  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
	(rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.  Rename
	sp_offset to frame_off.  Move world save code earlier.

2012-04-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53050
	* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
	Do only one transform on COND_EXPRs at the same time.

2012-04-19  Jan Hubicka  <jh@suse.cz>

	* symtab.c (dump_symtab_base): Revert accidental checkin.

2012-04-20  Alan Modra  <amodra@gmail.com>

	PR target/53040
	* config/rs6000/rs6000.c (rs6000_savres_strategy): When using
	static chain, set REST_INLINE_FPRS too.

2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>

	* tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
	nodes.

2012-04-20  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
	loops that can never run more often than the vectorization factor.

2012-04-19  Jan Hubicka  <jh@suse.cz>

	* symtab.c (dump_symtab_base): Fix dumping of asm lists.

2012-04-19  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".

2012-04-19  Jim Meyering  <meyering@redhat.com>

	* genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
	We verified above that the string(including trailing NUL) fits in buf,
	so just use memcpy.

2012-04-19  Richard Guenther  <rguenther@suse.de>

	* symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
	for dumping DECL_SECTION_NAME.

2012-04-19  Michael Matz  <matz@suse.de>

	PR middle-end/52977
	* tree.h (VECTOR_CST_NELTS): Use part number of types again.
	(struct tree_vector): Adjust GTY length.
	* tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.

	* gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
	members.
	(walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
	caller emitted the length calulation already.
	(walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
	before handling any of the fields for structs.

2012-04-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53031
	* tree-vrp.c (adjust_range_with_scev): Revert back to
	using max_loop_iterations.

2012-04-19  Michael Matz  <matz@suse.de>

	* diagnostic.c (emit_diagnostic): Move va_end call after user
	of the va_list.
	(warning, warning_at, pedwarn, permerror): Ditto.

2012-04-19  Richard Guenther  <rguenther@suse.de>

	* ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
	array access.

2012-04-19  Georg-Johann Lay  <avr@gjlay.de>

	PR target/53033
	* config/avr/avr.c (avr_out_load_psi): Fix assembler template for
	the case *(X+const).

2012-04-19  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config/arm/sync.md (sync_optab): Change ior attribute to "or".

2012-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/52283/37985
	* stmt.c (warn_if_unused_value): Skip NOP_EXPR.
	* convert.c (convert_to_integer): Don't set TREE_NO_WARNING.

2012-04-19  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/44688
	* loop-iv.c (determine_max_iter): Only return max_iter.
	(iv_number_of_iterations): Also use the recorded loop bound
	on the maximum number of iterations.
	* loop-unroll.c (decide_unroll_runtime_iterations): Use
	max_iter to avoid unrolling loops that do not roll.
	(decide_unroll_stupid): Likewise.

2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>

	* targhooks.c (default_case_values_threshold): Fix code style nit.

	* stmt.c (add_case_node, expand_case): Move logic to remove/reduce
	case range and type folding from here...
	* gimplify.c (gimplify_switch_expr): ... to here.  Expect NULL_TREE
	type, as documented in tree.def.

2012-04-18  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
	Declare.
	* cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
	cgraph hash and same comdat groups.
	(cgraph_optimize): Verify symbol table.
	* ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
	(dissolve_same_comdat_group_list): Work on symtab nodes.
	(function_and_variable_visibility): Dissolve variable same comdat group
	lists, too.
	* symtab.c: Include timevar.h
	(verify_symtab_base, verify_symtab_node, verify_symtab): New functions.

2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-switch-conversion.c (info): Remove global pass info.
	(check_range, check_process_case, check_final_bb, create_temp_arrays,
	free_temp_arrays, gather_default_values, build_constructors,
	array_value_type, build_one_array, build_arrays, gen_def_assigns,
	fix_phi_nodes, gen_inbound_check): Pass info around from ...
	(process_switch): ... here.  Unify message format.  Return a const
	char pointer to the failure reason message.
	(do_switchconv): Unify message format.  Update process_switch usage.

	* tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
	* tree-cfg.c (edge_to_cases): Fix documentation.

2012-04-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/sync.md (fetchop_name): Change ior attribute to "or".

2012-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/52976
	* tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
	(possibly_move_powi): New function.
	(rewrite_expr_tree): Call possibly_move_powi.
	(rewrite_expr_tree_parallel): Likewise.
	(attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
	call add_to_ops_vec instead.

2012-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/52976
	* tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
	(decrement_power): Likewise.
	(propagate_op_to_single_use): Likewise.
	(zero_one_operation): Handle __builtin_pow* calls in linearized
	expression trees; factor logic into propagate_op_to_single_use.
	(undistribute_ops_list): Allow operands with repeat counts > 1.

2012-04-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44688
	* cfgloop.h (record_niter_bound): Declare.
	* tree-ssa-loop-niter.c (record_niter_bound): Export.
	Update the estimation with the upper bound here...
	(estimate_numbers_of_iterations_loop): ... instead of here.
	Do not forcefully reset a recorded upper bound.
	* tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
	Record the maximum number of loop iterations of the prologue loop.

2012-04-18  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Update.
	* cgraphbuild.c (record_reference, record_type_list,
	record_eh_tables, mark_address, mark_load, mark_store): Update.
	* cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
	cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
	Update.
	* cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
	(cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
	* reload.c: Fix typo in comment.
	* rtlanal.c: Likewise.
	* tree-emultls.c (gen_emutls_addr): Update.
	* ipa-reference.c (analyze_function): Update.
	* cgraphunit.c (cgraph_analyze_function,
	cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
	Update.
	* ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
	(ipa_remove_reference): Likewise.
	(ipa_remove_all_refering): Rename to ...
	(ipa_remove_all_referring): ... this one; update.
	(ipa_dump_references): Update.
	(ipa_dump_referring): Update.
	(ipa_clone_references): Update.
	(ipa_clone_refering): Rename to ...
	(ipa_clone_referring): ... this one; update.
	(ipa_ref_cannot_lead_to_return): Update.
	(ipa_ref_has_aliases_p): Update.
	* ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
	forward typedefs.
	(ipa_ref_type): Remove.
	(ipa_ref_ptr_u): Remove.
	(ipa_ref): Remove referencing, refered, refered_index, refering_type
	and refered_type; add referring, referred and referred_index.
	(ipa_ref_list): Rename refering to referring.
	(ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
	ipa_clone_references, ipa_clone_referring): Update prototypes.
	* lto-cgraph.c (referenced_from_other_partition_p): Update.
	(lto_output_ref): Update.
	(add_references): Update.
	(input_varpool_node): Update.
	(input_refs): Update.
	* ipa-ref-inline.h (ipa_ref_node): Update.
	(ipa_ref_varpool_node): Update.
	(ipa_ref_referring_node): Update.
	(ipa_ref_referring_varpool_node): Update.
	(ipa_ref_referring_ref_list): Update.
	(ipa_ref_referred_ref_list): Update.
	(ipa_ref_list_first_referring): Update.
	(ipa_empty_ref_list): Update.
	(ipa_ref_list_refering_iterate): Rename to ...
	(ipa_ref_list_referring_iterate): ... this one.
	* cse.c: Update comment.
	* ipa-utils.c (ipa_reverse_postorder): Update.
	* tree-ssa-alias.c: Update.
	* ipa-inline.c (reset_edge_caches): Update.
	(update_caller_keys): Update.
	* ipa-inline.h: Update comments.
	* jump.c: Update comment.
	* alias.c: Likewise.
	* ipa.c (process_references): Update.
	(cgraph_remove_unreachable_nodes): Likewise.
	(ipa_discover_readonly_nonaddressable_var): Likewise.
	(cgraph_address_taken_from_non_vtable_p): Likewise.
	* trans-mem.c (ipa_tm_execute): Update.
	* simplify-rtx.c: Fix comment.
	* rtl.c: Fix comment.
	* symtab.c (symtab_unregister_node): Update.
	* varpool.c (dump_varpool_node): Update.
	(varpool_analyze_pending_decls): Update.
	(assemble_aliases): Update.
	(varpool_for_node_and_aliases): Update.

2012-04-18  Richard Guenther  <rguenther@suse.de>

	* cfgloop.h (estimate_numbers_of_iterations_loop): Remove
	use_undefined_p parameter.
	* tree-flow.h (estimate_numbers_of_iterations): Likewise.
	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
	Likewise.
	(estimate_numbers_of_iterations): Likewise.
	(estimated_loop_iterations): Adjust.
	(max_loop_iterations): Likewise.
	(scev_probably_wraps_p): Likewise.
	* tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
	* tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
	not max_loop_iterations.
	(execute_vrp): Remove explicit number of iterations estimation.

2012-04-18  Enkovich Ilya  <ilya.enkovich@intel.com>

	* config/i386/linux-common.h: New.

	* config.gcc: Add i386/linux-common.h before
	all i386/linux.h and i386/linux64.h usages.

	* config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
	(LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
	* config/i386/gnu-user64.h: Likewise.

	* config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
	(CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
	(GNU_USER_TARGET_MATHFILE_SPEC): New.
	(ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.

2012-04-18  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_node_name): Remove.
	(dump_cgraph_node): Use dump_symtab_base; reformat.
	* cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
	debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
	Declare.
	(cgraph_node_name, varpool_node_name): Remove.
	(cgraph_node_asm_name, varpool_node_asm_name,
	cgraph_node_name, varpool_node_name): New.
	* tree-pass.h (TODO_dump_cgraph): Rename to ...
	(TODO_dump_symtab): ... this one.
	* ipa-cp (pass_ipa_cp): Update.
	* ia-reference.c (generate_summary, read_write_all_from_decl,
	propagate, ipa_reference_read_optimization_summary): Update.
	* cgraphunit.c (cgraph_analyze_functions): Update.
	(cgraph_optimize): Update.
	* ipa-ref.c (ipa_dump_references): Update.
	(ipa_dump_refering): Update.
	* ipa-inline.c (pass_ipa_inline): Update.
	* matrix-reorg.c (pass_ipa_matrix_reorg): Update.
	* ipa.c (pass_ipa_function_visibility,
	pass_ipa_whole_program_visibility): Update.
	* tree-sra.c (pass_early_ipa_sra): Update.
	* symtab.c: Include langhooks.h
	(symtab_node_asm_name): New.
	(symtab_node_name): New.
	(symtab_type_names): New static var.
	(dump_symtab_base): New.
	(dump_symtab_node, dump_symtab): New.
	(debug_symtab_node,  debug_symtab): New.
	* tree-ssa-structalias.c: Dump symbol table.
	* pases.c (execute_todo): Handle TODO_dump_symtab instead
	of TODO_dump_cgraph.
	* varpoo.c (varpool_node_name): Remove.
	(dump_varpool_node): Use dump_symtab_base; reformat.

2012-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Language Independent Options): @item should be
	before @opindex.

2012-04-17  Richard Sandiford  <rdsandiford@googlemail.com>

	PR bootstrap/53021
	* rtl.c (rtx_code_size): Handle ADDRESS.

2012-04-17  Tom de Vries  <tom@codesourcery.com>

	* tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
	is not a STMT_LIST.

2012-04-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/53020
	* config/i386/sync.md (atomic_<code><mode>): Rename to
	atomic_<logic><mode>.

2012-04-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
	* alias.c (reg_base_value): Expand and update comment.
	(arg_base_value): New variable.
	(unique_id): Move up file.
	(unique_base_value, unique_base_value_p, known_base_value_p): New.
	(find_base_value): Use arg_base_value and known_base_value_p.
	(record_set): Document REG_NOALIAS handling.  Use unique_base_value.
	(find_base_term): Use known_base_value_p.
	(base_alias_check): Use unique_base_value_p.
	(init_alias_target): Initialize arg_base_value.  Use unique_base_value.
	(init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.

2012-04-17  Pat Haugen <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.

2012-04-17  Michael Matz  <matz@suse.de>

	PR tree-optimization/18437
	* tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
	(STMT_VINFO_STRIDE_LOAD_P): New accessor.
	(vect_check_strided_load): Declare.
	* tree-vect-data-refs.c (vect_check_strided_load): New function.
	(vect_analyze_data_refs): Use it to accept strided loads.
	* tree-vect-stmts.c (vectorizable_load): Ditto and handle them.

2012-04-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/53011
	* tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
	loops when redirecting an entry or latch edge.

2012-04-17  Bernd Schmidt  <bernds@codesourcery.com>

	* sel-sched.c (sel_global_init): Revert previous change.

2012-04-17  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (array_at_struct_end_p): Move declaration ...
	* tree.h (array_at_struct_end_p): ... here.
	* tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
	* expr.c (array_at_struct_end_p): ... here.  Rewrite.

2012-04-17  Steven Bosscher  <steven@gcc.gnu.org>

	* stmt.c (cost_table_, use_cost_table, cost_table_initialize,
	COST_TABLE): Remove.
	(estimate_case_costs): Remove.
	(expand_case): Do not call estimate_case_costs
	to set use_cost_table.
	(balance_case_nodes): Do not use use_cost_table.

2012-04-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_hash, assembler_name_hash): Remove.
	(hash_node, eq_node): Remove.
	(cgraph_create_node): Do not handle hashtable.
	(cgraph_get_node): Remove.
	(cgraph_insert_node_to_hashtable): Remove.
	(hash_node_by_assembler_name): Remove.
	(eq_assembler_name): Remove.
	(cgraph_node_for_asm): Rewrite.
	(cgraph_find_replacement_node): Break out from ...
	(cgraph_remove_node): ... here; do not maintain hashtables.
	(change_decl_assembler_name): Remove.
	(cgraph_clone_node): Do not maintain hashtables.
	* cgraph.h (const_symtab_node): New typedef.
	(cgraph_insert_node_to_hashtable): Remove.
	(symtab_get_node, symtab_node_for_asm,
	symtab_insert_node_to_hashtable): Declare.
	(cgraph_find_replacement_node): Declare.
	(cgraph_get_node, varpool_get_node): Turn into inlines.
	(cgraph, varpool): Work sanely on NULL pointers.
	(FOR_EACH_SYMBOL): New walker.
	* ipa-inline-transform.c (save_inline_function_body): Use
	symtab_insert_node_to_hashtable.
	* symtab.c: Include ggc.h and diagnostics.h
	(symtab_hash, assembler_name_hash): New static vars;
	(hash_node, eq_node, hash_node_by_assembler_name,
	eq_assembler_name, insert_to_assembler_name_hash,
	unlink_from_assembler_name_hash): New.
	(symtab_register_node): Update hashtables.
	(symtab_insert_node_to_hashtable): New.
	(symtab_unregister_node): Update hashtables.
	(symtab_get_node): New.
	(symtab_node_for_asm): New.
	(change_decl_assembler_name): New.
	* Makefile.in (symtab.o): Needs GTY.
	* varpool.c (varpool_hash): Remove.
	(hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
	(varpool_node): Rewrite using varpool_get_node.
	(varpool_remove_node): DO not maintain hashtables.
	(varpool_node_for_asm): Rewrite.

2012-04-16  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi:  Copy-edit to put verbs in the present tense
	when describing the current behavior of GCC.

2012-04-16  Richard Sandiford  <rdsandiford@googlemail.com>

	* genemit.c (gen_exp): Remove ADDRESS handling.
	* genoutput.c (scan_operands): Likewise.
	* genpeep.c (match_rtx): Likewise.
	* genrecog.c (add_to_sequence): Likewise.

2012-04-16  David Edelsohn  <dje.gcc@gmail.com>

	* doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.

2012-04-16  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
	bit-fields.

2012-04-16  Ulrich Weigand  <ulrich.weigand@linaro.org>

	PR target/51819
	* config/arm/arm.c (arm_print_operand): Fix invalid alignment
	hints for 'A' operand types.

2012-04-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (symtab_node_base): Add next and previous pointers.
	(cgraph_node): Remove next and preivous pointers.
	(varpool_node): Likewise; remove next/previous GTY marker;
	it is not type safe.
	(symtab_node_def): Update GTY marker
	(x_cgraph_nodes, cgraph_nodes): Remove.
	(symtab_nodes): New function.
	(cgraph_order): Rename to ...
	(symtab_order): ... this one.
	(symtab_register_node, symtab_unregister_node, symtab_remove_node):
	Declare.
	(x_varpool_nodes, varpool_nodes): Remove.
	(FOR_EACH_STATIC_VARIABLE): Update.
	(symtab_function_p, symtab_variable_p): New function.
	(FOR_EACH_VARIABLE): Update.
	(varpool_first_variable, varpool_next_variable): New functions.
	(FOR_EACH_VARIABLE): Update.
	(cgraph_first_defined_function): Update.
	(cgraph_next_defined_function, cgraph_next_defined_function): Update.
	(FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
	(cgraph_first_function, cgraph_next_function): New.
	(FOR_EACH_FUNCTION): Update.
	(cgraph_first_function_with_gimple_body,
	cgraph_next_function_with_gimple_body): Update.
	* symtab.c: New file.
	* cgraph.c: Update copyright dates.
	(x_cgraph_nodes, cgraph_order): Remove.
	(NEXT_FREE_NODE): Update.
	(SET_NEXT_FREE_NODE): New.
	(cgraph_create_node_1): Remove common code.
	(cgraph_create_node): Remove common code; call symtab_register_node.
	(cgraph_remove_node): Remove common code; call symtab_unregister-node.
	(cgraph_add_asm_node): Update.
	(cgraph_clone_node): Register new node.
	* cgraphunit.c (process_function_and_variable_attributes): Update.
	(cgraph_analyze_functions): Update.
	(cgraph_analyze_functions): Update.
	(cgraph_output_in_order): Update.
	* lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
	Update.
	* ipa-inline.c (recursive_inlining): Update.
	* lto-streamer-in.c (lto_input_toplevel_asms): Update.
	* ipa.c (cgraph_remove_unreachable_nodes): Update.
	* Makefile.in: Add symtab.o
	* varpool.c (x_varpool_nodes): Remove
	(varpool_node): Remove common code; call symtab_register_node.
	(varpool_remove_node): Remove common code; call symtab_unregister_node.

2012-04-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52977
	* tree.h (VECTOR_CST_NELTS): Adjust.
	(struct tree_vector): Add explicit length field.
	(make_vector_stat): Declare.
	(make_vector): Define.
	* tree.c (make_vector_stat): New function.
	(build_vector_stat): Use it.
	* tree-streamer-in.c (streamer_alloc_tree): Likewise.

2012-04-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/52976
	* tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
	(undistribute_ops_list): Ops with repeat counts aren't eligible for
	undistribution.
	(attempt_builtin_powi): Call add_to_ops_vec_max_rank.

2012-04-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
	New macros.
	* lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
	walkers to walk cgraph and varpool.
	* cgraph.c (cgraph_node_for_asm): Likewise.
	(dump_cgraph): Likewise.
	* value-prof.c (init_node_map): Likewise.
	* tree.c (free_lang_data_in_cgraph): Likewise.
	* tree-emutls.c: (ipa_lower_emutls): Likewise.
	* ipa-reference.c (generate_summary, propagate): Likewise.
	* cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
	cgraph_mark_functions_to_output, cgraph_output_in_order,
	output_weakrefs, cgraph_materialize_all_clones,
	cgraph_optimize): Likewise.
	* lto-cgraph.c (merge_profile_summaries): Likewise.
	(input_cgraph): Likewise.
	* ipa-pure-const.c (generate_summary): Likewise.
	(propagate): Likwise.
	* ipa-utils.c (ipa_reduced_postorder): Likewise.
	(ipa_free_postorder_info): Likewise.
	(ipa_reverse_postorder): Likewise.
	* ipa-inline.c (ipa_inline): Likewise.
	* matrix-reorg.c (find_matrices_decl): Likewise.
	(matrix_reorg): Likewise.
	* tree-vectorizer.c (increase_alignment): Likewise.
	* ipa.c (cgraph_remove_unreachable_nodes): Likewise.
	(function_and_variable_visibility): Likewise.
	(whole_program_function_and_variable_visibility): Likewise.
	(ipa_cdtor_merge): Likewise.
	* trans-mem.c (ipa_tm_execute): Likewise.
	* ipa-inline-analysis.c (dump_inline_summaries): Likewise.
	* ipa-prop.c (ipa_print_all_jump_functions): Likewise.
	(ipa_print_all_params): Likewise.
	(ipa_update_after_lto_read): Likewise.
	* tree-profie.c (tree_profiling): Likewise.
	* tree-ssa-structalias.c (ipa_pta_execute): Likewise.
	* passes.c (dump_passes): Likewise.
	(do_per_function): Likewise.
	(ipa_write_summaries): Likewise.
	* varpool.c (dump_varpool): Likewise.
	(varpool_node_for_asm): Likewise.
	(varpool_assemble_pending_decls): Likewise.

2012-04-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52975
	* tree-if-conv.c (predicate_bbs): Do not simplify inverted
	condition but always mark it with TRUTH_NOT_EXPR.

2012-04-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52975
	* tree-ssa-forwprop.c (combine_cond_exprs): New function.
	(ssa_forward_propagate_and_combine): Call it for COND_EXPRs
	and VEC_COND_EXPRs.  Also combine into VEC_COND_EXPRs condition.
	* fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.

2012-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (ssse3_plusminus): New code iterator.
	(avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
	avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
	(ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
	ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
	(ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
	ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.

	(avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
	avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
	(ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
	ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
	(ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
	ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.

	(xop_plus): New code iterator.
	(macs): New code attribute.
	(macds): Ditto.
	(xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
	xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
	iterator.
	(xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
	xop_plus code iterator.
	(xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
	xop_plus code iterator.
	(xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
	xop_plus code iterator.
	(xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
	xop_plus code iterator.

	(xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
	any_extend code iterator.
	(xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
	any_extend code iterator.
	(xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
	any_extend code iterator.
	(xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
	any_extend code iterator.
	(xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
	any_extend code iterator.
	(xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
	any_extend code iterator.

2012-04-14  Tom de Vries  <tom@codesourcery.com>

	* cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
	call to delete_insn.  Remove code to reorder BASIC_BLOCK note and
	DELETED_LABEL note, and move it to ...
	* cfgrtl.c (delete_insn): ... here.  Change return type to void.
	(delete_insn_and_edges): Likewise.
	(delete_insn_chain): Handle new return type of delete_insn.  Delete
	chain backwards rather than forwards.
	* rtl.h (delete_insn, delete_insn_and_edges): Change return type to
	void.
	* cfglayout.c (fixup_reorder_chain): Delete unused label.

2012-04-14  Jan Hubicka  <jh@suse.cz>

	* cgraph.h: Update copyrights;
	(symtab_node): Turn to union typedef.
	(symtab_node_base): New structure.
	(symtab_type): Add SYMTAB_SYMBOL tag.
	(cgraph_node): Annotate some pinters with nested_ptr.
	(varpool_node): Likewise.
	(cgraph_local_info): Remove lto_file_data
	and externally_visible.
	(cgraph_node): Remove decl; same_comdat_group list;
	aux; ref_list; order; address_taken; reachable_from_other_parittion,
	in_other_partition; resolution.
	(varpool_node): Remove decl; same_comdat_group;
	ref_list; lto_file_data; aux; order; resolution; externally_visible;
	used_from_other_partition; in_other_partition.
	(symtab_node_def): New union.
	(cgraph, varpool): Update.
	(varpool_first_static_initializer, varpool_next_static_initializer,
	cgraph_only_called_directly_or_aliased_p,
	varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
	varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
	varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
	field references.
	* cgraph.c: Likewise.
	(cgraph_hash, assembler_name_hash): Turn into symtab_node.
	* cgraphbuild.c: Likewise.
	* lto-symtab.c: Likewise.
	* c-gimplify.c: Likewise.
	* value-prof.c: Likewise.
	* tree.c: Likewise.
	* ipa-cp.c: Likewise.
	* tree-emutls.c: Likewise.
	* ipa-inline-transform.c: Likwise.
	* ipa-reference.c: Likewise.
	* cgraphunit.c: Likewise.
	* ipa-ref.c: Likewise.
	* lto-cgraph.c: Likewise.
	* ipa-ref-inline.h: Likewise.
	* ipa-pure-const.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-inline.c: Likewise.
	* matrix-reorg.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa.c: Likewise.
	* trans-mem.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* gimplify.c: Likewise.
	* cfgexpand.c: Likewise.
	* tree-sra.c: Likewise.
	* ipa-prop.c: Likewise.
	* varasm.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* passes.c: Likewise.
	* varpool.c: Likewise.

2012-04-14  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
	same_succ_hash, with local_def inlined.  Use SINGLE_SSA_DEF_OPERAND.
	Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT.  Remove use
	of find_edge.
	(gsi_advance_fw_nondebug_nonlocal): New function.
	(local_def): Removed function.
	(same_succ_hash): Use stmt_local_def.
	(same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
	(gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.

2012-04-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-c.c (ix86_target_macros): Define _ILP32
	and __ILP32__ for x32.

2012-04-13  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/52939
	* gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
	fold_ctor_reference returns a zero constant.

2012-04-13  Enkovich Ilya  <ilya.enkovich@intel.com>

	* config.gcc: Add i386/gnu-user-common.h before all
	i386/gnu-user.h and i386/gnu-user64.h usages.

	* config/i386/gnu-user-common.h: New.

	* config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
	(CC1_SPEC): Likewise.
	(ENDFILE_SPEC): Likewise.
	(DEFAULT_PCC_STRUCT_RETURN): Likewise.
	(TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
	(TARGET_OS_CPP_BUILTINS): Likewise.
	(LIBGCC2_HAS_TF_MODE): Likewise.
	(LIBGCC2_TF_CEXT): Likewise.
	(TF_SIZE): Likewise.
	(TARGET_ASM_FILE_END): Likewise.
	(STACK_CHECK_MOVING_SP): Likewise.
	(STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/i386/gnu-user64.h: Likewise.

2012-04-13  Martin Jambor  <mjambor@suse.cz>

	* expr.c (expand_expr_real_1): Pass type, not the expression, to
	set_mem_attributes for a memory temporary. Do not call the function
	for the memory temporary created for a bitfield.

2012-04-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/48866
	* df.h (enum debug_temp_where): New.
	(dead_debug_init, dead_debug_finish) Declare.
	(dead_debug_add, dead_debug_insert_temp): Declare.
	(struct dead_debug_use, struct dead_debug): Moved from...
	* df-problems.c: ... here.
	(df_set_unused_notes_for_mw): Bind debug uses of unused regno
	to a debug temp.
	(df_create_unused_note): Likewise.
	(df_set_dead_notes_for_mw): Move comment where it belongs.
	(dead_debug_init): Export.
	(dead_debug_reset_uses): New, factored out of...
	(dead_debug_finish): ...this.  Export.
	(dead_debug_reset): Remove.
	(dead_debug_add): Export.
	(dead_debug_insert_before): Rename to...
	(dead_debug_insert_temp): ... this.  Add where argument.  Export.
	Locate stored value for BEFORE_WITH_VALUE.  Avoid repeat inserts.
	Return insertion count.
	(df_note_bb_compute): Adjust.
	* dce.c (word_dce_process_block): Adjust dead debug uses.
	(dce_process_block): Likewise.

2012-04-13  Alexandre Oliva  <aoliva@redhat.com>

	* df-problems.c (df_note_bb_compute): Do not take note of
	debug uses for whose REGs we won't emit DEAD or UNUSED notes.

2012-04-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/51570
	* var-tracking.c (expand_depth): New type.
	(onepart_aux, expand_loc_callback_data): Change depth type to it.
	(loc_exp_dep_alloc): Adjust initializer.
	(update_depth): Use new type.  Add entryvals.
	(vt_expand_var_loc_chain): Take note of expansions with
	ENTRY_VALUEs, but don't accept them right away.  Run an optional
	second pass accepting the minimum ENTRY_VALUE count found in the
	first pass.
	(vt_expand_loc_callback, INIT_ELCD): Adjust.

2012-04-13  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
	parameters vuse and vuse_escaped.
	(find_duplicate): Init vuse1, vuse2 and vuse_escaped.  Pass to
	gsi_advance_bw_nondebug_nonlocal.  Return if vuse_escaped and
	vuse1 != vuse2.

2012-04-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52969
	* tree-if-conv.c (predicate_mem_writes): Properly gimplify
	the condition for the COND_EXPR and handle predicate negation
	by swapping the COND_EXPR arms.

2012-04-13  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_devirt_pass): Remove use of
	TODO_dump_func flag.

2012-04-13  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/52203
	PR rtl-optimization/52715

	Revert the 2012-03-07 fix for PR 52203.
	* sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
	the insn does not modify DFA right before issuing, adjust
	issue_rate accordingly.

2012-04-13  Richard Guenther  <rguenther@suse.de>

	PR c/52549
	* c-typeck.c (pointer_diff): Remove bogus assert.

2012-04-13  Richard Guenther  <rguenther@suse.de>

	PR c/52862
	* convert.c (convert_to_pointer): Remove special-casing of zero.

2012-04-13  Joey Ye  <joey.ye@arm.com>

	* config/arm/constraints.md (Pe): New constraint.
	* config/arm/arm.md: New split for imm 256-510.

2012-04-13  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm-cores.def: Added core cortex-m0plus.
	* config/arm/arm-tune.md: Regenerated.
	* config/arm/arm-tables.opt: Regenerated.
	* doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.

2012-04-13  Alan Modra  <amodra@gmail.com>

	PR target/52828
	* config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
	tie regs on destination of sets.  Delete forward declaration.
	(rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
	(rs6000_emit_prologue): Likewise.
	(rs6000_emit_epilogue): Likewise.  Use in place of gen_frame_tie
	and gen_stack_tie.
	(is_mem_ref): Use tie_operand to recognise stack ties.
	* config/rs6000/predicates.md (tie_operand): New.
	* config/rs6000/rs6000.md (restore_stack_block): Generate new
	stack tie rtl.
	(restore_stack_nonlocal): Likewise.
	(stack_tie): Update.
	(frame_tie): Delete.

2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
	HOST_WIDE_INT_PRINT_DEC in format strings.

2012-04-12  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52932
	* config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
	argument type to __m256i.  Update call to __builtin_ia32_permvarsf256.
	* config/i386/sse.md (UNSPEC_VPERMVAR): New.
	(UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
	(avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
	(avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
	avx2_permvarv8si using VI4F_256 mode iterator.
	* config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
	Update builtin type to V8SF_FTYPE_V8SF_V8SI.
	(ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
	gen_avx2_permvarv8sf.
	(expand_vec_perm_pshufb): Ditto.

2012-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/52775
	* config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
	the list of options to enable the FCFID instruction.
	(TARGET_EXTRA_BUILTINS): Adjust comment.

2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/18589
	* tree-ssa-reassoc.c (reassociate_stats): Add two fields.
	(operand_entry): Add count field.
	(add_repeat_to_ops_vec): New function.
	(completely_remove_stmt): Likewise.
	(remove_def_if_absorbed_call): Likewise.
	(remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
	(acceptable_pow_call): New function.
	(linearize_expr_tree): Look for builtin pow/powi calls and add operand
	entries with repeat counts when found.
	(repeat_factor_d): New struct and associated typedefs.
	(repeat_factor_vec): New static vector variable.
	(compare_repeat_factors): New function.
	(get_reassoc_pow_ssa_name): Likewise.
	(attempt_builtin_powi): Likewise.
	(reassociate_bb): Call attempt_builtin_powi.
	(fini_reassoc): Two new calls to statistics_counter_event.

2012-04-12  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
	* cgraph.h (tree_rest_of_compilation): Remove.
	* cgraph.c (cgraph_add_new_function): Move ...
	* cgraphunit.c (cgraph_add_new_function): ... here.
	(tree_rest_of_compilation): Make static.
	(cgraph_expand_function): Do not set cgraph_function_flags_ready.
	* tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
	gate_all_early_local_passes, execute_all_early_local_passes,
	pass_early_local_passes, gate_all_early_optimizations,
	pass_all_early_optimizations): Move ...
	* passes.c (gate_all_optimizations, pass_all_optimizations,
	gate_all_early_local_passes, execute_all_early_local_passes,
	pass_early_local_passes, gate_all_early_optimizations,
	pass_all_early_optimizations): ... here.
	* tree-optimize.c (execute_free_datastructures): Remove.
	* tree-flow.h (execute_free_datastructures): Remove.
	* tree-optimize.c (execute_init_datastructures,
	pass_init_datastructures): Move ...
	* tree-ssa.c (execute_init_datastructures,
	pass_init_datastructures): ... here.
	* cfgexpand.c (gimple_expand_cfg): Inline-expand call to
	execute_free_datastructures.

2012-04-12  Bernd Schmidt  <bernds@codesourcery.com>

	* dbgcnt.def (ira_move): New counter.
	* ira-int.h (ira_create_new_reg): Declare function.
	(first_moveable_pseudo, last_moveable_pseudo): Declare variables.
	* ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
	no longer static.  All callers changed.
	* ira.c: Include "dbgcnt.h".
	(rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
	move_unallocated_pseudos): New static functions.
	(first_moveable_pseudo, last_moveable_pseudo): New global variables.
	(pseudo_replaced_reg, pseudo_move_insn): New static variables.
	(ira): Call find_moveable_pseudos and move_unallocated_pseudos.
	* ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
	to the pseudos generated in find_moveable_pseudos.
	* Makefile.in (ira.o): Add $(DBGCNT_H).

2012-04-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52943
	* tree-chrec.h (chrec_is_positive): Remove.
	* tree-scalar-evolution.c (chrec_is_positive): Move ...
	* tree-data-ref.c (chrec_is_positive): ... here.  Make static.
	Return false for a constant zero instead of negative.
	(analyze_siv_subscript_cst_affine): Handle zero difference
	in the initial condition explicitely.

2012-04-12  Richard Guenther  <rguenther@suse.de>

	* tree-parloops.c (parallelize_loops): Also consult the upper
	bound for the number of iterations.
	* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
	(loop_prefetch_arrays): Likewise.

2012-04-12  Richard Guenther  <rguenther@suse.de>

	* cfgloop.h (estimated_loop_iterations_int): Ditch
	'conservative' parameter.
	(max_stmt_executions_int): Likewise.
	(estimated_loop_iterations): Likewise.
	(max_stmt_executions): Likewise.
	(max_loop_iterations): Declare.
	(max_loop_iterations_int): Likewise.
	(estimated_stmt_executions): Likewise.
	(estimated_stmt_executions_int): Likewise.
	* tree-ssa-loop-niter.c (estimated_loop_iterations):
	Split parts to ...
	(max_loop_iterations): ... this.
	(estimated_loop_iterations_int): Split parts to ...
	(max_loop_iterations_int): ... this.
	(max_stmt_executions_int): Split parts to ...
	(estimated_stmt_executions_int): ... this.
	(max_stmt_executions): Split parts to ...
	(estimated_stmt_executions): ... this.
	* graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
	* predict.c (predict_loops): Likewise.
	* tree-data-ref.c (max_stmt_executions_tree): Likewise.
	(analyze_siv_subscript_cst_affine): Likewise.
	(compute_overlap_steps_for_affine_1_2): Likewise.
	(analyze_subscript_affine_affine): Likewise.
	(init_omega_for_ddr_1): Likewise.
	* tree-parloops.c (parallelize_loops): Likewise.
	* tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
	(may_eliminate_iv): Likewise.
	* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
	(loop_prefetch_arrays): Likewise.
	* tree-vrp.c (adjust_range_with_scev): Likewise.

2012-04-12  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
	* config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
	Fix line width.
	(dump_table): Use bool type for need_align and have_df variables.
	(find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
	(regs_used): Remove register modifier.
	(barrier_align): Move variables slot, credit, jump_to_next
	into if block above for loop.  Use bool type for jump_to_next.
	(sh_function_arg): Use NULL_RTX instead of 0.

2012-04-11  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
	(bswapsi2): New expander.

2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
	0x60000000 if __x86_64 is defined and __LP64__ isn't defined.

2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/52876
	* emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
	Don't call mark_reg_pointer for incompatible pointer sign extension.
	* reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
	directly.

2012-04-11  Bernd Schmidt  <bernds@codesourcery.com>

	* fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
	comparisons against TYPE_PRECISION.
	* tree-ssa-forwprop.c (combine_conversions): Likewise.

2012-04-11  Xinliang David Li  <davidxl@google.com>

	* tree-passes.h: Remove TODO_dump_func.
	* tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
	* trans-mem.c: Remove TODO_dump_func.
	* ira.c: Remove TODO_dump_func.

2012-04-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_option_override_internal): Check
	SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
	after TARGET_64BIT is updated.

2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h: Remove old secondary reload code.

2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.c (SCHED_REORDER): Merge macro into ...
	(ready_reorder): ... this function.

2012-04-11  Bernd Schmidt  <bernds@codesourcery.com>

	* sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
	sched_init calls.

	* haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
	insns so that no other insn is queued for a time before them.

	* config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
	unknown.

2012-04-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52621
	* tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
	consider loop nesting.
	(evolution_function_is_univariate_p): Properly check the remainder
	for chrecs.

2012-04-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52918
	* except.c (sjlj_emit_dispatch_table): Properly update loop structure.

2012-04-11  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_expand_prologue): Set stack use
	information, if requested.

	* config/rx/rx.c (rx_expand_prologue): Likewise.

2012-04-11  Peter Bergner  <bergner@vnet.ibm.com>
	    Michael Matz  <matz@suse.de>

	PR target/16458
	* rtlanal.c (unsigned_reg_p): New function.
	Update copyright notice dates.
	* rtl.h (unsigned_reg_p): Prototype it.
	Update copyright notice dates.
	* config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
	Update comment.
	* expr.c (expand_expr_real_1): Set register attributes.
	* stmt.c (expand_case): Likewise.

2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/50751
	* config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
	consider_sh2a and allow_zero.
	* config/sh/sh.c (sh_legitimate_index_p): Likewise.
	(disp_addr_displacement): New function.
	(sh_address_cost): Use disp_addr_displacement function instead
	of DISP_ADDR_OFFSET.
	(sh_legitimate_address_p): Adapt to changed
	sh_legitimate_index_p declaration.
	(sh_find_mov_disp_adjust): Remove HImode check.
	(sh_secondary_reload): Add HImode case.  Use satisfies_constraint_Sdd,
	disp_addr_displacement and max_mov_insn_displacement.
	(max_mov_insn_displacement): Remove HImode check.
	* config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
	DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
	* config/sh/constraints.md (K05, K13): New constraints.
	(K12): Correct comment.
	(Sdd): Do not use DISP_ADDR_P macro.
	(Snd, Sbw): Use satisfies_constraint_Sdd.
	* config/sh/sh.md (extendhisi2): Remove constraints from expander.
	(*extendhisi2_compact, movhi_i): Remove.
	(*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
	*extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
	*movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
	*movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
	(*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
	*movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
	*movqi_load_mem_disp): Use sh_legitimate_index_p instead of
	CONST_OK_FOR_Kxx.
	Add new peepholes for HImode displacement addressing.

2012-04-11  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (SIDI_OFF): Remove.
	* config/sh/sh.md: Use gen_highpart and gen_lowpart to access
	DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
	or operand_subword.

2012-04-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/52624
	* doc/extend.texi (Other Builtins): Document __builtin_bswap16.
	(PowerPC AltiVec/VSX Built-in Functions): Remove it.
	* doc/md.texi (Standard Names): Add bswap.
	* builtin-types.def (BT_UINT16): New primitive type.
	(BT_FN_UINT16_UINT16): New function type.
	* builtins.def (BUILT_IN_BSWAP16): New.
	* builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
	(expand_builtin) <BUILT_IN_BSWAP16>: New case.  Pass TARGET_MODE to
	expand_builtin_bswap.
	(fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
	(fold_builtin_1): Likewise.
	(is_inexpensive_builtin): Likewise.
	* optabs.c (expand_unop): Deal with bswap in HImode specially.  Add
	missing bits for bswap to libcall code.
	* tree.c (build_common_tree_nodes): Build uint16_type_node.
	* tree.h (enum tree_index): Add TI_UINT16_TYPE.
	(uint16_type_node): New define.
	* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
	* config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
	above builtin.
	(rs6000_init_builtins): Likewise.
	* config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.

2012-04-11  Tristan Gingold  <gingold@adacore.com>

	* doc/extend.texi (Type Attributes): Move paragraph.

2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 24985
	* diagnostic.h (show_caret): Declare.
	(caret_max_width): Declare.
	(diagnostic_show_locus): Declare.
	* diagnostic.c (diagnostic_initialize): Initialize to false.
	(diagnostic_show_locus): New.
	(diagnostic_report_diagnostic): Call it.
	(getenv_columns): New.
	(adjust_line): New.
	(diagnostic_set_caret_max_width): New.
	* input.c (read_line): New.
	(location_get_source_line): New.
	* input.h (location_get_source_line): Declare.
	* toplev.c (general_init): Initialize show_caret from options.
	* dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
	* opts.c (common_handle_option): Likewise.
	* pretty-print.h (pp_get_prefix): New.
	(pp_base_get_prefix): New.
	* common.opt (fdiagnostics-show-caret): New option.
	* doc/invoke.texi (fdiagnostics-show-caret): Document it.

2012-04-11  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/52881
	* ifcvt.c (find_if_case_2): Avoid speculating loop latches.

2012-04-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52912
	* tree-ssa-threadupdate.c (thread_block): Tell the cfg
	manipulation code we are threading through a loop header
	to an exit destination.

2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree.h (warn_if_unused_value): Move declaration from here.
	* stmt.c (warn_if_unused_value): Move definition from here.

2012-04-10  Michael Matz  <matz@suse.de>

	* tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
	grouped_stores.
	(LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
	(struce _bb_vec_info.strided_stores): Rename to grouped_stores.
	(BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
	(STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
	(vect_strided_store_supported): Rename to vect_grouped_store_supported.
	(vect_strided_load_supported): Rename to vect_grouped_load_supported.
	(vect_transform_strided_load): Rename to vect_transform_grouped_load.
	(vect_record_strided_load_vectors): Rename to
	vect_record_grouped_load_vectors.
	* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
	Rename use of above macros.
	(vect_verify_datarefs_alignment): Ditto.
	(vector_alignment_reachable_p): Ditto.
	(vect_peeling_hash_get_lowest_cost): Ditto.
	(vect_enhance_data_refs_alignment): Ditto.
	(vect_analyze_group_access): Ditto and rename stride to groupsize.
	(vect_analyze_data_ref_access): Rename "strided" to "grouped".
	(vect_strided_store_supported): Rename to vect_grouped_store_supported.
	(vect_strided_load_supported): Rename to vect_grouped_load_supported.
	(vect_transform_strided_load): Rename to vect_transform_grouped_load.
	(vect_record_strided_load_vectors): Rename to
	vect_record_grouped_load_vectors.
	* tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
	(destroy_loop_vec_info): Ditto.
	(vect_transform_loop): Ditto and rename strided_store to grouped_store.
	* tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
	(vect_analyze_slp): Ditto.
	(new_bb_vec_info): Ditto.
	(destroy_bb_vec_info): Ditto.
	(vect_schedule_slp_instance): Ditto and rename strided_store to
	grouped_store.
	* tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
	vect_cost_group_size.
	(vect_model_store_cost): Rename use of above macros and call
	to vect_cost_strided_group_size.
	(vect_model_load_cost): Ditto.
	(vectorizable_store): Ditto, rename strided_store to grouped_store
	and calls to renamed tree-vectorizer.h functions.
	(vectorizable_load): Ditto.
	(vect_transform_stmt): Rename use of above macros and strided_store
	to grouped_store.

2012-04-10  Jan Hubicka  <jh@suse.cz>

	* cgraph.h: Remove misledaing comment on ipa-ref.h.
	(symtab_type): New enum.
	(symtab_node): New structure.
	(cgraph_node, varpool_node): Add symbol base type.
	(cgraph, varpool): New accestor functions.
	* cgraph.c (cgraph_create_node_1): Set symbol type.
	* varpool.c (varpool_node): Set symbol type.

2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.

2012-04-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52888
	* gimple-low.c (gimple_check_call_args): Properly account for
	compatible aggregate types.

2012-04-10  Richard Guenther  <rguenther@suse.de>

	* toplev.h (tree_rest_of_compilation): Remove.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.
	* cgraph.h (tree_rest_of_compilation): Declare.
	* tree-optimize.c (tree_rest_of_compilation): Move ...
	* cgraphunit.c (tree_rest_of_compilation): ... here.
	* cgraph.c (cgraph_add_new_function): Adjust.
	* Makefile.in (tree-optimize.o): Adjust.
	(cgraphunit.o): Likewise.

2012-04-10  Ulrich Weigand  <ulrich.weigand@linaro.org>

	PR tree-optimization/52870
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
	presumed pattern statement is within the same loop or basic block.

2012-04-10  Tristan Gingold  <gingold@adacore.com>

	* gengtype.c (main): Make uintptr_t a known type.

2012-04-10  Richard Guenther  <rguenther@suse.de>

	* tree-pass.h (tree_lowering_passes): Remove.
	* tree-optimize.c (tree_lowering_passes): Remove.
	* cgraph.c (cgraph_add_new_function): Inline relevant parts
	of tree_lowering_passes, avoid redundant call of early local passes.
	* cgraphunit.c (cgraph_lower_function): Fold into ...
	(cgraph_analyze_function): ... its single caller.  Inline
	relevant parts of tree_lowering_passes.

2012-04-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/52777
	* config/pa/pa.opt: Remove SIO and GNU_LD.

2012-04-09  Jan Hubicka  <jh@suse.cz>

	PR lto/52722
	PR lto/51765
	PR lto/52634
	* lto-cgraph.c (compute_ltrans_boundary): When alias is in the
	boundary, add its target too.
	* lto.c (add_references_to_partition): Add also aliased nodes.
	(add_cgraph_node_to_partition,
	add_varpool_node_to_partition): Work on nodes, not functions/variables;
	when adding alias, add also the aliased object.

2012-04-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52883
	* config/i386/predicates.md (x86_64_zext_general_operand): Prevent
	VOIDmode immediate operands.
	* config/i386/constraints.md (Wz): New constraint.
	* config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.

2012-04-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/52717
	* config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
	the DECL generated for the special GOT helper.

2012-04-09  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/constraints.md: Update list of constraints in
	comment block.
	(Sr0): Remove unused memory constraint.

2012-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree-pretty-print.h: Update comment.

2012-04-08  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md: Use braced string notation where applicable.
	(*prefetch_i4, prefetch_m2a): Merge into ...
	(*prefetch): ... this new insn.

2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (high_life_started): Remove
	* config/sh/predicates.md (general_movdst_operand): Use
	'reload_in_progress' instead of 'high_life_started'.
	* config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
	divsi_inv_fp): Likewise.

2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-protos.h (prepare_move_operands): Return void
	instead of int.
	* config/sh/sh.c (prepare_move_operands): Likewise.
	* config/sh/sh.md: Remove return value checks of prepare_move_operands.

2012-04-07  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
	general_movsrc_operand, general_movdst_operand, arith_reg_operand,
	fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
	logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
	commutative_float_operator, noncommutative_float_operator,
	sh_handle_pragma): Remove.

2012-04-06  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi:  Clean up Texinfo markup throughout the file.
	Use @option markup on command-line options.  Use @samp markup on
	literal keywords to options.  Use @code markup on code fragments.
	Use other markup in preference to quotation marks in the text.
	Add markup to some passages without any.

2012-04-06  Mike Stump  <mikestump@comcast.net>

	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.

2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.c (hi_const): Remove.
	(find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
	of hi_const.

2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
	to bool.
	* config/sh/sh.c (sh_expand_t_scc): Likewise.
	* config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
	calling sh_expand_t_scc.

2012-04-06  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
	nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
	sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
	reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
	sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
	sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
	check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
	sh2a_is_function_vector_call): Use bool as return type.
	(sh_pass_in_reg_p): Remove.
	* config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
	flow_dependent_p, sh2a_function_vector_p, expand_block_move,
	expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
	sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
	sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
	sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
	fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
	sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
	sh_loads_bankedreg_p): Use bool as return type.
	(nonpic_symbol_mentioned_p): Use bool as return type.  Remove
	'register' modifier.

2012-04-06  Matt Turner  <mattst88@gmail.com>

	* doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".

2012-04-06  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
	of the destination isn't also a FP_REGS register.

2012-04-05  Teresa Johnson  <tejohnson@google.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
	* config/i386/i386.md (move immediate to memory peephole2):
	Add cases for HImode move when LCP stall avoidance is needed.
	* config/i386/i386.c (initial_ix86_tune_features): Initialize
	X86_TUNE_LCP_STALL entry.

2012-04-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52882
	* config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
	CONST_INT operands, zero-extended with AND.

2012-04-05  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/50751
	* config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
	first argument instead of mode size.  Move displacement calculations
	to ...
	(mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
	... these new functions.
	(disp_adjust): Remove max_mov_disp field.
	(sh_legitimate_index_p): Use max_mov_insn_displacement and
	mov_insn_alignment_mask.
	(sh_address_cost): Use max_mov_insn_displacement.

2012-04-05  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
	(arch_enabled): Handle new arch types.
	(one_cmpldi2): Add NEON support.

2012-04-05  Richard Guenther  <rguenther@suse.de>

	* gimple.c (walk_gimple_op): Compute val_only for the LHS
	of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
	(is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
	* gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
	... here and make static.
	* gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
	Remove.

2012-04-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
	basic-block before removing it.

2012-04-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssanames.c (release_dead_ssa_names): Compact the SSA
	version namespace as we release the freelist.

2012-04-05  Richard Guenther  <rguenther@suse.de>

	* tree-nrv.c (tree_nrv): Release VDEFs.
	* tree-sra.c (sra_modify_constructor_assign): Likewise.
	(sra_modify_assign): Likewise.
	* tree-vect-stmts.c (vect_remove_stores): Likewise.
	* tree-vect-loop.c (vect_transform_loop): Likewise.
	* tree-ssa-dom.c (optimize_stmt): Likewise.
	* tree-vect-slp.c (vect_schedule_slp): Likewise.
	* tree-ssa-math-opts.c (execute_cse_sincos): Likewise.

2012-04-05  Richard Guenther  <rguenther@suse.de>

	* gimple-iterator.c (gsi_remove): Return whether EH edges need to be
	cleanup.
	* gimple.h (gsi_remove): Adjust.
	* tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
	* tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
	* tree-ssa-dse.c (dse_optimize_stmt): Likewise.
	* tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
	* tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
	* tree-ssa-pre.c (eliminate): Likewise.

2012-04-04  Mike Stump  <mikestump@comcast.net>

	* doc/rtl.texi (const_double): Document as sign-extending.
	* expmed.c (expand_mult): Ensure we don't use shift incorrectly.
	* emit-rtl.c (immed_double_int_const): Refine to state the
	value is signed.
	* simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
	CONST_DOUBLE integers.
	(simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
	negative values are converted.  Fix conversions bigger than
	HOST_BITS_PER_WIDE_INT.
	(simplify_binary_operation_1): Ensure we don't use shift incorrectly.
	(simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
	* explow.c (plus_constant_mode): Add.
	(plus_constant): Implement with plus_constant_mode.
	* rtl.h (plus_constant_mode): Add.

2012-04-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52808
	* tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
	* Makefile.in (tracer.o): Depend on $(CFGLOOP_H).

2012-04-04  Tristan Gingold  <gingold@adacore.com>

	* expr.c (expand_expr_real_2): Handle larger sizetype in
	POINTER_PLUS_EXPR.

2012-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
	to m2a-single instead of m2e.

2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
	Change type of BITOFFSET to signed.  Make sure the lower bound of
	the computed range is non-negative by adjusting OFFSET and BITPOS.
	(expand_assignment): Adjust call to get_bit_range.

2012-04-03  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>

	* h8300/h8300.c (h8300_current_function_monitor_function_p):
	New function. Added to check monitor functions.
	(h8300_option_override): Modified to generate error/warning
	messages for invalid combinations of different command line
	options.
	* h8300/h8300.md: Generate 'rte' for monitor functions. Do not
	save EXR on stack for monitor function in case of H8S target
	when "-mno-exr" is passed.
	* h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
	Add prototype.
	* doc/invoke.texi: Document H8S options.

2012-04-03  Tristan Gingold  <gingold@adacore.com>

	* configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
	of gcc_AC_FUNC_MMAP_BLACKLIST.
	* acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
	* Makefile.in (aclocal_deps): Add mmap.m4.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.

2012-04-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52808
	* tracer.c (tail_duplicate): Return whether we have duplicated
	any block.
	(tracer): If we have duplicated any block, cleanup the CFG.
	* cfghooks.c (duplicate_block): If we duplicated a loop
	header but not its loop, destroy the loop because it now has
	multiple entries.
	* tree-ssa-threadupdate.c (thread_through_loop_header): Tell
	the cfg manipulation routines we are not creating a multiple
	entry loop.

2012-04-03  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
	'byte' alignment.
	(vms_c_common_override_options): Allow parameterless variadic
	functions.

2012-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52835
	* tree-data-ref.c (build_rdg): Return NULL if
	compute_data_dependences_for_loop failed.

2012-04-03  Eric Botcazou  <ebotcazou@adacore.com>

	* varasm.c (initializer_constant_valid_for_bitfield_p): Return true
	for REAL_CST as well.
	(output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
	In the bitfield case, if the value is a REAL_CST, convert it first to
	an INTEGER_CST.

2012-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
	for --with-abi={x32|mx32} or --with-multilib-list=mx32.
	(supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.

	* config/i386/biarchx32.h: New.

2012-04-02  Anatoly Sokolov  <aesok@post.ru>

	* config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
	(arm_preferred_reload_class): New function.

2012-04-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52756
	* tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
	(thread_through_loop_header): After threading through the loop latch
	remove the split part from the loop and clear further threading
	opportunities that would create a multiple entry loop.

2012-04-02  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/52800
	* cprop.c (execute_rtl_cprop): Call cleanup_cfg with
	CLEANUP_CFG_CHANGED.

2012-04-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52803
	* loop-init.c (gate_handle_loop2): Destroy loops here if
	we don't enter RTL loop optimizers.

2012-04-02  Uros Bizjak  <ubizjak@gmail.com>

	Partially revert:
	2012-03-29  Richard Guenther  <rguenther@suse.de>

	* rtl.h (extended_count): Remove.
	* combine.c (extended_count): Remove.

2012-04-02  Dodji Seketeli  <dodji@redhat.com>

	PR c++/40942
	* pt.c (more_specialized_fn):  Don't apply decay conversion to
	types of function parameters.

2012-04-02  Tristan Gingold  <gingold@adacore.com>

	* ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
	(ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
	(alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
	(ggc_pch_this_base): Use uintptr_t instead of size_t.

2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/52784
	* config/i386/i386.c (ix86_option_override_internal): Don't
	check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.

2012-03-31  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-cfg.c (call_can_make_abnormal_goto): New predicate.
	(stmt_can_make_abnormal_goto): Use it.
	(is_ctrl_altering_stmt): Likewise.

2012-03-30  Naveen H.S  <naveen.S@kpitcummins.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (push_regs): Skip banked registers when
	resbank attribute is specified.
	(sh_expand_epilogue): Likewise.

2012-03-30  Richard Henderson  <rth@redhat.com>

	PR debug/52727
	* combine-stack-adj.c (prev_active_insn_bb): New.
	(next_active_insn_bb): New.
	(force_move_args_size_note): New.
	(combine_stack_adjustments_for_block): Use it.

2012-03-30  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
	(ix86_expand_vector_init_duplicate): Initialize it.
	(expand_vec_perm_palignr): Likewise.
	(ix86_expand_vec_perm_const): Likewise.
	(ix86_vectorize_vec_perm_const_ok): Likewise.
	(expand_vec_perm_blend): Use it.
	(expand_vec_perm_vpermil): Likewise.
	(expand_vec_perm_pshufb): Likewise.
	(expand_vec_perm_1): Likewise.
	(expand_vec_perm_pshuflw_pshufhw): Likewise.
	(expand_vec_perm_interleave2): Likewise.
	(expand_vec_perm_vpermq_perm_1): Likewise.
	(expand_vec_perm_vperm2f128): Likewise.
	(expand_vec_perm_interleave3): Likewise.
	(expand_vec_perm_vperm2f128_vblend): Likewise.
	(expand_vec_perm_vpshufb2_vpermq): Likewise.
	(expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
	(expand_vec_perm_broadcast): Likewise.
	(expand_vec_perm_vpshufb4_vpermq2): Likewise.

2012-03-30  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (gen_variable_die): Initialize off.

2012-03-30  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms-f.c: New file.
	* config/vms/t-vms (vms-f.o): New rule.
	* config.gcc (*-*-*vms*): Define fortran_target_objs.

2012-03-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52754
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
	propagate arbitrary addresses into really plain dereferences.

2012-03-30  Richard Guenther <rguenther@suse.de>

	PR middle-end/52772
	* except.c (emit_to_new_bb_before): Move loop updating ...
	(dw2_build_landing_pads): ... here.  Use a proper block for
	querying the loop father.

2012-03-30  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/ia64.c (ia64_section_type_flags): Remove
	common_object attribute handling.
	(SECTION_VMS_OVERLAY): Remove
	(ia64_vms_common_object_attribute): Replace abort with an assert.
	Do not set DECL_SECTION_NAME.
	(ia64_vms_output_aligned_decl_common): Handle common_object
	attribute.
	(ia64_vms_elf_asm_named_section): Remove.
	* config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.

2012-03-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52786
	* double-int.c (rshift_double): Remove not needed cast.

2012-03-30  Richard Guenther  <rguenther@suse.de>

	* tree-affine.h (print_aff): Remove.
	* tree-affine.c (print_aff): Make static.
	* tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
	(get_references_in_stmt): Likewise.
	(print_direction_vector): Likewise.
	(print_dir_vectors): Likewise.
	(print_dist_vectors): Likewise.
	(dump_subscript): Likewise.
	(dump_ddrs): Likewise.
	(dump_dist_dir_vectors): Likewise.
	(dump_data_references): Likewise.
	(dump_data_dependence_relation): Likewise.
	(dump_data_dependence_direction): Likewise.
	(dump_rdg_vertex): Likewise.
	(dump_rdg_component): Likewise.
	(debug_ddrs): Declare.
	(struct data_ref_loc_d): Move ...
	* tree-data-ref.c (struct data_ref_loc_d): ... here.
	(get_references_in_stmt): Make static.
	(dump_data_references): Likewise.
	(dump_subscript): Likewise.
	(print_direction_vector): Likewise.
	(print_dir_vectors): Likewise.
	(print_dist_vectors): Likewise.
	(dump_data_dependence_relation): Likewise.
	(dump_dist_dir_vectors): Likewise.
	(dump_ddrs): Likewise.
	(dump_rdg_vertex): Likewise.
	(dump_rdg_component): Likewise.
	(debug_ddrs): New function.
	(access_matrix_get_index_for_parameter): Remove.

2012-03-30  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
	(VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
	(VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
	(VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
	(VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
	(vms_patch_builtins): Handle new flags
	* config/vms/vms-crtlmap.map: Completed using nm on
	c and math system libraries.
	* config/vms/make-crtlmap.awk: Handle any number of flags.

2012-03-30  Martin Jambor  <mjambor@suse.cz>

	* tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
	is a builtin_stack_save in a dominating BB.

2012-03-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
	crossing 128bit lane boundary.

2012-03-29  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-color.c (setup_left_conflict_sizes_p): Process all
	conflicting objects.

2012-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52760
	* tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
	shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).

2012-03-29  Richard Guenther  <rguenther@suse.de>

	* cgraph.h (cgraph_materialize_all_clones): Remove.
	(reset_inline_failed): Likewise.
	* cgraphunit.c (cgraph_materialize_all_clones): Make static.
	* cgraphbuild.c (reset_inline_failed): Remove.
	* rtl.h (cse_main): Remove.
	(extended_count): Likewise.
	* cse.c (dump_class): Mark as DEBUG_FUNCTION.
	(cse_main): Make static.
	* combine.c (extended_count): Remove.
	(dump_combine_stats): Mark as DEBUG_FUNCTION.
	* basic-block.h (reorder_basic_blocks): Remove.
	* bb-reorder.c (reorder_basic_blocks): Make static.
	* Makefile.in (dse.o): Remove dse.h dependency.
	* dse.h: Remove.
	* dse.c (gate_dse): Remove.
	(clear_alias_mode_eq): Likewise.
	(clear_alias_mode_hash): Likewise.
	(dse_record_singleton_alias_set): Likewise.
	(dse_invalidate_singleton_alias_set): Likewise.

2012-03-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
	crtbegin_so%O%s for -shared.
	(ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.

2012-03-29  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (struct pre_expr_d): Remove forward declaration.
	(add_to_value): Remove.
	(print_value_expressions): Likewise.
	* tree-ssa-pre.c (add_to_value): Make static.
	(print_value_expressions): Likewise.
	* gimple.h (gimple_adjust_this_by_delta): Remove.
	* gimple-fold.c (gimple_adjust_this_by_delta): Likewise.

2012-03-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50708
	* double-int.h (rshift_double): Remove.
	* double-int.c (lshift_double): Use absu_hwi to make count positive.
	(rshift_double): Make static, take unsigned count argument,
	remove handling of negative count argument.
	(double_int_rshift): Dispatch to lshift_double.

2012-03-28  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
	OPTION_MASK_ABI_64.
	* config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
	(SPEC_X32): Likewise.
	(MULTILIB_DEFAULTS): Likewise.
	* config/i386/i386.c (isa_opts): Remove -m64.
	(ix86_target_string): Properly handle -m32/-m64/-mx32.
	(ix86_option_override_internal): Properly
	set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
	handle -m32, -m64 and -mx32.
	* config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
	with OPTION_ABI_X32.  Moved after TARGET_LP64.
	(TARGET_LP64): Changed to OPTION_ABI_64.
	* config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
	(mx32): Replace ISA_X32 with ABI_X32.

2012-03-28  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (tree_size) <VECTOR_CST>: New case.

2012-03-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
	(ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.

2012-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/52691
	* tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
	__builtin_va_start to __builtin_next_arg if the latter is
	builtin_decl_explicit_p rather than when it is not.

	PR middle-end/52750
	* tree-vect-generic.c (vector_element): Perform multiplication
	for pos in bitsizetype type instead of idx type.

2012-03-28  Richard Guenther  <rguenther@suse.de>

	* loop-init.c (loop_optimizer_init): If loops are preserved
	perform incremental initialization of required loop features.
	(loop_optimizer_finalize): If loops are to be preserved only
	clean up optional loop features.
	(rtl_loop_done): Forcefully free loops here.
	* cgraph.c (cgraph_release_function_body): Forcefully free loops.
	* cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
	to existing loops.
	(construct_init_block): Likewise.
	(construct_exit_block): Likewise.
	(gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state.  Cleanup
	the CFG after expanding.
	* cfgloop.c (verify_loop_structure): Calculate or verify dominators.
	If we needed to calculate them, free them afterwards.
	* tree-pass.h (PROP_loops): New define.
	* tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
	* basic-block.h (CLEANUP_CFG_CHANGED): New.
	* cfgcleanup.c (merge_blocks_move): Protect loop latches.
	(cleanup_cfg): If we did something and have loops around, fix them up.
	* cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
	with CLEANUP_CFG_CHANGED.
	* cfghooks.c (merge_blocks): If we merge a loop header into
	its predecessor, update the loop structure.
	(duplicate_block): If we copy a loop latch, adjust loop state
	to note we may have multiple latches.
	(delete_basic_block): Mark loops for fixup if we remove a loop.
	* cfganal.c (forwarder_block_p): Protect loop latches, headers
	and preheaders.
	* cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
	(cfg_layout_can_merge_blocks_p): Likewise.
	* cprop.c (bypass_block): If we create a loop with multiple
	entries, mark it for removal.
	* except.c (emit_to_new_bb_before): Add the new basic-block
	to existing loops.
	* tree-eh.c (lower_resx): Likewise.
	* omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
	(expand_omp_taskreg): Likewise.
	* tree-inline.c (initialize_cfun): Likewise.
	* tree-mudflap.c (add_bb_to_loop): Prototype.
	(mf_build_check_statement_for): Properly add new basic-blocks
	to existing loops.
	* tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
	if we remove a loop.
	(thread_through_loop_header): Likewise.
	* trans-mem.c (tm_log_emit_save_or_restores): Properly add
	new basic-blocks to existing loops.
	(expand_transaction): Likewise.
	* Makefile.in (except.o): Add $(CFGLOOP_H).
	(expr.o): Likewise.
	(cgraph.o): Likewise.
	(cprop.o): Likewise.
	(cfgexpand.o): Likewise.
	(cfganal.o): Likewise.
	(trans-mem.o): Likewise.
	(tree-eh.o): Likewise.

2012-03-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52692
	* config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
	(avr_builtin_decl): New static function.
	(struct avr_builtin_description, avr_bdesc): Move up.
	Add GTY marker. Add field fndecl. Remove redundant field id.
	(avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
	(avr_expand_builtin): Code cleanup because .id is removed.

2012-03-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52737
	* config.gcc (tm_file): Remove avr/multilib.h.

	* doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.

	* config/avr/genmultilib.awk: Remove code to generate multilib.h.
	(BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
	* config/avr/t-avr: Remove generation of multilib.h.
	* config/avr/t-multilib: Regenerate.
	* config/avr/multilib.h: Remove.
	* config/avr/avr.opt (-msp8): New option.
	(avr_sp8): New variable.
	* config/avr/driver-avr.c (avr_device_to_sp8): New function.
	* config/avr/avr.h (AVR_HAVE_SPH): New define.
	(AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
	(avr_device_to_sp8): New prototype.
	(EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
	(DRIVER_SELF_SPECS): New define.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
	__AVR_SP8__, __AVR_HAVE_SPH__.
	* config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
	AVR_HAVE_8BIT_SP to decide if SP_H is present.
	(avr_file_start): Ditto.

2012-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/52736
	* config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
	instead of 8 in adjust_address.

2012-03-27  Aurelien Buhrig  <aurelien.buhrig.gcc@gmail.com>

	PR middle-end/51893
	* expmed.c (store_bit_field_1): Fix wordnum value for big-endian
	targets.

2012-03-27  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/50751
	* config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
	Rearrange conditional logic.  Move displacement address calculations
	to ...
	(sh_find_mov_disp_adjust): ... this new function.

2012-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* config/arm/arm.opt (mapcs): Remove MaskExists.
	* config/cris/linux.opt (mno-gotplt): Likewise.
	* config/i386/i386.opt (mhard-float): Likewise.
	(msse4): Likewise.
	(mno-sse4): Likewise.
	* config/m68k/m68k.opt (mhard-float): Likewise.
	* config/mep/mep.op (mcop32): Likewise.
	* config/pa/pa-hpux.opt (msio): Likewise.
	* config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
	* config/picochip/picochip.opt (mlittle): Likewise.
	* config/sh/sh.opt (mrenesas): Likewise.
	* config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
	* config/sparc/sparc.opt (mhard-float): Likewise.
	* config/v850/v850.opt (mv850es): Likewise.
	* config/vax/vax.opt (mg-float): Likewise.

2012-03-27  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/52693
	* tree-sra.c (sra_modify_assign): Do not call
	load_assign_lhs_subreplacements when working with an unscalarizable
	region.

2012-03-27  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52698
	* config/i386/i386-protos.h (ix86_legitimize_reload_address):
	New prototype.
	* config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
	* config/i386/i386.c: Include reload.h.
	(ix86_legitimize_reload_address): New function.

2012-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* opth-gen.awk: Allocated a bit for Mask and InverseMask if it
	hasn't been allocated.  Define a target macro for Mask and
	InverseMask if it hasn't been defined.  Remove MaskExists handling.

	* doc/options.texi: Remove MaskExists.

2012-03-27  Chung-Lin Tang  <cltang@codesourcery.com>

	PR target/52667
	* config/sh/sh.c (find_barrier): Add equality check of last_got
	to avoid going above orig insn. Update comments.

2012-03-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52720
	* fold-const.c (try_move_mult_to_index): Handle &x.array more
	explicitely.

2012-03-27  Eric Botcazou  <ebotcazou@adacore.com>

	* expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
	of a unit before computing the offset in units.
	* expr.c (get_bit_range): Return the null range if the enclosing record
	is part of a larger bit field.

2012-03-27  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/vms.h (CASE_VECTOR_MODE): Define.
	* config/ia64/ia64.md: Remove mode in template.
	Sign extend operand in expand_simple_binop.
	* config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
	CASE_VECTOR_MODE instead of TARGET_ILP32.
	(ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.

2012-03-26  Steven Bosscher  <steven@gcc.gnu.org>

	* varasm.c (assemble_external): #if 0 out the new assert from the
	previous commit, it breaks the Java and Go front ends.

2012-03-26  Steven Bosscher  <steven@gcc.gnu.org>

	* toplev.c (check_global_declaration_1): Do not call assemble_external.
	* expr.c (emit_block_move_libcall_fn): Likewise.
	(clear_storage_libcall_fn): Likewise.
	(expand_expr_addr_expr_1): Likewise.
	(expand_expr_real_1): Likewise.
	* calls.c (rtx_for_function_call): Likewise.

	* varasm.c (assemble_external): Assert this function is only called
	during or after expanding to RTL.

2012-03-26  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/50052
	* tree-sra.c (tree_non_aligned_mem_p): Removed.
	(tree_non_aligned_mem_for_access_p): Likewise.
	(build_accesses_from_assign): Removed strict alignment requirements
	checks.
	(access_precludes_ipa_sra_p): Likewise.

2012-03-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52701
	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
	compute and set the evolution part of PHI nodes.

2012-03-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52721
	* tree-vect-stmts.c (vect_init_vector): Handle scalars.

2012-03-26  Ulrich Weigand  <ulrich.weigand@linaro.org>

	PR tree-optimization/52686
	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
	WIDEN_LSHIFT_EXPR.

2012-03-26  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/vms.h (LINK_SPEC): Simplify.
	(STARTFILE_SPEC): Remove -mvms-return-codes handling.
	(NAME__MAIN, SYMBOL__MAIN): Remove.
	(VMS_DEBUG_MAIN_POINTER): Remove.
	* config/ia64/vms.h: Likewise.
	* config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
	code to vms.c.  Call vms_start_function.
	* config/ia64/ia64.c (ia64_start_function): Likewise.
	* config/vms/vms-protos.h (vms_start_function): Declare.
	* config/vms/vms.c (vms_start_function): New function.
	* config/vms/vms.h (MATH_LIBRARY): Define.
	(VMS_DEBUG_MAIN_POINTER): Define.

2012-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/52629
	* reload1.c (count_pseudo): Short-circuit common case.
	(count_spilled_pseudo): Return early for pseudos without hard regs.
	Assert that the pseudo has got a hard reg before manipulating it.

2012-03-24  Jan Hubicka  <jh@suse.cz>

	PR lto/51663
	* varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
	(decide_is_variable_needed): Do not handle toplevel reorder here.
	* cgraph.h (varpool_can_remove_if_no_refs): Likewise.
	* ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
	even at -O0.

2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
	and str_bitsize instead of more convoluted expressions.

2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/52610
	* config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.

2012-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/52656
	* config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.

2012-03-23  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (build_accesses_from_assign): Remove FIXME comment.

2012-03-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52678
	* tree-vectorizer.h (struct _stmt_vec_info): Add
	loop_phi_evolution_part member.
	(STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
	STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
	* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
	Use the cached evolution part and the PHI nodes value from
	the loop preheader edge instead of re-analyzing the evolution.

2012-03-22  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips-tables.opt: Update.
	* config/mips/mips.md (processor): Add xlp.
	* config/mips/mips-cpus.def: Add xlp.
	* config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
	5KF for now.
	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
	* doc/invoke.texi: Mention XLP.

2012-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/52547
	* tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
	on any new_local_var_chain vars declared during recursing on
	GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.

2012-03-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
	(ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
	(ASM_OUTPUT_LOCAL): Ditto.
	(ASM_OUTPUT_COMMON): Remove.
	* config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
	* config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.

2012-03-22  Jan Hubicka  <jh@suse.cz>

	PR middle-end/51737
	* cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
	parameter.
	* cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
	* ipa-inline-transform.c (save_inline_function_body): Remove
	copied clone if needed.
	* tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.

2012-03-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52666
	* fold-const.c (fold_ternary_loc): Fix typo.

2012-03-22  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52496
	* config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
	(unspecv): Add UNSPECV_MEMORY_BARRIER.
	(cli_sei): Use unspec_volatile instead of unspec for memory barrier.
	(delay_cycles_1, delay_cycles_2): Ditto.
	(delay_cycles_3, delay_cycles_4): Ditto.
	(nopv, *nopv): Ditto.
	(sleep, *sleep): Ditto.
	(wdr, *wdr): Ditto.

2012-03-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52548
	* tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
	because of clobbers.
	(prune_clobbered_mems): New function.
	(compute_antic_aux): Use it to prune ANTIC_OUT.
	(compute_partial_antic_aux): Use it to prune PA_IN.
	(compute_avail): Only insert expressions into EXP_GEN that are not
	invalidated when translated up to the beginning of the block.

2012-03-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52638
	* tree-vect-stmts.c (vect_init_vector_1): New function, split
	out from ...
	(vect_init_vector): ... here.  Handle scalar vector inits.
	(vect_get_vec_def_for_operand): Adjust.
	(vectorizable_load): Likewise.

2012-03-22  Uros Bizjak  <ubizjak@gmail.com>

	* config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
	(alpha*-*-freebsd*): Ditto.
	(alpha*-*-netbsd*): Ditto.
	(alpha*-*-openbsd*): Ditto.
	* config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
	(DWARF2_DEBUGGING_INFO): Remove.
	(PREFERRED_DEBUGGING_TYPE): Remove.
	(ASM_FINAL_SPEC): Remove.
	(IDENT_ASM_OP): Remove.
	(ASM_OUTPUT_IDENT): Remove.
	(SKIP_ASM_OP): Remove.
	(ASM_OUTPUT_SKIP): Remove.
	(ALIGN_ASM_OP): Remove.
	(ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
	(ASM_OUTPUT_CASE_LABEL): Remove.
	(ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
	(COMMON_ASM_OP): Remove.
	(ASM_OUTPUT_ALIGNED_COMMON): Remove.
	(ASCII_DATA_ASM_OP): Remove.
	(READONLY_DATA_SECTION_ASM_OP): Remove.
	(INIT_SECTION_ASM_OP): Remove.
	(FINI_SECTION_ASM_OP): Remove.
	(ASM_SECTION_START_OP): Remove.
	(ASM_OUTPUT_SECTION_START_FILE): Remove.
	(TARGET_ASM_NAMED_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): Remove.
	(MAKE_DECL_ONE_ONLY): Remove.
	(TYPE_ASM_OP): Remove.
	(SIZE_ASM_OP): Remove.
	(ASM_WEAKEN_LABEL): Remove.
	(TYPE_OPERAND_FMT): Remove.
	(ASM_DECLARE_RESULT): Remove.
	(ASM_DECLARE_OBJECT_NAME): Remove.
	(ASM_FINISH_DECLARE_OBJECT): Remove.
	(ELF_ASCII_ESCAPES): Remove.
	(ELF_STRING_LIMIT): Remove.
	(STRING_ASM_OP): Remove.
	(ASM_OUTPUT_EXTERNAL): Remove.
	(TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
	* config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
	before define.
	(ASM_DECLARE_FUNCTION_NAME): Ditto.
	(ASM_DECLARE_FUNCTION_SIZE): Ditto.
	(ASM_GENERATE_INTERNAL_LABEL): Ditto.
	(ASM_OUTPUT_SKIP): Ditto.
	(READONLY_DATA_SECTION_ASM_OP): Remove.
	(USER_LABEL_PREFIX): Remove.
	(ASM_OUTPUT_ASCII): Remove.
	(ASM_OUTPUT_CASE_LABEL): Remove.
	(NO_DOLLAR_IN_LABEL): Undefine.

2012-03-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52459
	* tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
	PHI insertion for calls.

2012-03-21  Steven Bosscher  <steven@gcc.gnu.org>

	* cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
	find_sets_in_insn, canonicalize_insn): Split out from ...
	(cse_insn): ... here.
	(invalidate_from_clobbers): Take an insn instead of the pattern.

2012-03-21  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/52479
	* config/sh/sh-protos.h (sh_fsca_df2int): Remove.
	* config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
	* config/sh/sh.md (sindf2, cosdf2): Remove.

2012-03-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/52642
	* config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
	prologue for unwinder and profiler.

2012-03-21  Andreas Tobler  <andreast@fgznet.ch>

	* configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
	Introduce emul_name to select the right linker emulation for
	powerpc64-*-freebsd*.
	* configure: Regenerate.
	* config.gcc: Add bits to support powerpc64-*-freebsd*.
	* config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
	* config/rs6000/freebsd64.h: New file.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Use
	POWERPC_FREEBSD.
	(rs6000_savres_strategy): Likewise.
	(rs6000_savres_routine_name): Likewise.
	(rs6000_elf_file_end): Likewise.
	* config/rs6000/t-freebsd64: New file.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
	rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.

	* config/rs6000/freebsd64.h: Remove duplicated entries from last
	commit.
	* config/rs6000/t-freebsd64: Likewise.

2012-03-21  Georg-Johann Lay  <avr@gjlay.de>

	PR rtl-optimization/52543
	PR target/52461
	* config/avr/avr-protos.h (avr_load_lpm): New prototype.
	* config/avr/avr.c (avr_mode_dependent_address_p): New function.
	(TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
	(avr_load_libgcc_p): Restrict to __flash loads.
	(avr_out_lpm): Only handle 1-byte loads from __flash.
	(avr_load_lpm): New function.
	(avr_find_unused_d_reg): Remove.
	(avr_out_lpm_no_lpmx): Remove.
	(adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
	* config/avr/avr.md (unspec): Add UNSPEC_LPM.
	(load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
	(load_<mode>, load_<mode>_clobber): New insns.
	(mov<mode>): For multi-byte move from non-generic
	16-bit address spaces: Expand to load_<mode> resp.
	load_<mode>_clobber.
	(load<mode>_libgcc): Remove expander.
	(split-lpmx): Remove split.

2012-03-21  Richard Earnshaw  <rearnsha@arm.com>

	* neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
	* config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
	All callers changed.
	(Fixed_core_reg): New feature.
	(Vget_lane [sizes S64 and U64]): Add Fixed_core_reg.  Allow fmrrd in
	disassembly.
	* neon-testgen.ml: Handle Fixed_core_reg.

2012-03-21  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (thumb2_reorg): Add complete support
	for 16-bit instructions.
	* config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.

2012-03-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimizer/52636
	* tree-vect-slp.c (vect_get_constant_vectors): Convert constants
	to the appropriate type.

2012-03-21  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
	dependencies.
	* cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
	pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
	* passes.c (init_optimization_passes): Remove pass_init_function,
	pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
	* tree-pass.h (pass_init_function): Remove.
	(pass_jump): Remove.
	(pass_initial_value_sets): Remove.
	(pass_unshare_all_rtl): Remove.
	* integrate.c (pass_initial_value_sets): Remove.
	* emit-rtl.c (pass_unshare_all_rtl): Remove.
	* tree.h (init_function_for_compilation): Remove.
	* function.c (init_function_for_compilation): Remove.
	(pass_init_function): Remove.
	* cfgcleanup.c (rest_of_handle_jump): Remove.
	(pass_jump): Remove.

2012-03-20  Jason Merrill  <jason@redhat.com>

	* tree-streamer-in.c (streamer_alloc_tree): Call
	ggc_alloc_zone_cleared_tree_node instead of
	ggc_alloc_zone_cleared_tree_node_stat.

2012-03-20  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/extend.texi (Template Instantiation): Remove anachronisms.

2012-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/52607
	* config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
	(ix86_expand_vec_perm_const_1): Call it.

	* config/i386/i386.c (vselect_insn): New variable.
	(init_vselect_insn): New function.
	(expand_vselect, expand_vselect_insn): Add testing_p argument.
	Call init_vselect_insn if vselect_insn is NULL.  Adjust
	PATTERN (vselect_insn), instead of creating a new insn each time,
	only emit a copy of it if not testing and recog has been successful.
	(expand_vec_perm_pshufb, expand_vec_perm_1,
	expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
	callers.

	PR target/52607
	* config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
	("enabled" attribute): Handle avx2 and noavx2 isas.
	* config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
	New insns.
	(vec_dup<mode>): Add avx2 =x,x alternative.
	(vec_dup<mode> splitter): Don't split if TARGET_AVX2.
	(*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
	For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
	* config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
	for V8SFmode.
	(expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
	if possible, handle also V8SFmode.

2012-03-20  Richard Earnshaw  <rearnsha@arm.com>

	* arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
	* arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
	reg_or_zero_operand predicate.
	(neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.

2012-03-20  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
	If operand isn't UNSPEC, return 0.

2012-03-20  Richard Guenther  <rguenther@suse.de>

	* tree-pass.h (pass_rtl_eh): Remove.
	* except.c (gate_handle_eh): Likewise.
	(rest_of_handle_eh): Likewise.
	(pass_rtl_eh): Likewise.
	(finish_eh_generation): Export.
	* except.h (finish_eh_generation): Declare.
	* passes.c (init_optimization_passes): Remove pass_rtl_eh.
	* cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
	after expanding stack alignment.  Instead of compacting blocks
	call cleanup_cfg.

2012-03-20  Richard Guenther  <rguenther@suse.de>

	* stor-layout.c (finish_bitfield_representative): Fallback
	to conservative maximum size if the padding up to the next
	field cannot be computed as a constant.
	(finish_bitfield_layout): If we cannot compute the distance
	between the start of the bitfield representative and the
	bitfield member start a new representative.
	* expr.c (get_bit_range): The distance between the start of
	the bitfield representative and the bitfield member is zero
	if the field offsets are not constants.

2012-03-20  Tristan Gingold  <gingold@adacore.com>

	* tree.h (enum size_type_kind): Add stk_ prefix to constants,
	convert in lowercase.
	(sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
	(size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
	* stor-layout.c (sizetype_tab): Adjust.
	(initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
	* tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
	instead of type_kind_last.
	* tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
	instead of size_int_kind.
	* doc/tm.texi.in (Type Layout): Document SIZETYPE.
	* doc/tm.texi: Regenerate.
	* defaults.h (SIZETYPE): Provide a default value.
	* config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
	(SIZETYPE): Define.

2012-03-20  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.md: Use braced string notation where applicable.

2012-03-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (allocate_stack): Simplify.

2012-03-19  Uros Bizjak  <ubizjak@gmail.com>

	* builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
	copy_to_mode_reg (Pmode, ...).
	(expand_builtin_frame_address): Ditto.
	* expr.c (emit_block_move_via_libcall): Ditto.
	(set_storage_via_libcall): Ditto.

	* config/i386/i386.c (ix86_expand_movmem): Ditto.
	(ix86_expand_setmem): Ditto.
	(ix86_trampoline_init): DItto.
	* config/i386/i386.md (cmpstrnsi): Ditto.

2012-03-19  Sandra Loosemore  <sandra@codesourcery.com>

	* config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
	* config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
	* doc/invoke.texi (Option Summary): Remove -madjust-unroll.
	(SH Options): Likewise.

2012-03-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
	Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
	(legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
	DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
	(ix86_decompose_address): Allow zero extended UNSPEC_TP references.

	Revert:
	2012-03-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
	* config/i386/i386.c (ix86_decompose_address): Use
	TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
	(legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
	thread pointer to a register.

	Revert:
	2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
	if Pmode != word_mode.
	(legitimize_tls_address): Call gen_tls_initial_exec_x32 if
	Pmode == SImode for TARGET_X32.
	* config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
	(tls_initial_exec_x32): Likewise.

2012-03-19  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/50751
	* config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
	DISP_ADDR_OFFSET): New macros.
	* config/sh/sh.c (sh_address_cost): Add SH2A special case.
	(sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
	(sh_legitimize_address): Add QImode displacement handling.
	(sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
	vector subregs.
	(sh_secondary_reload): Add QImode displacement handling.
	* config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
	* config/sh/constraints.md (K04, Snd, Sdd): New constraints.
	* config/sh/sh.md (extendqisi2): Remove constraints from expander.
	(*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
	to register operands only.
	(*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
	(extendqihi2): Change insn to expander.
	(*extendqihi2_compact_reg): New insn.
	(movqi_i, movqi): Replace with ...
	(movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
	*movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
	Add new peepholes for QImode displacement addressing.

2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/14710
	* doc/invoke.texi: Document -Wuseless-cast.

2012-03-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
	* tree.h (handled_component_p): Reorder cases.
	* dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
	not initialize unsignedp.
	(loc_list_from_tree): Likewise.
	(fortran_common): Likewise.
	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.

2012-03-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
	mode consistently.  Use ix86_gen_add3.  Assert that Pmode == DImode.
	(ix86_expand_split_stack_prologue): Use ix86_gen_add3.
	(ix86_split_long_move): Ditto.
	(legitimize_tls_address): Use ix86_gen_sub3.
	(construct_plt_address): Assert that Pmode == DImode.

2012-03-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md: Remove empty predicates and/or constraints.
	* config/i386/sync.md: Ditto.
	* config/i386/sse.md: Ditto.
	* config/i386/mmx.md: Ditto.
	* config/i386/pentium.md: Ditto.
	* config/i386/athlon.md: Ditto.

2012-03-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52603
	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
	comment.

	Revert
	2012-03-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52571
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
	flag_section_anchors check ...
	(vect_can_force_dr_alignment_p): ... here.

2012-03-16  Martin Jambor  <mjambor@suse.cz>

	* expr.c (expand_expr_real_1): Handle misaligned scalar reads from
	memory through MEM_REFs by calling extract_bit_field.

2012-03-16  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (native_interpret_expr): Also support POINTER_TYPE
	and REFERENCE_TYPE interpretations.
	(can_native_interpret_type_p): New function.
	(fold_ternary_loc): Use native encode/interpret to fold
	BIT_FIELD_REFs of constants.

2012-03-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52584
	* fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
	of vector constants and constructors.

2012-03-16  Richard Guenther  <rguenther@suse.de>

	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
	VIEW_CONVERT_EXPR to convert constants.
	(vect_is_simple_use): Treat all constants as vec_constant_def.

2012-03-16  Richard Guenther  <rguenther@suse.de>
	    Kai Tietz  <ktietz@redhat.com>

	PR middle-end/48814
	* gimplify.c (gimplify_self_mod_expr): Evaluate postfix
	side-effects completely in the pre-queue and use a temporary
	for the result.

2012-03-16  Richard Guenther  <rguenther@suse.de>

	* stor-layout.c (finish_bitfield_representative): Fall back
	to the conservative maximum size if we cannot compute the
	size of the tail padding.

2012-03-16  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
	__CRTL_VER and __VMS_VER.
	* config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
	and vms_c_get_vms_ver.
	* config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
	functions.
	* config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
	(VMS_DEFAULT_VMS_VER): Define.
	* config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
	(VMS_DEFAULT_VMS_VER): Define.

2012-03-16  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop.c (get_initial_def_for_induction): Use
	build_constructor directly.
	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
	build_vector_from_val.
	* tree.c (build_vector_from_val): Avoid creating a constructor
	first when we want a constant vector.

2012-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, *-*-solaris2*): Improve wording.

2012-03-16  Richard Guenther  <rguenther@suse.de>

	* tree.h (TREE_VECTOR_CST_ELTS): Remove.
	(VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
	(struct tree_vector): Remove elements member, add variable size
	elts array member.
	(build_vector_stat): Declare.
	(build_vector): Define in terms of build_vector_stat.
	* tree.c (build_vector): Rename to ...
	(build_vector_stat): ... this.  Take array of trees as parameter.
	(build_vector_from_ctor): Adjust.
	(integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
	initializer_zerop): Adjust.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* expr.c (categorize_ctor_elements_1, expand_expr_real_1,
	const_vector_from_tree): Likewise.
	* fold-const.c (const_binop, operand_equal_p, native_encode_vector,
	native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
	fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
	* tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
	(lto_input_ts_vector_tree_pointers): Adjust.
	* tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
	(write_ts_vector_tree_pointers): Adjust.
	* varasm.c (const_hash_1, compare_constant, copy_constant,
	output_constant): Adjust.
	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
	* print-tree.c (print_node): Adjust.
	* tree-pretty-print.c (dump_generic_node): Adjust.
	* tree-vect-generic.c (uniform_vector_p, vector_element,
	lower_vec_perm): Adjust.
	* tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
	* tree-vect-slp.c (vect_get_constant_vectors,
	vect_transform_slp_perm_load): Adjust.
	* tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
	* expmed.c (make_tree): Adjust.
	* config/i386/i386.c (ix86_expand_builtin): Adjust.
	* config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
	and implementation.
	(sparc_fold_builtin): Adjust.

2012-03-16  Tristan Gingold  <gingold@adacore.com>

	* config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
	* config/vms/vms-stdint.h: New file.

2012-03-16  Tristan Gingold  <gingold@adacore.com>

	* config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
	(ia64-hp-*vms*): Replaced by ...
	(*-*-*vms*): ... This new entry.

2012-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/52568
	* config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
	(ix86_expand_vec_perm_const_1): Use it.

	PR target/52568
	* config/i386/sse.md (UNSPEC_VPERMDF): Remove.
	(avx2_permv4df): Remove.
	(avx2_permv4di): Macroize into...
	(avx2_perm<mode>): ... this using VI8F_256 iterator.
	(avx2_permv4di_1): Macroize into...
	(avx2_perm<mode>_1): ... this using VI8F_256 iterator.

2012-03-15  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* combine.c (apply_distributive_law): Do not distribute SUBREG.

2012-03-15  Ira Rosen  <irar@il.ibm.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* tree-vect-patterns.c (widened_name_p): Rename to ...
	(type_conversion_p): ... this.  Add new argument to determine
	if it's a promotion or demotion operation.  Check for
	CONVERT_EXPR_CODE_P instead of NOP_EXPR.
	(vect_recog_dot_prod_pattern): Call type_conversion_p instead
	widened_name_p.
	(vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
	vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
	Likewise.
	(vect_recog_mixed_size_cond_pattern): Likewise and allow
	non-constant then and else clauses.

2012-03-15  Ira Rosen  <irar@il.ibm.com>
	    Ulrich Weigand  <ulrich.weigand@linaro.org>

	* tree-vectorizer.h (vect_pattern_recog): Add new argument.
	* tree-vect-loop.c (vect_analyze_loop_2): Update call to
	vect_pattern_recog.
	* tree-vect-patterns.c (widened_name_p): Pass basic block
	info to vect_is_simple_use.
	(vect_recog_dot_prod_pattern): Fail for basic blocks.
	(vect_recog_widen_sum_pattern): Likewise.
	(vect_handle_widen_op_by_const): Support basic blocks.
	(vect_operation_fits_smaller_type,
	vect_recog_over_widening_pattern): Likewise.
	(vect_recog_vector_vector_shift_pattern): Support basic blocks.
	Update call to vect_is_simple_use.
	(vect_recog_mixed_size_cond_pattern): Support basic blocks.
	Add printing.
	(check_bool_pattern): Add an argument, update call to
	vect_is_simple_use and the recursive calls.
	(vect_recog_bool_pattern): Update relevant function calls.
	Add printing.
	(vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
	(vect_pattern_recog_1): Check for reduction only in loops.
	(vect_pattern_recog): Add new argument.  Support basic blocks.
	* tree-vect-stmts.c (vectorizable_conversion): Pass basic block
	info to vect_is_simple_use_1.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
	(vect_slp_analyze_bb_1): Call vect_pattern_recog.

2012-03-15  Jakub Jelinek  <jakub@redhat.com>
	    Andrew Pinski  <apinski@cavium.com>

	PR middle-end/52592
	* builtins.c (expand_builtin_int_roundingfn_2): If expanding
	BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
	calls instead of __builtin_ir{int,ound}*.

2012-03-15  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
	documentation.

2012-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	* config.gcc (target_type_format_char): New. Document it. Set it for
	arm*-*-* .
	* configure.ac (gnu_unique_option): Use target_type_format_char
	in test.  Comment rationale.
	* configure: Regenerate .

2012-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52267
	* tree-vrp.c (masked_increment): New function.
	(register_edge_assert_for_2): Derive ASSERT_EXPRs
	from (X & CST1) cmp CST2 tests.

2012-03-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52580
	* tree-data-ref.c (subscript_dependence_tester_1): Check
	all dimensions for non-conflicting access functions.

2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/44783
	* doc/invoke.texi [C++ Language Options]: Document
	-ftemplate-backtrace-limit.

2012-03-15  Tristan Gingold  <gingold@adacore.com>

	* c-parser.c (c_parser_parameter_declaration): Handle #pragma
	before a parameter.

2012-03-15  Tristan Gingold  <gingold@adacore.com>

	* dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
	use DW_OP_call_frame_cfa.

2012-03-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/50797
	* config/i386/i386-opts.h (pmode): New.
	* config/i386/i386.c (ix86_option_override_internal): Properly
	check and set ix86_pmode.
	* config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
	* config/i386/i386.opt (maddress-mode=): New.
	* doc/invoke.texi: Document -maddress-mode=short|long for x86.

2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
	(dwarf2out_do_cfi_asm): Likewise.
	* dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
	handling.
	(add_data_member_location_attribute): Likewise.
	(gen_array_type_die): Likewise.
	(gen_subprogram_die): Likewise.
	(gen_producer_string): Likewise.
	* sdbout.c (sdbout_begin_prologue): Declare unconditionally.
	Remove MIPS_DEBUGGING_INFO handling.
	(sdb_debug_hooks): Likewise.
	(sdbout_begin_block): Likewise.
	(sdbout_end_block): Likewise.
	(sdbout_begin_prologue): Likewise.
	(sdbout_start_source_file): Likewise.
	(sdbout_end_source_file): Likewise.
	(sdbout_init): Likewise.
	* system.h (MIPS_DEBUGGING_INFO): Poison.

2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
	(alpha_file_start) [MS_STAMP]: Remove.

	* config/alpha/elf.h (TARGET_GAS): Remove.
	* config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
	* config/alpha/linux.h (TARGET_DEFAULT): Remove.
	* config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
	* config/alpha/vms.h (TARGET_DEFAULT): Remove.
	* config.gcc (alpha*-*-linux*): Remove target_cpu_default.
	(alpha*-*-freebsd*): Likewise.
	(alpha*-*-netbsd*): Likewise.
	(alpha*-*-openbsd*): Likewise.
	(alpha*-*-*): Remove target_cpu_default2.
	* config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
	handling.
	* config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
	(TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
	* config/alpha/alpha.c (print_operand): Always assume
	TARGET_AS_SLASH_BEFORE_SUFFIX.
	* config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
	Remove TARGET_AS_CAN_SUBTRACT_LABELS.
	("*builtin_setjmp_receiver_er_1"): Remove.
	* config/alpha/alpha.opt (malpha-as): Remove.
	(mgas): Ignore.
	* doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
	-malpha-as, -mgas.
	Remove DEC Unix reference.

	* config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
	(EXTENDED_COFF): Remove.
	* config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
	(EXTENDED_COFF): Don't undef.
	* config/alpha/alpha.c (alpha_file_start): Always assume
	OBJECT_FORMAT_ELF.
	Don't set targetm.asm_file_start_file_directive.
	[!OBJECT_FORMAT_ELF]: Remove.
	(TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.

	* config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
	(DBX_DEBUGGING_INFO): Remove.
	(MIPS_DEBUGGING_INFO): Remove.
	(PREFERRED_DEBUGGING_TYPE): Remove.
	(DBX_OUTPUT_SOURCE_LINE): Remove.
	(SDB_OUTPUT_SOURCE_LINE): Remove.
	(DBX_CONTIN_LENGTH): Remove.
	(NO_DBX_FUNCTION_END): Remove.
	(ASM_STABS_OP): Remove.
	(ASM_STABN_OP): Remove.
	(ASM_STABD_OP): Remove.
	(SDB_ALLOW_FORWARD_REFERENCES): Remove.
	(SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
	(PUT_SDB_DEF): Remove.
	(PUT_SDB_PLAIN_DEF): Remove.
	(PUT_SDB_TYPE): Remove.
	(sdb_label_count): Remove.
	(PUT_SDB_BLOCK_START): Remove.
	(PUT_SDB_BLOCK_END): Remove.
	(PUT_SDB_FUNCTION_START): Remove.
	(PUT_SDB_FUNCTION_END): Remove.
	(PUT_SDB_EPILOGUE_END): Remove.
	* config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
	(MIPS_DEBUGGING_INFO): Don't undef.
	(DBX_DEBUGGING_INFO): Don't undef.
	* config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
	(MIPS_DEBUGGING_INFO): Don't undef.
	(DBX_DEBUGGING_INFO): Don't undef.
	* config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
	* config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
	handling.
	(alpha_start_function): Likewise.
	(sdb_label_count): Remove.
	(alpha_output_filename): Remove DBX_DEBUG handling.
	(alpha_file_start): Likewise.

2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
	(*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
	(i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
	Solaris 8 support.
	* configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
	(ld_tls_support): Remove Solaris 8 references.
	(lwp_dir, lwp_spec): Remove support for alternate thread library.
	* acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
	* configure: Regenerate.
	* config.in: Regenerate.

	* config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
	* config/i386/sol2.h: Remove Solaris 8 references.

	* doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
	(i?86-*-solaris2.9): ... this.
	Remove Solaris 8 references.
	(Specific, *-*-solaris2*): Document Solaris 8 removal.
	Remove Solaris 8 references.

2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
	(mips-sgi-irix6.5*): Remove.
	* config.host (mips-sgi-irix*): Remove.
	* configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
	(set_have_as_tls): Remove *-*-irix6*.
	(gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
	* configure: Regenerate.

	* config/mips/iris6.h: Remove.
	* config/mips/iris6.opt: Remove.
	* config/mips/t-irix6: Remove.

	* config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
	(TARGET_IRIX6): Remove.
	(TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
	Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
	* config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
	handling.
	(mips_file_start): Likewise.
	* config/mips/mips-protos.h (irix_asm_output_align): Remove.

	* config/mips/driver-native.c [__sgi__]: Remove.
	(host_detect_local_cpu) [__sgi__]: Remove.

	* config/mips/gnu-user.h: Remove iris5.h reference.

	* config/mips/mips-modes.def: Remove IRIX 6 reference.
	* config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
	* config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
	Remove.

	* gcc.c (main): Move asm_debug initialization ...
	(asm_debug): ... here.

	* ginclude/stddef.h (__STDDEF_H__): Don't define.

	* defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
	* system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
	* collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
	(main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
	[LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
	* doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
	Remove.
	* doc/tm.texi: Regenerate.

	* doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
	IRIX 6 reference.
	(MIPS Options, -march): Remove IRIX reference.
	* doc/install.texi (Binaries, SGI IRIX): Remove.
	(Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
	of section.
	* doc/trouble.texi (Interoperation): Remove -lgl_s handling.

2012-03-14  Martin Jambor  <mjambor@suse.cz>

	* expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
	when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
	(expand_expr_real_1): Do not handle misalignment if modifier is
	EXPAND_WRITE.

2012-03-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52584
	* tree-vect-generic.c (type_for_widest_vector_mode): Take
	element type instead of mode, use build_vector_type_for_mode
	instead of the langhook, build a vector of proper signedness.
	(expand_vector_operations_1): Adjust.

2012-03-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52582
	* gimple-fold.c (canonicalize_constructor_val): Make sure we have
	a cgraph node for a FUNCTION_DECL that comes from a constructor.
	(gimple_get_virt_method_for_binfo): Likewise.

2012-03-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52571
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
	flag_section_anchors check ...
	(vect_can_force_dr_alignment_p): ... here.  Do not re-align
	DECL_COMMON variables.

2012-03-14  Richard Guenther  <rguenther@suse.de>

	* tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
	* stor-layout.c (start_bitfield_representative): New function.
	(finish_bitfield_representative): Likewise.
	(finish_bitfield_layout): Likewise.
	(finish_record_layout): Call finish_bitfield_layout.
	* tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
	for QUAL_UNION_TYPE fields.
	* tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
	Stream DECL_BIT_FIELD_REPRESENTATIVE.
	* tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.

	PR middle-end/52080
	PR middle-end/52097
	PR middle-end/48124
	* expr.c (get_bit_range): Unconditionally extract bitrange
	from DECL_BIT_FIELD_REPRESENTATIVE.
	(expand_assignment): Adjust call to get_bit_range.

2012-03-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52578
	* fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
	the outermost conversion is a sign-change only.
	(fold_binary_loc): Disregard widening and sign-changing
	conversions when we determine if two variables are equal
	for reassociation.
	* tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
	(T1)x if the outermost conversion is a sign-change only.

2012-03-14  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2012-03-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (constant_call_address_operand): Declare
	as special predicate.  Update all uses.

2012-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/52577
	* c-parser.c (c_parser_postfix_expression)
	<case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.

	* config/i386/smmintrin.h: Avoid /* within a comment.
	* config/i386/nmmintrin.h: Likewise.

2012-03-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (xbegin): Remove constraint from expander.

2012-03-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (constant_call_address_operand): Declare
	as special predicate.  Update all uses.
	* config/i386/i386.md: Remove mode from constant_call_address_operand
	predicates.
	* config/i386/i386.c (ix86_output_call_insn): Call
	constant_call_address_operand with VOIDmode.

2012-03-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_decompose_address): Handle subregs of
	AND zero extended address correctly.

2012-03-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (tls_symbolic_operand): Declare as
	special predicate.
	(tls_modbase_operand): Ditto.
	* config/i386/i386.md: Remove mode from tls_symbolic_operand and
	tls_modbase_operand predicates.

2012-03-13  Martin Jambor  <mjambor@suse.cz>

	* expr.c (expand_assignment): Handle misaligned scalar writes to
	memory through top-level MEM_REFs by calling store_bit_field.

2012-03-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52134
	* fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
	if Y is a constant multiple of 1 << CST.

2012-03-13  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52488
	* config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
	offset (size) to a value the insns can deal with.
	(expand_epilogue): Ditto.

2012-03-13  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* config/arm/neon.ml (ops): Fixup expected instructions for
	unsigned vector compares.

2012-03-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
	addresses only when %reg is not in word mode.

2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/microblaze/microblaze.md: Fix typo.
	* tree-if-conv.c: Likewise.
	* tree-vect-patterns.c: Likewise.

2012-03-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (extra_passes): Remove.
	* configure.ac (extra_passes): Don't substitute.
	* configure: Regenerate.
	* Makefile.in (EXTRA_PASSES): Remove.
	(GCC_PASSES): Remove $(EXTRA_PASSES).
	(MOSTLYCLEANFILES): Likewise.
	(native): Likewise.
	(install-common): Likewise.

2012-03-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
	* config/i386/i386.c (ix86_decompose_address): Use
	TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
	(legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
	thread pointer to a register.

2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
	on tls_symbolic_operand.
	(tls_global_dynamic_64_<mode>): Likewise.

2012-03-12  Georg-Johann Lay  <avr@gjlay.de>

	PR other/52545
	* output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
	SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.

2012-03-12  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52499
	* config/avr/avr.c (avr_mode_code_base_reg_class): Change return
	type from reg_class_t to enum reg_class.
	* config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.

2012-03-12  Andrew Pinski  <apinski@cavium.com>

	* tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
	(tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
	(value_replacement): Likewise.
	(empty_block_p): Check also if the PHIs for the block are empty.

2012-03-12  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52148
	* config/avr/avr.c (avr_out_movmem): Fix typo in output template
	for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
	r184615 from 2012-02-28.

2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
	(ix86_gen_tls_local_dynamic_base_64): Likewise.
	(ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
	and ix86_gen_tls_local_dynamic_base_64.
	(legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
	ix86_gen_tls_local_dynamic_base_64.
	* config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
	(*tls_global_dynamic_64_<mode>): This.
	(tls_global_dynamic_64): Renamed to ...
	(tls_global_dynamic_64_<mode>): This.
	(*tls_local_dynamic_base_64): Renamed to ...
	(*tls_local_dynamic_base_64_<mode>): This.
	(tls_local_dynamic_base_64): Renamed to ...
	(tls_local_dynamic_base_64_<mode>): This.

2012-03-12  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_option_override_internal): Properly
	set ix86_gen_leave and ix86_gen_monitor.  Check Pmode == DImode,
	instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
	ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
	ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
	* config/i386/sse.md (sse3_monitor64): Renamed to ...
	(sse3_monitor64_<mode>): This.

2012-03-12  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/ia64.c (ia64_function_arg_1): Move code around.
	(ia64_function_arg_advance): Ditto.

2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (mips*-*-openbsd*): Remove.
	* config/mips/openbsd.h: Remove.
	* config/mips/sdb.h: Remove.

	* config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
	* config/mips/mips.c (sdb_label_count): Remove.
	(mips_debugger_offset): Remove #if 0 code.
	(mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
	* config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.

2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
	binutils reference.
	(Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
	Update binutils references.
	(Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
	Update binutils reference.
	Update Sun as/GNU ld caveat.
	Document binutils largefile requirement for LTO plugin.
	Remove reference to alternate libpthread.

2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (alpha*-dec-osf5.1*): Remove.
	* config.host (alpha*-dec-osf*): Remove.
	* configure.ac (*-*-osf*): Remove.
	(alpha*-dec-osf*): Remove.
	* configure: Regenerate.

	* config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
	config/alpha/va_list.h, config/alpha/x-osf: Remove.

	* config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
	* config/alpha/alpha.c (struct machine_function): Update comment.
	(alpha_start_function): Remove Tru64 UNIX as handling for
	max_frame_size.
	* config/alpha/alpha.md ("exception_receiver"): Remove
	TARGET_LD_BUGGY_LDGP.
	("*exception_receiver_2"): Likewise.
	* except.c (finish_eh_generation): Remove Tru64 reference.
	* ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
	* system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
	* target.def (handle_pragma_extern_prefix): Remove.

	* Makefile.in (mips-tfile.o-warn): Remove.
	(ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
	(mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
	* mips-tdump.c, mips-tfile.c: Remove.

	* doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
	extern_prefix.
	* doc/install.texi (Binaries): Remove Tru64 UNIX reference.
	(Specific, alpha*-dec-osf5.1): Note removal.
	* doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
	Remove.
	* doc/tm.texi: Regenerate.
	* doc/trouble.texi (Cross-Compiler Problems): Remove.

2012-03-12  Richard Guenther  <rguenther@suse.de>

	* config/arm/arm.c (neon_dereference_pointer): Do not call
	covert during RTL expansion.

2012-03-12  Tristan Gingold  <gingold@adacore.com>

	* doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
	Options.  Mention -mpointer-size.

2012-03-12  Richard Guenther  <rguenther@suse.de>

	* config/alpha/alpha.c (alpha_gimplify_va_arg): Use
	build_nonstandard_integer_type.

2012-03-12  Richard Guenther  <rguenther@suse.de>

	* tree.c (signed_or_unsigned_type_for): Use
	build_nonstandard_integer_type.
	(signed_type_for): Adjust documentation.
	(unsigned_type_for): Likewise.
	* tree-pretty-print.c (dump_generic_node): Use standard names
	for non-standard integer types if available.

2012-03-12  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms.opt: Add vms-opts.h header.
	(mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
	target mask.
	(-mvms-return-codes): Document.
	(-mpointer-size): New option.
	(vms_pointer_size): Add enumeration.
	* config/vms/vms-opts.h: New file.
	* config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
	__INITIAL_POINTER_SIZE.
	(POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
	(C_COMMON_OVERRIDE_OPTIONS): Define.
	(DWARF2_ADDR_SIZE): Define.
	* config/vms/vms.c (vms_patch_builtins): Adjust condition.
	* config/vms/vms-protos.h (vms_c_common_override_options):
	New prototype.
	* config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
	if -mno-pointer-size.
	(vms_c_common_override_options): New function.
	* config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
	* config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
	(MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
	and flag_vms_pointer_size.
	(MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
	* config.gcc (*-*-*vms*): Define xm_file.
	(alpha*-dec-*vms*): Do not define xm_file.
	(alpha64-dec-*vms*): Remove.
	(ia64-hp-*vms*): Do not define xm_file.  Simplify tm_file
	and tmake_file.

2012-03-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/51721
	* tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
	if (int) unsvar cmp CST.

2012-03-12  Richard Guenther  <rguenther@suse.de>

	* tree-sra.c (create_access_replacement): Only rename the replacement
	if we can rewrite it into SSA form.  Properly mark register typed
	replacements that we cannot rewrite with TREE_ADDRESSABLE.
	* tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
	for aggregate or BLKmode results.

2012-03-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52533
	* tree-vrp.c (register_edge_assert_for_2): Use double_int
	type for mask, only handle shifts by non-zero in-range
	shift count, for LE_EXPR and GT_EXPR if new_val is
	maximum, don't add the assertion.

2012-02-12  Kirill Yukhin  <kirill.yukhin@intel.com>

	* doc/invoke.texi: Document -mrtm option.
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
	(OPTION_MASK_ISA_RTM_UNSET): Ditto.
	(ix86_handle_option): Handle OPT_mrtm.
	* config.gcc (i[34567]86-*-*): Add rtmintrin.h and
	xtestintrin.h.
	(x86_64-*-*): Ditto.
	* i386-builtin-types.def (INT_FTYPE_VOID): New.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__RTM__ if needed.
	(ix86_target_string): Define -mrtm option.
	(PTA_RTM): New.
	(ix86_option_override_internal): Extend "corei7-avx" with RTM option.
	Handle new option.
	(ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
	(ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
	IX86_BUILTIN_XTEST.
	(bdesc_special_args): Ditto.
	(ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
	(ix86_expand_special_args_builtin): Handle new built-in type.
	(ix86_expand_builtin): Handle XABORT instruction.
	* config/i386/i386.h (TARGET_RTM): New.
	* config/i386/i386.md (UNSPECV_XBEGIN): New.
	(UNSPECV_XEND): Ditto.
	(UNSPECV_XABORT): Ditto.
	(UNSPECV_XTEST): Ditto.
	(xbegin): Ditto.
	(xbegin_1): Ditto.
	(xend): Ditto.
	(xabort): Ditto
	(xtest): Ditto.
	(xtest_1): Ditto.
	* config/i386/i386.opt (mrtm): New.
	* config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
	* config/i386/rtmintrin.h: New header.
	* config/i386/xtestintrin.h: Ditto.

2012-03-12  Tristan Gingold  <gingold@adacore.com>

	* ginclude/stddef.h: Adjust previous patch.
	Use __VMS__ instead of VMS.

2012-03-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
	Also convert sequences with CC setting arithmetic instruction.

2012-03-11  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Option Summary): Move -no-integrated-cpp
	from C Language Options to Preprocessor Options.
	(C Dialect Options): Move -no-integrated-cpp documentation
	from here...
	(Preprocessor Options): ...to here.  Rewrite the description
	so it makes more sense, and remove discussion of merging front ends.

2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
	needed for loop.
	(ix86_expand_setmem): Likewise.

2012-03-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
	convert_to_mode.

2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
	ptr_mode == SImode.  Replace DImode with Pmode or ptr_mode.

2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.

2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
	TARGET_64BIT.

2012-03-11  H.J. Lu  <hongjiu.lu@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (call_insn_operand): Allow
	constant_call_address_operand in Pmode only.
	(sibcall_insn_operand): Ditto.
	* config/i386/i386.md (*call): Use W mode iterator instead of P mode.
	(*call_vzeroupper): Ditto.
	(*sibcall): Ditto.
	(*sibcall_vzeroupper): Ditto.
	(*call_value): Ditto.
	(*call_value_vzeroupper): Ditto.
	(*sibcall_value): Ditto.
	(*sibcall_value_vzeroupper): Ditto.
	(*indirect_jump): Ditto.
	(*tablejump_1): Ditto.
	(indirect_jump): Convert memory address to word mode for TARGET_X32.
	(tablejump): Ditto.
	* config/i386/i386.c (ix86_expand_call): Convert indirect operands
	to word mode.

2012-03-11  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md (movnegt): Expand into respective insns immediately.
	Use movrt_negc instead of negc pattern for non-SH2A.
	(*movnegt): Remove.
	(*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.

2012-03-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
	if Pmode != word_mode.
	(legitimize_tls_address): Call gen_tls_initial_exec_x32 if
	Pmode == SImode for TARGET_X32.
	* config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
	(tls_initial_exec_x32): Likewise.

2012-03-10  Chung-Lin Tang  <cltang@codesourcery.com>

	PR rtl-optimization/52528
	* combine.c (can_combine_p): Add setting of subst_low_luid
	before call to expand_field_assignment().

2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
	and related program names.

2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".

2012-03-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52530
	* config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
	(ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
	to set code to 'q'.
	* config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
	(*movdi_internal_rex64): Use %E operand modifier for lea.
	(*movsi_internal): Ditto.
	(*lea_1): Ditto.
	(*lea<mode>_2): Ditto.
	(*lea_{3,4,5,6}_zext): Ditto.
	(*tls_global_dynamic_32_gnu): Ditto.
	(*tls_global_dynamic_64): Ditto.
	(*tls_dynamic_gnu2_lea_32): Ditto.
	(*tls_dynamic_gnu2_lea_64): Ditto.
	(pro_epilogue_adjust_stack_<mode>_add): Ditto.

2012-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
	redefine to be NULL if the current bit-size is different from the
	configured bit-size.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): If the
	cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
	set the default tuning.  Add asserts to make sure the cpu and tune
	indexes are defined.  Fix tests for cpu/tune index to use >= 0 to
	test whether the index is set, instead of > 0.
	(rs6000_file_start): Do not reset the default cpu if the current
	bit-size is different from the configured bit-size.

2012-03-09  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms-crtlmap.map: Add comments.
	Add entries needed to build Ada RTS.

2012-03-09  Tristan Gingold  <gingold@adacore.com>

	* ginclude/stddef.h: Do not define __size_t on VMS.

2012-03-09  Tristan Gingold  <gingold@adacore.com>

	* c-tree.h (c_default_pointer_mode): New variable.
	* c-decl.c (c_default_pointer_mode): New variable.
	(c_build_pointer_type): New function.
	(grokdeclarator): Call c_build_pointer_type instead
	of build_pointer_type.

	* config/vms/vms-c.c: Include c-tree.h
	(saved_pointer_mode): New variable.
	(handle_pragma_pointer_size): New function.
	(vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
	(vms_c_register_pragma): Register __pointer_size and
	__required_pointer_size pragmas.

2012-03-09  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms-c.c (vms_construct_include_filename): New function.
	(vms_c_register_includes): Reference it.

2012-03-09  Andrew Pinski  <apinski@cavium.com>

	PR middle-end/51988
	* tree-ssa-phiopt.c: Include tree-pretty-print.h for
	print_generic_expr.
	(tree_ssa_phiopt_worker): Go through all the PHIs for
	value_replacement instead of just the singleton one.
	(value_replacement): Change return type to int.  Return 0 instead of
	false.
	Allow the middle basic block to contain more than just the defining
	statement.
	Handle non empty middle basic blocks.
	* Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.

2012-03-09  Jiangning Liu  <jiangning.liu@arm.com>

	* tree-scalar-evolution (interpret_rhs_expr): generate chrec for
	array reference and component reference.
	(analyze_scalar_evolution_for_address_of): New.

2012-03-08  Jie Zhang  <jzhang918@gmail.com>

	PR target/49862
	* config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
	(hwloop_pattern_reg): Fix set but not used warning.
	(bfin_reorg_loops): Remove unused parameter.
	(bfin_reorg): Update use of bfin_reorg_loops.

2012-03-08  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
	with integer parameters in registers.
	(gen_push): Push register in word_mode instead of Pmode.
	(ix86_emit_save_regs): Likewise.
	(ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
	(gen_pop): Pop register in word_mode instead of Pmode.
	(ix86_emit_restore_regs_using_pop): Likewise.
	(ix86_expand_prologue): Replace Pmode with word_mode for push
	immediate.  Use ix86_gen_pro_epilogue_adjust_stack.  Save and
	restore RAX and R10 in word_mode.
	(ix86_emit_restore_regs_using_mov): Restore integer registers
	in word_mode.
	(ix86_expand_split_stack_prologue): Save R10_REG and restore in
	word_mode.
	(ix86_split_to_parts): Use word_mode with PUT_MODE for push.
	(ix86_split_long_move): Likewise.
	* config/i386/i386.md (W): New.
	(*push<mode>2_prologue): Replace :P with :W.
	(*pop<mode>1): Likewise.
	(*pop<mode>1_epilogue): Likewise.
	(push/pop peephole2): Use word_mode scratch registers.

2012-03-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (indirect_branch_operand): Simplify.

2012-03-08  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
	for constants in [-63,63].

2012-03-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52530
	Revert:
	2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_print_operand_address): Only handle
	zero-extended DImode addresses.

2012-03-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
	* configure: Regenerate.

2012-03-08  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52496
	* config/avr/avr.c (avr_mem_clobber): New static function.
	(avr_expand_delay_cycles): Add memory clobber operand to
	delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
	* config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
	(enable_interrupt, disable_interrupt): New expander.
	(nopv, sleep, wdr): New expanders.
	(delay_cycles_1): Add memory clobber.
	(delay_cycles_2): Add memory clobber.
	(delay_cycles_3): Add memory clobber.
	(delay_cycles_4): Add memory clobber.
	(cli_sei): New insn from former "enable_interrupt",
	"disable_interrupt" with memory clobber.
	(*wdt): New insn from former "wdt" with memory clobber.
	(*nopv): Similar, but for "nopv".
	(*sleep): Similar, but for "sleep".

2012-03-07  Oleg Endo  <olegendo@gcc.gnu.org>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/52503
	* config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
	* config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
	(SUBTARGET_OVERRIDE_OPTIONS): Define.

2012-03-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (x86_64_zext_general_operand): New.
	* config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
	predicate to x86_64_zext_general_operand.  Accept "Z" constraint.

2012-03-07  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
	REG_CFA_* notes for the stack pointer.
	(tilegx_expand_epilogue): Restore stack pointer by adjusting it by
	EH_RETURN_STACKADJ_RTX.
	* config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
	generate REG_CFA_* notes for the stack pointer.
	(tilepro_expand_epilogue): Restore stack pointer by adjusting it
	by EH_RETURN_STACKADJ_RTX.

2012-03-07  Georg-Johann Lay  <avr@gjlay.de>

	* doc/invoke.texi (AVR Built-in Macros): Correct condition for
	when __AVR_3_BYTE_PC__ is defined.

2012-03-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
	(ix86_print_operand): Handle '^'.
	* config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
	using P mode iterator.  Add %^ to asm template to conditionally emit
	addr32 prefix.
	(*rep_movdi_rex64): Ditto.
	(*strsetdi_rex_1): Ditto.
	(*rep_stosdi_rex64): Ditto.
	(*strmov{si,hi,qi}_1): Add %^ to asm template to
	conditionally emit addr32 prefix.
	(*rep_mov{si,qi}): Ditto.
	(*strset{si,hi,qi}): Ditto.
	(*rep_stos{si,qi}): Ditto.
	(*cmpstrnqi_nz_1): Ditto.
	(*cmpstrnqi_1): Ditto.
	(*strlenqi_1): Ditto.

2012-03-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (function_value_64): Return pointers in
	word_mode instead of Pmode.
	(ix86_promote_function_mode): Likewise.

2012-03-07  Richard Guenther  <rguenther@suse.de>

	* coverage.c (get_gcov_type): Use type_for_mode.
	(get_gcov_unsigned_t): Likewise.
	* expr.c (store_constructor): Use type_for_mode.
	(try_casesi): Likewise.
	* tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
	(add_standard_iv_candidates): Use standard type trees.
	* dojump.c (do_jump): Remove dead code.

2012-03-07  Richard Guenther  <rguenther@suse.de>

	* c-typeck.c (pointer_diff): Use c_common_type_for_size.

2012-03-07  Richard Guenther  <rguenther@suse.de>

	* convert.c (strip_float_extensions): Move ...
	* tree.c (strip_float_extensions): ... here.

2012-03-07  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52484
	* config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.

2012-03-07  Richard Guenther  <rguenther@suse.de>

	* omp-low.c (extract_omp_for_data): Use signed_type_for.
	(expand_omp_for_generic): Likewise.
	(expand_omp_for_static_nochunk): Likewise.
	(expand_omp_for_static_chunk): Likewise.
	* tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
	* tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
	* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
	Use unsigned_type_for.
	(vect_create_cond_for_align_checks): Use signed_type_for.

2012-03-07  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/52203
	* sel-sched.c (estimate_insn_cost): New parameter pempty.  Adjust
	all callers to pass NULL except ...
	(reset_sched_cycles_in_current_ebb): ... here, save the value
	in new variable 'empty'.  Increase issue_rate only for
	non-empty insns.

2012-03-07  Ralf Corsépius  <ralf.corsepius@rtems.org>

	PR target/51417
	* Makefile.in: Let install-gcc-ar depend on installdirs,
	gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
	Don't double canonicalize if cross-compiling.

2012-03-07  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52506
	* config/avr/avr.c (expand_epilogue): Fix order of restoration
	to: RAMPZ, RAMPY, RAMPX, RAMPD.
	(expand_prologue): Only clear RAMPZ if it has effect on RAM-read.

2012-03-07  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52505
	* config/avr/avr.c (avr_out_xload): Don't read unintentionally
	from RAM.
	* config/avr/avr.md (xload_8): Adjust insn length.

2012-03-07  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52461
	* config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
	if RAMPZ affects reading from RAM.

2012-03-07  Richard Guenther  <rguenther@suse.de>

	PR pch/52518
	PR pch/38987
	* doc/invoke.texi (Precompiled Headers): Remove sentence that
	suggests you can include PCHs from inside another header.

2012-03-07  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/52515
	* rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.

2012-03-07  Kai Tietz  <ktietz@redhat.com>

	* doc/invoke.texi (fwritable-relocated-rdata): Document
	new Cygwin/MinGW target option.
	* config/i386/winnt.c (i386_pe_unique_section): Ignore
	reloc if flag -fwritable-relocated-rdata is not set.
	(i386_pe_section_type_flags): Likewise.
	* config/i386/cygming.opt (fwritable-relocated-rdata):
	Add new flag variable flag_writable_rel_rdata.

2012-03-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
	precision against gimple constraints.

2012-03-06  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/52372
	* rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
	variables.
	(GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
	* emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
	variables.
	(init_emit_regs): Move associated initialization to...
	(init_emit_once): ...here.

2012-03-06  Richard Henderson  <rth@redhat.com>

	* config/m68k/m68k.h (ISA_HAS_TAS): New.
	* config/m68k/sync.md (atomic_test_and_set): Use it.
	(atomic_test_and_set_1): Likewise.

2012-03-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/50310
	* config/rs6000/vector.md (vector_uneq<mode>): Add support for
	UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
	(vector_ltgt<mode>): Likewise.
	(vector_ordered<mode>): Likewise.
	(vector_unordered<mode>): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.

2012-03-06  Aldy Hernandez  <aldyh@redhat.com>

	* trans-mem.c: New typedef for tm_region_p.
	Define vector types for tm_region_p.
	(tm_region_init): Replace region_worklist to a vector called
	bb_regions.

2012-03-06  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (build_fold_addr_expr_with_type_loc): Fold
	MEM_REF with constant pointer operand.

2012-03-06  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52493
	* tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.

2012-03-06  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
	(external_model_kind): Improve documentation.
	(vms_pragma_extern_model): Handle relaxed_redef.
	(vms_c_register_pragma): Allow expansion for nomember_alignment.

2012-03-06  Georg-Johann Lay  <avr@gjlay.de>

	* doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
	Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
	Some more notes on EIND usage and reorder EIND subsection.

2012-03-06  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
	* config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.

2012-03-06  Tristan Gingold  <gingold@adacore.com>

	* config/vms/t-vmsnative (version): Define.
	* config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.

2012-03-06  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/52250
	* sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
	to put note list into.  Unconditionally call move_bb_info.
	(move_bb_info): Do not assert the blocks being in the same region,
	just drop the note list if they are not.

2012-03-06  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
	and use unified expansion logic.
	* config/sh/sh.md (xorsi3_movrt): Rename to movrt.  Move
	closer to the existing movt insn.
	(negc): Rename insn to *negc.  Add new expander.
	(movnegt): Use xor pattern for T bit negation.  Reserve helper
	constant for negc pattern.
	(*movnegt): New insn and splitter.

2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>

	* c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
	PLUS_EXPR.

2012-03-05  Richard Henderson  <rth@redhat.com>

	* genemit.c (main): Include "target.h" in insn-emit.c.
	* Makefile.in (insn-emit.o): Depend on TARGET_H.
	* config/sh/sync.md (atomic_test_and_set): Reference
	targetm.atomic_test_and_set_trueval instead of
	TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.

2012-03-05  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.c (epiphany_function_value_regno_p):
	Make static.

2012-03-05  Steven Bosscher  <steven@gcc.gnu.org>

	* langhooks.c (add_builtin_type): New function.
	* langhooks.h (add_builtin_type): Export it.
	* config/mep/mep.c (mep_init_builtins): Use it.
	* config/rs6000/rs6000.c (rs6000_init_builtins): Use it.

2012-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR debug/51902
	* tree.h (BLOCK_SAME_RANGE): Define.
	* function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
	if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
	Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
	isn't equal to supercontext fragment's fragment chain.
	Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
	fragment origin.
	(blocks_nreverse_all): Likewise.
	(reorder_blocks_1): Compute BLOCK_SAME_RANGE bits.  Set
	BLOCK_SUPERCONTEXT to supercontext fragment instead of
	supercontext fragment's fragment origin.
	* dwarf2out.c (add_high_low_attributes): If stmt has the same
	range as its parent (or parents thereof etc.), use the parent's
	DW_AT_ranges value instead of creating a new .debug_ranges range.

2012-03-05  Richard Henderson  <rth@redhat.com>

	PR tree-opt/52242
	Revert: 2011-11-26  Richard Henderson  <rth@redhat.com>
	* omp-low.c (expand_omp_atomic): Assume anything aligned to
	BIGGEST_ALIGNMENT is aligned.

2012-03-05  Richard Henderson  <rth@redhat.com>

	* config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
	* config/sh/sh.c: ... here.

2012-03-05  Richard Henderson  <rth@redhat.com>

	PR target/52481
	* config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
	instead of calling negqi2 directly.

2012-03-05  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/52463
	* trans-mem.c (tm_region_init): Use last_basic_block.

2012-03-05  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
	* config/sh/sync.md (atomic_test_and_set): New expander.
	(tasb, atomic_test_and_set_soft): New insns.
	* config/sh/sh.opt (menable-tas): New option.
	* doc/invoke.texi (SH Options): Document it.

2012-03-05  Richard Guenther  <rguenther@suse.de>

	* cfgloop.c (verify_loop_structure): Verify dominators before
	using them.
	* graphite-clast-to-gimple.c (graphite_verify): Do not verify
	dominators from here.
	* graphite-scop-detection.c (create_sese_edges): Likewise.
	* loop-doloop.c (doloop_optimize_loops): Likewise.
	* loop-init.c (loop_optimizer_init): Likewise.
	* loop-unroll.c (unroll_and_peel_loops): Likewise.
	* loop-unswitch.c (unswitch_loops): Likewise.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
	* tree-parloops.c (parallelize_loops): Likewise.  Verify
	only when checking is enabled.
	* tree-loop-distribution.c (tree_loop_distribution): Likewise.

2012-03-05  Bernd Schmidt  <bernds@codesourcery.com>

	* genautomata.c (parse_automata_opt): New static function.
	(initiate_automaton_gen): Remove all option handling code.  Remove
	argc argument.  All callers changed.
	(main): Call init_rtx_reader_args_cb with the new function as argument.

2012-03-05  Richard Guenther  <rguenther@suse.de>

	* cfgexpand.c (gimple_expand_cfg): Free dominator info.
	* tree-if-conv.c (combine_blocks): Free post-dominator info
	after breaking it.
	* tree-parloops.c (create_parallel_loop): Free and re-compute
	dominator info after breaking it.

2012-03-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52353
	* optabs.h (trapv_unoptab_p): New function.
	(trapv_binoptab_p): Likewise.
	* optabs.c (expand_binop): Use emit_libcall_block_1 with
	a proper equiv_may_trap argument.
	(expand_unop): Likewise.
	(emit_libcall_block_1): Take extra argument whether the
	instruction may trap.  Renamed from ...
	(emit_libcall_block): ... this.  New wrapper.

2012-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/51721
	* tree-vrp.c (register_edge_assert_for_2): If comparing
	lhs of right shift by constant with an integer constant,
	add ASSERT_EXPRs for the rhs1 of the right shift.

	* cfgrtl.c (cfg_layout_merge_blocks): Cleanup.

2012-03-05  Richard Guenther  <rguenther@suse.de>

	* tree.c (integer_zerop): Handle VECTOR_CSTs.
	(integer_onep): Likewise.
	(integer_all_onesp): Likewise.

2012-03-05  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (*umaddqihi4.2): New insn-and-split.

2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
	instead of TARGET_64BIT.

2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
	adjust_stack_insn.

2012-03-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_print_operand_address): Only handle
	zero-extended DImode addresses.

2012-03-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
	taken and cputaken as bool.

2012-03-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/constraints.md (Ya): New internal constraint.
	* config/i386/i386.md (zero_extendsidi2): Remove expansion.
	(*zero_extendsidi2_rex64): Add x,x alternative.
	(*zero_extendsidi2): Ditto.  Add o,0 alternative.
	Remove flags reg clobber.  Adjust corresponding splits.
	(zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
	zero_extendqisi2 expanders using SWI12 mode iterator.
	(zero_extend<mode>si2_and): Macroize insn from
	zero_extendhisi2_and and zero_extendqisi2_and.  Merge corresponding
	splitters.
	(*zero_extend<mode>si2):  Macroize insn from
	*zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
	(*zero_extend*2_movzbl_and): Remove insn patterns.
	(zero_extendqihi2_and): Merge corresponding splitter.
	(*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
	(*zero_extend*2_movzbl_and): Remove insn patterns.
	(*anddi_1): Split TYPE_IMOVX instructions.
	(*andsi_1): Use Ya for alternative 2.  Split TYPE_IMOVX instructions.
	(*andhi_1): Ditto.
	(and->zext splitter): Add splitter pattern.
	(zero extend with andsi3 splitter): Adjust zero_extend pattern.

2012-03-04  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
	x86-specific text.
	(Debugging Options): Likewise.
	(Optimize Options): Likewise.
	(i386 and x86-64 Options): Discuss -march before -mtune, consistently
	with other architectures.  Use official processor names with correct
	spelling/capitalization.  Fix formatting and grammar issues.
	(i386 and x86-64 Windows Options): Similar cleanup here.

2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (abssi2): Add TARGET_SH1 condition.

2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_dwarf_register_span): Don't apply
	DBX_REGISTER_NUMBER.

2012-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (shiftcosts): Return MAX_COST when the first
	operand is CONST_INT.  Take COSTS_N_INSNS into account.
	(sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
	of shiftcosts.

2012-03-02  Richard Henderson  <rth@redhat.com>

	* optabs.c (expand_atomic_test_and_set): Honor
	atomic_test_and_set_trueval even when atomic_test_and_set
	optab is not in use.

2012-03-02  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/48596
	PR target/48806
	* config/sh/sh.c (sh_register_move_cost): Increase cost between
	GENERAL_REGS and FP_REGS for SImode.

2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/49486
	* config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
	(absdi2): New expander.
	(*absdi2, *negabsdi2, negdi_cond): New insns and splits.

2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sync.md (atomic_exchange<mode>): New expander.
	(atomic_exchange<mode>_soft): New insn.

2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sync.md: Update copyright notice dates.
	(atomic_compare_and_swap<mode>): Use SImode for return value instead
	of QImode.
	(atomic_compare_and_swap<mode>_soft): Likewise.

2012-03-02  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/31640
	* config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
	* config/sh/sh.c: Update copyright notice dates.
	(sh_loop_align): Add logic from LOOP_ALIGN.  Don't disable loop
	alignment for TARGET_HARD_SH4.
	(sh_option_override): Reduce default function alignment.  Set
	loop alignment to 4 bytes when not optimizing for size.

2012-03-02  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR middle-end/50335
	* doc/invoke.texi (floop-flatten): Remove.
	* toplev.c (process_options): Remove references to flag_loop_flatten.
	* tree-ssa-loop.c (gate_graphite_transform): Same.
	* common.opt (floop-flatten): Obsolete.
	* graphite-poly.c (apply_poly_transforms): Remove reference to
	flag_loop_flatten.
	* Makefile.in (graphite-flattening.o): Remove.
	* graphite-flattening.c: Remove.

2012-03-02  Uros Bizjak  <ubizjak@gmail.com>

	* compare-elim.c (find_comparisons_in_bb): Eliminate only compares
	having mode compatible with the mode of previous compare.  Substitute
	compare mode of previous compare with the mode, compatible
	with eliminated and previous compare.

2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/dfp.md (floatdidd2): New define_insn.

2012-03-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
	compatible with CCGOCmode and CCGCmode.

2012-03-02  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.

2012-03-02  Ulrich Weigand  <ulrich.weigand@linaro.org>

	* config/arm/arm.c (arm_sat_operator_match): New function.
	* config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
	* config/arm/arm.md ("insn" attribute): Add "sat" value.
	("SAT", "SATrev"): New code iterators.
	("SATlo", "SAThi"): New code iterator attributes.
	("*satsi_<SAT:code>"): New pattern.
	("*satsi_<SAT:code>_shift"): Likewise.
	* config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
	and "shift" attributes.
	("arm_usatsihi"): Add "insn" attribute.
	* config/arm/predicates.md (sat_shift_operator): Allow multiplication
	by powers of two.  Do not allow shift by 32.

2012-03-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46716
	* config/i386/i386.c (construct_container): Use gen_reg_or_parallel
	to pass the argument in the register of "natural" mode.

2012-03-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52406
	* tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
	(struct indices): Add unconstrained_base member.
	(struct dr_alias): Remove unused vops member.
	(DR_UNCONSTRAINED_BASE): New define.
	* tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
	add indices to allow their disambiguation.  Make DR_BASE_OBJECT
	be an artificial access that covers the whole indexed object,
	or mark it with DR_UNCONSTRAINED_BASE if we cannot do so.  Canonicalize
	plain decl base-objects to their MEM_REF variant.
	(dr_may_alias_p): When the base-object of either data reference
	has unknown size use only points-to information.
	(compute_affine_dependence): Make dumps easier to read and
	more verbose.
	* tree-vect-data-ref.c (vector_alignment_reachable_p): Use
	DR_REF when looking for packed references.
	(vect_supportable_dr_alignment): Likewise.

2012-03-02  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
	Improve conditions for peepholes of loads followed by commutative
	operators.
	* config/arm/ldmstm.md: Regenerated.

2012-03-02  Richard Guenther  <rguenther@suse.de>

	* BASE-VER: Set to 4.8.0.

2012-03-01  Richard Earnshaw  <rearnsha@arm.com>

	* config.gcc (obsolete): Add all ARM targets using the FPA.
	(with_fpu): Obsolete selection of the FPA or Maverick on ARM.
	* doc/install.texi: Avoid references to obsolete ARM ports.

2012-03-01  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.md (movmisalign<mode>): New patterns.

2012-03-01  Jeremy Bennett  <jeremy.bennett@embecosm.com>
	    Joern Rennecke  <joern.rennecke@embecosm.com>

	* doc/extend.texi: Expand and update information on interrupt
	attribute for Epiphany.

2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-protos.h: Update copyright notice dates.
	* config/sh/sh.h: Likewise.
	* config/sh/sh.md: Likewise.
	* config/sh/constraints.md: Likewise.
	* config/sh/predicates.md: Likewise.

2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
	* config/sh/sh.c (tertiary_reload_operand): Likewise.

2012-03-01  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/constraints.md: Fix comment typo.

2012-03-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/52408
	* config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
	unsigned HOST_WIDE_INT.
	(zvdep_imm64): Likewise.
	(vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
	(vdepi_and): Likewise.
	Likewise for unamed 64-bit patterns.
	* config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.

2012-03-01  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/52001
	PR rtl-optimization/52417
	* cselib.c (cselib_any_perm_equivs): New variable.
	(cselib_reset_table): Check that it's not set when not
	preserving constants.
	(cselib_add_permanent_equiv): Set it.
	(cselib_have_permanent_equivalences): New.
	(cselib_init, cselib_finish): Reset it.
	* cselib.h (cselib_have_permanent_equivalences): Declare.
	* alias.c (get_addr): Restore earlier behavior when there
	aren't permanent equivalences.

2012-03-01  Steven Bosscher  <steven@gcc.gnu.org>

	* config/mn10300/mn10300-modes.def: Fix copyright notice.
	* config/v850/v850-modes.def: Fix copyright notice.

2012-03-01  Georg-Johann Lay  <avr@gjlay.de>

	* doc/extend.texi (AVR Built-in Functions): Document
	__builtin_avr_flash_segment.

	* config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
	* config/avr/avr.md (flash_segment, flash_segment1): New expanders.
	(*split.flash_segment): New insn-and-split.
	* config/avr/avr.c (avr_init_builtins): Add local variables:
	const_memx_void_node, const_memx_ptr_type_node,
	char_ftype_const_memx_ptr.

2012-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52445
	* tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
	add ssa_name_ver, offset and size fields and change store field
	to bool.
	(name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
	(add_or_mark_expr): Likewise.  Only consider previous stores
	with the same size and offset.
	(nt_init_block): Only look at gimple_assign_single_p stmts,
	doesn't look at rhs2.

2012-03-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52443
	* tree-cfg.c (verify_gimple_assign_unary): Allow any
	conversions from integral types to pointer types.

2012-03-01  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
	defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
	unintentionally removed in r184616.

2012-03-01  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

	* doc/invoke.texi: Document AMD bdver2 and remove mentioning
	3DNow from bdver1.

2012-02-29  Jakub Jelinek  <jakub@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/52437
	* config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
	alternatives, add "e" constraint to the new last alternative
	and ! to last 3 alternatives.

2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
	DW_AT_artificial attributes at the end of the processing.
	(gen_array_type_die): Likewise.
	(gen_enumeration_type_die): Likewise.
	(gen_struct_or_union_type_die): Likewise.
	(add_gnat_descriptive_type_attribute): Do not suppress debug info for
	the parent type.

2012-02-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/52419
	* expr.c (expand_assignment): If doing misaligned store that doesn't
	cover all mode bits, perform a RMW cycle.

	PR tree-optimization/52429
	* tree-parloops.c (separate_decls_in_region_debug): Return early
	if var is LABEL_DECL.

2012-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/52424
	* tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
	calling dom_thread_across_edge.

2012-02-29  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c: Move definition of TARGET macros to end of file.

2012-02-29  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
	* config/avr/avr.c (avr_output_bld): Remove unused function.
	(avr_out_sbxx_branch): Use "%T" to print bit position.

2012-02-29  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md: Untabify.

2012-02-29  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (eqne): New code iterator.
	(*dec-and-branchsi): Use it in text peephole's condition.
	(*dec-and-branchhi): Ditto.
	(*dec-and-branchqi): Ditto.

2012-02-29  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49939
	* config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
	the device does not have the skip-bug.

2012-02-29  Oleg Endo  <olegendo@gcc.gnu.org>

	* doc/invoke.texi (-msoft-atomic): Add more detailed description.
	(-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
	-mpretend-cmove): New.

2012-02-29  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/52397
	* df.h (struct df_d): Adjust comment that hard_regs_live_count
	doesn't count DEBUG_INSN refs.
	* df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
	for DEBUG_INSN refs.

2012-02-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	Partially revert:

	2012-02-20  Richard Guenther  <rguenther@suse.de>
	PR tree-optimization/52298
	* tree-vect-stmts.c (vectorizable_load): Properly use
	STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.

2012-02-28  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/51752
	* gimple.h (gimple_in_transaction): New.
	(gimple_set_in_transaction): New.
	(struct gimple_statement_base): Add in_transaction field.
	* tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
	transaction loads.
	(tree_ssa_lim_initialize): Compute transaction bits.
	* tree.h (compute_transaction_bits): Protoize.
	* trans-mem.c (tm_region_init): Use the heap to store BB
	auxilliary data.
	(compute_transaction_bits): New.

2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* gcc.c (display_help): Document --help=common and sort entries
	alphabetically.

2012-02-28  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* doc/install.texi: Document check-$LANG specific shortcuts

2012-02-28  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	PR target/51534
	* config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
	and vcgtu.
	* config/arm/arm_neon.h: Regenerate.
	* config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
	(neon_vcgeu): New insn.
	(neon_vcgtu): Likewise.
	* config/arm/neon.ml (s_8_32, u_8_32): New lists.
	(ops): Unsigned comparison intrinsics call a different builtin.

2012-02-28  Richard Guenther  <rguenther@suse.de>

	PR target/52407
	* config/i386/i386.c (ix86_expand_vector_set): Fix element
	ordering for the VEC_CONCAT for two element vectors for
	V2SFmode, V2SImode and V2DImode.

2012-02-28  Richard Earnshaw  <rearnsha@arm.com>

	PR target/49448
	* config.gcc (arm*-*-linux*): Use an unambiguous pattern for
	detecting big-endian triplets.

2012-02-28  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
	mode if there is no type information available.

2012-02-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR tree-optimization/53207
	* doc/invoke.texi: Document as experimental and relying on graphite.

2012-02-28  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
	of initializer to changes from r184614.

2012-02-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52395
	* tree-sra.c (build_ref_for_offset): Also look at the base
	TYPE_ALIGN when figuring out the alignment of the replacement.

2012-02-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52402
	* ipa-prop.c (ipa_modify_call_arguments): Properly use
	mis-aligned types when creating the accesses at the call site.

2012-02-28  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/builtins.def: New file.
	* config/avr/t-avr (avr.o, avr-c.o): Depend on it.
	* config/avr/avr.c (enum avr_builtin_id): Use it.
	(avr_init_builtins): Use it. And use avr_bdesc.
	(bdesc_1arg): Remove.
	(bdesc_2arg): Remove.
	(bdesc_3arg): Remove.
	(struct avr_builtin_description): Add field n_args.
	(avr_bdesc): New static variable using builtins.def.
	(avr_expand_builtin): Use it.
	Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
	(avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
	Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.

2012-02-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52148
	* config/avr/avr.md (movmem_<mode>): Replace match_operand that
	match only one single hard register with respective hard reg rtx.
	(movmemx_<mode>): Ditto.
	* config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
	insn anatomy of movmem[x]_<mode>.
	(avr_out_movmem): Same for printing assembler and operand usage.

2012-02-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49868
	PR target/52261
	* doc/extend.texi (AVR Named Address Spaces): No more try to fix
	address spaces located outside of device flash.

	* config/avr/avr.h (base_arch_s): Remove field n_segments.
	(mcu_type_s): Add field n_flash.
	* config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
	Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
	(AVR_MCU): Add N_FLASH argument.
	* config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
	macro __FLASH<n> if that address space makes sense for the device.
	* config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
	outside of target flash.
	(avr_asm_named_section): Ditto.
	(avr_asm_select_section): Ditto.
	(avr_addr_space_convert): Ditto.
	(avr_emit_movmemhi): Ditto.
	(avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
	address space is outside of device flash.
	(avr_insert_attributes): Ditto.
	(avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
	avr_current_arch->n_segments.

2012-02-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/52352
	* config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
	(*movabs<mode>_2): Likewise.

2012-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/52375
	* config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
	s_register_operand in the test instead of REG_P.  Don't call
	gen_reg_rtx if it won't be used.

	PR tree-optimization/52376
	* ipa-split.c (split_function): Ignore CLOBBER stmts.

2012-02-27  Stuart Henderson  <shenders@gcc.gnu.org>

	* ifcvt.c (noce_get_condition): Check condition variable is not
	small_register_classes_for_mode_p before accepting.

2012-02-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.

2012-02-27  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	Revert:
	2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
	* config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
	tuning parameters.
	* config/arm/arm.c (arm_cortex_a15_tune): New static variable.

2012-02-27  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.

2012-02-26  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/predicates.md: Remove blank lines.
	* config/sh/sh.c: Fix typos in comments.
	* config/sh/constraints.md: Likewise.
	* config/sh/sh.md: Remove blank lines.
	Fix typos in comments.  Use ;; as comment characters.

2012-02-26  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
	(replace_mov_pcrel_step2): Ditto.

2012-02-25  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/52001
	* alias.c (refs_newer_value_cb, refs_newer_value_p): New.
	(get_addr): Walk canonical value's locs.  Avoid returning VALUEs
	and locs that reference values newer than the non-canonical value
	at hand.  Return the canonical value as a worst case.
	(memrefs_conflict_p): Walk canonical value's locs.

	PR debug/52001
	* cselib.c (preserve_only_constants): Rename to...
	(preserve_constants_and_equivs): ... this.  Split out...
	(invariant_or_equiv_p): ... this.  Preserve plus expressions
	of other preserved expressions too.
	(cselib_reset_table): Adjust.
	* var-tracking.c (reverse_op): Use canonical value to build
	reverse operation.

2012-02-23  Kai Tietz  <ktietz@redhat.com>

	* config/i386/i386.c (ix86_delegitimize_address): Handle
	UNSPEC_PCREL plus displacement.

2012-02-24  Georg-Johann Lay  <avr@gjlay.de>

	PR target/52261
	* config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
	to test for unusedness in st X addressing.

2012-02-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52361
	* gimple.c (walk_gimple_op): Use predicates with less redundant tests.
	(is_gimple_reg_type): Move inline ...
	* gimple.h (is_gimple_reg_type): ... here.

2012-02-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52361
	* passes.c (execute_function_todo): When verifying SSA form
	verify gimple form first.
	* tree-ssa.c (verify_ssa): Do not verify gimple form here.

2012-02-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52355
	* fold-const.c (fold_addr_of_array_ref_difference): New function.
	(fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.

2012-02-13  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* tree-if-conv (predicate_scalar_phi): Commentary typo fix.

2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* tree-phinodes.c (make_phi_node): Mark static.
	* tree-flow.h (make_phi_node): Remove extern decl.
	* doc/gimple.texi (make_phi_node): Remove documentation.

2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
	* tree-ssa-sccvn.c (print_scc): Ditto.

2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* doc/passes.texi (Full redundancy elimination): Fix typo.

2012-02-23  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.

2012-02-23  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/52287
	* haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.

2012-02-23  Uros Bizjak  <ubizjak@gmail.com>

	PR c/52290
	* c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.

2012-02-23  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (code_stdname): Add ior, xor.
	(xior): New code iterator.
	(*<code_stdname><mode>qi.byte0): Use xior instead of ior.
	(*<code_stdname><mode>qi.byte1-3): Ditto.

2012-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52019
	* ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
	CLOBBER stmts.

2012-02-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
	HAVE_INITFINI_ARRAY to work around namespace pollution in
	certain versions of newlib system headers.
	* config.in: Regenerate.
	* configure: Regenerate.
	* config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
	instead of HAVE_INITFINI_ARRAY.

2012-02-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52330
	* config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
	is not offsettable memory reference.

2012-02-22  Georg-Johann Lay  <avr@gjlay.de>

	PR target/18145
	* config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
	setting avr_need_clear_bss_p for __gnu_lto* symbols.

2012-02-22  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
	* config/avr/avr.c (avr_accumulate_outgoing_args): Return int.

2012-02-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
	library on Solaris 8 even without TLS support.
	* configure: Regenerate.

2012-02-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52329
	* gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
	for GIMPLE_DEBUG stmts.

2012-02-22  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/51782
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
	according to the base object.

2012-02-22  Georg-Johann Lay  <avr@gjlay.de>

	PR rtl-optimization/50063
	* config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
	and 2 (8-bit SP) in operand 2.
	* config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
	setup to use movhi_sp_r instead of vanilla move to write SP.
	Adjust REG_CFA notes to superseed unspec.
	(expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
	of vanilla move.
	As function body might contain CLI or SEI: Use irq_state 0 (IRQ
	known to be off) only with TARGET_NO_INTERRUPTS. Never use
	irq_state 1 (IRQ known to be on) here.

2012-02-21  Bernd Schmidt  <bernds@codesourcery.com>

	* ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
	WORDS_BIG_ENDIAN.
	* ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
	assign_hard_reg): Likewise.

2012-02-21  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".

2012-02-21  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md
	(*dec-and-branchhi!=-1.d.clobber): New text peephole.
	(*dec-and-branchhi!=-1.l.clobber): New text peephole.

2012-02-21  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
	prototype from here to...
	* config/avr/avr.h: ...here.

2012-02-21  Richard Earnshaw  <rearnsha@arm.com>

	PR target/52294
	* thumb2.md (thumb2_shiftsi3_short): Split register and
	immediate shifts.  For register shifts tie operands 0 and 1.
	(peephole2 for above): Check that register-controlled shifts
	have suitably tied operands.

2012-02-21  Quentin Neill  <quentin.neill@amd.com>

	PR target/52137
	* config/i386/bdver1.md (bdver1_call, bdver1_push,
	bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
	bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
	bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
	bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
	bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
	bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
	bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
	bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
	bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
	bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
	bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
	bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
	bdver1_ssevector_avx256_unaligned_load,
	bdver1_ssevector_sse128_unaligned_load,
	bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
	bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
	bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
	bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
	bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
	bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
	bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
	bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
	bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
	bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
	bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
	bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
	bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
	bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
	bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
	bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
	bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
	bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
	bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
	bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
	bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
	bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
	bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
	bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
	bdver1_ssediv_double_load, bdver1_ssediv_double,
	bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
	Add "bdver2" attribute.

2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_option_override): Make -mhard-dfp the
	default if possible and not specified otherwise.

2012-02-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/52314
	* gimplify.c (create_tmp_from_val): Use the main variant type
	for the type of the temporary we create.

2012-02-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52324
	* gimplify.c (gimplify_expr): When re-gimplifying expressions
	do not gimplify a MEM_REF address operand if it is already
	in suitable form.

2012-02-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
	TARGET_HARD_FLOAT with TARGET_HARD_DFP.

2012-02-21  Richard Guenther  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_load): Use pre-computed
	nested_in_vect_loop.

2012-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52318
	* gimple-fold.c (gimplify_and_update_call_from_tree): Add
	vdef also to non-pure/const call stmts in the sequence.

2012-02-21  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.

2012-02-20  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
	don't use the "rd %pc" instruction on v9 for PIC register loads.

2012-02-20  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/52141
	* trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
	in a transaction safe function.

2012-02-20  Kai Tietz  <ktietz@redhat.com>

	PR target/52238
	* stor-layout.c (place_field): Handle desired_align for
	ms-bitfields, too.

2012-02-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52298
	* tree-vect-stmts.c (vectorizable_store): Properly use
	STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
	outer loops.
	(vectorizable_load): Likewise.
	* tree-vect-data-refs.c (vect_analyze_data_ref_access):
	Access DR_STEP after ensuring it is not NULL.

2012-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52286
	* fold-const.c (fold_binary_loc): For (X & C1) | C2
	optimization use double_int_to_tree instead of build_int_cst_wide,
	rewrite to use double_int vars.

2012-02-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/50166
	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
	Define _start.
	Remove -e 0 from $gcc_cv_ld invocation.
	Only use __GLIBC_PREREQ if defined.
	Enable on Solaris since Solaris 8 patch.
	(gcc_SUN_LD_VERSION): New macro.
	* configure.ac (ld_ver) <*-*-solaris2*>: Refer to
	gcc_SUN_LD_VERSION for version number format.
	* configure: Regenerate.
	* varasm.c (get_elf_initfini_array_priority_section): Set
	SECTION_NOTYPE for non-default priority.
	Use get_section instead of get_unnamed_section to emit
	.init_array/.fini_array with default priority.

2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
	(mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
	(mips_start_unique_function, mips_output_mips16_rdhwr)
	(mips_code_end): New functions.
	(TARGET_ASM_CODE_END): Define.

2012-02-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips16_build_call_stub): Add CFI information
	to stubs with non-sibling calls.

2012-02-18  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (-fira-* options): Copy-edit.
	(ira-* parameters): Copy-edit.

2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Minor copy-edits to bring into conformance with
	GCC coding conventions.

2012-02-17  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
	when used as adjectives.

2012-02-16  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Clean up "that"/"which" confusion.

2012-02-17  Steven Bosscher  <steven@gcc.gnu.org>

	* system.h: Poison SMALL_REGISTER_CLASSES
	* config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
	* config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.

2012-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52285
	* tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
	when deciding if a call is a tail call or tail recursion.

2012-02-16  Kai Tietz  <ktietz@redhat.com>

	* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
	interger-constant displacement for UNSPEC_PCREL.

2012-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/52208
	* ira-costs.c (scan_one_insn): Don't decrease mem_cost
	for MEMs with REG_EQUIV, if the MEM isn't general_operand.

	PR tree-optimization/52255
	* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
	loop->header has virtual PHI, but exit_e->dest doesn't, add
	virtual PHI to exit_e->dest and adjust all uses after the loop.

	PR debug/52260
	* dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
	children with clone_tree_hash, not after it.

2012-02-16  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
	extended identifiers.

2012-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/51929
	* cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
	a same_body_alias, also test whether e->callee isn't a former
	or current clone of the decl this is a same body alias of.

	PR translation/52264
	* cgraphunit.c (verify_cgraph_node): Fix a typo.

2012-02-15  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.

2012-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/52199
	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
	force_reg instead of copy_to_reg for better optimization.  Force
	non-register or memory operands into a register.

2012-02-15  Andrew MacLeod  <amacleod@redhat.com>

	* extend.texi: Reserve upper bits of memory model for future use.

2012-01-15  Georg-Johann Lay  <avr@gjlay.de>
	    Anatoly Sokolov <aesok@post.ru>
	    Eric Weddington <eric.weddington@atmel.com>

	PR target/52261
	* config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
	avrxmega4, avrxmega5, avrxmega6, avrxmega7.
	Rewrite initializers for .macro.
	* config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
	avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
	atxmega32d4, atxmega32x1.
	avrxmega4: atxmega64a3, atxmega64d3.
	avrxmega5: atxmega64a1, atxmega64a1u.
	avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
	atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
	avrxmega7: atxmega128a1, atxmega128a1u.
	* config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
	ARCH_AVRXMEGA4,	ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
	(struct base_arch_s): Rename reserved to xmega_p.
	Rename reserved2 to have_rampd.
	(AVR_XMEGA): New define.
	(AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
	(AVR_HAVE_RAMPZ): Change definition to fit xmega.
	* config/avr/predicates.md (io_address_operand): Take into
	account SFR offset.
	(low_io_address_operand): Ditto.
	(high_io_address_operand): Ditto.
	* config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
	(enabled, movhi_sp_r): Use them.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
	cpp_define_formatted to built-in define __AVR_ARCH__.
	(__AVR_XMEGA__): New built-in define.
	(__AVR_HAVE_RAMPD__): New built-in define.
	(__AVR_HAVE_RAMPX__): New built-in define.
	(__AVR_HAVE_RAMPY__): New built-in define.
	(__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.

	* config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
	(avr_option_override): Initialize them.
	(sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
	(avr_init_expanders): Initialize them. No more block several calls.
	(emit_push_sfr): New static function.
	(avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
	Handle AVR_XMEGA.
	(expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
	(avr_print_operand): Print addreeses as symbols for
	RAMPX, RAMPY, RAMPD, CCP.
	(output_movhi): Handle AVR_XMEGA when writing to SP.
	(avr_out_movhi_mr_r_xmega): New static function.
	(out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
	(avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
	__RAMPD__,  __CCP__ as needed.

	* config/avr/multilib.h: Regenerate.
	* config/avr/t-multilib: Regenerate.
	* config/avr/avr-tables.opt: Regenerate.

2012-02-15  Tobias Grosser <grosser@fim.uni-passau.de>

	PR tree-optimization/50561
	* graphite-flattening.c (lst_project_loop): Do not
	remove old scattering dimensions after flattening.
	(lst_do_flatten): Likewise.

2012-02-15  Georg-Johann Lay  <avr@gjlay.de>

	* doc/extend.texi (AVR Built-in Functions): Remove doc for
	__builtin_avr_map8, __builtin_avr_map16.
	Document __builtin_avr_insert_bits.

	* config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
	(insert_bits): New insn.
	(adjust_len.map_bits): Rename to insert_bits.
	(UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
	* avr-protos.h (avr_out_map_bits): Remove.
	(avr_out_insert_bits, avr_has_nibble_0xf): New.
	* config/avr/constraints.md (Cxf,C0f): New.
	* config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
	defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
	New built-in define __BUILTIN_AVR_INSERT_BITS.
	* config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
	(enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
	(avr_move_bits): Rewrite.
	(avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
	functions.
	(avr_map_op_t): New typedef.
	(avr_map_op): New static variable.
	(avr_out_insert_bits, avr_has_nibble_0xf): New functions.
	(adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
	(avr_init_builtins): Add definition for __builtin_avr_insert_bits.
	(bdesc_3arg, avr_expand_triop_builtin): New.
	(avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
	(avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
	(avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
	(avr_map_equal_p, avr_map_sig_p): Remove.
	(avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
	(bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
	(adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
	(enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
	(avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
	(avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.

2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>

	* config/c6x/c6x.md (reserve_cycles): New attribute.
	* config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
	don't reserve functional units after the branch occurs.

2012-02-14  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/52142
	* ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
	functions into non-tm_pure functions.

2012-02-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/52178
	* gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
	(iterative_hash_canonical_type): Likewise.
	* tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
	the dead edges.

2012-02-14  Bernd Schmidt  <bernds@codesourcery.com>

	* haifa-sched.c (prune_ready_list): Ensure that if there is a
	sched-group insn, it either remains alone or the entire list is pruned.

2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/install.texi (Prerequisites): Fix grammar.
	(Configuration): Likewise.

2012-02-14  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
	MPC as part of GCC before describing configuring with --with-gmp etc.
	(Installing GCC: Configuration): --with-gmp etc. aren't needed if
	sources are present.

2012-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR debug/51950
	* dwarf2out.c (clone_tree_hash): New function.
	(copy_decls_walk): Use it instead of clone_tree.

2012-02-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52244
	PR tree-optimization/51528
	* tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
	replacements for integral types.

2012-02-14  Walter Lee  <walt@tilera.com>

	* config.gcc: Handle tilegx and tilepro.
	* configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
	tilegx and tilepro.
	Add HAVE_AS_TLS check for tilegx and tilepro.
	* configure: Regenerate.
	* doc/contrib.texi: Add Mat Hostetter and self.
	* doc/extend.texi (TILE-Gx Built-in Functions): New node.
	Document instruction intrinsics and network accessing intrinsics.
	(TILEPro Built-in Functions): New node.  Document instruction
	intrinsics and network accessing intrinsics.
	* doc/install.texi (Specific, tilegx-*-linux*): Document it.
	(Specific, tilepro-*-linux*): Likewise.
	* doc/invoke.texi (TILE-Gx Options): New section.
	(TILEPro Options): New section.
	* doc/md.texi (TILE-Gx): New section.
	(TILEPro): New section.
	* common/config/tilegx/tilegx-common.c: New file.
	* common/config/tilepro/tilepro-common.c: New file.
	* config/tilegx/constraints.md: New file.
	* config/tilegx/linux.h: New file.
	* config/tilegx/mul-tables.c: New file.
	* config/tilegx/predicates.md: New file.
	* config/tilegx/sync.md: New file.
	* config/tilegx/t-tilegx: New file.
	* config/tilegx/tilegx-builtins.h: New file.
	* config/tilegx/tilegx-c.c: New file.
	* config/tilegx/tilegx-generic.md: New file.
	* config/tilegx/tilegx-modes.def: New file.
	* config/tilegx/tilegx-multiply.h: New file.
	* config/tilegx/tilegx-protos.h: New file.
	* config/tilegx/tilegx.c: New file.
	* config/tilegx/tilegx.h: New file.
	* config/tilegx/tilegx.md: New file.
	* config/tilegx/tilegx.opt: New file.
	* config/tilepro/constraints.md: New file.
	* config/tilepro/gen-mul-tables.cc: New file.
	* config/tilepro/linux.h: New file.
	* config/tilepro/mul-tables.c: New file.
	* config/tilepro/predicates.md: New file.
	* config/tilepro/t-tilepro: New file.
	* config/tilepro/tilepro-builtins.h: New file.
	* config/tilepro/tilepro-c.c: New file.
	* config/tilepro/tilepro-generic.md: New file.
	* config/tilepro/tilepro-modes.def: New file.
	* config/tilepro/tilepro-multiply.h: New file.
	* config/tilepro/tilepro-protos.h: New file.
	* config/tilepro/tilepro.c: New file.
	* config/tilepro/tilepro.h: New file.
	* config/tilepro/tilepro.md: New file.
	* config/tilepro/tilepro.opt: New file.

2012-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/52210
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Call
	vect_model_simple_cost with two entry vect_def_type array instead
	of an address of dt.

2012-02-14  Richard Guenther  <rguenther@suse.de>

	PR lto/52178
	* tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
	Do not stream DECL_QUALIFIER.
	* tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
	* tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
	(find_decls_types_r): Do not walk DECL_QUALIFIER.

2012-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/52181
	* c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
	newdecl.

2012-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/52172
	* cselib.h (cselib_subst_to_values_from_insn): New prototype.
	* cselib.c (cselib_subst_to_values_from_insn): New function.
	* sched-deps.c (add_insn_mem_dependence,
	sched_analyze_1, sched_analyze_2): Use it.

2012-02-13  Jan Hubicka  <jh@suse.cz>

	PR middle-end/52214
	* predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.

2012-02-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
	(GTM_SELF_SPECS): Define if not already defined.
	(driver_self_specs): Add GTM_SELF_SPECS.
	* config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
	(GTM_SELF_SPECS): Define.
	* config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
	* config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.

2012-02-13  Jakub Jelinek  <jakub@redhat.com>

	* cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
	away if seen.

	* cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.

	PR middle-end/52230
	* omp-low.c (expand_omp_for): If a static schedule without chunk size
	has NULL region->cont, force fd.chunk_size to be integer_zero_node.

2012-02-13  Andrew MacLeod  <amacleod@redhat.com>

	PR c/52190
	* doc/extend.texi : Fix another __atomic_compare_exchange typo.

2012-02-13  Richard Guenther  <rguenther@suse.de>

	PR translation/52211
	* passes.c (enable_disable_pass): Fix typo.

2012-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/52209
	* expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
	XOR for reduce_bit_field if type is unsigned.

2012-02-12  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
	disallow changes from SFmode to mode with different size in FP regs.

2012-02-12  Robert Millan  <rmh@gnu.org>
	    Gerald Pfeifer <gerald@pfeifer.com>

	* ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
	Tweak comment.

2012-02-11  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/52175
	* reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
	to frame-related instructions.

2012-02-10  Jason Merrill  <jason@redhat.com>

	PR c++/51910
	* tlink.c (demangled_hash_entry): Change mangled to a VEC.
	(demangle_new_symbols): Fill it.
	(scan_linker_output): Walk it.
	(start_tweaking): Split out from scan_linker_output.
	(maybe_tweak): Update sym->chosen.
	* Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o

2012-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR debug/52132
	* reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.

2012-02-11  Uros Bizjak  <ubizjak@gmail.com>

	* compare-elim.c (find_comparisons_in_bb): Eliminate only compares
	having the same mode as previous compare.

2012-02-10  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
	* config/sparc/sparc.md (UNSPECV_GOTO): Delete.
	(nonlocal_goto_internal): Likewise.
	(nonlocal_goto): Emit a use and an indirect jump directly.

2012-02-10  Andrew MacLeod  <amacleod@redhat.com>

	PR c/52190
	* doc/extend.texi : Update comments for __atomic_compare_exchange and
	__atomic_{is,always}_lock_free.

2012-02-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/52146
	* config/i386/i386.c (ix86_legitimate_address_p): Disallow
	negative constant address for TARGET_X32.

2012-02-10  Richard Henderson  <rth@redhat.com>

	* tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
	* tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
	for GIMPLE_TRANSACTION.  Tidy if's into a switch.

2012-02-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
	    Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/50031
	* targhooks.c (default_builtin_vectorization_cost): Handle
	vec_promote_demote.
	* target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
	* tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
	all types of reduction and pattern statements.
	(vect_estimate_min_profitable_iters): Likewise.
	* tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
	(vect_get_load_cost): Use vec_perm for permutations; add dump logic
	for explicit realigns.
	(vectorizable_conversion): Call vect_model_promotion_demotion_cost.
	* config/spu/spu.c (spu_builtin_vectorization_cost): Handle
	vec_promote_demote.
	* config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
	* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
	vec_perm for VSX and handle vec_promote_demote.

2012-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/52177
	* builtins.c (fold_builtin_atomic_always_lock_free,
	expand_builtin_atomic_always_lock_free,
	fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
	Return and/or test boolean_true_node/boolean_false_node instead of
	integer_one_node/integer_zero_node.

2012-02-10  Jan Hubicka  <jh@suse.cz>

	PR middle-end/48600
	* predict.c (predict_paths_for_bb): Prevent looping.
	(predict_paths_leading_to_edge, predict_paths_leading_to): Update.

2012-02-10  Roman Zhuykov  <zhroma@ispras.ru>

	* config/arm/arm.c (output_move_double): In one case properly
	count number of instructions that will be emitted.

2012-02-10  Richard Guenther  <rguenther@suse.de>

	PR translation/52193
	* cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.

2012-02-09  Peter Bergner  <bergner@vnet.ibm.com>

	PR middle-end/52140
	* dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.

2012-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR debug/52165
	* var-tracking.c (emit_note_insn_var_location): If
	EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
	emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
	non-NOTE_DURING_CALL_P insn.

2012-02-09  Bin Cheng  <bin.cheng@arm.com>

	PR middle-end/51867
	* builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.

2012-02-08  Magnus Granberg  <zorry@gentoo.org>

	PR driver/48524
	* gcc.c (switch_matches) Support switches with separated form,
	-D and -U.

2012-02-08  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (SREG_ADDR): Remove constant definition.
	(SP_ADDR): Ditto.
	(RAMPZ_ADDR): Ditto.
	* config/avr/avr.c (avr_addr_t): New typedef.
	(avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
	(avr_init_expanders): Initialize it.
	(expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
	SREG_ADDR.
	(expand_epilogue): Ditto.
	(avr_print_operand): Ditto.
	(avr_file_start): Ditto.
	(avr_emit_movmemhi): Ditto.

2012-02-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46886
	* tree-flow.h (do_while_loop_p): Declare.
	* tree-ssa-loop-ch.c (do_while_loop_p): Export.
	* tree-parloops.c (parallelize_loops): Only parallelize do-while loops.

2012-02-08  Andrew MacLeod  <amacleod@redhat.com>

	* optabs.c (expand_atomic_load): Do not assume compare_and_swap will
	always succeed for integers larger than a native word.

2012-02-08  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/52170
	* simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
	properly handle integer vector modes.

2012-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/52150
	* coverage.c: Include target.h.
	(build_var): Call targetm.strip_name_encoding on the assembler name.
	Change one _ into . or $ if the target allows it.
	* Makefile.in (coverage.o): Depend on $(TARGET_H).

	PR rtl-optimization/52139
	* cfgrtl.c (cfg_layout_merge_blocks): If BB_END
	is a BARRIER after emit_insn_after_noloc, move BB_END
	to the last non-BARRIER insn before it.

2012-02-07  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/24306
	* config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
	(mips_gimplify_va_arg_expr): Call it instead of
	std_gimplify_va_arg_expr.

2012-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
	message for -mno-pointers-to-nested-function.

2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/51994
	* expr.c (get_inner_reference): If there is an offset, add a negative
	bit position to it (if any).

2012-02-07  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/52060
	* combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
	copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
	before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
	and/or i0src_copy2 when needed.

2012-02-07  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (main): Don't look for lto-wrapper or lto-wrapper
	or LTOPLUGINSONAME if have_c.

	* config/freebsd-spec.h: Add comment about what macros can be defined
	in this header.
	(LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
	* config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
	here instead.

2012-02-07  Richard Guenther  <rguenther@suse.de>

	* gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
	newline in -alias dumps.

2012-02-07  Kai Tietz  <ktietz@redhat.com>
	    Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/40068
	* config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
	Take care that typinfo gets dllexport-attribute.

2012-02-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/52074
	* expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
	if modifier < EXPAND_SUM call force_operand on the result.

2012-02-07  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
	adding __forwarder_dst__ prefix if a forwarder_section attribute is
	present.
	(epiphany_function_type): Replace types for specific interrupts with
	EPIPHANY_FUNCTION_INTERRUPT.
	(EPIPHANY_INTERRUPT_P): Update.
	* config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
	New static function.
	(epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
	<disinterrupt>: Affects type identity.
	(epiphany_handle_interrupt_attribute): Handle variable number of
	arguments.
	(epiphany_compute_function_type): Update for new
	epiphany_function_type definition.
	(epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
	handlers with a longcall forwarder.
	(epiphany_start_function): Handle multiple interrupt arguments and/or
	forwarder_section attribute.

	* config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
	libgloss.

2012-02-07  Alan Modra  <amodra@gmail.com>

	PR target/52107
	* config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
	subregs of TFmode.

2012-02-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/50969
	* tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
	use vec_perm rather than vector_stmt.
	(vect_model_load_cost): Likewise.
	* config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
	vec_perm to be the same as other vector statements.
	* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
	cost of vec_perm for TARGET_VSX.

2012-02-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52115
	* tree-sra.c (access_has_replacements_p): New function.
	(sra_modify_assign): Use it to decide whether a use is uninitialized.

2012-02-06  Patrick Marlier  <patrick.marlier@gmail.com>

	PR middle-end/52047
	* trans-mem.c (expand_call_tm): Add an assertion.
	* calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
	functions.

2012-02-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50955
	* tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
	raise cost of expressions that replace an address with an
	expression based on a different pointer.

2012-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/52129
	* calls.c (mem_overlaps_already_clobbered_arg_p): If val is
	CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.

2012-02-06  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR c++/48680
	* doc/invoke.texi (C++ Dialect Options): Use @option markup for
	-Weffc++ and specify guidelines come from second edition.

2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (sibcall_internal, sibcall_value_internal)
	(sibcall_value_multiple_internal, call_split, call_internal_direct)
	(call_direct_split, call_value_split, call_value_internal_direct)
	(call_value_direct_split, call_value_multiple_split): Use jal and
	jal_macro attributes.

2012-02-05  Richard Sandiford  <rdsandiford@googlemail.com>

	* reload1.c (reload_regs_reach_end_p): Replace with...
	(reload_reg_rtx_reaches_end_p): ...this function.
	(new_spill_reg_store): Update commentary.
	(emit_input_reload_insns): Don't clear new_spill_reg_store here.
	(emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
	before setting new_spill_reg_store.
	(emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
	Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
	Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
	for non-spill reload registers.

2012-02-05  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/52091
	* tree-vectorizer.h (vect_is_simple_use): Add an argument.
	(vect_is_simple_use_1): Likewise.
	* tree-vect-loop.c (vectorizable_reduction): Update calls
	to vect_is_simple_use_1 and vect_is_simple_use.
	(vectorizable_live_operation): Likewise.
	* tree-vect-patterns.c (widened_name_p,
	vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
	* tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
	vectorizable_call, vectorizable_conversion, vectorizable_assignment,
	vectorizable_shift,vectorizable_operation, vectorizable_store,
	vectorizable_load): Likewise.
	(vect_is_simple_cond): Add an argument, pass it to
	vect_is_simple_use_1.
	(vectorizable_condition): Update calls to vect_is_simple_cond,
	vect_is_simple_use.
	(vect_is_simple_use): Add an argument, the statement in which
	OPERAND is used.  Check that if OPERAND's def stmt is a double
	reduction phi node, the use is a phi node too.
	(vect_is_simple_use_1): Add an argument, pass it to
	vect_is_simple_use.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
	to vect_is_simple_use.

2012-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/52095
	* modulo-sched.c (dump_insn_locator): New function.
	(loop_canon_p, sms_schedule): Use it.

	PR rtl-optimization/52113
	* lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
	even for decomposable shift/zext insns.

2012-02-03  Jakub Jelinek  <jakub@redhat.com>
	    Zdenek Dvorak  <ook@ucw.cz>

	PR rtl-optimization/52092
	* loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
	on get_iv_value result.

2012-02-02  Andrew Pinski  <apinski@cavium.com>

	PR middle-end/47982
	PR middle-end/43967
	* doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.

2012-02-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/48071
	* diagnostic.c (diagnostic_finish): Remove trailing newlines.

2012-02-02  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/49800
	* haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
	(sched_finish): Call regstat_free_n_sets_and_refs.

2012-02-02  Jia Liu  <proljc@gmail.com>

	* config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
	than operand 2.

2012-02-02  Jan Hubicka  <jh@suse.cz>
	    Tom de Vries  <tom@codesourcery.com>

	PR middle-end/51998
	* cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
	* varpool.c (varpool_analyze_pending_decls): Likewise.

2012-02-02  Sumanth G <sumanth.gundapaneni@kpitcummins.com>
	    Jayant R Sonar <jayant.sonar@kpitcummins.com>

	* config.gcc: Add cr16-* support.

	* doc/extend.texi: Document cr16 extensions.
	* doc/install.texi: Document cr16 install.
	* doc/invoke.texi: Document cr16 options.
	* doc/md.texi: Document cr16 constraints.

	* common/config/cr16/cr16-common.c: New file.
	* config/cr16/cr16.c: New file.
	* config/cr16/cr16.h: New file.
	* config/cr16/cr16.md: New file.
	* config/cr16/cr16.opt: New file.
	* config/cr16/cr16-protos.h: New file.
	* config/cr16/predicates.md: New file.
	* config/cr16/constraints.md: New file.
	* config/cr16/t-cr16: New file.

2012-02-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/52086
	* config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
	that operands[2] is either immediate, or q_regs_operand.

	PR tree-optimization/52073
	* tree-vect-stmts.c (vect_mark_relevant): When checking uses of
	a pattern stmt for pattern uses, ignore uses outside of the loop.

2012-02-01  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c: Resolve all AS1 and AS2 macros.
	* config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
	(OUT_AS1, OUT_AS2): Remove.

2012-02-01  Georg-Johann Lay  <avr@gjlay.de>

	PR rtl-optimization/51374
	* combine.c (can_combine_p): Don't allow volatile_refs_p insns
	to cross other volatile_refs_p insns.

2012-02-01  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (fno-inline): Clarify documentation.
	(finline-small-functions): Likewise.
	(finline-functions): Likewise.
	* common.opt (finline): Adjust comment and documentation.
	(finline-small-functions): Clarify documentation.
	(finline-functions): Likewise.
	(finline-functions-called-once): Likewise.

2012-02-01  Tristan Gingold  <gingold@adacore.com>

	* c-typeck.c (composite_type): Keep mode for pointers.

2012-01-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* function.h (regno_reg_rtx): Adjust comment.
	* reginfo.c (init_reg_modes_target): Only use the previous mode
	if it fits within one register.  Remove MIPS comment.

2012-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/52058
	* combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.

2012-01-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
	to srak instruction.

2012-01-31  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.

2012-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/52041
	PR bootstrap/52039
	PR target/51974
	* ipa-prop.c (detect_type_change_1): Call ao_ref_init.

2012-01-31  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51528
	* tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
	assigns.

2012-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/52041
	PR bootstrap/52039
	PR target/51974
	* ree.c (add_removable_extension): Change def_map argument
	to unsigned *, store in def_map 1 + offset into *insn_list vector
	instead of pointers into the vector.
	(find_removable_extensions): Adjust caller.

2012-01-30  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md: Resolve all AS1 and AS2 macros.
	Transform all "* quoted-c-code" to { c-code }.
	Remove redundant test for "optimize" in combine patterns.
	Move (include "avr-dimode.md") to end of file.

2012-01-30  Bin Cheng  <bin.cheng@arm.com>

	PR target/51835
	* config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
	for __aeabi_d2iz/__aeabi_d2uiz with hard-float.

2012-01-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52028
	* tree-loop-distribution.c (ldist_gen): Properly update
	virtual SSA form.

2012-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/52027
	* dwarf2out.c (dwarf2out_switch_text_section): Don't call
	set_cur_line_info_table if not emitting debug info.

	PR tree-optimization/52046
	* tree-vect-patterns.c (check_bool_pattern): Give up if
	a comparison could throw.

	PR debug/52048
	* tree-ssa-tail-merge.c (local_def): Ignore debug uses.

2012-01-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52045
	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
	SSA form if cfgcleanup did anything.

2012-01-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52045
	* ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
	before computing final todo.

2012-01-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51528
	* tree-sra.c (sra_modify_assign): Re-factor in preparation
	for PR51528 fix.

2012-01-30  Paolo Bonzini  <bonzini@gnu.org>

	* df-problems.c (df_kill_notes): Check that the use refers
	to the note under examination.

2012-01-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/51920
	* config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
	parameter and use short-lived pseudos.
	(vector_init_faligndata): Remove INNER_MODE parameter and use loop.
	(sparc_expand_vector_init): Const-ify local variables and adjust
	calls to above functions.

2012-01-30  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (out_movqi_mr_r): Fix length computation.

2012-01-29  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Make usage of "compile time" and
	"run time"/"runtime" consistent throughout the file.

2012-01-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_option_override): Default to
	full IEEE compliance mode for Go language.

2012-01-29  Tijl Coosemans  <tijl@coosemans.org>

	* config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
	(LINK_SSP_SPEC): Define.

2012-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/51871
	* config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
	stubs.

2012-01-28  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Correct hyphenation of "floating point",
	"double precision", and related terminology throughout the file.

2012-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/52006
	* config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
	arm_general_register_operand predicate for operand 2 instead of
	register_operand.

2012-01-27  Ian Lance Taylor  <iant@google.com>

	PR go/47656
	* builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
	* builtins.c (expand_builtin_init_trampoline): Add onstack
	parameter.  Change caller.
	(expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
	* tree.c (build_common_builtin_nodes): Declare
	__builtin_init_heap_trampoline.

2012-01-27  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
	tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
	* config/avr/avr.c: Ditto.
	(avr_regnames): Remove because unused.
	* config/avr/avr.md (*cpse.ne): New peephole.
	(*cpse.eq): New peephole from former cpse peepholes.

2012-01-27  Michael Eager  <eager@eagercon.com>

	* config/microblaze.c (microblaze_emit_compare): Correct
	test after pcmp instruction.

2012-01-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/52020
	* tree-sra.c (sra_modify_assign): Do not transform clobbers.

2012-01-27  Richard Guenther  <rguenther@suse.de>

	* ipa-pure-const.c (check_stmt): Clobbers do not make a
	function non-const/pure.

2012-01-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50444
	* tree-sra.c (build_ref_for_offset): Properly adjust the
	MEM_REF type for unaligned accesses.

2012-01-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50444
	* expr.c (mem_ref_refers_to_non_mem_p): New function.
	(expand_assignment): Use it.  Properly handle misaligned
	bases when expanding stores to component references.
	(expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
	refactor that case.

2012-01-27  Andrey Belevantsev  <abel@ispras.ru>

	PR middle-end/51389
	* Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
	* tree-data-ref.h (find_data_references_in_loop): Remove declaration.
	* tree-data-ref.c (find_data_references_in_loop): Make static.
	(compute_all_dependences): Change return type to bool.  Bail out
	for too many datarefs in a loop.  Move the hunk resetting the data
	dependences vector from ...
	(compute_data_dependences_for_loop): ... here.  Account for
	compute_all_dependences returning false.
	(compute_data_dependences_for_bb): Likewise.
	* params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
	* doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.

2012-01-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51959
	* expr.c (store_field): Use the alias-set of the scratch memory
	for storing to it.

2012-01-27  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/51990
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
	WITH_SIZE_EXPR.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.

2012-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR debug/52001
	* var-tracking.c (reverse_op): Don't add any reverse operation
	if V already has any constant locations.

2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi: Correct usage of "command line" (noun)
	vs "command-line" (adjective) throughout.

2012-01-27  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (Language Independent Options): Move
	-Wcoverage-mismatch blurb from here....
	(Warning Options): ...to here.

2012-01-27  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal):
	Set rs6000_always_hint to false for 476.

2012-01-27  Matthias Klose  <doko@ubuntu.com>

	* gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
	  system root.
	* incpath.c (add_standard_paths): Likewise.

2012-01-27  Richard Henderson  <rth@redhat.com>

	* config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
	* config/m68k/sync.md (atomic_test_and_set): Rename from
	sync_test_and_setqi and adjust the operands.
	(atomic_test_and_set_1): Rename from sync_test_and_setqi_1
	and unconditionally enable.

2012-01-27  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
	* config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
	(ldstub): Rename from ldstubqi.
	(ldstub<I24MODE>): Remove.

2012-01-27  Richard Henderson  <rth@redhat.com>

	* target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
	* c-cppbuiltin.c (cpp_atomic_builtins): Define
	__GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
	* doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
	* doc/tm.texi: Rebuild.

2012-01-27  Richard Henderson  <rth@redhat.com>

	* optabs.c (gen_atomic_test_and_set): Remove default.
	(maybe_emit_atomic_test_and_set): Use maybe_expand_insn.

2012-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/51978
	* ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
	(combine_reaching_defs): Likewise.
	(struct re_info): Remove.
	(add_removable_extension): Remove x and data arguments,
	add insn, insn_list and def_map.  Use the arguments directly
	instead of using struct re_info.
	(find_removable_extensions): Don't call add_removable_extension
	through note_stores, instead just call it with single_set
	result if non-NULL.
	(find_and_remove_re): Pass curr_cand->expr instead of
	PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.

2012-01-26  Michael Matz  <matz@suse.de>

	PR tree-optimization/46590
	* cfgexpand.c: Revert last change (r183305).
	* gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
	regs.
	* tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
	checking for emptiness.

2012-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/51895
	* expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
	non-addressable non-BLKmode base correctly.

2012-01-26  Michael Matz  <matz@suse.de>

	PR tree-optimization/48794
	* tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
	regions referenced from RESX/EH_DISPATCH.

2012-01-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.h: Make BRANCH_COST an option.
	* config/s390/s390.opt: New option -mbranch-cost.

2012-01-26  Richard Henderson  <rth@redhat.com>

	Revert 2012-01-24 change:
	* trans-mem.c (requires_barrier): Do not instrument thread local
	variables and emit save/restore for them.

2012-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/51986
	* sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
	for pat == 0.

2012-01-25  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_small_data_pattern_1): Don't process
	ASM_OPERANDS.

2012-01-25  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49868
	Rename __pgm to __flash.
	Rename __pgm1 to __flash1.
	Rename __pgm2 to __flash2.
	Rename __pgm3 to __flash3.
	Rename __pgm4 to __flash4.
	Rename __pgm5 to __flash5.
	Rename __pgmx to __memx.
	* doc/extend.texi (AVR Named Address Spaces)
	Rename address space names as indicated above.
	* config/avr/avr.c (avr_addrspace): Ditto.

	* config/avr/avr-protos.h
	(avr_mem_pgmx_p): Rename to avr_mem_memx_p.
	(avr_mem_pgm_p): Rename to avr_mem_flash_p.
	* config/avr/predicates.md: Ditto.
	* config/avr/avr.c Ditto, and
	(avr_decl_pgmx_p): Rename to avr_decl_memx_p.
	(avr_decl_pgm_p): Rename to avr_decl_flash_p.

	* config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
	(ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
	(ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
	(ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
	(ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
	(ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
	(ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
	* config/avr/avr.c: Ditto.
	* config/avr/avr.md: Ditto.

2012-01-25  Jason Merrill  <jason@redhat.com>

	PR c++/51992
	* tree.c (find_decls_types_in_node): Walk gimple_call_fntype.

2012-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/51987
	* tree-data-ref.c (get_references_in_stmt): Handle references in
	non-volatile GIMPLE_ASM.

2012-01-25  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
	bases are dereferenced.

2012-01-25  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/48374
	* sel-sched-ir.h (get_all_loop_exits): Check for zero successors.

2012-01-25  Andrey Belevantsev  <abel@ispras.ru>

	* tree-predcom.c (tree_predictive_commoning_loop): Bail out when
	compute_data_dependences_for_loop returns false.
	* tree-parloops.c (loop_parallel_p): Likewise.

2012-01-25  Richard Guenther  <rguenther@suse.de>

	* tree.h (get_pointer_alignment_1): Declare.
	* builtins.c (get_pointer_alignment_1): New function.
	(get_pointer_alignment): Use it.

2012-01-25  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR rtl-optimization/48308
	* combine.c (enum undo_kind): Add UNDO_LINKS.
	(struct undo): Add member l to other_contents and where.
	(do_SUBST_LINK): New.
	(SUBST_LINK): New.
	(try_combine): Handle LOG_LINKS for the dummy i1 case.
	(undo_all): Handle UNDO_LINKS.

2012-01-25  Richard Henderson  <rth@redhat.com>

	* optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
	mem inputs.

2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* optabs.c (gen_atomic_test_and_set): Use each argument.

2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
	(mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
	(mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
	(bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
	(mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
	TARGET_PAIRED_SINGLE_FLOAT.

2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
	(in_struct, return_val): Remove MEM documentation.
	* rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
	(MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
	(MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
	and MEM_SCALAR.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
	* cfgexpand.c (add_alias_set_conflicts): Likewise.
	* expr.c (store_field): Likewise.
	* function.c (assign_stack_temp_for_type): Likewise.
	* ifcvt.c (noce_try_cmove_arith): Likewise.
	* reload1.c (reload): Likewise.
	* config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
	(alpha_set_memflags): Likewise.
	* config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.

2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (true_dependence, canon_true_dependence): Remove varies
	parameter.
	* alias.c (fixed_scalar_and_varying_struct_p): Delete.
	(true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
	(true_dependence_1, true_dependence, canon_true_dependence): Remove
	varies parameter.
	* cselib.c (cselib_rtx_varies_p): Delete.
	(cselib_invalidate_mem): Update call to canon_true_dependence.
	* dse.c (record_store, check_mem_read_rtx): Likewise.
	(scan_reads_nospill): Likewise.
	* cse.c (check_dependence): Likewise.
	(cse_rtx_varies_p): Delete.
	* expr.c (safe_from_p): Update call to true_dependence.
	* ira.c (validate_equiv_mem_from_store): Likewise.
	(memref_referenced_p): Likewise.
	* postreload-gcse.c (find_mem_conflicts): Likewise.
	* sched-deps.c (sched_analyze_2): Likewise.
	* store-motion.c (load_kills_store): Likewise.
	* config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
	* gcse.c (mems_conflict_for_gcse_p): Likewise.
	(compute_transp): Update call to canon_true_dependence.

2012-01-25  Richard Henderson  <rth@redhat.com>

	* optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
	(maybe_emit_atomic_test_and_set): New.
	(expand_sync_lock_test_and_set): Use it.
	(expand_atomic_test_and_set): Likewise.
	* doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
	the implementation; clarify implementation defined details.
	* doc/md.texi (atomic_test_and_set): Document.

2012-01-25  Richard Henderson  <rth@redhat.com>

	* config/sparc/predicates.md (zero_or_v7_operand): Use match_code.

2012-01-25  Richard Henderson  <rth@redhat.com>

	PR target/51968
	* config/arm/arm.c (neon_split_vcombine): Emit deleted note
	to effect no-op split.

2012-01-24  Aldy Hernandez  <aldyh@redhat.com>

	PR lto/51698
	* builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
	(BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
	(BT_FN_VOID_PTR_INT_SIZE): New.
	(BT_FN_UINT_UINT_VAR): Remove.
	(BT_FN_UINT32_UINT32_VAR): New.
	(BT_FN_DOUBLE_VPTR): Remove.
	(BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.

	* gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
	(_ITM_changeTransactionMode): Same.
	(_ITM_memmoveRtWt): Change return type to void.
	(_ITM_memcpyRtWt): Same.
	(_ITM_memsetW): Same.
	(_ITM_RaRD): Change types to double.
	(_ITM_RD): Same.
	(_ITM_RaWD): Same.
	(_ITM_RfWD): Same.

	* builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.

2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	* trans-mem.c (requires_barrier): Do not instrument thread local
	variables and emit save/restore for them.

2012-01-24  Jason Merrill  <jason@redhat.com>

	PR c++/51812
	* cgraphunit.c (cgraph_decide_is_function_needed): Don't always
	output static aliases.

2012-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR driver/47249
	* common.opt (-pie, -shared, pie, shared): Change from Common to
	Driver.
	* gcc.c (display_help): Display help for -pie and -shared.

2012-01-24  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49868
	* doc/extend.texi (AVR Named Address Spaces): Move sample code up.
	Remove note on size/offset limitation.
	(AVR Variable Attributes): Add example how to read data located
	with progmem.  Refer to named address spaces.
	* doc/invoke.texi (AVR Options): Fix typo.

2012-01-24  Richard Guenther  <rguenther@suse.de>

	Forward-port to trunk
	2010-09-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/45678
	* expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
	op0 isn't sufficiently aligned and there is movmisalignM
	insn for mode, use it to load op0 into a temporary register.

2012-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/51957
	* target.def (const_not_ok_for_debug_p): New hook.
	* doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
	documentation.
	* doc/tm.texi: Regenerated.
	* dwarf2out.c (const_ok_for_output_1): If
	targetm.const_not_ok_for_debug_p returns true, fail.
	* config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
	function.
	(TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.

2012-01-23  Kai Tietz  <ktietz@redhat.com>

	PR target/51900
	* config/i386/predicates.md (symbolic_operand): Allow
	UNSPEC_PCREL as PIC expression for lea.
	* config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
	* config/i386/i386.c (ix86_delegitimize_address): Handle
	UNSPEC_PCREL for none-MEM, too.

2012-01-23  Aldy Hernandez  <aldyh@redhat.com>

	* trans-mem.c (ipa_tm_create_version): Set externally_visible.
	(ipa_tm_create_version_alias): Same.

2012-01-23  Uros Bizjak  <ubizjak@gmail.com>

	PR libitm/51830
	* builtin-types.def (BT_FN_UINT_UINT_VAR): New.
	* gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.

2012-01-23  Aldy Hernandez  <aldyh@redhat.com>
	    Patrick Marlier  <patrick.marlier@gmail.com>
	    Iain Sandoe  <developer@sandoe-acoustics.co.uk>

	PR lto/51916
	* lto-wrapper.c (run_gcc): Pass the LTO section name to
	simple_object_start_read.

2012-01-23  Richard Guenther  <rguenther@suse.de>


	PR tree-optimization/51895
	* tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
	parameter decomposition into BLKmode components.

2012-01-23  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Do not create
	fake variables for restrict-qualified pointers whose pointed-to type
	contains a placeholder.

2012-01-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51949
	* ipa-split.c (execute_split_functions): Do not split malloc functions.

2012-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/51933
	* ree.c (transform_ifelse): Return true right away if dstreg is
	already wider or equal to cand->mode.
	(enum ext_modified_kind, struct ext_modified, ext_state): New types.
	(make_defs_and_copies_lists): Remove defs_list and copies_list
	arguments, add state argument, just truncate state->work_list
	instead of always allocating and freeing the vector.  Assert that
	get_defs succeeds instead of returning 2.  Changed return type to bool.
	(merge_def_and_ext): Add state argument.  If SET_DEST doesn't
	have ext_src_mode, see if it has been modified already with the
	right kind of extension and has been extended before from the
	ext_src_mode.  If SET_DEST is already wider or equal to cand->mode,
	just return true.  Remember the original mode in state->modified array.
	(combine_reaching_defs): Add state argument.  Don't allocate and
	free here def_list, copied_list and vec vectors, instead just
	VEC_truncate the vectors in *state.  Don't handle outcome == 2 here.
	(find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
	Add state variable, clear vectors in it, initialize state.modified
	if needed.  Free all the vectors at the end and state.modified too.
	Don't skip a candidate if the extension expression has been modified.

2012-01-22  Douglas B Rupp  <rupp@gnat.com>

	PR target/47096
	* config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
	 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
	(extra_options) interix.opt -> i386/interix.opt"
	(extra_objs):Add winnt-stubs.o
	* configure.ac: Add interix to target_os .comm on PE check.
	* configure: Regenerate.
	* config/interix3.h: Delete and move bits to..
	* config/interix.h: Delete and move bits to..
	* config/i386/i386-interix3.h: Delete and move bits to..
	* config/i386/i386-interix.h: ..here.
	(TARGET_CPU_DEFAULT): Remove redefinition.
	(TARGET_ASM_CONSTRUCTOR): Undefine.
	(SUBTARGET_SWITCHES): Define for ms-bitfields.
	(TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
	(PTRDIFF_TYPE): Define.
	(LONG_DOUBLE_TYPE_SIZE): Define.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
	(SUBTARGET_OVERRIDE_OPTIONS): Remove.
	(TARGET_SECTION_TYPE_FLAGS): Define.
	(ASM_DECLARE_FUNCTION_NAME): Define.
	(ASM_OUTPUT_EXTERNAL): Define.
	(ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
	(ASM_OUTPUT_ALIGNED_BSS): Define.
	(PCC_BITFIELD_TYPE_MATTERS): Define.
	(USE_CONST_SECTION): Define.
	(SUBTARGET_ENCODE_SECTION_INFO): Remove.
	(TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
	(SUPPORTS_ONE_ONLY): Remove.
	(I386_PE_STRIP_ENCODING): Define.
	* config/interix.opt: Delete and move bits to..
	* config/i386/interix.opt: ..here. New.
	(mpe-aligned-commons): Add.
	* config/i386/t-interix: Add copyright header.
	(winnt-stubs.o): Add rule.

2012-01-22  Jason Merrill  <jason@redhat.com>

	PR c++/51832
	* varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
	for extra name aliases.

2012-01-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/51924
	* ree.c (combine_set_extension): Improve debugging message.
	(combine_reaching_defs): Likewise.
	(get_defs): Rename confusingly named variable.
	(find_and_remove_re): Skip a candidate if the extension expression has
	been modified.

2012-01-21  Robert Millan  <rmh@gnu.org>
	    Gerald Pfeifer  <gerald@pfeifer.com>

	* config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
	(GNU_USER_DYNAMIC_LINKER): Adjust indentation.

2012-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/51914
	* tree-vect-stmts.c (vectorizable_conversion): For
	cvt_type && modifier == WIDEN, put temporary with cvt_type
	at the beginning of vec_dsts and set vec_dest to temporary
	with vectype_out.

2012-01-20  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.

2012-01-20  Tijl Coosemans  <tijl@coosemans.org>

	* config/i386/i386.c: Fix checks for !TARGET_MACHO.
	* config/rs6000/rs6000.c: Likewise.

2012-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/51915
	* config/arm/arm.c (arm_count_output_move_double_insns): Call
	output_move_double on a copy of operands array.

2012-01-20  Cary Coutant  <ccoutant@google.com>
	    Dodji Seketeli  <dodji@redhat.com>

	PR debug/45682
	* dwarf2out.c (copy_declaration_context): Return ref to parent
	of declaration DIE, if necessary.
	(remove_child_or_replace_with_skeleton): Add new parameter; update
	caller.  Place skeleton DIE under parent DIE of original declaration.
	Move call to copy_declaration_context to here ...
	(break_out_comdat_types): ... from here.

2012-01-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR rtl-optimization/51856
	* reload.c (find_reloads_subreg_address): Set the address_reloaded
	flag to reloaded.

2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/51819
	* config/arm/arm.c (arm_print_operand): Correct output of alignment
	hints for neon loads and stores.

2012-01-20  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49868
	PR target/50887
	* doc/extend.texi (Named Address Spaces): Split into subsections.
	(AVR Named Address Spaces): New subsection.
	(M32C Named Address Spaces): New subsection.
	(RL78 Named Address Spaces): New subsection.
	(SPU Named Address Spaces): New subsection.
	(Variable Attributes): New anchor "AVR Variable Attributes".
	(AVR Variable Attributes): Rewrite and avoid wording
	"address space" in this context.
	* doc/invoke.texi (AVR Options): Rewrite and add documentation
	for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
	(AVR Built-in Macros): New subsubsection therein.
	* doc/md.texi (AVR constraints): Remove "C04", "R".

2012-01-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51903
	* tree-ssa-pre.c (eliminate): Properly purging of EH edges
	when removing stmts.

2012-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/50313
	* config/arm/arm.c (arm_load_pic_register): Use
	gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
	, gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
	(arm_pic_static_addr): Likewise.
	(arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
	(arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
	* config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
	(pic_load_addr_unified): New.

2012-01-20  Andrey Belevantsev  <abel@ispras.ru>

	PR target/51106
	* function.c (instantiate_virtual_regs_in_insn): Use
	delete_insn_and_edges when removing a wrong asm insn.

2012-01-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/40761
	* ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
	Add new member loop_num.
	(IRA_LOOP_NODE_BY_INDEX): Modify the check.
	(ira_build): Remove the parameter.

	* ira.c (ira_print_disposition): Use loop_num instead of loop->num.
	(ira.c): Do not build CFG loops for one region allocation.  Remove
	argument from ira_build call.

	* ira-build.c (init_loop_tree_node): New function.
	(create_loop_tree_nodes): Use it.  Separate the case when CFG
	loops are not built.
	(more_one_region_p): Check current_loops.
	(finish_loop_tree_nodes): Separate the case when CFG loops are not
	built.
	(add_loop_to_tree): Process loop equal to NULL too.
	(form_loop_tree): Separate the case when CFG loops are not built.
	Use explicitly number for the root.
	(rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
	an assertion.
	(ira_print_expanded_allocno, loop_compare_func): Use loop_num
	instead of loop->num.
	(mark_loops_for_removal): Ditto.  Use loop_num instead of loop->num.
	(mark_all_loops_for_removal): Ditto.
	(remove_unnecessary_regions): Separate the case when CFG loops
	are not built.
	(ira_build): Remove the parameter.  Use explicit number of regions
	when CFG loops are not built.

	* ira-color.c (print_loop_title): Separate the case for the root node.
	Use loop_num instead of loop->num.
	(move_spill_restore): Use loop_num instead of loop->num.

	* ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
	(change_loop): Ditto.
	(change_loop): Use loop_num instead of loop->num.

	* ira-lives.c (process_bb_node_lives): Ditto.

	* ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.

	* ira-conflicts.c (print_allocno_conflicts): Ditto.

2012-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR libmudflap/40778
	* tree-mudflap.c (mf_artificial): New function.
	(execute_mudflap_function_ops, execute_mudflap_function_decls,
	mx_register_decls, mudflap_enqueue_decl): Use it.

	PR target/51876
	* config/arm/neon.md (*neon_vswp<mode>): Fix up operand
	numbers in the insn pattern.

2012-01-19  Michael Matz  <matz@suse.de>

	PR tree-optimization/46590
	* cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
	use it in remembering which conflicts we already created.
	(add_scope_conflicts): Adjust call to above, (de)allocate helper
	bitmap.

2012-01-19  Aldy Hernandez  <aldyh@redhat.com>

	PR lto/51280
	* lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
	(merge_and_complain): Same.

2012-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/50237
	* config/initfini-array.h: Guard content of the header
	with #ifdef HAVE_INITFINI_ARRAY.
	* configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
	Add initfini-array.h to tm_file here.
	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
	* config.gcc: Don't add initfini-array.h to tm_file here.
	* configure: Regenerated.

2012-01-19  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/51505
	* df-problems.c (df_kill_notes): New parameter live. Update comment.
	Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
	(df_note_bb_compute): Update the call to df_kill_notes.

2012-01-18  Aldy Hernandez  <aldyh@redhat.com>

	* trans-mem.c (requires_barrier): Remove call to is_global_var.

2012-01-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa.c (useless_type_conversion_p): Remove special-casing
	of conversions to void *.

2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/50325
	PR middle-end/51192
	* optabs.h (simplify_expand_binop): Declare.
	* optabs.c (simplify_expand_binop): Make global.
	* expmed.c (store_bit_field_1): Use simplify_expand_binop on big
	endian targets if the source cannot be exactly covered by word
	mode chunks.

2012-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/51872
	* hard-reg-set.h (struct hard_reg_set_container): New type.
	* target.h (struct hard_reg_set_container): Forward declare.
	* target.def (set_up_by_prologue): New target hook.
	* doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
	* doc/tm.texi: Regenerated.
	* function.c (thread_prologue_and_epilogue_insns): Change
	set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
	Call targetm.set_up_by_prologue on it.
	* config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
	(TARGET_SET_UP_BY_PROLOGUE): Redefine to it.

2012-01-17  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_can_use_simple_return): New function.
	* config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
	* config/rx/rx.md (return): Predicate on rx_can_use_simple_return.

2012-01-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51782
	* expr.c (expand_assignment): Take address-space information
	from the address operand of MEM_REF and TARGET_MEM_REF.
	(expand_expr_real_1): Likewise.

2012-01-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* ira.c (do_reload): Make sure ira_dump_file is re-set if no
	reload dump is requested.

2012-01-17  Aldy Hernandez  <aldyh@redhat.com>

	PR other/51165
	* trans-mem.c (requires_barrier): Call may_be_aliased.

2012-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/51877
	* tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
	call arguments and fndecls compare equal, instead return false if they
	don't.  Return true only if lhs1 and lhs2 are either both NULL, or
	both SSA_NAMEs that are valueized the same, or they satisfy
	operand_equal_p.

2012-01-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
	Solaris 11+.
	* configure: Regenerate.

2012-01-16  Jan Hubicka  <jh@suse.cz>

	PR c/12245
	PR c++/14179
	* convert.c (convert_to_integer): Use fold_convert for
	converting an INTEGER_CST to integer type.

2012-01-16  Jason Merrill  <jason@redhat.com>

	PR c++/14179
	* vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.

2012-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/51860
	* config/s390/s390.c (s390_chunkify_start): Don't skip
	call insns followed by NOTE_INSN_CALL_ARG_LOCATION note.  Skip
	NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
	If insn is followed by NOTE_INSN_VAR_LOCATION or
	NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
	Don't use location of note insns.

	PR tree-optimization/51865
	* tree-inline.c (tree_function_versioning): Call remap_decl
	on DECL_RESULT whenever it has VOID_TYPE_P type.

2012-01-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips16_build_call_stub): Don't use a stub
	for calls to locally-binding MIPS16 functions if only the return
	type uses float regs.

2012-01-15  Chung-Lin Tang  <cltang@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
	(SYMBOL_32_HIGH): Likewise.
	(mips_output_tls_reloc_directive): Declare.
	* config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
	(mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
	* config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
	(mips_lo_relocs, mips_hi_relocs): Make extern.
	(mips16_stub_function): Move up file.
	(mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
	(mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
	(mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
	(mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
	SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1 if it's false.
	(mips_get_tp): Add MIPS16 support.
	(mips_legitimize_tls_address): Remove MIPS16 sorry().
	Generalize DTPREL and TPREL handling.
	(mips_init_relocs): Initialize mips_use_pcrel_pool_p.
	Add MIPS16 TLS support.
	(mips_output_tls_reloc_directive): New function.
	(mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
	* config/mips/predicates.md (symbolic_operand_with_high)
	(tls_reloc_operand): New predicates.
	(force_to_mem_operand): Use mips_use_pcrel_pool_p.
	* config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
	(PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
	(*unshifted_high): New instruction.  Use it for MIPS16 high splitter.
	(consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
	(*tls_get_tp_mips16_call_<mode>): Likewise.

2012-01-15  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/51821
	* recog.c (peep2_find_free_register): Determine clobbered registers
	from insn pattern.

2012-01-14  Denis Chertykov  <chertykov@gmail.com>

	PR target/50925
	* config/avr/avr-protos.h: Revert change of 2012-01-09.
	* config/avr/avr.c: Likewise.
	* config/avr/avr.h: Likewise.

2012-01-13  Ian Lance Taylor  <iant@google.com>

	PR c++/50012
	* tree.h (TYPE_QUALS): Add cast to int.
	(TYPE_QUALS_NO_ADDR_SPACE): Likewise.

2012-01-13  Ian Lance Taylor  <iant@google.com>

	* ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
	comparing param_index to VEC_length result.

2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>

	* c-decl.c: Do not include tree-mudflap.h
	* tree-optimize.c: Likewise.
	* Makefile.in: Update dependencies.

2012-01-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/8081
	* gimplify.c (gimplify_modify_expr_rhs): For calls with a
	variable-sized result always use RSO.

2012-01-12  DJ Delorie  <dj@redhat.com>

	* cfgexpand.c (convert_debug_memory_address): Allow any valid
	pointer type, not just the default pointer type.

2012-01-09  Richard Henderson  <rth@redhat.com>
	    Denis Chertykov  <chertykov@gmail.com>

	PR target/50925
	* config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
	* config/avr/avr.c (avr_can_eliminate): Simplify.
	(avr_initial_elimination_offset): Likewise.
	(avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
	(expand_epilogue): Likewise.
	(avr_legitimize_address): Gut.
	(avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
	(avr_hard_regno_nregs): New.
	(avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
	(avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
	* config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
	add soft frame pointer.
	(CALL_USED_REGISTERS): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(REGISTER_NAMES): Likewise.
	(HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
	(HARD_FRAME_POINTER_REGNUM): New.
	(FRAME_POINTER_REGNUM): Use soft frame pointer.
	(ELIMINABLE_REGS): Eliminate from the soft frame pointer,
	remove the HARD_FRAME_POINTER self-elimination.

2012-01-12  Georg-Johann Lay  <avr@gjlay.de>

	PR target/51756
	* config/avr/avr.c (avr_encode_section_info): Test for absence of
	DECL_EXTERNAL when checking for initializers of progmem variables.

2012-01-12  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/51799
	* tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
	that the last operation is a type demotion.

2012-01-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
	(x86_shift<mode>_adj_1): Remove operand constraint from operand 3.

2012-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/51796
	* combine.c (distribute_notes): If i3 is a noreturn call,
	allow old_size to be equal to args_size and make sure the
	noreturn call gets REG_ARGS_SIZE note.
	* expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
	on noreturn calls even when the delta is 0.

2012-01-11  Nathan Sidwell  <nathan@acm.org>

	* gcov.c (STRING_SIZE): Remove.
	(generate_results): Erase annotations for source files with no
	coverage information.
	(read_line): New.
	(output_lines): Use it.

2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple.h (gimplify_body): Remove first argument.
	* gimplify.c (copy_if_shared): Add DATA argument.  Do not create the
	pointer set here, instead just pass DATA to walk_tree.
	(unshare_body): Remove BODY_P argument and adjust.  Create the pointer
	set here and invoke copy_if_shared on the size trees of DECL_RESULT.
	(unvisit_body): Likewise, but with unmark_visited.
	(gimplify_body): Remove BODY_P argument and adjust.
	(gimplify_function_tree): Adjust call to gimplify_body.
	* omp-low.c (finalize_task_copyfn): Likewise.

2012-01-11  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (build_function_decl_skip_args): Add boolean parameter.
	(build_function_type_skip_args): Delete.
	* tree.c (build_function_type_skip_args): Make static and add
	SKIP_RETURN parameter.  Fix thinko in the handling of variants.
	(build_function_decl_skip_args): Add SKIP_RETURN parameter and
	pass it to build_function_type_skip_args.
	* cgraph.h (cgraph_function_versioning): Add boolean parameter.
	(tree_function_versioning): Likewise.
	* cgraph.c (cgraph_create_virtual_clone): Adjust call to
	build_function_decl_skip_args.
	* cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
	and pass it to build_function_decl_skip_args/tree_function_versioning.
	(cgraph_materialize_clone): Adjust call to tree_function_versioning.
	* ipa-inline-transform.c (save_inline_function_body): Likewise.
	* trans-mem.c (ipa_tm_create_version): Likewise.
	* tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
	* tree-inline.c (declare_return_variable): Remove always-true test.
	(tree_function_versioning): Add SKIP_RETURN parameter.  If the function
	returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
	* ipa-split.c (split_function): Skip the return value for the split
	part if it doesn't return.

2012-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/49642
	* ipa-split.c (forbidden_dominators): New variable.
	(check_forbidden_calls): New function.
	(dominated_by_forbidden): Likewise.
	(consider_split): Check for forbidden dominators.
	(execute_split_functions): Initialize and free forbidden
	dominators info; call check_forbidden_calls.

2012-01-11  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* config/arm/arm.md (mov_notscc): Use MVN for false condition.

2012-01-11  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (return): Define pattern.

2012-01-11  Richard Guenther  <rguenther@suse.de>

	* doc/extend.texi (malloc attribute): Adjust according to
	implementation.

2012-01-10  Aldy Hernandez  <aldyh@redhat.com>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR middle-end/51516
	* trans-mem.c (get_cg_data): Traverse aliases if requested.
	(ipa_tm_scan_calls_block): Update parameters to get_cg_data.
	(ipa_tm_note_irrevocable): Same.
	(ipa_tm_scan_irr_block): Same.
	(ipa_tm_decrement_clone_counts): Same.
	(ipa_tm_scan_irr_function): Same.
	(ipa_tm_create_version_alias): Same.
	(ipa_tm_create_version): Same.
	(ipa_tm_transform_calls_redirect): Same.
	(ipa_tm_transform_calls): Same.
	(ipa_tm_transform_transaction): Same.
	(ipa_tm_execute): Same.

2012-01-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51806
	* opts.c (common_handle_option): Handle -Werror.

2012-01-10  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
	operand number.

2012-01-10  Jason Merrill  <jason@redhat.com>

	* doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
	information.

2012-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
	supports R_386_TLS_GD_PLT reloc.
	(gcc_cv_as_ix86_tlsldmplt): Check if linker
	supports R_386_TLS_LDM_PLT reloc.
	* configure: Regenerate.
	* config.in: Regenerate.

2012-01-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/49868
	Extend __pgmx semantics to linearize memory.
	* config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
	determine if code comes inline or from libgcc.
	(MOVMEM_r_d:HI): Add "w" to constraint for better preference.
	(movmem_qi, movmem_qi): Set constraint #2 to "n".
	(movmem_qi_elpm, movmem_hi_elpm): Remove insns.
	(movmemx_qi, movmemx_hi): New insns.
	(xload_<mode>_libgcc): Rewrite to new insn condition.
	(xload_<mode>): Remove insns.
	* config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
	cases that don't satisfy avr_xload_libgcc_p().
	(avr_addr_space_convert): Allow converting in any direction.
	(avr_addr_space_subset_p): Return always true.
	(avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
	(avr_emit_movmemhi): Ditto.
	(avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
	(avr_out_movmem): Ditto.
	(AVR_SYMBOL_FLAG_PROGMEM): New macro.
	(AVR_SYMBOL_SET_ADDR_SPACE): New macro.
	(AVR_SYMBOL_GET_ADDR_SPACE): New macro.
	(avr_encode_section_info): Encode 'progmem' in symbol flags.
	(output_reload_in_const): Don't zero-extend any 24-bit symbols.

2012-01-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50913
	* graphite-scop-detection.c (stmt_has_simple_data_refs_p):
	Require data-refs to be representable by Graphite with respect
	to any loop nest.

2012-01-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/constraints.md ("L"): Return true for 0xffffffff.
	* config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.

2012-01-10  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/51271
	* dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
	handling annulled branch.

2012-01-10  Richard Henderson  <rth@redhat.com>

	* config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
	TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
	struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
	arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
	arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
	arm_expand_vec_perm_const): New.
	* config/arm/arm-protos.h: Update.
	* config/arm/neon.md (UNSPEC_VCONCAT): New.
	(*neon_vswp<VDQX>): New.
	(neon_vcombine<VDX>): Use neon_split_vcombine.
	(neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
	* config/arm/vec-common.md (vec_perm_const<VALL>): New.
	(vec_perm<VE>): New.

2012-01-10  Richard Henderson  <rth@redhat.com>

	* config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
	use it if reload_completed.
	(arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
	arm_output_asm_insn, arm_process_output_memory_barrier,
	arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
	arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
	arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
	arm_process_output_sync_insn, arm_output_sync_insn,
	arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
	(arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
	(arm_emit_load_exclusive, arm_emit_store_exclusive): New.
	(emit_unlikely_jump): New.
	(arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
	(arm_split_atomic_op): New.
	* config/arm/arm-protos.h: Update.
	* config/arm/arm.h (enum arm_sync_generator_tag): Remove.
	(struct arm_sync_generator): Remove.
	* config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
	VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
	(VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
	(VUNSPEC_LL, VUNSPEC_SC): New.
	(sync_result, sync_memory, sync_required_value, sync_new_value,
	sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
	(attr length): Don't use arm_sync_loop_insns.
	(cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
	(movsfcc, movdfcc): Likewise.
	* config/arm/constraints.md (Ua): New.
	* config/arm/prediates.md (mem_noofs_operand): New.
	(sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
	(sync_clobber, sync_t2_reqd): Remove.
	(sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
	(sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
	(sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
	(arm_sync_compare_and_swap<SIDI>): Remove.
	(arm_sync_compare_and_swap<NARROW>): Remove.
	(arm_sync_lock_test_and_set<SIDI>): Remove.
	(arm_sync_lock_test_and_set<NARROW>): Remove.
	(arm_sync_new_<syncop><SIDI>): Remove.
	(arm_sync_new_<syncop><NARROW>): Remove.
	(arm_sync_new_nand<SIDI>): Remove.
	(arm_sync_new_nand<NARROW>): Remove.
	(arm_sync_old_<syncop><SIDI>): Remove.
	(arm_sync_old_<syncop><NARROW>): Remove.
	(arm_sync_old_nand<SIDI>): Remove.
	(arm_sync_old_nand<NARROW>): Remove.
	(*memory_barrier): Merge arm_output_memory_barrier.
	(atomic_compare_and_swap<QHSD>): New.
	(atomic_compare_and_swap<NARROW>_1): New.
	(atomic_compare_and_swap<SIDI>_1): New.
	(atomic_exchange<QHSD>): New.
	(cas_cmp_operand, cas_cmp_str): New.
	(atomic_op_operand, atomic_op_str): New.
	(atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
	(atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
	(atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
	(arm_load_exclusive<NARROW>): New.
	(arm_load_exclusivesi, arm_load_exclusivedi): New.
	(arm_store_exclusive<QHSD>): New.

2012-01-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
	reload patterns if -mvsx-scalar-memory.

	* config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
	generated, even -mno-vsx-scalar-double was used.
	(vsx_xscvdpsp_scalar): Likewise.
	(vsx_xscvspdp_scalar2): Likewise.

2012-01-09  Tom de Vries  <tom@codesourcery.com>
	    Andrew Pinski  <apinski@cavium.com>

	PR debug/51471
	* reorg.c (fill_slots_from_thread): Don't speculate
	frame-related insns.

2012-01-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* sched-int.h (bb_note): Move to...
	* basic-block.h: ...here.
	* haifa-sched.c (bb_note): Move to...
	* cfgrtl.c: ...here.
	* function.c (next_block_for_reg): New function.
	(move_insn_for_shrink_wrap): Likewise.
	(prepare_shrink_wrap): Rewrite to use the above.

2012-01-09  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.c (is_gimple_non_addressable): Remove.
	* gimple.h: Remove is_gimple_non_addressable.
	* gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
	is_gimple_non_addressable.
	* trans-mem.c (expand_assign_tm): Same.

2012-01-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51775
	* tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
	* tree-ssa-pre.c (eliminate): Properly fixup EH info.

2012-01-09  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
	tuning parameters.
	* config/arm/arm.c (arm_cortex_a15_tune): New static variable.

2012-01-09  Richard Guenther  <rguenther@suse.de>

	* tree-streamer-out.c (write_ts_optimization): Fix spelling.

2012-01-08  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/51680
	* ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
	on when known_vals needs to be computed; cleanup.

2012-01-08  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/51694
	* ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.

2012-01-08  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
	for -std=c++98 and -std=c++11 too.

2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>

	* cfgloop.c (cancel_loop): Add free() of bbs array.

2012-01-07  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/51600
	* ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
	that benefits small functions.

2012-01-07  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (want_inline_small_function_p): Fix formating.

2012-01-07  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/51680
	* ipa-inline.c (want_inline_small_function_p): Be more lax on functions
	whose inlining reduce unit size.

2012-01-07  Alexandre Oliva  <aoliva@redhat.com>

	PR bootstrap/51725
	* cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
	Add canonical node to containing_mem chain after the non-canonical
	one, even if there weren't any locs to propagate.
	(remove_useless_values): Keep only canonical values.
	(add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
	(cselib_invalidate_mem): Likewise.  Ensure v is canonical, and
	canonicalize mem_chain elements that are not discarded.

2012-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/47333
	* cgraphunit.c (cgraph_optimize): Call output_weakrefs
	before emitting functions.

	PR gcov-profile/50127
	* bb-reorder.c (partition_hot_cold_basic_blocks): Call
	clear_aux_for_blocks.

2012-01-06  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/51746
	* cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.

2012-01-06  Arnaud Charlet  <charlet@adacore.com>

	* c-decl.c (ext_block): Moved up.
	(collect_all_refs, for_each_global_decl): Take ext_block into account.

2012-01-06  Han Shen  <shenhan@google.com>

	Translate built-in include paths for sysroot.
	* Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
	(PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.

	* cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
	GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.

	* configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
	control whether sysroot should be prepended to gxx include dir.

	* configure: Regenerate.

2012-01-06  Torvald Riegel  <triegel@redhat.com>

	PR rtl-optimization/51771
	* builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
	* gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.

2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/51315
	* tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
	(build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.

2012-01-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/51681
	* config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
	for shrp pattern.  Correctly handle and fixup shift variable.
	Return false when shift > nelt for BYTES_BIG_ENDIAN target.

2012-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR debug/51762
	* calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
	note when !ACCUMULATE_OUTGOING_ARGS.

2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
	condition.
	(extract_range_from_unary_expr_1): Avoid useless computations.

2012-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/51767
	* cfgrtl.c (force_nonfallthru_and_redirect): Force addition
	of jump_block and add an extra edge for degenerated asm gotos.

	PR middle-end/51768
	* stmt.c (check_unique_operand_names): Don't ICE during error
	reporting if i is from labels chain.

	PR middle-end/44777
	* profile.c (branch_prob): Split bbs that have exit edge
	and need a fake entry edge too.

2012-01-05  Jan Hubicka  <jh@suse.cz>

	PR middle-end/49710
	* cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
	unlooping loops.

2012-01-05  Richard Guenther  <rguenther@suse.de>

	PR lto/50490
	* tree-streamer-out.c (write_ts_optimization): New function.
	(streamer_write_tree_body): Call it.
	* tree-streamer-in.c (lto_input_ts_optimization): New function.
	(streamer_read_tree_body): Call it.
	* lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.

2012-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/51761
	* gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
	* gimplify.c (gimplify_cleanup_point_expr): Save and set
	in_cleanup_point_expr before gimplify_stmt call and restore it
	afterwards.
	(gimplify_target_expr): Don't add {CLOBBER} cleanup if
	in_cleanup_point_expr is false.

2012-01-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51764
	* common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
	to c.opt.
	* toplev.c (process_options): Reject combining mudflap and LTO.
	* tree-nomudflap.c (nogo): Use sorry instead of internal_error.

2012-01-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51760
	* tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
	not VARYING.
	(bit_value_unop): Handle UNDEFINED operands.
	(bit_value_binop): Likewise.

2012-01-05  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_replace_prefix): Remove.
	(avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
	(avr_asm_function_rodata_section): Ditto.
	(avr_asm_select_section): Ditto.

2012-01-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
	insertion.

2012-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/51648
	* tree-cfg.c (need_fake_edge_p): Return true also for noreturn
	calls that have any non-fake successor edges.

	PR debug/51746
	* var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.

2012-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/51624
	* tree-sra.c (build_ref_for_model): When replicating a chain of
	COMPONENT_REFs, stop as soon as the offset would become negative.

2012-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR debug/51695
	* dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
	in .debug_loc on the floor.

2012-01-04  Andrew Pinski  <apinski@cavium.com>

	* doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.

2012-01-04  Andrew Pinski  <apinski@cavium.com>
	    Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (size): Add SI and DI.
	(SIZE): New mode attribute.
	(U): New code attribute.
	* config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
	(mips_lbux_<mode>): Delete.
	(mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
	(mips_lhx): Use gen_mips_lhx_extsi.
	(mips_lhx_<mode>): Delete.
	(mips_lwx): Delete.
	(mips_l<size>x): New expand.
	(mips_lwx_<mode>): Delete.
	(mips_l<GPR:size>x_<P:mode>): New pattern.
	(*mips_lw<u>x_<P:mode>_ext): Likewise.
	* config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
	* config/mips/mips.c (mips_lx_address_p): New function.
	(mips_rtx_costs <case MEM>): Call mips_lx_address_p.
	(dsp64): New availability predicate.
	(mips_builtins): Add an entry for __builtin_mips_ldx.
	* config/mips/mips.h (ISA_HAS_LBX): New define.
	(ISA_HAS_LBUX): Likewise.
	(ISA_HAS_LHX): Likewise.
	(ISA_HAS_LHUX): Likewise.
	(ISA_HAS_LWX): Likewise.
	(ISA_HAS_LWUX): Likewise.
	(ISA_HAS_LDX): Likewise.
	* doc/extend.texi (__builtin_mips_ldx): Document.

2012-01-04  Tristan Gingold  <gingold@adacore.com>

	* config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
	when long pointers are used.
	* config.build (*-*-*vms*): Handle all OpenVMS targets.
	(alpha64-dec-*vms*, alpha*-dec-*vms*)
	(ia64-hp-*vms*): Remove.
	* config/vms/xm-vms64.h: Delete.

2012-01-04  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/51472
	* trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.

2012-01-04  Aldy Hernandez  <aldyh@redhat.com>

	* opts.c (finish_options): Remove duplicate sorry.

2012-01-04  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/51696
	* trans-mem.c (diagnose_tm_1): Display indirect calls with no name
	correctly.

2012-01-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51750
	* tree.c (size_low_cst): New function.
	* tree.h (size_low_cst): Declare.
	* fold-const.c (fold_comparison): Use it to extract the low
	part of the POINTER_PLUS_EXPR offset.

2012-01-04  Georg-Johann Lay  <avr@gjlay.de>

	Fix clearing ZERO_REG
	* config/avr/avr.md (cc): Add alternative "ldi".
	(movqi_insn): Use it in cc attribute.
	* config/avr/avr.c (notice_update_cc): Handle CC_LDI.
	(output_reload_in_const): Use CLR to move 0 to ZERO_REG.
	(output_reload_insisf): Use ZERO_REG to pre-clear register.

2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* configure: Regenerate.

2012-01-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49651
	* tree-ssa-structalias.c (type_can_have_subvars): New function.
	(var_can_have_subvars): Use it.
	(get_constraint_for_1): Only consider subfields if there can be any.

2012-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/51725
	* cselib.c (new_elt_loc_list): When moving locs from one cselib_val
	to its new canonical_cselib_val and the cselib_val was in
	first_containing_mem chain, but the canonical_cselib_val was not,
	add the latter into the chain.
	(cselib_invalidate_mem): Compare canonical_cselib_val of
	addr_list chain elt with v.

	PR pch/51722
	* dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
	dwarf2out_undef): Allocate e.info using ggc_strdup instead
	of xstrdup.
	(output_macinfo_op): Don't ggc_strdup fd->filename.
	(optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
	then ggc_strdup it.  Don't free inc->info or cur->info.
	(output_macinfo): Don't free ref->info or file->info.

2012-01-03  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/51269
	* tree-vect-loop-manip.c (set_prologue_iterations): Make
	first_niters a pointer.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	(vect_do_peeling_for_loop_bound): Update call to
	slpeel_tree_peel_loop_to_edge.
	(vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
	here.  Remove it from the parameters list.
	(vect_do_peeling_for_alignment): Update calls and compute
	wide_prolog_niters.

2012-01-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51070
	* tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
	Properly handle calls.

2012-01-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/51692
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
	the LHS of allocation stmts.

2012-01-03  Olivier Hainque  <hainque@adacore.com>

	* system.h: Prior to #define, #undef fopen and freopen unconditionally.

2012-01-03  Olivier Hainque  <hainque@adacore.com>

	* collect2.c (main): In AIX specific computations for vector
	insertions, use CONST_CAST2 to cast from char ** to const char **.

2012-01-03  Richard Guenther  <rguenther@suse.de>

	PR debug/51650
	* dwarf2out.c (dwarf2out_finish): Always create a DIE for
	the context of a limbo DIE when it does not already exist.

2012-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/51719
	* value-prof.c (gimple_ic): When indirect call isn't noreturn,
	but direct call is, clear direct call's lhs and don't add fallthrough
	edge from dcall_bb to join_bb and PHIs.

2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
	the instructions emitted by the pattern.
	("*TDC_insn_<mode>"): Add comment.

2012-01-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51730
	* fold-const.c (fold_comparison): Properly canonicalize
	tree offset and HOST_WIDE_INT bit position.

2012-01-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
	operands for extzv pattern.

2012-01-02  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/51725
	* cselib.c (add_mem_for_addr): Call canonical_cselib_val
	on mem_elt first.

2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (-flto and related options): Copy-edit.

2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.

2012-01-02  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
	New patterns.

2012-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* expr.h (move_by_pieces_ninsns): Declare.
	* expr.c (move_by_pieces_ninsns): Make external.
	* config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
	(mips_store_by_pieces_p): Likewise.
	* config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
	(STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
	* config/mips/mips.c (mips_move_by_pieces_p): New function.
	(mips_store_by_pieces_p): Likewise.

2012-01-02  Jakub Jelinek  <jakub@redhat.com>

	* passes.c (register_one_dump_file): Free full_name.

	* reload1.c (reload): Don't allocate reg_max_ref_width here.
	(calculate_elim_costs_all_insns): Free offsets_at and
	offsets_known_at at the end and clear the pointers.

2012-01-02  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.opt (-mbranch-cost): Fix double definition of
	this option introduced in r180739.

2012-01-02  Georg-Johann Lay  <avr@gjlay.de>

	PR target/51345
	* config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
	(tmake_file target=avr): Add avr/t-multilib.

	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
	to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
	* config/avr/genmultilib.awk: New file.
	* config/avr/t-multilib: New auto-generated file.
	* config/avr/multilib.h: New auto-generated file.
	* config/avr/t-avr (AVR_MCUS): New variable.
	(genopt.sh): Use it.
	(s-mlib): Depend on t-multilib.
	(t-multilib, multilib.h): New dependencies.
	(s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
	(MULTILIB_OPTIONS): Remove.
	(MULTILIB_MATCHES): Remove.
	(MULTILIB_DIRNAMES): Remove.
	(MULTILIB_EXCEPTIONS): Remove:
	* config/avr/genopt.sh: Don't use hard coded file name;
	pass AVR_MCUS from t-avr instead.

2012-01-02  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".

2012-01-02  Georg-Johann Lay  <avr@gjlay.de>

	Implement light-weight DImode support.
	* config/avr/avr-dimode.md: New file.
	* config/avr/avr.md: Include it.
	(adjust_len): Add plus64, compare64.
	(HIDI): Remove code iterator.
	(code_stdname): New code attribute.
	(rotx, rotsmode): Remove DI.
	(rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
	as code iterator.
	* config/avr/avr-protos.h (avr_have_dimode): New.
	(avr_out_plus64, avr_out_compare64): New.
	* config/avr/avr.c (avr_out_compare): Handle DImode.
	(avr_have_dimode): New variable definition and initialization.
	(avr_out_compare64, avr_out_plus64): New functions.
	(avr_out_plus_1): Use simplify_unary_operation to negate xval.
	(adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
	(avr_compare_pattern): Skip DImode comparisons.

2012-01-02  Revital Eres  <revital.eres@linaro.org>

	* ddg.c (def_has_ccmode_p): New function.
	(add_cross_iteration_register_deps,
	create_ddg_dep_from_intra_loop_link): Call it.

2012-01-02  Richard Guenther  <rguenther@suse.de>

	PR other/51679
	* invoke.texi (fassociative-math): Remove spurious paranthesis.

2012-01-01  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (process_command): Update copyright notice dates.
	* gcov.c (print_version): Likewise.
	* gcov-dump.c (print_version): Likewise.
	* mips-tfile.c (main): Likewise.
	* mips-tdump.c (main): Likewise.

2012-01-01  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/51704
	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
	a use is inside the basic block or loop before accessing its vect info.

2012-01-01  Jan Hubicka  <jhjh@suse.cz>

	PR rtl-optimization/51069
	* cfgloopmanip.c (remove_path): Removing path making irreducible
	region unconditional makes BB part of the region.

2012-01-01  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/51683
	* tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
	calls with side-effects.
	* tree-ssa-ccp.c (ccp_fold_stmt): Likewise.

Copyright (C) 2012 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
