2014-12-31  Uros Bizjak  <ubizjak@gmail.com>

	* diagnostic.c (build_message_string): Use xvasprintf.
	* final.c (output_operand_lossage): Use xvasprintf and xasprintf.
	* lto-wrapper.c (merge_and_complain): Use xasprintf.
	* targhooks.c (pch_option_mismatch): Ditto.
	* tree-ssa-structalias.c (create_function_info_for): Ditto.
	(create_variable_info_for_1): Ditto.
	* tree-vect-data-refs.c (vect_create_destination_var): Ditto.

2014-12-30  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2):
	Switch from define_insn_and_split to define_insn.  Fix instruction
	length.

2014-12-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_legitimize_address): Declare
	"changed" as bool.
	(ix86_expand_unary_operator): Declare "matching_memory" as bool.
	(ix86_avoid_jump_mispredicts): Declare "isjump" as bool.

2014-12-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_reassociation_width): Remove unneeded
	variable "res".

2014-12-30  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (estimate_function_body_sizes): Do not
	free node params when called late with early=true.

2014-12-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_legitimize_address): Use std::swap.
	(ix86_split_fp_branch): Ditto.
	(ix86_expand_int_movcc): Ditto.
	(ix86_expand_sse_compare): Ditto.

2014-12-30  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (edge_set_predicate): Reset size/time when
	target is UNREACHABLE.
	(evaluate_properties_for_edge): If call statemet is available, use it
	to determine compile time constants.
	(estimate_function_body_sizes): Enable predicates for early inliner.
	(estimate_calls_size_and_time): Speedup.
	(inline_merge_summary): Evaluate properties for early inliner, too.

2014-12-29  Steve Ellcey  <sellcey@mips.com>

	* config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Add exceptions
	for mips32[r1] and mips64[r1] with -mnan=2008.
	* config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.

2014-12-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/64409
	* config/i386/i386.c (ix86_function_type_abi): Issue an error
	when ms_abi attribute is used with x32.

2014-12-27  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie-protos.h (moxie_offset_address_p): Define.
	* config/moxie/constraints.md (B): Replace inline test with call
	to moxie_offset_address_p.
	* config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Limit offset
	addressing to 16-bit offsets.
	* config/moxie/moxie.c (moxie_asm_trampoline_template): Remove
	nop, which is no longer needed for aligned write to trampoline.
	(moxie_trampoline_init): Adjust for smaller trampoline.
	(moxie_offset_address_p): New function.
	* config/moxie/moxie.md (*movsi, *movhi, *movqi): Adjust length
	attr for shorter ldo/sto instructions.
	* config/moxie/predicates.md: Only allow REG+CONST_INT for offset
	load/stores.

2014-12-27  Jan hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (max_count_real, max_relbenefit_real,
	half_int_min_real): Remove.
	(cgraph_freq_base_rec, percent_rec): New.
	(compute_uninlined_call_time, compute_inlined_call_time,
	big_speedup_p, relative_time_benefit, edge_badness): Use sreals.
	(update_edge_key): Update dumping.
	(inline_small_functions): Speedup maintainance of the heap.
	(ipa_inline): Initialize cgraph_freq_base_rec and
	percent_rec.

2014-12-27  Jan hubicka  <hubicka@ucw.cz>

	* sreal.h (sreal::shift): Fix sanity check.

2014-12-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
	Emit movshdup for SSE3 and shufps otherwise.
	(*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
	Emit pshufd for SSE2 and shufps otherwise.

2014-12-24  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.md (*mov_t_msb_neg): Convert split into insn_and_split.

2014-12-24  Uros Bizjak  <ubizjak@gmail.com>

	* gengtype.h (xasprintf): Remove declaration.
	* gengtype.c (xasprintf): Remove.

2014-12-24  Nick Clifton  <nickc@redhat.com>

	PR target/64160
	* config/msp430/msp430.md (addsi splitter): Do not split when the
	destination partially overlaps the source.

2014-12-24  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.opt (mul.x): New option.
	* doc/invoke.texi (Moxie Options): Document -mmul.x.
	* config/moxie/moxie.md (addsi3, mulsi3, subsi3, divsi3, udivs3):
	Remove trailing ".l" from add, mul, sub, div and udiv
	instructions.
	(<mul>si3_highpart, <mul>sidi3): Add mul.x & umul.x instruction
	support (high 32-bit result of multiply).
	* config/moxie/moxie.c (moxie_option_override): Force availability
	of mul.x instructions for moxiebox target.
	* config/moxie/moxiebox.h (TARGET_MOXIEBOX): Define.

2014-12-22  Zhouyi Zhou <yizhouzhou@ict.ac.cn>

	* ira-build.c (ira_flattening): Add the current
	object to OBJECTS_LIVE after traversing OBJECTS_LIVE.

2014-12-23  Martin Liska  <mliska@suse.cz>

	PR ipa/63851
	PR ipa/63852
	* ipa-icf.c (sem_function::merge): Ignore merge operation
	for a thunk created from static chain.
	* ipa-icf-gimple.c (func_checker::compatible_types_p): Verify that
	types have same restrict flag.

2014-12-22  John David Anglin  <danglin@gcc.gnu.org>

	PR target/55023
	* dse.c (scan_insn): Treat sibling call as though it does a wild read.

2014-12-22  Bin Cheng  <bin.cheng@arm.com>

	PR rtl-optimization/62151
	* combine.c (try_combine): New local variables local_elim_i1
	and local_elim_i0.  Set elim_i1 and elim_i0 using the local
	version variables.  Distribute notes from i0notes or i1notes
	using the local variables.

2014-12-22  Martin Liska  <mliska@suse.cz>

	* cgraphunit.c (symbol_table::process_new_functions): New
	inline_summaries is used.
	* ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
	(devirtualization_time_bonus): Likewise.
	(estimate_local_effects): Likewise.
	(ipcp_propagate_stage): Likewise.
	* ipa-inline-analysis.c (evaluate_conditions_for_known_args): Likewise.
	(evaluate_properties_for_edge): Likewise.
	(inline_summary_alloc): Likewise.
	(reset_inline_summary): New inline_summary argument is introduced.
	(inline_summary_t::remove): New function.
	(inline_summary_t::duplicate): Likewise.
	(dump_inline_edge_summary): New inline_summaries is used.
	(dump_inline_summary): Likewise.
	(estimate_function_body_sizes): Likewise.
	(compute_inline_parameters): Likewise.
	(estimate_edge_devirt_benefit): Likewise.
	(estimate_node_size_and_time): Likewise.
	(inline_update_callee_summaries): Likewise.
	(inline_merge_summary): Likewise.
	(inline_update_overall_summary): Likewise.
	(simple_edge_hints): Likewise.
	(do_estimate_edge_time): Likewise.
	(estimate_time_after_inlining): Likewise.
	(estimate_size_after_inlining): Likewise.
	(do_estimate_growth): Likewise.
	(growth_likely_positive): Likewise.
	(inline_generate_summary): Likewise.
	(inline_read_section): Likewise.
	(inline_read_summary): Likewise.
	(inline_write_summary): Likewise.
	(inline_free_summary): Likewise.
	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
	(inline_call): Likewise.
	* ipa-inline.c (caller_growth_limits): Likewise.
	(can_inline_edge_p): Likewise.
	(want_early_inline_function_p): Likewise.
	(compute_uninlined_call_time): Likewise.
	(compute_inlined_call_time): Likewise.
	(big_speedup_p): Likewise.
	(want_inline_small_function_p): Likewise.
	(edge_badness): Likewise.
	(update_caller_keys): Likewise.
	(update_callee_keys): Likewise.
	(recursive_inlining): Likewise.
	(inline_small_functions): Likewise.
	(inline_to_all_callers): Likewise.
	(dump_overall_stats): Likewise.
	(early_inline_small_functions): Likewise.
	* ipa-inline.h: New class inline_summary_t replaces
	vec<inline_summary_t>.
	* ipa-split.c (execute_split_functions): New inline_summaries is used.
	* ipa.c (walk_polymorphic_call_targets): Likewise.
	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.

2014-12-22  Martin Liska  <mliska@suse.cz>

	* auto-profile.c: Include of symbol-summary.h is added.
	* cgraph.c: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c (evaluate_properties_for_edge): New
	ipa_node_params_sum data structure is used.
	(inline_node_duplication_hook): Likewise.
	(estimate_function_body_sizes): Likewise.
	(remap_edge_change_prob): Likewise.
	(inline_merge_summary): Likewise.
	* ipa-inline-transform.c: Include of symbol-summary.h is added.
	* ipa-inline.c (early_inliner): New ipa_node_params_sum data structure
	is used.
	* ipa-polymorphic-call.c: Include of symbol-summary.h is added.
	* ipa-profile.c: Include of symbol-summary.h is added.
	* ipa-prop.c (ipa_propagate_indirect_call_infos): New
	ipa_node_params_sum data structure is used.
	(ipa_node_params::~ipa_node_params): New function.
	(ipa_free_all_node_params): Destruction is simplified.
	(ipa_node_removal_hook): Removed.
	(ipa_add_new_function): Renamed from ipa_node_duplication_hook.
	(ipa_node_params_t::duplicate): New function.
	(ipa_register_cgraph_hooks): Few hooks are removed.
	(ipa_unregister_cgraph_hooks): Likewise.
	(ipa_prop_write_jump_functions): New ipa_node_params_sum is used.
	* ipa-prop.h (struct ipa_node_params): Destructor introduced for
	the structure.
	(ipa_check_create_node_params): Vector for ipa_node_params is replaced
	with function_summary.
	* ipa-split.c: Include of symbol-summary.h is added.
	* ipa-utils.c: Include of symbol-summary.h is added.
	* ipa.c: Include of symbol-summary.h is added.
	* omp-low.c: Include of symbol-summary.h is added.
	* tree-inline.c: Include of symbol-summary.h is added.
	* tree-sra.c: Include of symbol-summary.h is added.
	* tree-ssa-pre.c: Include of symbol-summary.h is added.

2014-12-22  Martin Liska  <mliska@suse.cz>

	* cgraph.h (symbol_table::allocate_cgraph_symbol): Summary UID
	is filled up.
	* symbol-summary.h: New file.
	* gengtype.c (open_base_files): Add symbol-summary.h.
	* toplev.c (general_init): Call constructor of symbol_table.

2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/55212
	* config/sh/sh.md (*addsi3_compact): Add parentheses around &&
	condition.  Add comments.

2014-12-20  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64358
	* config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
	input operands if only the second is inverted.
	* config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
	Swap BOOL_REGS_OP1 and BOOL_REGS_OP2.  Correct arguments to
	rs6000_split_logical.
	(*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].

2014-12-20  Martin Uecker <uecker@eecs.berkeley.edu>

	* doc/invoke.texi: Document -Wdiscarded-array-qualifiers.
	* doc/extend.texi: Document new behavior for pointers to arrays
	with qualifiers.

2014-12-19  Jan Hubicka  <hubicka@ucw.cz>

	* hash-table.h (struct pointer_hash): Fix formating.
	(hash_table_higher_prime_index): Declare pure.
	(hash_table_mod2, hash_table_mod1, mul_mod): Move inline;
	assume that uint64_t always exists.
	(hash_table<Descriptor, Allocator, false>): Use gcc_checking_assert.
	(hash_table<Descriptor, Allocator, false>::expand ()): Fix formating.
	(hash_table<Descriptor, Allocator, false>::clear_slot (value_type **slot)):
	Use checking assert.
	* hash-table.c: Remove #if 0 code.
	(hash_table_higher_prime_index): Use gcc_assert.
	(mul_mod, hash-table_mod1, hash_table_mod2): move to hash-table.h

2014-12-19  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config.gcc: Support mips*-img-linux* and mips*-img-elf*.
	* config/mips/mti-linux.h: Support mips32r6 as being the default arch.
	* config/mips/t-img-elf: New.
	* config/mips/t-img-linux: New.

2014-12-19  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config.gcc: Add mipsisa64r6 and mipsisa32r6 cpu support.
	* config/mips/constraints.md (ZD): Add r6 restrictions.
	* config/mips/gnu-user.h (DRIVER_SELF_SPECS): Add MIPS_ISA_LEVEL_SPEC.
	* config/mips/loongson.md
	(<u>div<mode>3, <u>mod<mode>3): Move to mips.md.
	* config/mips/mips-cpus.def (mips32r6, mips64r6): Define.
	* config/mips/mips-modes.def (CCF): New mode.
	* config/mips/mips-protos.h
	(mips_9bit_offset_address_p): New prototype.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips.c (MIPS_JR): Use JALR $, <reg> for R6.
	(mips_rtx_cost_data): Add pseudo-processors W32 and W64.
	(mips_9bit_offset_address_p): New function.
	(mips_rtx_costs): Account for R6 multiply and FMA instructions.
	(mips_emit_compare): Implement R6 FPU comparisons.
	(mips_expand_conditional_move): Implement R6 selects.
	(mips_expand_conditional_trap): Account for removed trap immediate.
	(mips_expand_block_move): Disable inline move when LWL/LWR are removed.
	(mips_print_float_branch_condition): Update for R6 FPU branches.
	(mips_print_operand): Handle CCF mode compares.
	(mips_interrupt_extra_call_saved_reg_p): Do not attempt to callee-save
	MD_REGS for R6.
	(mips_hard_regno_mode_ok_p): Support CCF mode.
	(mips_mode_ok_for_mov_fmt_p): Likewise.
	(mips_secondary_reload_class): CCFmode can be loaded directly.
	(mips_set_fast_mult_zero_zero_p): Account for R6 multiply instructions.
	(mips_option_override): Ensure R6 is used with fp64.  Set default
	mips_nan modes.  Check for mips_nan support.  Prevent DSP with R6.
	(mips_conditional_register_usage): Disable MD_REGS for R6. Disable
	FPSW for R6.
	(mips_mulsidi3_gen_fn): Support R6 multiply instructions.
	* config/mips/mips.h (ISA_MIPS32R6, ISA_MIPS64R6): Define.
	(TARGET_CPU_CPP_BUILTINS): Rework for mips32/mips64.
	(ISA_HAS_JR): New macro.
	(ISA_HAS_HILO): New macro.
	(ISA_HAS_R6MUL): Likewise.
	(ISA_HAS_R6DMUL): Likewise.
	(ISA_HAS_R6DIV): Likewise.
	(ISA_HAS_R6DDIV): Likewise.
	(ISA_HAS_CCF): Likewise.
	(ISA_HAS_SEL): Likewise.
	(ISA_HAS_COND_TRAPI): Likewise.
	(ISA_HAS_FP_MADDF_MSUBF): Likewise.
	(ISA_HAS_LWL_LWR): Likewise.
	(ISA_HAS_IEEE_754_LEGACY): Likewise.
	(ISA_HAS_IEEE_754_2008): Likewise.
	(ISA_HAS_PREFETCH_9BIT): Likewise.
	(MIPSR6_9BIT_OFFSET_P): New macro.
	(BASE_DRIVER_SELF_SPECS): Use MIPS_ISA_DRIVER_SELF_SPECS.
	(DRIVER_SELF_SPECS): Use MIPS_ISA_LEVEL_SPEC.
	(MULTILIB_ISA_DEFAULT): Handle mips32r6 and mips64r6.
	(MIPS_ISA_LEVEL_SPEC): Likewise.
	(MIPS_ISA_SYNCI_SPEC): Likewise.
	(ISA_HAS_64BIT_REGS): Likewise.
	(ISA_HAS_BRANCHLIKELY): Likewise.
	(ISA_HAS_MUL3): Likewise.
	(ISA_HAS_DMULT): Likewise.
	(ISA_HAS_DDIV): Likewise.
	(ISA_HAS_DIV): Likewise.
	(ISA_HAS_MULT): Likewise.
	(ISA_HAS_FP_CONDMOVE): Likewise.
	(ISA_HAS_8CC): Likewise.
	(ISA_HAS_FP4): Likewise.
	(ISA_HAS_PAIRED_SINGLE): Likewise.
	(ISA_HAS_MADD_MSUB): Likewise.
	(ISA_HAS_FP_RECIP_RSQRT): Likewise.
	* config/mips/mips.md (processor): Add w32 and w64.
	(FPCC): New mode iterator.
	(reg): Add CCF mode.
	(fpcmp): New mode attribute.
	(fcond): Add ordered, ltgt and ne codes.
	(fcond): Update code attribute.
	(sel): New code attribute.
	(selinv): Likewise.
	(ctrap<mode>4): Update condition.
	(*conditional_trap_reg<mode>): New define_insn.
	(*conditional_trap<mode>): Update condition.
	(mul<mode>3): Expand R6 multiply instructions.
	(<su>mulsi3_highpart): Likewise.
	(<su>muldi3_highpart): Likewise.
	(mul<mode>3_mul3_loongson): Rename...
	(mul<mode>3_mul3_hilo): To this.  Add R6 mul instruction.
	(<u>mulsidi3_32bit_r6): New expander.
	(<u>mulsidi3_32bit): Restrict to pre-r6 multiplies.
	(<u>mulsidi3_32bit_r4000): Likewise.
	(<u>mulsidi3_64bit): Likewise.
	(<su>mulsi3_highpart_internal): Likewise.
	(mulsidi3_64bit_r6dmul): New instruction.
	(<su>mulsi3_highpart_r6): Likewise.
	(<su>muldi3_highpart_r6): Likewise.
	(fma<mode>4): Likewise.
	(movccf): Likewise.
	(*sel<code><GPR:mode>_using_<GPR2:mode>): Likewise.
	(*sel<mode>): Likewise.
	(<u>div<mode>3): Moved from loongson.md.  Add R6 instructions.
	(<u>mod<mode>3): Likewise.
	(extvmisalign<mode>): Require ISA_HAS_LWL_LWR.
	(extzvmisalign<mode>): Likewise.
	(insvmisalign<mode>): Likewise.
	(mips_cache): Account for R6 displacement field sizes.
	(*branch_fp): Rename...
	(*branch_fp_<mode>): To this.  Add CCFmode support.
	(*branch_fp_inverted): Rename...
	(*branch_fp_inverted_<mode>): To this.  Add CCFmode support.
	(s<code>_<mode>): Rename...
	(s<code>_<SCALARF:mode>_using_<FPCC:mode>): To this.  Add FCCmode
	condition support.
	(s<code>_<mode> swapped): Rename...
	(s<code>_<SCALARF:mode>_using_<FPCC:mode> swapped): To this. Add
	CCFmode condition support.
	(mov<mode>cc GPR): Expand R6 selects.
	(mov<mode>cc FPR): Expand R6 selects.
	(*tls_get_tp_<mode>_split): Do not .set push for >= mips32r2.
	* config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Update similarly to
	mips.h.
	(ASM_SPEC): Add mips32r6, mips64r6.
	* config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Update
	for mips32r6/mips64r6.
	* doc/invoke.texi: Document -mips32r6,-mips64r6.
	* doc/md.texi: Update comment for ZD constraint.

2014-12-19  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64268
	* combine.c (try_combine): Immediately return if any of I0,I1,I2
	are the same insn.

2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (<LOGICAL:optab>_one_cmpl<mode>3):
	Reparameterize to...
	(<NLOGICAL:optab>_one_cmpl<mode>3): with extra SIMD-register variant.
	(xor_one_cmpl<mode>3): New define_insn_and_split.

	* config/aarch64/iterators.md (NLOGICAL): New define_code_iterator.

2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.md (<optab><mode>3, one_cmpl<mode>2):
	Add SIMD-register variant.
	* config/aarch64/iterators.md (Vbtype): Add value for SI.

2014-12-19  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.md (subdi3, adddi3_aarch64): Don't penalize
	SIMD reg variant.

2014-12-19  Martin Liska  <mliska@suse.cz>

	PR ipa/63569
	* ipa-icf-gimple.c (func_checker::compare_operand): Add missing
	comparison for volatile flag.

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

	* doc/invoke.texi (ARM options): Remove mention of Advanced RISC
	Machines.

2014-12-19  Xingxing Pan  <xxingpan@marvell.com>

	* config/arm/cortex-a9-neon.md (cortex_a9_neon_vmov): Change
	reservation to cortex_a9_neon_dp.

2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (prepare_move_operands): Split HI/QImode load/store
	to two move insns via r0.

2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/predicates.md (arith_or_int_operand): New predicate.
	* config/sh/sh.md (addsi3): Use arith_or_int_operand for operand 2.
	Return fail if operands[0] and operands[1] are overlap when
	operands[2] is integer constant.
	(*addsi3_compact): Make it define_insn_and_split which splits
	reg0 := reg1 + constant to reg0 = constant and reg0 := reg0 + reg1.

2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh-protos.h (sh_movsf_ie_ra_split_p): Declare.
	* config/sh/sh.c (sh_movsf_ie_ra_split_p): New function.
	* config/sh/sh.md (movsi_ie): Use "mr" constraint for the 8-th
	altarnative of operand 0.
	(movesf_ie): Use "X" constraint instead of "Bsc".
	(movsf_ie_ra): New insn_and_split.
	(movsf): Use movsfie_ra when lra_in_progress is true.

2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/predicates.md (general_movsrc_operand): Allow only
	valid plus address expressions.
	(general_movdst_operand): Likewise.
	(t_reg_operand): Allow (zero_extend (reg t)).
	* config/sh/sh-protos.h (sh_hard_regno_caller_save_mode): Declare.
	* config/sh/sh.c (sh_hard_regno_caller_save_mode): New function.
	(sh_secondary_reload): Return NO_REGS instead of FPUL_REGS in one
	case.
	* config/sh/sh.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
	* config/sh/sh.md (untyped_call): Clobber function value
	registers before call.

2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_lra_p): New function.
	(TARGET_LRA_P): Define.
	(sh_legitimize_reload_address): Return false if sh_lra_p is true.
	* config/sh/sh.opt (mlra): New option.

2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* lra-constraints.c (process_address_1): Try if target can split
	displacement with targetm.legitimize_address_displacement.
	* target.def (legitimize_address_displacement): New hook.
	* targhooks.c (default_legitimize_address_displacement): New function.
	* targhooks.h (default_legitimize_address_displacement): Declare.
	* config/sh/sh.c (sh_legitimize_address_displacement): New function.
	(TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
	* doc/tm.texi.in (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): New hook.
	* doc/tm.texi: Regenerate.

2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* lra-constraints.c (get_equiv): Don't return memory equivalence
	when targetm.cannot_substitute_mem_equiv_p is true.
	* target.def (cannot_substitute_mem_equiv_p): New hook.
	* config/sh/sh.c (sh_cannot_substitute_mem_equiv_p): New function.
	(TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
	* doc/tm.texi.in (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): New hook.
	* doc/tm.texi: Regenerate.

2014-12-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* lra-constraints.c (process_address_1): Swap base_term and
	index_term if INDEX_REG_CLASS is assigned to base_term already
	when INDEX_REG_CLASS is a single register class.

2014-12-18  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-constraints.c (lra-constraints.c): Exchange places of sclass
	and dclass.

2014-12-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/64291
	* lra-remat.c (bad_for_rematerialization_p): Add UNPSEC_VLOATILE.
	(create_cands): Process only output reload insn with potential
	cands.

2014-12-18  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_call): Skip setting up RAX
	register for -mskip-rax-setup when there are no parameters
	passed in vector registers.
	* config/i386/i386.opt (mskip-rax-setup): New option.
	* doc/invoke.texi: Document -mskip-rax-setup.

2014-12-18  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): Handle shift
	by 64 by moving const0_rtx.
	(aarch64_ushr_simddi): Delete.

	* config/aarch64/aarch64.md (enum unspec): Delete UNSPEC_USHR64.

2014-12-18  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.md (enum "unspec"): Remove UNSPEC_SSHR64.

	* config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): Change shift
	amount to 63 if was 64.
	(aarch64_sshr_simddi): Remove.

2014-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* gcc/config/aarch64/aarch64.c (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL):
	Define.
	(aarch64_min_divisions_for_recip_mul): New function.

2014-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* config/aarch64/aarch64-protos.h (tune-params): Add code alignment
	tuning parameters.
	* gcc/config/aarch64/aarch64.c (generic_tunings): Add code alignment
	tuning parameters.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(aarch64_override_options): Use new alignment tunings.

2014-12-18  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/64330
	* ipa-icf.c (sem_variable::parse): Add checking
	for externally visible symbols and do not introduce
	an alias for an external declaration.

2014-12-18  Jan Hubicka  <hubicka@ucw.cz>

	PR bootstrap/63573
	* tree-inline.c (remap_gimple_stmt): Handle gimple_call_from_thunk_p
	predicate.

2014-12-18  Martin Liska  <mliska@suse.cz>

	PR ipa/64146
	* ipa-icf.c (sem_function::merge): Check for
	decl_binds_to_current_def_p is newly added to merge operation.

2014-12-18  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/62178
	* tree-ssa-loop-ivopts.c (cheaper_cost_with_cand): New function.
	(iv_ca_replace): New function.
	(try_improve_iv_set): New parameter try_replace_p.
	Break local optimal fixed-point by calling iv_ca_replace.
	(find_optimal_iv_set_1): Pass new argument to try_improve_iv_set.

2014-12-17  Dehao Chen  <dehao@google.com>

	* auto-profile.c (afdo_annotate_cfg): Invoke update_ssa in the right
	place.
	(auto_profile): Recompute inline summary after processing cgraph node.

2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh_treg_combine.cc (is_conditional_insn): New function.
	(cbranch_trace): Add member rtx* condition_rtx_in_insn, initialize it
	accordingly in constructor.
	(cbranch_trace::branch_condition_rtx_ref): New function.
	(cbranch_trace::branch_condition_rtx): Use branch_condition_rtx_ref.
	(sh_treg_combine::try_invert_branch_condition): Invert condition rtx
	in insn using reversed_comparison_code and validate_change instead of
	invert_jump_1.
	(sh_treg_combine::execute): Look for conditional insns in basic blocks
	in addition to conditional branches.
	* config/sh/sh.md (*movsicc_div0s): Remove combine patterns.

2014-12-17  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh_treg_combine.cc (sh_treg_combine::try_optimize_cbranch):
	Combine ccreg inversion and cbranch into inverted cbranch.

2014-12-17  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-constraints.c (process_alt_operands): Remove non
	allocatable hard regs when considering
	ira_prohibited_class_mode_regs.

2014-12-17  Jan Hubicka  <hubicka@ucw.cz>

	* sreal.h (sreal::normalize): Implement inline.
	(sreal::normalize_up): New function.
	(sreal::normalize_down): New function.
	* sreal.c (sreal::normalize): Remove.

2014-12-17  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md (generic_sched): Delete it.

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

	* config/msp430/msp430.c (msp430_asm_output_addr_const_extra): Fix
	unused argument warning.

2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2out.h (struct array_descr_info): Remove the base_decl field.
	* dwarf2out.c (enum dw_scalar_form): New.
	(struct loc_descr_context): New.
	(add_scalar_info): New.
	(add_bound_info): Add a context parameter.  Use add_scalar_info.
	(loc_list_from_tree): Add a context parameter.  Handle PLACEHOLDER_EXPR
	nodes for type-related expressions.  Likewise for base declarations.
	(loc_descriptor_from_tree): Add a context parameter.
	(subrange_type_die): Update calls to add_bound_info.
	(tls_mem_loc_descriptor): Likewise.
	(loc_list_for_address_of_addr_expr_of_indirect_ref): Add a context
	parameter.  Update calls to loc_list_from_tree.
	(add_subscript_info): Update calls to add_bound_info.
	(gen_array_type_die): Update calls to loc_list_from_tree and to
	add_bound_info.
	(descr_info_loc): Remove.
	(add_descr_info_field): Remove.
	(gen_descr_array_type_die): Switch add_descr_info_field calls into
	add_scalar_info/add_bound_info ones.
	(gen_subprogram_die): Update calls to loc_list_from_tree.
	(gen_variable_die): Likewise.

2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2out.c (print_loc_descr): New.
	(print_dw_val): New.
	(print_attribute): New.
	(print_loc_descr): New.
	(print_die): Use print_dw_val.
	(debug_dwarf_loc_descr): New.
	* dwarf2out.h (debug_dwarf_loc_descr): New declaration.

2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2out.c (gen_type_die_with_usage): Enable the array lang-hook
	even when (dwarf_version < 3 && dwarf_strict).
	(gen_descr_array_die): Do not output DW_AT_data_locationn,
	DW_AT_associated, DW_AT_allocated and DW_AT_byte_stride DWARF
	attributes when (dwarf_version < 3 && dwarf_strict).

2014-12-17  Pierre-Marie de Rodat  <derodat@adacore.com>

	* dwarf2out.h (enum array_descr_ordering): New.
	(array_descr_dimen): Add a bounds_type structure field.
	(struct array_descr_info): Add a field to hold index type information
	and another one to hold ordering information.
	* dwarf2out.c (gen_type_die_with_usage): Get the main variant before
	invoking the array descriptor language hook.  Initialize the
	array_descr_info structure before calling the lang-hook.
	(gen_descr_array_type_die): Use gen_type_die if not processing the main
	type variant.  Replace Fortran-specific code with generic one using
	this new field.  Add a GNAT descriptive type, if any.  Output type
	information for the array bound subrange, if any.

2014-12-17  H.J. Lu  <hongjiu.lu@intel.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/61296
	* config/i386/i386-opts.h (ix86_align_data): New enum.
	* config/i386/i386.c (ix86_data_alignment): Return the ABI
	alignment value for -malign-data=abi, the cachine line size
	for -malign-data=cacheline and the older GCC compatible
	alignment value for for -malign-data=compat.
	* config/i386/i386.opt (malign-data=): New.
	* doc/invoke.texi: Document -malign-data=.

2014-12-17  Marek Polacek  <polacek@redhat.com>

	PR middle-end/63568
	* match.pd: Add (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x pattern.

2014-12-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/64322
	* tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
	range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.

2014-12-17  Tobias Burnus  <burnus@net-b.de>

	PR fortran/54687
	* flag-types.h (gfc_init_local_real, gfc_fcoarray,
	gfc_convert): New enums; moved from fortran/.

2014-12-16  Jan Hubicka  <hubicka@ucw.cz>

	* fibonacci_heap.h (min): Return m_data instead of non-existing data.

2014-12-16  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (will_be_nonconstant_predicate): Consider
	return values of const calls as constants.
	(estimate_function_body_sizes): Expect calls to have false predicates.

2014-12-16  Jan Hubicka  <hubicka@ucw.cz>

	* hwint.c (abs_hwi, absu_hwi): Move to ...
	* hwint.h (abs_hwi, absu_hwi): ... here; make inline.

2014-12-16  Marek Polacek  <polacek@redhat.com>

	PR middle-end/64309
	* match.pd: Add ((1 << A) & 1) != 0 -> A == 0 and
	((1 << A) & 1) == 0 -> A != 0.

2014-12-16  Richard Biener  <rguenther@suse.de>

	* genmatch.c (parser::parser): Initialize capture_ids.
	(parser::parse_pattern): Properly allocate capture_ids before
	using them.  Set capture_ids to zero when its lifetime is
	supposed to finish.
	(parser::parse_simplify): Allocate capture_ids only if required.

2014-12-16  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>

	* sreal.c: Include math.h later.

2014-12-16  Felix Yang  <felix.yang@huawei.com>

	PR rtl-optimization/64240
	* ddg.c (mark_mem_use): Check *iter instead of *x.

2014-12-16  Martin Liska  <mliska@suse.cz>

	PR ipa/64278
	* sreal.c (sreal::operator*): Replace std::abs with absu_hwi.

2014-12-16  Igor Zamyatin  <igor.zamyatin@intel.com>

	* config/i386/i386.c (ix86_address_cost): Add explicit restriction
	to RTL level for the check for PIC register.

2014-12-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Move from here ...
	* config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): ... and here ...
	* config/i386/gnu-user-common.h (TARGET_CAN_SPLIT_STACK): ... to here.

2014-12-16  Chung-Ju Wu  <jasonwucj@gmail.com>

	PR target/64217
	* config/nds32/nds32.md (casesi_internal): Add '=r' for clobber
	register constraint.

2014-12-15  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.h: Remove SHORT_IMMEDIATES_SIGN_EXTEND.

2014-12-15  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/64043
	* tree-streamer.c (preload_common_nodes): Skip preloading
	of main_identifier_node, pid_type and optimization/option nodes.

2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/63397
	* ira-int.h (ira_overall_cost, ira_reg_cost, ira_mem_cost): Use
	int64_t.
	(ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
	* ira.c (ira_overall_cost, ira_overall_cost_before): Ditto.
	(ira_reg_cost, ira_mem_cost): Ditto.
	(ira_load_cost, ira_store_cost, ira_shuffle_cost): Ditto.
	(calculate_allocation_cost, do_reload): Use the right
	format for int64_t values.

2014-12-15  Jan Hubicka  <hubicka@ucw.cz>

	* sreal.h (to_double): New method.
	(shift): Do not ICE on 0.
	* sreal.c: Include math.h
	(sreal::to_double): New.

2014-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/64316
	* simplify-rtx.c (simplify_relational_operation_1): For
	(eq/ne (and x y) x) and (eq/ne (and x y) y) optimizations use
	CONST0_RTX instead of const0_rtx.

2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/62642
	* ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.

2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-int.h (ira_prohibited_class_mode_regs): Remove.
	(struct target_ira_int): Move x_ira_prohibited_class_mode_regs to
	...
	* ira.h (struct target_ira): ... here.
	(ira_prohibited_class_mode_regs): Define.
	* lra-constraints.c (process_alt_operands): Add one more condition
	to refuse alternative when reload pseudo of given class can not
	hold value of given mode.

2014-12-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64312
	* tree-ssa-sccvn.c (vn_reference_lookup_pieces): Use
	vuse_ssa_val as callback to walk_non_aliased_vuses.
	(vn_reference_lookup): Likewise.

2014-12-15  Segher Boessenkool  <segher@kernel.crashing.org>

	* gcc/config/rs6000/rs6000.md (*add>mode>3_imm_dot,
	*add<mode>3_imm_dot2): Change the constraint for the second
	alternative for operand 1 from "r" to "b".

2014-12-15  Richard Biener  <rguenther@suse.de>

	* vec.h (vec::safe_grow): Guard against a grow to zero size.

2014-12-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/64295
	* match.pd (X / CST -> X * (1 / CST): Use const_binop instead of
	fold_binary to compute the constant to multiply with.

2014-12-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/64246
	* cfgloop.c (mark_loop_for_removal): Make safe against multiple
	invocations on the same loop.

2014-12-15  Marek Polacek  <polacek@redhat.com>

	PR middle-end/64292
	* fold-const.c (negate_expr_p): Add INTEGRAL_TYPE_P check.

2014-12-15  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
	(CTZ_DEFINED_VALUE_AT_ZERO): Update to support more modes.

2014-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64265
	* tsan.c (instrument_func_entry): Insert __tsan_func_entry
	call on edge from entry block to single succ instead
	of after labels of single succ of entry block.

2014-12-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64284
	* tree-ssa-threadupdate.c (duplicate_seme_region): Mark
	the loop for removal if we copied the loop header.

2014-12-14  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61602
	* cgraph.h (ipa_discover_readonly_nonaddressable_vars): Return bool.
	* ipa.c (set_writeonly_bit): Track if reference was removed.
	(ipa_discover_readonly_nonaddressable_vars): Return true if any
	references was removed.
	* ipa-reference.c (propagate): Return TODO_remove_functions if
	reference was removed.

2014-12-14  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (process_references): Fix conditoinal on flag_optimize

2014-12-14  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61558
	* symtab.c (symbol_table::insert_to_assembler_name_hash
	symbol_table::unlink_from_assembler_name_hash): Do not ICE when
	DECL_ASSEMBLER_NAME is NULL.

2014-12-14  Jan Hubicka  <hubicka@ucw.cz>

	* cgraphunit.c (analyze_functions): Always analyze targets of aliases.

2014-12-14  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/64043
	* tree.c (virtual_method_call_p): Return false when OTR type has
	no BINFO.

2014-12-14  Jan Hubicka  <hubicka@ucw.cz>

	* cgraphunit.c (analyze_functions): Do not analyze extern inline
	funtions when not optimizing; skip comdat locals.

2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/64037
	* combine.c (setup_incoming_promotions): Pass the argument
	before any promotions happen to promote_function_mode.

2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/nvptx.h (ASM_OUTPUT_ALIGN): Define as a C statment.

2014-12-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/64110
	* lra-constraints.c (process_alt_operands): Refuse alternative
	when reload pseudo of given class can not hold value of given
	mode.

2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>

	* gimple-walk.c (walk_gimple_op) <GIMPLE_OMP_FOR>: Also check
	intermediate walk_tree results for for_incr.
	<GIMPLE_OMP_TARGET>: Walk child_fn and data_arg, too.
	<GIMPLE_OMP_CRITICAL, GIMPLE_OMP_ATOMIC_STORE>: Pretty printing.

2014-12-12  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/64182
	* wide-int.h (wi::div_round, wi::mod_round): Fix rounding of tied
	cases.
	* double-int.c (div_and_round_double): Fix handling of unsigned
	cases.  Use same rounding approach as wide-int.h.

2014-12-12  Marek Polacek  <polacek@redhat.com>

	PR middle-end/64274
	* fold-const.c (fold_binary_loc): Add ANY_INTEGRAL_TYPE_P check.

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

	PR tree-optimization/64269
	* tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
	len2 or diff are too large.

2014-12-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/64280
	* tree-cfg.c (replace_uses_by): Guard assert properly.

2014-12-12  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md: Add use of zex instruction.

2014-12-12  Marc Glisse  <marc.glisse@inria.fr>

	* real.h (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
	HONOR_SIGN_DEPENDENT_ROUNDING): Replace macros with 3 overloaded
	declarations.
	* real.c (HONOR_NANS): Fix indentation.
	(HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
	HONOR_SIGN_DEPENDENT_ROUNDING): Define three overloads.
	* builtins.c (fold_builtin_cproj, fold_builtin_signbit,
	fold_builtin_fmin_fmax, fold_builtin_classify): Simplify argument
	of HONOR_*.
	* fold-const.c (operand_equal_p, fold_comparison, fold_binary_loc):
	Likewise.
	* gimple-fold.c (gimple_val_nonnegative_real_p): Likewise.
	* ifcvt.c (noce_try_move, noce_try_minmax, noce_try_abs): Likewise.
	* omp-low.c (omp_reduction_init): Likewise.
	* rtlanal.c (may_trap_p_1): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Likewise.
	* tree-ssa-dom.c (record_equality, record_edge_info): Likewise.
	* tree-ssa-phiopt.c (value_replacement, abs_replacement): Likewise.
	* tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.

2014-12-12  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (ipa_inline): Fix condition on when
	TODO_remove_unreachable_functions is needed.

2014-12-12  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (possible_polymorphic_call_targets): Return early
	if otr_type has no BINFO.

2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	PR rtl-optimization/63917
	* ifcvt.c (cc_in_cond): New function.
	(end_ifcvt_sequence): Make sure new generated insns do not clobber CC.
	(noce_process_if_block, check_cond_move_block): Check CC references.

2014-12-11  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64-protos.h (tune_params): Add align field.
	* config/aarch64/aarch64.c (generic_tunings): Specify align.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(aarch64_override_options): Set align_loops, align_jumps,
	align_functions based on what the tuning struct.

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

	* doc/md.texi (Insn Lengths): Fix description of (pc).

2014-12-11  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61324
	* passes.c (execute_todo): Update call of remove_unreachable_nodes.
	* ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
	* cgraphunit.c (symbol_table::process_new_functions): Add
	IPA_SSA_AFTER_INLINING.
	(ipa_passes): Update call of remove_unreachable_nodes.
	(symbol_table::compile): Remove call of remove_unreachable_nodes.
	* ipa-inline.c (inline_small_functions): Do not ICE with
	-flto-partition=none
	(ipa_inline): Update symtab->state; fix formatting
	update call of remove_unreachable_nodes.
	* passes.c (execute_todo): Update call of remove_unreachable_nodes.
	* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
	* cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
	(remove_unreachable_nodes): Update.
	* ipa.c (process_references): Keep external references only
	when optimizing.
	(walk_polymorphic_call_targets): Keep possible polymorphic call
	target only when devirtualizing.
	(symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
	parameter.
	(ipa_single_use): Update comment.
	* ipa-pure-const.c (cdtor_p): New function.
	(propagate_pure_const): Track if some cdtor was turned pure/const.
	(execute): Return TODO_remove_functions if needed.
	* ipa-comdats.c (ipa_comdats): Update comment.

2014-12-11  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
	parameter.
	(gen_inlined_subroutine_die): Same.
	(gen_block_die): Same.
	(decls_for_scope): Same.

2014-12-11  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
	AARCH64_FL_FOR_ARCH8.
	* config/aarch64/aarch64.c (all_cores): Use FLAGS from
	aarch64-cores.def file only.

2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* diagnostic.c (diagnostic_action_after_output): Make it extern.
	Take diagnostic_t argument instead of diagnostic_info. Count also
	DK_WERROR towards max_errors.
	(diagnostic_report_diagnostic): Update call according to the above.
	(error_recursion): Likewise.
	* diagnostic.h (diagnostic_action_after_output): Declare.
	* pretty-print.c (pp_formatted_text_data): Delete.
	(pp_append_r): Call output_buffer_append_r.
	(pp_formatted_text): Call output_buffer_formatted_text.
	(pp_last_position_in_text): Call output_buffer_last_position_in_text.
	* pretty-print.h (output_buffer_formatted_text): New.
	(output_buffer_append_r): New.
	(output_buffer_last_position_in_text): New.

2014-12-11  Kyrylo Tkachov  kyrylo.tkachov@arm.com

	* config/aarch64/aarch64.c (aarch64_parse_extension): Update error
	message to say +no only when removing extension.

2014-12-11  Andrew MacLeod  <amacleod@redhat.com>

	* config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
	for generator file.  Add comment indicating it is a generated file.
	* config/tilepro/mul-tables.c: Update generated file.
	* config/tilegx/mul-tables.c: Likewise.

2014-12-11  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (try_combine): Do not allow combining a PARALLEL I2
	with a register move I3 if that I2 is an asm.

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

	* config/arm/arm_neon.h (vrndqn_f32): Rename to...
	(vrndnq_f32): ... this.
	(vrndqa_f32): Rename to...
	(vrndaq_f32): ... this.
	(vrndqp_f32): Rename to...
	(vrndpq_f32): ... this.
	(vrndqm_f32): Rename to...
	(vrndmq_f32): ... this.
	(vrndx_f32): New intrinsic.
	(vrndxq_f32): Likewise.

2014-12-11  Marek Polacek  <polacek@redhat.com>

	* fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
	(extract_muldiv_1): Likewise.
	(maybe_canonicalize_comparison_1): Likewise.
	(fold_comparison): Likewise.
	(tree_binary_nonnegative_warnv_p): Likewise.
	(tree_binary_nonzero_warnv_p): Likewise.
	* gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
	* tree-scalar-evolution.c (simple_iv): Likewise.
	(scev_const_prop): Likewise.
	* tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
	* tree-vect-generic.c (expand_vector_operation): Likewise.
	* tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
	(ANY_INTEGRAL_TYPE_P): Define.
	(TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
	Add ANY_INTEGRAL_TYPE_CHECK.
	(any_integral_type_check): New function.

2014-12-11  Tobias Burnus  <burnus@net-b.de>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* error.c (gfc_get_terminal_width): Renamed from
	get_terminal_width and use same-named common function.
	(gfc_error_init_1): Update call.

2014-12-10  Aldy Hernandez  <aldyh@redhat.com>

	* gdbhooks.py (class DWDieRefPrinter): New class.
	(build_pretty_printer): Register dw_die_ref's.

2014-12-10  Ilya Tocar  <ilya.tocar@intel.com>

	* config.gcc: Support "knl".
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	PROCESSOR_KNL.
	* config/i386/i386.c (m_KNL): Define.
	(processor_target_table): Add "knl".
	(PTA_KNL): Define.
	(ix86_issue_rate): Add PROCESSOR_KNL.
	(ix86_adjust_cost): Ditto.
	(ia32_multipass_dfa_lookahead): Ditto.
	(get_builtin_code_for_version): Handle "knl".
	(fold_builtin_cpu): Ditto.
	* config/i386/i386.h (TARGET_KNL): Define.
	(processor_type): Add PROCESSOR_KNL.
	* config/i386/i386.md (attr "cpu"): Add knl.
	* config/i386/x86-tune.def: Add m_KNL.

2014-12-10  Jan Hubicka  <hubicka@ucw.cz>

	* doc/invoke.texi: (-devirtualize-at-ltrans): Document.
	* lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
	when it is not streamed to the given ltrans.
	(compute_ltrans_boundary): Make code adding all polymorphic
	call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
	* common.opt (fdevirtualize-at-ltrans): New flag.

2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>

	* varpool.c (varpool_node::get_create): Force output of vars with
	"omp declare target" attribute.

2014-12-10  Marc Glisse  <marc.glisse@inria.fr>

	* real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
	* real.c: Include rtl.h and options.h.
	(HONOR_NANS): Define three overloads.
	* builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
	Simplify argument of HONOR_NANS.
	* fold-const.c (combine_comparisons, fold_truth_not_expr,
	fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
	fold_comparison, fold_binary_loc): Likewise.
	* ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
	* ipa-inline-analysis.c (add_clause,
	set_cond_stmt_execution_predicate): Likewise.
	* match.pd: Likewise.
	* rtlanal.c (may_trap_p_1): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Likewise.
	* tree-if-conv.c (parse_predicate): Likewise.
	* tree-ssa-ccp.c (valid_lattice_transition): Likewise.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
	* tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
	* tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
	* tree-ssa-tail-merge.c (gimple_equal_p): Likewise.

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

	PR tree-optimization/62021
	* omp-low.c (simd_clone_adjust_return_type): Use
	vector of pointer_sized_int_node types instead vector of pointer
	types.
	(simd_clone_adjust_argument_types): Likewise.

2014-12-10  Jakub Jelinek  <jakub@redhat.com>
	    Evgeny Stupachenko  <evstupac@gmail.com>

	PR target/64252
	* config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
	set dcopy.target to a new pseudo.

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*add<mode>3): Remove condition.

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/40x.md (ppc403-compare): Remove "compare".
	config/rs6000/440.md (ppc440-compare): Remove "compare".
	config/rs6000/476.md (ppc476-compare): Remove "compare".
	config/rs6000/601.md (ppc601-compare): Remove "compare".
	config/rs6000/603.md (ppc603-compare): Remove "compare".
	config/rs6000/6xx.md (ppc604-compare): Remove "compare".
	config/rs6000/7450.md (ppc7450-compare): Remove "compare".
	config/rs6000/7xx.md (ppc750-compare): Remove "compare".
	config/rs6000/8540.md (ppc8540_su): Remove "compare".
	config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
	"compare".
	config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
	config/rs6000/e500mc.md (e500mc_su): Remove "compare".
	config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
	config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
	config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
	config/rs6000/mpc.md (mpccore-compare): Remove "compare".
	config/rs6000/power4.md (power4-compare): Remove "compare".
	config/rs6000/power5.md (power5-compare): Remove "compare".
	config/rs6000/power6.md (power6-compare): Remove "compare".
	config/rs6000/power7.md (power7-compare): Remove "compare".
	config/rs6000/power8.md (power8-compare): Remove "compare".  Update
	comment.
	config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
	(three times).
	(is_cracked_insn): Remove TYPE_COMPARE case.
	(insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
	config/rs6000/rs6000.md (type): Remove "compare".
	(cell_micro): Remove "compare".
	config/rs6000/rs64.md (rs64a-compare): Remove "compare".

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
	Change type from "compare" to "two".

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64180
	* config/rs6000/predicates.md (unsigned_comparison_operator): New.
	(signed_comparison_operator): New.
	* config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
	* config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
	(rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
	* config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
	add to addc,adde directly, if !TARGET_POWERPC64.
	(sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
	if !TARGET_POWERPC64.
	(neg<mode>2): Delete expander.
	(*neg<mode>2): Rename to "neg<mode>2".
	(addti3, subti3): Delete.
	(addti3, subti3): New expanders.
	(*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
	(cstore<mode>4_unsigned): New expander.
	(cstore<mode>4): Allow GPR as output (not just SI).  Rewrite.
	(cstore<mode>4 for FP): Remove superfluous quotes.
	(*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
	*compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
	*neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
	compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
	splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
	*leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
	*and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
	*plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
	*geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
	*and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
	*plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
	*neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
	Delete.
	(eq<mode>3, ne<mode>3): New.
	(*neg_eq_<mode>, *neg_ne_<mode>): New.
	(*plus_eq_<mode>, *plus_ne_<mode>): New.
	(*minus_eq_<mode>, *minus_ne_<mode>): New.

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64180
	* config/rs6000/predicates.md (adde_operand): New.
	* config/rs6000/rs6000.md (add<mode>3_carry): New.
	(*add<mode>3_imm_carry_pos): New.
	(*add<mode>3_imm_carry_0): New.
	(*add<mode>3_imm_carry_m1): New.
	(*add<mode>3_imm_carry_neg): New.
	(add<mode>3_carry_in): New.
	(*add<mode>3_carry_in_internal): New.
	(add<mode>3_carry_in_0): New.
	(add<mode>3_carry_in_m1): New.
	(subf<mode>3_carry): New.
	(*subf<mode>3_imm_carry_0): New.
	(*subf<mode>3_imm_carry_m1): New.
	(subf<mode>3_carry_in): New.
	(*subf<mode>3_carry_in_internal): New.
	(subf<mode>3_carry_in_0): New.
	(subf<mode>3_carry_in_m1): New.
	(subf<mode>3_carry_in_xx): New.

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64180
	* config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
	"*add<mode>3".
	(*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
	Delete.
	(*add<mode>3_dot, *add<mode>3_dot2): New.
	(*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64180
	* config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
	alternative.

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64180
	* config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
	*ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
	to "b".  Increase length.
	(splitters for these): Split to cmp+addi instead of addic.

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64180
	* config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
	(macho_low_di): Ditto.
	* config/rs6000/rs6000.md (*largetoc_low): Ditto.
	(tocref<mode>): Ditto.
	(elf_low): Ditto.
	* config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
	(mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
	(mov_si<mode>_e500_subreg4_elf_low_be): Ditto.  Reformat condition.
	(mov_si<mode>_e500_subreg4_elf_low_le): Ditto.

2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64180
	* config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
	(rs6000_md_asm_clobbers): New function.

2014-12-10  Felix Yang  <felix.yang@huawei.com>

	* config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
	declaration of removed function.

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

	* tree-ssa-loop-im.c
	(move_computations_dom_walker::before_dom_children): Clear
	SSA_NAME_RANGE_INFO on moved stmts.

2014-12-10  Martin Liska  <mliska@suse.cz>

	* sreal.c (sreal::shift_right): New implementation
	for int64_t as m_sig.
	(sreal::normalize): Likewise.
	(sreal::to_int): Likewise.
	(sreal::operator+): Likewise.
	(sreal::operator-): Likewise.
	(sreal::operator*): Likewise.
	(sreal::operator/): Likewise.
	(sreal::signedless_minus): Removed.
	(sreal::signedless_plus): Removed.
	(sreal::debug): const keyword is added.
	* sreal.h (sreal::operator<): New implementation
	for int64_t as m_sig.
	* ipa-inline.c (recursive_inlining): LONG_MIN is replaced
	with sreal::min ().

2014-12-10  Martin Liska  <mliska@suse.cz>

	* gimple-iterator.h (gsi_start_bb_nondebug): New function.
	* ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
	replaces loop based on precomputed number of non-debug statements.

2014-12-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>

	* config/linux.c (linux_has_ifunc_p): Remove.
	* config/linux.h (TARGET_HAS_IFUNC_P): Use default version.

2014-12-10  Mantas Mikaitis  <mantas.mikaitis@arm.com>

	* contrib/check_GNU_style.sh (col): Got rid of cut operation
	from the pipe chain and instead added cut inside awk command.

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

	PR tree-optimization/64191
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
	mark clobbers as necessary.
	(eliminate_unnecessary_stmts): Keep clobbers live if we can.

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

	PR target/63594
	* config/i386/sse.md (vec_dupv4sf): Move after
	<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
	(*vec_dupv4si, *vec_dupv2di): Likewise.
	(<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
	(<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
	pattern.
	(*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
	TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
	is set too).
	* config/i386/i386.c (enum ix86_builtins): Remove
	IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
	IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
	IX86_BUILTIN_PBROADCASTQ512_MEM.
	(bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
	__builtin_ia32_pbroadcastq256_gpr_mask and
	__builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
	regardless of OPTION_MASK_ISA_64BIT.
	* config/i386/avx512fintrin.h (_mm512_set1_epi64,
	_mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
	builtins regardless of whether TARGET_64BIT is defined or not.
	* config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
	_mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
	Likewise.

	* config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
	Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).

2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53513
	* doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.

2014-12-10  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/61686
	* tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
	p->high.

2014-12-10  Kito Cheng  <kito@0xlab.org>

	* doc/libgcc.texi: Update text to match implementation in
	libgcc/libgcc2.c

2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>

	* plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
	gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
	doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
	param_is.

2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53513
	* doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
	Document it.

2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR middle-end/64225
	* tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
	for BUILT_IN_POW when flag_errno_math is present.

2014-12-09  Ilya Verbin  <ilya.verbin@intel.com>

	* lto-wrapper.c (compile_offload_image): Start processing in_argv
	from 0 instead of 1.
	(run_gcc): Put offload objects into offload_argv, put LTO objects and
	possible preceding arguments into lto_argv.
	Pass offload_argv to compile_images_for_offload_targets instead of argv.
	Use lto_argv for LTO recompilation instead of argv.

2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>

	* doc/install.texi: Describe --with-aix-soname option.

2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.

2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/63870
	* config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
	Delete.
	* config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
	Delete.
	* config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
	vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
	(__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
	__aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
	__aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
	__aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
	__aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
	__aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
	__aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
	__aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
	__aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
	__aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
	__aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
	__aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
	(__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
	'q2' argument.
	(__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
	__aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
	__aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
	__aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
	__aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
	__aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
	__aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
	__aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
	__aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
	__aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
	__aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
	__aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
	to __aarch64_vdup_lane_any.
	(vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
	vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
	vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
	vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
	vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
	vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
	vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
	vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
	vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
	vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
	vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
	vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
	vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
	vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
	vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
	vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
	vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
	vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
	vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
	vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
	vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
	vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
	vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
	vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
	vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
	vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
	vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
	vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
	vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
	vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
	__aarch64_vget_lane_any.

2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/63870
	* gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
	message for SIMD_ARG_CONSTANT.

2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/63870
	* config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
	TYPES_BINOPV): Delete.
	(enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
	AARCH64_SIMD_PATTERN_START.
	(aarch64_init_simd_builtins): Register
	__builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
	(aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
	AARCH64_SIMD_PATTERN_START.

	* config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
	* config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.

	* config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
	(__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
	__aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
	vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
	vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
	vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
	vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
	vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.

2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/63950
	* config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
	New.
	(aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
	(vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
	vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
	vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
	number of lanes.
	(vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
	vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
	vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
	__aarch64_vset_lane_any rather than vset_lane_xxx.

2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.md (absdi2): Remove scratch operand by
	earlyclobbering result operand.

	* config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
	Remove final qualifier_internal.
	(aarch64_fold_builtin): Stop folding abs builtins, except on floats.

2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
	tuning parameters.
	* gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
	Define.
	(aarch64_reassociation_width): New function.
	(generic_tunings): Add reassociation tuning parameters.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.

2014-12-09  Andrew Pinski  <apinski@cavium.com>
	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
	(thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
	(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.

2014-12-09  David Malcolm  <dmalcolm@redhat.com>

	PR jit/64166
	* dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
	New function.
	(gcc::dump_manager::get_dump_file_name): Split out bulk of
	implementation into a new overloaded variant taking a
	dump_file_info *.
	* dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
	New function.
	(gcc::dump_manager::get_dump_file_name): New overloaded variant of
	this function, taking a dump_file_info *.

2014-12-09  Uros Bizjak  <ubizjak@gmail.com>

	PR bootstrap/64213
	Revert:
	2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/64037
	* combine.c (setup_incoming_promotions): Pass the argument
	before any promotions happen to promote_function_mode.

2014-12-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64193
	* tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
	and valueize the VUSE before looking up the def stmt.
	* tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
	* tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
	to walk_non_aliased_vuses.
	(vn_reference_lookup): Likewise.
	* tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
	callback to walk_non_aliased_vuses.

2014-12-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/64199
	* fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.

2014-12-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/64191
	* tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
	not relevant (nor are their uses).

2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>

	* lto/lto-partition.c (privatize_symbol_name): Correctly
	privatize instrumentation clones.

2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>

	* lto-cgraph.c (input_cgraph_1): Don't break existing
	instrumentation clone references.
	* lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
	instrumented_version references appropriately.

2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR bootstrap/63995
	* tree-chkp.c (chkp_make_static_bounds): Share bounds var
	between nodes sharing assembler name.

2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/64204
	* config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
	constant moves if -mupper-regs-df.

	* config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
	0.0L to TFmode.
	(movtd_64bit_nodm): Likewise.
	(mov<mode>_32bit, FMOVE128 case): Likewise.

2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>

	* simplify-rtx.c (simplify_relational_operation_1): Handle
	simplification identities for BICS patterns.

2014-12-08  Trevor Saunders  <tsaunders@mozilla.com>

	* config/nvptx/nvptx.c: Convert htabs to hash_table.

2014-12-08  David Edelsohn  <dje.gcc@gmail.com>

	PR target/64226
	* config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
	[SYMBOL_REF]: Do not explicitly call create_TOC_reference for
	TARGET_TOC. Always use rs6000_emit_move.

2014-12-08  Mark Wielaard  <mjw@redhat.com>

	PR debug/60782
	* dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.

2014-11-15  David Wohlferd <dw@LimeGreenSocks.com>

	PR target/61692
	* cfgexpand.c (expand_asm_operands): Count all inline asm params.

2014-12-08  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* cgraph.h (xstrdup_for_dump): New function.
	* cgraph.c (cgraph_node::get_create): Replace use of xstrdup
	within fprintf with xstrdup_for_dump.
	(cgraph_edge::make_speculative): Likewise.
	(cgraph_edge::resolve_speculation): Likewise.
	(cgraph_edge::redirect_call_stmt_to_callee): Likewise.
	(cgraph_node::dump): Likewise.
	* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
	* ipa-cp.c (perhaps_add_new_callers): Likewise.
	* ipa-inline.c (report_inline_failed_reason): Likewise.
	(want_early_inline_function_p): Likewise.
	(edge_badness): Likewise.
	(update_edge_key): Likewise.
	(flatten_function): Likewise.
	(inline_always_inline_functions): Likewise.
	* ipa-profile.c (ipa_profile): Likewise.
	* ipa-prop.c (ipa_print_node_jump_functions): Likewise.
	(ipa_make_edge_direct_to_target): Likewise.
	(remove_described_reference): Likewise.
	(propagate_controlled_uses): Likewise.
	* ipa-utils.c (ipa_merge_profiles): Likewise.

2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR ipa/64049
	* ipa-polymorphic-call.c
	(pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.

2014-12-08  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
	New define_insn.
	* (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
	Likewise.

2014-12-08  Felix Yang  <felix.yang@huawei.com>
	    Haijian Zhang  <z.zhanghaijian@huawei.com>
	    Jiji Jiang  <jiangjiji@huawei.com>
	    Pengfei Sui  <suipengfei@huawei.com>

	* config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
	builtin functions.
	(vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
	vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
	(vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
	vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
	vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
	vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
	vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
	vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
	vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
	vrsubhn_high_u64): Likewise.
	* config/aarch64/iterators.md (VDQ_SI): New mode iterator.
	* config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
	* config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
	* config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
	subhn2, rsubhn2, urecpe): New builtins.

2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
	* config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.

2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
	(expand_vec_perm_vpermi2_vpshub2): New.
	(ix86_expand_vec_perm_const_1): Use it.
	(ix86_vectorize_vec_perm_const_ok): Handle v64qi.
	* config/i386/sse.md (VEC_PERM_CONST): Add v64qi.

2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-chkp.c (chkp_build_returned_bound): Don't predict
	return bounds for strchr calls.

2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-chkp.c (chkp_call_returns_bounds_p): New.
	(chkp_build_returned_bound): Use zero bounds as
	returned by calls not returning bounds.

2014-12-08  Richard Biener  <rguenther@suse.de>

	* builtins.c (fold_builtin_0): Remove unused ignore parameter.
	(fold_builtin_1): Likewise.
	(fold_builtin_3): Likewise.
	(fold_builtin_varargs): Likewise.
	(fold_builtin_2): Likewise.  Do not fold stpcpy here.
	(fold_builtin_n): Adjust.
	(fold_builtin_stpcpy): Move to gimple-fold.c.
	(gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
	(gimple_fold_builtin): Fold stpcpy here.

2014-12-07  Trevor Saunders  <tsaunders@mozilla.com>

	* symtab.c (symtab_node::verify): Check for section attribute before
	asserting something isn't in a section and a comdat group.

2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/50751
	* config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.

2014-12-07  Eric Botcazou  <ebotcazou@adacore.com>

	* compare-elim.c: Fix head comment.
	(conforming_compare): Remove redundant test.
	(can_eliminate_compare): New function extracted from...
	(before_dom_children): ...here.  Use it, replace direct uses of
	flag_non_call_exceptions and tidy up.
	(maybe_select_cc_mode): Tidy up.

2014-12-07  Felix Yang  <felix.yang@huawei.com>
	    Shanyao Chen  <chenshanyao@huawei.com>

	* config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
	patterns.
	* config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
	builtins.
	* config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
	vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
	vcntq_u8): Rewrite using builtin functions.

2014-12-07  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (symtab_node::equal_address_to): New function.
	* cgraph.h (symtab_node::equal_address_to): Declare.
	* fold-const.c (fold_comparison, fold_binary_loc): Use it.
	* c-family/c-common.c: Refuse weaks for symbols that can not change
	visibility.

2014-12-07  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (Warning Options): Fix spelling and grammar.

2014-12-06  James Greenhalgh  <james.greenhalgh@arm.com>
	    Sebastian Pop  <s.pop@samsung.com>
	    Brian Rzycki  <b.rzycki@samsung.com>

	PR tree-optimization/54742
	* params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
	max-fsm-thread-paths): New.

	* doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
	max-fsm-thread-paths): Documented.

	* tree-cfg.c (split_edge_bb_loc): Export.
	* tree-cfg.h (split_edge_bb_loc): Declared extern.

	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
	original value of cond when simplification fails.
	(fsm_find_thread_path): New.
	(fsm_find_control_statement_thread_paths): New.
	(thread_through_normal_block): Call find_control_statement_thread_paths.

	* tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
	EDGE_FSM_THREAD.
	(verify_seme): New.
	(duplicate_seme_region): New.
	(thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
	calling duplicate_seme_region.

	* tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.

2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/64200
	* config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
	for TARGET_INLINE_STRINGOPS_DYNAMICALLY.

2014-12-05  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64170
	* sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
	non-NULL, call maybe_get_dominating_check on it even if g is
	non-NULL.

2014-12-05  Jeff Law  <law@redhat.com>

	* doc/md.texi: Note problems using function calls to determine
	insn lengths and point readers to a potential workaround.

2014-12-05  Andreas Schwab  <schwab@linux-m68k.org>

	* combine.c (is_parallel_of_n_reg_sets)
	(can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.

2014-12-05  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
	than CF10 so 2 is appended on the code.
	* config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
	(bswap<mode>2): This so it matches for the optabs.

2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* regrename.c (find_best_rename_reg): Rename to ...
	(find_rename_reg): This. Also add a parameter to skip tick check.
	* regrename.h: Likewise.
	* config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.

2014-12-05  Martin Jambor  <mjambor@suse.cz>

	PR ipa/64192
	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
	from bits to bytes after checking they are byte-aligned.

2014-12-05  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
	* config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
	* config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
	IDENT to SCHED.

2014-12-05  Bin Cheng  <bin.cheng@arm.com>

	* config/aarch64/aarch64.md (load_pair<mode>): Split to
	load_pairsi, load_pairdi, load_pairsf and load_pairdf.
	(load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
	from load_pair<mode>.  New alternative to support int/fp
	registers in fp/int mode patterns.
	(store_pair<mode>:): Split to store_pairsi, store_pairdi,
	store_pairsf and store_pairdi.
	(store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
	from store_pair<mode>.  New alternative to support int/fp
	registers in fp/int mode patterns.
	(*load_pair_extendsidi2_aarch64): New pattern.
	(*load_pair_zero_extendsidi2_aarch64): New pattern.
	(aarch64-ldpstp.md): Include.
	* config/aarch64/aarch64-ldpstp.md: New file.
	* config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
	New.
	(extract_base_offset_in_addr): New.
	(aarch64_operands_ok_for_ldpstp): New.
	(aarch64_operands_adjust_ok_for_ldpstp): New.
	* config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
	(TARGET_SCHED_FUSION_PRIORITY): New hook.
	(fusion_load_store): New functon.
	(extract_base_offset_in_addr): New function.
	(aarch64_gen_adjusted_ldpstp): New function.
	(aarch64_sched_fusion_priority): New function.
	(aarch64_operands_ok_for_ldpstp): New function.
	(aarch64_operands_adjust_ok_for_ldpstp): New function.

2014-12-05  Olivier Hainque  <hainque@adacore.com>

	* defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
	* dwarf2cfi.c (init_one_dwarf_reg_size): Honor
	DWARF_REG_TO_UNWIND_COLUMN.

2014-12-05  Olivier Hainque  <hainque@adacore.com>

	* dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
	one particular reg for expand_builtin_init_dwarf_reg_sizes.
	(expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
	account for dwarf register spans.

2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/64003
	* config/i386/i386.md (*jcc_1_bnd): New.
	(*jcc_2_bnd): New.
	(jump_bnd): New.
	(*jcc_1): Remove bnd prefix.
	(*jcc_2): Likewise.
	(jump): Likewise.

2014-12-05  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
	selected_tune.
	(aarch64_override_options): Use selected_cpu's tuning.

2014-12-05  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
	alignment to section name. Increase default alignment to word.

2014-12-05  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
	(cgraph_edge): New method redirect_callee_duplicating_thunks.
	* cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
	created thunks.
	(redirect_edge_duplicating_thunks): Turned into edge method
	redirect_callee_duplicating_thunks.
	(cgraph_node::expand_all_artificial_thunks): New method.
	(create_clone): Call expand_all_artificial_thunks.
	* ipa-cp.c (perhaps_add_new_callers): Call
	redirect_callee_duplicating_thunks instead of redirect_callee.
	Also call expand_all_artificial_thunks.

2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/64056
	* doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target
	Keywords.

2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* diagnostic.h (diagnostic_expand_location): New inline function.
	* diagnostic.c (diagnostic_build_prefix): Use it.
	(diagnostic_show_locus): Likewise.

2014-12-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/64189
	* configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
	* configure: Regenerated.

2014-12-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* diagnostic.c (diagnostic_color_init): New.
	* diagnostic.h: Declare.
	* gcc.c (driver::global_initializations): Use it.
	(driver_handle_option): Handle -fdiagnostics-color_.
	* toplev.c: Do not include diagnostic-color.h.
	(process_options): Do not initialize color diagnostics here.
	* common.opt (fdiagnostics-color=): Add Driver.
	* opts-global.c (init_options_once): Initialize color here.
	* opts.c (common_handle_option): Use diagnostics_color_init.
	* diagnostic-color.h: Fix comment.

2014-12-04  David Malcolm  <dmalcolm@redhat.com>

	* tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
	(NIY): Likewise.
	(buffer): Rename this variable to...
	(tree_pp): ...this.

	(do_niy): Rename param from "buffer" to "pp".
	(dump_decl_name): Likewise.
	(dump_function_name): Likewise.
	(dump_function_declaration): Likewise.
	(dump_array_domain): Likewise.
	(dump_omp_clause): Likewise.
	(dump_omp_clauses): Likewise.
	(dump_location): Likewise.
	(dump_block_node): Likewise.
	(dump_generic_node): Likewise.
	(print_declaration): Likewise.
	(print_struct_decl): Likewise.
	(print_call_name): Likewise.
	(pretty_print_string): Likewise.
	(newline_and_indent): Likewise.

	(print_generic_decl): Update for renaming of "buffer" to
	"tree_pp".
	(print_generic_stmt): Likewise.
	(print_generic_stmt_indented): Likewise.
	(print_generic_expr): Likewise.
	(maybe_init_pretty_print): Likewise.

2014-12-04  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* tree-pretty-print.c: Eliminate include of <new>.
	(buffer): Convert this variable from a pretty_printer to a
	pretty_printer *.
	(initialized): Eliminate this variable in favor of the NULL-ness
	of "buffer".
	(print_generic_decl): Update for "buffer" becoming a pointer.
	(print_generic_stmt): Likewise.
	(print_generic_stmt_indented): Likewise.
	(print_generic_expr): Likewise.
	(maybe_init_pretty_print): Likewise, allocating "buffer" on the
	heap and using its non-NULL-ness to ensure idempotency.

2014-12-04  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
	ipa_add_new_function on function_insertion_hook_holder being
	non-NULL.
	* ipa-reference.c (ipa_reference_c_finalize): Remove
	node_removal_hook_holder and node_duplication_hook_holder if
	they've been added to symtab.
	* toplev.c (toplev::finalize): Call ipa_reference_c_finalize
	before cgraph_c_finalize so that the former can access "symtab".

2014-12-04  David Malcolm  <dmalcolm@redhat.com>

	* doc/cfg.texi (GIMPLE statement iterators): Add note about
	gphi_iterator, and use one in the example.
	* doc/gimple.texi (Tuple specific accessors): Add missing
	GIMPLE_GOTO section and menu item.
	(gimple_build_asm, gimple gimple_build_assign_with_ops)
	gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
	description of removed functions.
	(gimple_build_assign, gimple_build_bind, gimple_build_call,
	gimple_build_call_from_tree, gimple_build_call_vec,
	gimple_build_catch, gimple_build_cond,
	gimple_build_cond_from_tree, gimple_build_debug_bind,
	gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
	gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
	gimple_build_omp_continue, gimple_build_omp_critical,
	gimple_build_omp_for, gimple_build_omp_parallel,
	gimple_build_omp_sections, gimple_build_omp_single,
	gimple_build_return, gimple_build_resx, gimple_build_switch,
	gimple_build_try): Update return type within description to
	reflect changes in gimple.h to using gimple subclasses.
	(gimple_build_asm_vec): Update return type, params and
	description.
	(gimple_asm_ninputs): Update param.
	(gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
	gimple_asm_set_input_op, gimple_asm_output_op
	gimple_asm_set_output_op, gimple_asm_clobber_op,
	gimple_asm_set_clobber_op, gimple_asm_string,
	gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
	gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
	gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
	gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
	gimple_call_return_type, gimple_call_set_chain,
	gimple_call_set_tail, gimple_call_tail_p,
	gimple_call_copy_skip_args, gimple_catch_types,
	gimple_catch_types_ptr, gimple_catch_handler,
	gimple_catch_set_types, gimple_catch_set_handler,
	gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
	gimple_cond_true_label, gimple_cond_set_true_label,
	gimple_cond_set_false_label, gimple_cond_false_label,
	gimple_cond_make_false, gimple_cond_make_true,
	gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
	gimple_eh_must_not_throw_fndecl,
	gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
	gimple_label_set_label, gimple_goto_set_dest,
	gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
	gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
	gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
	gimple_omp_continue_control_def,
	gimple_omp_continue_control_def_ptr,
	gimple_omp_continue_set_control_def,
	gimple_omp_continue_control_use,
	gimple_omp_continue_control_use_ptr,
	gimple_omp_continue_set_control_use, gimple_omp_critical_name,
	gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
	gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
	gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
	gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
	gimple_omp_parallel_data_arg_ptr,
	gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
	gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
	gimple_resx_set_region, gimple_return_retval,
	gimple_return_set_retval, gimple_switch_num_labels,
	gimple_switch_set_num_labels, gimple_switch_index,
	gimple_switch_set_index, gimple_switch_label,
	gimple_switch_set_label, gimple_switch_default_label,
	gimple_switch_set_default_label, gimple_try_set_eval,
	gimple_try_set_cleanup): Update initial param within description
	to reflect changes in gimple.h to using gimple subclasses.
	(Adding a new GIMPLE statement code): Update to reflect gimple
	statement subclassing.

2014-12-04  Sriraman Tallam  <tmsriram@google.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
	Linux/x86-64 linker supports PIE with copy reloc.
	* config.in: Regenerated.
	* configure: Likewise.

	* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
	pc-relative address for undefined, non-weak, non-function
	symbol reference in 64-bit PIE if linker supports PIE with
	copy reloc.

	* doc/sourcebuild.texi: Document pie_copyreloc target.

2014-12-04  Marek Polacek  <polacek@redhat.com>

	PR middle-end/56917
	* fold-const.c (fold_unary_loc): Perform the negation in A's type
	when transforming ~ (A - 1) or ~ (A + -1) to -A.

2014-12-04  Tobias Burnus  <burnus@net-b.de>

	* Makefile.in: Remove CLOOGLIB and CLOOGINC.

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

	* doc/match-and-simplify.texi: Update for recent changes.

2014-12-04  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (ipa_alignment): New type.
	(ipa_jump_func): New field alignment.
	(ipcp_transformation_summary) New type.
	(ipcp_grow_transformations_if_necessary): Declare.
	(ipa_node_agg_replacements): Removed.
	(ipcp_transformations): Declare.
	(ipcp_get_transformation_summary): New function.
	(ipa_get_agg_replacements_for_node): Use it.
	* ipa-cp.c (ipcp_param_lattices): New field alignment.
	(print_all_lattices): Also print alignment.
	(alignment_bottom_p): New function.
	(set_alignment_to_bottom): Likewise.
	(set_all_contains_variable): Also set alignment to bottom.
	(initialize_node_lattices): Likewise.
	(propagate_alignment_accross_jump_function): New function.
	(propagate_constants_accross_call): Call it.
	(ipcp_store_alignment_results): New function.
	(ipcp_driver): Call it.
	* ipa-prop.c (ipa_node_agg_replacements): Removed.
	(ipcp_transformations): New.
	(ipa_print_node_jump_functions_for_edge): Also print alignment.
	(ipa_set_jf_unknown): New function.
	(detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
	(ipa_compute_jump_functions_for_edge): Also calculate alignment.
	(update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
	(ipcp_grow_transformations_if_necessary): New function.
	(ipa_set_node_agg_value_chain): Use ipcp_transformations.
	(ipa_node_removal_hook): Likewise.
	(ipa_node_duplication_hook): Also duplicate alignment results.
	(ipa_write_jump_function): Also stream alignments.
	(ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
	alignments.
	(write_agg_replacement_chain): Renamed to
	write_ipcp_transformation_info, also stream alignments.
	(read_agg_replacement_chain): Renamed to
	read_ipcp_transformation_info, also stream alignments.
	(ipa_prop_write_all_agg_replacement): Renamed to
	ipcp_write_transformation_summaries. Stream always.
	(ipa_prop_read_all_agg_replacement): Renamed to
	ipcp_read_transformation_summaries.
	(ipcp_update_alignments): New function.
	(ipcp_transform_function): Call it, free also alignments.

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

	* gimple-fold.c (replace_stmt_with_simplification): Properly
	fail when maybe_push_res_to_seq fails.

2014-12-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	* config/aarch64/aarch64.md (define_insn "prefetch"): New.

2014-12-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* doc/install.texi: Remove mentions of cloog and ppl.
	* doc/invoke.texi: Likewise

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

	PR c++/56493
	* convert.c (convert_to_real, convert_to_expr, convert_to_complex):
	Handle COMPOUND_EXPR.

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

	* builtins.c (target_newline): Export.
	(target_percent_s_newline): Likewise.
	(fold_builtin_1): Do not fold printf functions here.
	(fold_builtin_2): Likewise.
	(fold_builtin_3): Likewise, do not fold strncat.
	(fold_builtin_strncat): Move to gimple-fold.c.
	(fold_builtin_printf): Likewise.
	* builtins.h (target_newline): Declare.
	(target_percent_s_newline): Likewise.
	* gimple-fold.c (gimple_fold_builtin_strncat): Move from
	builtins.c and gimplify.
	(gimple_fold_builtin_printf): Likewise.
	(gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
	vprintf, printf_chk and vprintf_chk here.

2014-12-03  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
	(floatunssidf2_internal): Same.
	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
	(rs6000_emit_int_cmove): Same.
	(rs6000_sched_reorder): Same.
	(altivec_expand_vec_perm_const): Same.
	(rs6000_expand_vec_perm_const_1): Same.

2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR rtl-optimization/64010
	* reload.c (push_reload): Before reusing a register contained
	in an operand as input reload register, ensure that it is not
	used in CALL_INSN_FUNCTION_USAGE.

2014-12-03  Ulrich Drepper  <drepper@gmail.com>

	* Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
	if it exists.

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

	* expmed.c (expand_mult): Use std::swap.

	PR c/59708
	* expmed.c (expand_widening_mult): Return const0_rtx if
	coeff is 0.

	* doc/gimple.texi (gimple_build_assign_with_ops): Remove.
	(gimple_build_assign): Document the new overloads.

2014-12-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/64019
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
	not create LO_SUM address for constant addresses if the type can
	go in Altivec registers.

2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
	(pp_flush): Flush only if flush_p.
	(pp_really_flush): New.
	* pretty-print.h (struct output_buffer): Add flush_p.
	(pp_really_flush): Declare.

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

	* Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
	gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
	(GENGTYPE_OBJS): New.
	(gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
	Remove explicit dependencies.
	(CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
	CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
	instead of -DGENERATOR_FILE.
	(CFLAGS-errors.o): New.
	* gengtype.c: Instead of testing GENERATOR_FILE define, test
	HOST_GENERATOR_FILE.  If defined, include config.h and define
	GENERATOR_FILE afterwards, otherwise include bconfig.h.
	* gengtype-parse.c: Likewise.
	* gengtype-state.c: Likewise.
	* gengtype-lex.l: Likewise.
	* errors.c: Likewise.

2014-12-03  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.c (epiphany_override_options):
	If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
	* config/epiphany/epiphany.md (mov<mode>cc): Don't use
	reverse_condition_maybe_unordered if flag_finite_math_only is set.

2014-12-03  Andrew Stubbs  <ams@codesourcery.com>

	Revert:

	2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
	* config/arm/arm.c (arm_option_override): Reject -mfpu=neon
	when architecture is older than ARMv7.

2014-12-03  Richard Biener  <rguenther@suse.de>

	* builtins.c (target_percent_c): Export.
	(fold_builtin_fprintf): Move to gimple-fold.c.
	(fold_builtin_2): Do not fold fprintf functions.
	(fold_builtin_3): Likewise.
	(fold_builtin_4): Remove.
	(fold_builtin_n): Do not call fold_builtin_4.
	* builtins.h (target_percent_c): Declare.
	* gimple-fold.c (gimple_fold_builtin_fprintf): Move from
	builtins.c and gimplify.
	(gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
	fprintf_chk and vfprintf_chk here.

2014-12-03  Martin Jambor  <mjambor@suse.cz>

	PR ipa/64153
	* ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
	type sizes before view_converting.

2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/64151
	PR rtl-optimization/64156
	* ira-costs.c (scan_one_insn): Revert r218266.

2014-12-03  Richard Biener  <rguenther@suse.de>

	* builtins.c (fold_builtin_fpclassify): Change to take
	array of arguments instead of CALL_EXPR tree.
	(MAX_ARGS_TO_FOLD_BUILTIN): Remove.
	(fold_builtin_n): Dispatch to fold_builtin_varargs.
	(fold_call_expr): Always use fold_builtin_n.
	(fold_builtin_call_array): Change to not build the unfolded call,
	always use fold_builtin_n.
	(fold_builtin_varargs): Change to take array of arguments instead
	of CALL_EXPR tree.
	(fold_call_stmt): Always use fold_builtin_n.
	* tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
	* fold-const.c (fold_build_call_array_loc): Build the call
	if fold_builtin_call_array returned NULL_TREE.
	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
	a CALL_EXPR and use fold_builtin_call_array instead of
	fold_call_expr.

2014-12-03  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
	bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
	ior<mode>3, xor<mode>3, one_cmpl<mode>2,
	aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
	aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
	aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
	ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
	reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
	vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
	Change VDQ to VDQ_I.

	(mul<mode>3): Change VDQM to VDQ_BHSI.
	(aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
	aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
	aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.

	(*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
	aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
	aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
	Change VDW to VD_BHSI.
	(*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
	Change VDIC to VD_BHSI.

	* config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
	saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
	ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.

	* config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
	VDIC, VDQQHS): Remove.
	(Vwtype): Update comment (changing VDW to VD_BHSI).

2014-12-03  Richard Biener  <rguenther@suse.de>

	PR middle-end/14541
	* builtins.c (fold_builtin_logarithm): Implement simplifications ...
	* match.pd: ... here as patterns.

2014-12-03  Prachi Godbole  <prachi.godbole@imgtec.com>

	* config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
	p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
	(p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
	reservation order.

2014-12-03  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/63957
	* doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
	* final.c (rest_of_handle_final): Replace flag_use_caller_save with
	flag_ipa_ra.
	(get_call_reg_set_usage): Same.
	* lra-assigns.c (lra_assign): Same.
	* lra-constraints.c (need_for_call_save_p): Same.
	* lra-lives.c (process_bb_lives): Same.
	* lra.c (lra): Same.
	* calls.c (expand_call): Same.
	(emit_library_call_value_1): Same.
	* config/arm/arm.c (arm_option_override): Same.
	* opts.c (default_options_table): Replace OPT_fuse_caller_save with
	OPT_fipa_ra.
	* target.def (call_fusage_contains_non_callee_clobbers): Replace
	fuse-caller-save with fipa-ra.
	* doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
	* common.opt: Same.

2014-12-03  Yury Gribov  <y.gribov@samsung.com>

	* sanopt.c (maybe_get_single_definition): New function.
	(maybe_get_dominating_check): Ditto.
	(can_remove_asan_check): Ditto.
	(struct tree_map_traits): New struct.
	(struct sanopt_ctx): Use custom traits for asan_check_map.
	(maybe_optimize_ubsan_null_ifn): Move code to
	maybe_get_dominating_check.
	(maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
	into account when optimizing.
	(sanopt_optimize_walker): Optimize ASan checks even when
	recovering.

2014-12-03  Ilya Enkovich  <ilya.enkovich@intel.com>

	* config/i386/constraints.md (Yr): New.
	* config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	* config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
	which use only NO_REX_SSE_REGS.
	(vec_set<mode>_0): Likewise.
	(*vec_setv4sf_sse4_1): Likewise.
	(sse4_1_insertps): Likewise.
	(*sse4_1_extractps): Likewise.
	(*sse4_1_mulv2siv2di3<mask_name>): Likewise.
	(*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
	(*sse4_1_<code><mode>3<mask_name>): Likewise.
	(*sse4_1_<code><mode>3): Likewise.
	(*sse4_1_eqv2di3): Likewise.
	(sse4_2_gtv2di3): Likewise.
	(*vec_extractv4si): Likewise.
	(*vec_concatv2si_sse4_1): Likewise.
	(vec_concatv2di): Likewise.
	(<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
	(<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
	(<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
	(<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
	(<sse4_1_avx2>_mpsadbw): Likewise.
	(<sse4_1_avx2>packusdw<mask_name>): Likewise.
	(<sse4_1_avx2>_pblendvb): Likewise.
	(sse4_1_pblendw): Likewise.
	(sse4_1_phminposuw): Likewise.
	(sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
	(sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
	(sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
	(sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
	(sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
	(sse4_1_<code>v2siv2di2<mask_name>): Likewise.
	(sse4_1_ptest): Likewise.
	(<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
	(sse4_1_round<ssescalarmodesuffix>): Likewise.
	* config/i386/subst.md (mask_prefix4): New.
	* config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.

2014-12-03  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/52714
	* combine.c (try_combine): Allow combining two insns into two
	new insns if at least one of those is a noop.

2014-12-03  Bin Cheng  <bin.cheng@arm.com>

	* target.def (fusion_priority): Wrap code with @smallexample.
	* doc/tm.texi: Regenerated.

2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* diagnostic.c (diagnostic_show_locus): Honor override_column when
	placing the caret.

2014-12-02  Dmitry Vyukov  <dvyukov@google.com>

	* asan.c: (asan_finish_file): Use default priority for constructors
	in kernel mode.

2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/64115
	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
	invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.

2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/64108
	* config/i386/i386.c (decide_alg): Stop only if there aren't
	any usable algorithms.

2014-12-02  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/63718
	* config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
	Thumb1.

2014-12-02  Richard Biener  <rguenther@suse.de>

	* match.pd: When combining divisions exclude the degenerate
	case involving INT_MIN from overflow handling.

2014-12-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* ira-costs.c (scan_one_insn): Improve spill cost adjustment.

2014-12-02  Martin Jambor  <mjambor@suse.cz>

	PR ipa/63814
	* ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
	(cgraph_edge_brings_value_p): New parameter dest, use
	same_node_or_its_all_contexts_clone_p and check availability.
	(cgraph_edge_brings_value_p): Likewise.
	(get_info_about_necessary_edges): New parameter dest, pass it to
	cgraph_edge_brings_value_p.  Update caller.
	(gather_edges_for_value): Likewise.
	(perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
	both the destination and availability.

2014-12-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/64113
	* config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
	using post-reload splitter.  Use peephole2 pass instead.
	(call_value_osf_tlsldm): Ditto.
	(TLS_CALL): New int iterator.
	(tls): New int attribute.
	(call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
	and call_value_tlsldm using TLS_CALL int iterator.

2014-12-02  Richard Biener  <rguenther@suse.de>
	    Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* genmatch.c: Include hash-set.h.
	(fatal_at): Add source_location overload.
	(parser::record_operlist): New method.
	(parser::push_simplify): Likewise.
	(parser::oper_lists_set): New member.
	(parser::oper_lists): Likewise.
	(parser::parse_operation): Record seen operator list references.
	(parser::parse_c_expr): Likewise.
	(parser::parse_simplify): Init oper_lists_set and oper_lists
	and use push_simplify.
	(parser::parser): Init oper_lists_set and oper_lists.

2014-12-02  Richard Biener  <rguenther@suse.de>

	* match.pd: Restrict division combining to trunc_div and
	exact_div.

2014-12-02  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
	Remove NULL last argument from create_tmp_var calls.
	* config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
	* config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
	* config/i386/i386.c (add_condition_to_bb,
	ix86_atomic_assign_expand_fenv): Likewise.
	* config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
	* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
	* config/aarch64/aarch64-builtins.c
	(aarch64_atomic_assign_expand_fenv): Likewise.
	* config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
	* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
	* config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.

	* config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
	gimple_build_assign instead of gimple_build_assign_with_ops and swap
	the order of first two arguments.
	* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
	Likewise.  Remove last NULL_TREE argument.

2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/59278
	* combine (reg_dead_at_p): Consider REG_UNUSED notes.

2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.

2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (is_parallel_of_n_reg_sets): New function.
	(can_split_parallel_of_n_reg_sets): New function.
	(try_combine): If I2 is a PARALLEL of two SETs, split it into
	two insns if possible.

2014-12-01  Tobias Burnus  <burnus@net-b.de>
	    Jack Howarth  <howarth@bromo.med.uc.edu>

	PR middle-end/64017
	* configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
	New check.
	* doc/install.texi (ISL): Permit ISL 0.14.
	* graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
	Conditionally use ISL 0.13+ functions.
	* graphite-interchange.c: Make 'extern "C"' conditional.
	* graphite-isl-ast-to-gimple.c: Ditto.
	* graphite-poly.c: Ditto.
	* graphite-sese-to-poly.c: Ditto.
	* config.in: Regenerate.
	* gcc/configure: Regenerate.

2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (distribute_links): Handle multiple SETs.

2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (struct insn_link): New field `regno'.
	(alloc_insn_link): New parameter `regno'.  Use it.
	(find_single_use): Check the new field.
	(can_combine_def_p, can_combine_use_p): New functions.  Split
	off from ...
	(create_log_links): ... here.  Correct data type of `regno'.
	Adjust call to alloc_insn_link.
	(adjust_for_new_dest): Find regno, use it in call to
	alloc_insn_link.
	(try_combine): Check reg_used_between_p when combining a PARALLEL
	as earlier insn.  Adjust call to alloc_insn_link.
	(distribute_links): Check the new field.

2014-12-01  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* real.c (real_from_string): Add missing mpfr_clear.

2014-12-01  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
	release of stmts by converting it to an auto_vec.

2014-12-01  Richard Biener  <rguenther@suse.de>

	* Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
	-Wno-unused-variable and -Wno-unused-but-set-variable to restore
	bootstrap with old GCC.
	(generic-match.o-warn): Likewise.

2014-12-01  Richard Biener  <rguenther@suse.de>

	* fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
	Properly handle FIXED_CST shifts by INTEGER_CST.
	(const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
	VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
	VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
	VEC_WIDEN_MULT_ODD_EXPR handling here from ...
	(fold_binary_loc): ... here.  Call const_binop overload
	with result type.

2014-12-01  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/64121
	* ubsan.c (instrument_object_size): Stop searching if the base
	occurs in abnormal phi.

2014-12-01  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/63956
	* ubsan.c (is_ubsan_builtin_p): Check also built-in class.

2014-12-01  Jakub Jelinek  <jakub@redhat.com>

	* gimple.h (gimple_build_assign_stat): Remove prototype.
	(gimple_build_assign): Remove define.  Add overload prototypes
	with tree lhs and either a tree rhs, or enum tree_code and
	1, 2 or 3 tree operands.
	* gimple.c (gimple_build_assign_stat): Renamed to...
	(gimple_build_assign): ... this.  Add overloads with
	enum tree_code and 1, 2 or 3 tree operands.
	(gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
	Rename the 3 operand overload to ...
	(gimple_build_assign_1): ... this.  Make it static inline.
	* tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
	instead of gimple_build_assign_with_ops, swap the order of first
	two arguments and adjust formatting where necessary.
	* tree-vect-slp.c (vect_get_constant_vectors,
	vect_create_mask_and_perm): Likewise.
	* tree-ssa-forwprop.c (simplify_rotate): Likewise.
	* asan.c (build_shadow_mem_access, maybe_create_ssa_name,
	maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
	* tsan.c (instrument_builtin_call): Likewise.
	* tree-chkp.c (chkp_compute_bounds_for_assignment,
	chkp_generate_extern_var_bounds): Likewise.
	* tree-loop-distribution.c (generate_memset_builtin): Likewise.
	* tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
	* gimple-builder.c (build_assign, build_type_cast): Likewise.
	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
	* value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
	gimple_mod_subtract): Likewise.
	* gimple-match-head.c (maybe_push_res_to_seq): Likewise.
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern,
	vect_recog_sad_pattern, vect_handle_widen_op_by_const,
	vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
	vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
	vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
	vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
	vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
	adjust_bool_pattern_cast, adjust_bool_pattern,
	vect_recog_bool_pattern): Likewise.
	* gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
	insert_initializers, introduce_cast_before_cand,
	replace_one_candidate): Likewise.
	* tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
	powi_as_mults, build_and_insert_binop, build_and_insert_cast,
	pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
	Likewise.
	* tree-tailcall.c (adjust_return_value_with_ops,
	update_accumulator_with_ops): Likewise.
	* tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
	* tree-ssa-reassoc.c (build_and_add_sum,
	optimize_range_tests_to_bit_test, update_ops,
	maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
	negate_value, repropagate_negates, attempt_builtin_powi,
	reassociate_bb): Likewise.
	* tree-vect-loop.c (vect_is_simple_reduction_1,
	get_initial_def_for_induction, vect_create_epilog_for_reduction):
	Likewise.
	* ipa-split.c (split_function): Likewise.
	* tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
	abs_replacement, neg_replacement): Likewise.
	* tree-profile.c (gimple_gen_edge_profiler): Likewise.
	* tree-vrp.c (simplify_truth_ops_using_ranges,
	simplify_float_conversion_using_ranges,
	simplify_internal_call_using_ranges): Likewise.
	* gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
	* tree-vect-generic.c (expand_vector_divmod,
	optimize_vector_constructor): Likewise.
	* ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
	instrument_bool_enum_load): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
	expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
	expand_cilk_for, simd_clone_adjust): Likewise.
	* trans-mem.c (expand_transaction): Likewise.
	* tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
	vect_setup_realignment, vect_permute_load_chain,
	vect_shift_permute_load_chain): Likewise.
	* tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
	vectorizable_simd_clone_call, vect_gen_widened_results_half,
	vect_create_vectorized_demotion_stmts, vectorizable_conversion,
	vectorizable_shift, vectorizable_operation, vectorizable_store,
	permute_vec_elements, vectorizable_load): Likewise.

2014-12-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/64111
	* tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
	htab_hash_pointer to not break PCH.

2014-12-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/15346
	* Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
	add -Wno-unused-but-set-variable.
	* match.pd: Combine two successive divisions.

2014-12-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/64126
	* match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
	and -1 - A -> ~A.
	* fold-const.c (fold_binary_loc): Remove transforms here.

2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/mips/mips.c (mips16_build_call_stub): Move the save of
	the return address in $18 ahead of passing arguments to FPRs.

2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR target/64055
	* tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
	values in array domain.

2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/63941
	* tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
	DOM_BB has non-true predicate, conditionally set non-true predicate
	for BB.

2014-12-01  Martin Jambor  <mjambor@suse.cz>

	PR ipa/63551
	* ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
	value of the argument to the type of the value in the condition.

2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/63986
	PR target/51244
	* config/sh/sh.c (sh_unspec_insn_p,
	sh_insn_operands_modified_between_p): New functions.
	(sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
	are modified or if it has side effects, may trap or is volatile.

2014-11-29  Jakub Jelinek  <jakub@redhat.com>

	* gimple-expr.h (create_tmp_var_raw, create_tmp_var,
	create_tmp_reg): Add default NULL value to last argument.
	* tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
	* gimple-low.c (lower_builtin_posix_memalign): Remove NULL
	last argument from create_tmp_var_raw, create_tmp_var,
	create_tmp_reg, make_ssa_name and copy_ssa_name calls.
	* tree-ssa-strlen.c (get_string_length): Likewise.
	* tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-vect-slp.c (vect_get_constant_vectors): Likewise.
	* ipa-prop.c (ipa_modify_call_arguments): Likewise.
	* tree-ssa-forwprop.c (simplify_rotate): Likewise.
	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
	* asan.c (build_shadow_mem_access, maybe_create_ssa_name,
	maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
	* tsan.c (instrument_expr, instrument_builtin_call,
	instrument_func_entry): Likewise.
	* varpool.c (add_new_static_var): Likewise.
	* tree-loop-distribution.c (generate_memset_builtin): Likewise.
	* gimplify.c (internal_get_tmp_var, gimplify_return_expr,
	gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
	gimplify_init_ctor_eval_range, gimplify_init_constructor,
	gimplify_omp_atomic, gimplify_expr): Likewise.
	* gimple-builder.c (build_assign, build_type_cast): Likewise.
	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
	slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
	vect_loop_versioning): Likewise.
	* tree-if-conv.c (version_loop_for_if_conversion): Likewise.
	* gimple-match-head.c (maybe_push_res_to_seq): Likewise.
	* tree-vect-patterns.c (vect_handle_widen_op_by_const,
	vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
	vect_recog_over_widening_pattern): Likewise.
	* tree-sra.c (build_ref_for_offset, create_access_replacement):
	Likewise.
	* tree-cfg.c (make_blocks): Likewise.
	* tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
	Likewise.
	* tree-ssa-propagate.c (update_call_from_tree): Likewise.
	* tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
	Likewise.
	* tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
	* tree-tailcall.c (update_accumulator_with_ops): Likewise.
	* tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
	execute_load_motion, reassociate_to_the_same_stmt): Likewise.
	* tree-ssa-reassoc.c (build_and_add_sum,
	optimize_range_tests_to_bit_test, update_ops,
	maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
	negate_value, repropagate_negates): Likewise.
	* tree-vect-loop.c (vect_is_simple_reduction_1,
	vect_create_epilog_for_reduction): Likewise.
	* ipa-split.c (split_function): Likewise.
	* tree-inline.c (remap_ssa_name, setup_one_parameter,
	declare_return_variable, tree_function_versioning): Likewise.
	* tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
	* cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
	Likewise.
	* tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
	neg_replacement): Likewise.
	* gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
	Likewise.
	* tree-vrp.c (simplify_truth_ops_using_ranges,
	simplify_float_conversion_using_ranges,
	simplify_internal_call_using_ranges): Likewise.
	* tree-switch-conversion.c (emit_case_bit_tests,
	build_one_array, build_arrays, gen_def_assigns): Likewise.
	* gimple-fold.c (gimple_fold_builtin_memory_op,
	gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
	* tree-vect-generic.c (expand_vector_divmod,
	optimize_vector_constructor): Likewise.
	* ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
	ubsan_expand_objsize_ifn, instrument_si_overflow,
	instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
	* tree-outof-ssa.c (insert_backedge_copies): Likewise.
	* tree-ssa-loop-manip.c (create_iv,
	tree_transform_and_unroll_loop): Likewise.
	* omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
	lower_rec_input_clauses, lower_lastprivate_clauses,
	expand_parallel_call, expand_omp_for_static_chunk,
	expand_omp_atomic_pipeline, expand_omp_target,
	maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
	lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
	lower_depend_clauses, lower_omp_target, lower_omp_1,
	ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
	* tree-parloops.c (take_address_of, create_phi_for_local_result,
	create_call_for_reduction_1, separate_decls_in_region,
	create_parallel_loop): Likewise.
	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
	handle_scalar_deps_crossing_scop_limits): Likewise.
	* trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
	expand_assign_tm, expand_call_tm, expand_transaction,
	ipa_tm_insert_gettmclone_call): Likewise.
	* tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
	Likewise.
	* tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
	vectorizable_call, vectorizable_simd_clone_call,
	vectorizable_conversion, vectorizable_store, permute_vec_elements,
	vectorizable_load): Likewise.

2014-11-29  Tobias Burnus  <burnus@net-b.de>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* opt-functions.awk (lang_enabled_by): Support || for
	enabled-by.
	* optc-gen.awk: Ditto.
	* doc/options.texi (LangEnabledBy, EnabledBy): Document the
	|| syntax.

2014-11-28  Mike Stump  <mikestump@comcast.net>

	* bitmap.c (bitmap_ior): Zap current as it could be deleted.
	(bitmap_ior_and_compl): Likewise.

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

	PR target/64061
	* lra.c (lra_substitute_pseudo): Ignore constant with int mode for
	subreg.

2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/64093
	* config/rs6000/rs6000.md (and<mode>3): Don't generate
	and<mode>3_imm unless rs6000_gen_cell_microcode is true.

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

	PR rtl-optimization/64087
	* lra-lives.c (process_bb_lives): Add debug output.
	(lra_create_live_ranges): Don't remove dead insn on the second
	call of lra_create_live_ranges_1.

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

	PR rtl-optimization/64037
	* combine.c (setup_incoming_promotions): Pass the argument
	before any promotions happen to promote_function_mode.

2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>

	* tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
	permutations to loads group of size 3.

2014-11-28  Jiong Wang  <jiong.wang@arm.com>

	* config/arm/arm.md (copysignsf3): New pattern.
	(copysigndf3): Likewise.

2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>

	* omp-low.c (lower_omp_critical): Mark critical sections
	inside target functions as offloadable.

2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>

	* lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
	file contains sections with LTO and offload IR, respectively.

2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>

	* cgraphunit.c (ipa_passes): Handle flag_generate_offload.
	(symbol_table::compile): Set flag_generate_offload if there is something
	to offload.
	* common.opt (flag_generate_offload): New Variable declaration.
	* dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
	* ipa-inline-analysis.c (inline_generate_summary): Do not skip if
	flag_generate_offload is set.
	* lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
	* passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
	is set.
	* toplev.c (compile_file): Emit LTO marker if offload info has been
	previously emitted.  Do not emit lto_slim marker if
	flag_generate_offload is without flag_generate_lto.
	* tree.c (free_lang_data): Do not skip if flag_generate_offload is set.

2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
	* config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
	MULTILIB_MATCHES.

2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
	Include cortex-a17.md.
	* config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
	* config/arm/arm-cores.def (cortex-a17): New entry.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
	* config/arm/cortex-a17.md: New file.
	* config/arm/cortex-a17-neon.md: New file.
	* config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
	* config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.

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

	PR middle-end/64084
	* genmatch.c (dt_node::gen_kids_1): New function, split out
	from dt_node::gen_kids.
	(decision_tree::cmp_node): DT_TRUE are generally not equal.
	(decision_tree::find_node): Treat DT_TRUE as barrier for
	node CSE on the same level.
	(dt_node::append_node): Do not keep DT_TRUE last.
	(dt_node::gen_kids): Emit code after each DT_TRUE node seen.

2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
	-march=armv8-a+crc.

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

	* config/i386/i386.md (preferred_for_size): New attribute
	(*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
	attribute to conditionally disable alternative 1.
	(*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
	and prefered_for_speed attributes to conditionally disable
	alternative 1.
	(*movxf_internal): Split Yx*r constraints to r,*r.  Use
	preferred_for_size attribute to conditionally disable
	alternatives 3 and 4.
	(*movdf_internal): Split Yd*r constraints to r,*r.  Use
	preferred_for_size and prefered_for_speed attributes to conditionally
	disable alternatives 3 and 4.
	* config/i386/constraints.md (Yd, Yx): Remove register constraints.

2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (set_block_origin_self): Skip nested functions.

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

	PR target/63833
	* config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
	R15_REG for 64-bit.
	* config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.

2014-11-27  Martin Liska  <mliska@suse.cz>
	    David Malcolm  <dmalcolm@redhat.com>

	* ipa-icf.c (sem_function::equals_private): int* is replaced with
	auto_vec.
	(sem_function::bb_dict_test): Likewise.
	* ipa-icf.h: Likewise.

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

	PR middle-end/64088
	* fold-const.c (const_unop): Re-instantiate missing condition
	before calling fold_abs_const.

	PR tree-optimization/64088
	* tree-ssa-tail-merge.c (update_debug_stmt): After resetting
	the stmt break from the loop over use operands.

2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
	Define.
	* config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
	(fold_builtin_cpu): Ditto.
	* doc/extend.texi: Documment it.

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

	PR middle-end/64067
	* expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
	Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
	not only if modifier is EXPAND_INITIALIZER, but whenever
	COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.

	PR tree-optimization/64024
	* tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
	field.  Add simd_clone_info field.
	(STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
	(STMT_VINFO_SIMD_CLONE_INFO): Define.
	* tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
	STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
	STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
	base and linear_step from analysis phase and use it during transform
	phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
	multiplied by linear_step.
	(free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.

	PR lto/64025
	* alias.c (find_base_term): Use std::swap.  Prefer tmp2
	if it is CONSTANT_P other than CONST_INT.

2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR target/59593
	* config/arm/arm.c (dump_minipool): dispatch to consttable pattern
	based on mode size.
	* config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
	make it TARGET_EITHER.
	(consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
	and move HFmode handling from consttable_4 to it.
	(consttable_4): Move HFmode handling to consttable_2 pattern.
	* config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
	(consttable_2): Ditto.

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

	* tree-ssa-sccvn.c (try_to_simplify): Allow
	gimple_fold_stmt_to_constant_1 to follow SSA edges.

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

	PR tree-optimization/64083
	* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
	forcibly mark loop for removal the wrong way.

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

	PR middle-end/63704
	* alias.c (mems_in_disjoint_alias_sets_p): Remove assert
	and instead return false when !fstrict-aliasing.

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

	PR tree-optimization/61634
	* tree-vect-slp.c: Include gimple-walk.h.
	(vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
	down the SLP tree for one scalar statement.
	(vect_detect_hybrid_slp_1): New walker function.
	(vect_detect_hybrid_slp_2): Likewise.
	(vect_detect_hybrid_slp): Properly handle pattern statements
	in a pre-scan over all loop stmts.

2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	Revert:
	2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
	* config/aarch64/aarch64.c (aarch64_code_to_ccmode,
	aarch64_convert_mode, aarch64_gen_ccmp_first,
	aarch64_gen_ccmp_next): New functions.
	(TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.

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

	* gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
	without -pie or -shared, error on -fsanitize=thread -static instead.

2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR ipa/61190
	* cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
	(cgraph_node::function_or_virtual_thunk_symbol): New function.
	(cgraph_node::call_for_symbol_and_aliases): Fix comment.
	(cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
	Add new optional parameter exclude_virtual_thunks.
	* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
	optional parameter exclude_virtual_thunks.
	(cgraph_node::set_const_flag): Don't propagate to virtual thunks.
	(cgraph_node::set_pure_flag): Likewise.
	(cgraph_node::function_symbol): Simplified.
	(cgraph_node::function_or_virtual_thunk_symbol): New function.
	* ipa-pure-const.c (analyze_function): For virtual thunks set
	pure_const_state to IPA_NEITHER.
	(propagate_pure_const): Use function_or_virtual_thunk_symbol.

2014-11-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/63738
	* tree-data-ref.c (split_constant_offset_1): Do not follow
	SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.

2014-11-26  Richard Biener  <rguenther@suse.de>

	* fold-const.h (const_unop): Declare.
	(const_binop): Likewise.
	* fold-const.c (const_binop): Export overload that expects
	a type parameter and dispatches to fold_relational_const as well.
	Check both operand kinds for guarding the transforms.
	(const_unop): New function, with constant folding from fold_unary_loc.
	(fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
	Remove constant folding done there from the simplifications.
	(fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
	(fold_negate_expr): Remove dead code from the REAL_CST case.
	Avoid building garbage in the COMPLEX_CST case.
	* gimple-match-head.c (gimple_resimplify1): Dispatch to
	const_unop.
	(gimple_resimplify2): Dispatch to const_binop.
	(gimple_simplify): Likewise.

2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR bootstrap/63995
	* tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
	debug statement when searching for a new position for
	bounds load/creation statement.

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

	PR sanitizer/63788
	* asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
	var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
	(ATTR_PURE_NOTHROW_LEAF_LIST): Define.

2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR lto/64075
	* tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
	proper size for function_code bitfield.
	(pack_ts_function_decl_value_fields): Likewise.

2014-11-21  Mark Wielaard  <mjw@redhat.com>

	* doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
	* opts.c (common_handle_option): Accept -gdwarf-5.
	* dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
	DW_LANG_C_plus_plus_14.
	(lower_bound_default): Likewise. Plus DW_LANG_C11.
	(gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
	DW_LANG_C_plus_plus_14 or DW_LANG_C11.
	(output_compilation_unit_header): Output at most a DWARFv4 header.
	(output_skeleton_debug_sections): Likewise.
	(output_line_info): Likewise.
	(output_aranges): Document header version number.

2014-11-26  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (get_symbol_constant_value): Allow all
	GIMPLE register type zero-constants.

2014-11-26  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
	function decl has TREE_THIS_VOLATILE.

2014-11-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62238
	* tree-predcom.c (ref_at_iteration): Unshare the expression
	before gimplifying it.
	(prepare_initializers_chain): Discard unused seq.

2014-11-26  Prachi Godbole  <prachi.godbole@imgtec.com>

	* config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
	for p5600.

2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-lives.c (process_bb_node_lives): Make code with conditional
	REAL_PIC_OFFSET_TABLE_REGNUM.

2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/63527
	* ira-lives.c (process_bb_node_lives): Check and remove conflict
	of pic pseudo with pic hard reg.

2014-11-25  Rohit  <rohitarulraj@freescale.com>

	PR bootstrap/63703
	* config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
	added GCC hard register numbers for SPE high registers.

2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>

	* bt-load.c (migrate_btr_defs): Get the key of a heap entry
	before removing it, not after.

2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
	PATTERN call.

2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
	of addic.

2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
	(rest of file): Replace those with code resp. CODE.

2014-11-25  Tom de Vries  <tom@codesourcery.com>

	* tree-cfg.c (verify_sese): New function.
	(move_sese_region_to_fn): Call verify_sese.
	* tree-cfg.h (verify_sese): Declare.

2014-11-25  Richard Biener  <rguenther@suse.de>

	PR lto/64065
	* lto-streamer-out.c (output_struct_function_base): Stream
	last_clique field.
	* lto-streamer-in.c (input_struct_function_base): Likewise.

2014-11-25  Martin Liska  <mliska@suse.cz>

	PR bootstrap/64050
	PR ipa/64060
	* sreal.c (sreal::operator+): Addition fixed.
	(sreal::signedless_plus): Negative numbers are
	handled correctly.
	(sreal::operator-): Subtraction is fixed.
	(sreal::signedless_minus): Negative numbers are
	handled correctly.
	* sreal.h (sreal::operator<): Equal negative numbers
	are compared correctly.
	(sreal::shift): New checking asserts are introduced.
	Operation is fixed.

2014-11-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61927
	* tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
	of group and pattern analysis to the one in GCC 4.8.

2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
	strlen, strncpy.
	* lto-wrapper.c (append_offload_options): Likewise.

2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>

	* config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
	load the static chain if the call was originally direct.

2014-11-25  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/64059
	* ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
	devirtualization is disabled.

2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/63965
	* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
	Altivec & -16 mask if the type is not valid for Altivec registers.
	(rs6000_secondary_reload_memory): Add support for ((reg + const) +
	reg) that occurs during push_reload processing.

	* config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
	alternative for moving constant vectors which are easy altivec
	constants to GPRs.  Set the length attribute each of the
	alternatives.

	* config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
	work in progress patch was committed instead of the fixes for
	63965.
	* config/rs6000/rs6000.c: Likewise.

2014-11-22  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63671
	* ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
	and -fno-devirtualize more carefully.
	(can_remove_node_now_p): Update.

2014-11-24  Andrew Pinski  <apinski@cavium.com>

	PR rtl-opt/63972
	* shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.

2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (vec_shr<mode>): New.

2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
	Refactor by combining switch statements and make arrays into scalars.

2014-11-24  David Edelsohn  <dje.gcc@gmail.com>

	PR c++/58561
	* dbxout.c: Include stringpool.h
	(dbxout_type) [default]: Ignore auto type.

2014-11-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63679
	* tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
	(copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
	to properly leave off at -1.
	(fully_constant_vn_reference_p): Generalize folding from
	constant initializers.
	(vn_reference_lookup_3): When looking through aggregate copies
	handle offsetted reads and try simplifying the result to
	a constant.
	* gimple-fold.h (fold_ctor_reference): Export.
	* gimple-fold.c (fold_ctor_reference): Likewise.

2014-11-24  Petr Murzin  <petr.murzin@intel.com>

	* simplify-rtx.c (simplify_ternary_operation): Simplify
	vec_merge (vec_duplicate (vec_select)).

2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
	(cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
	(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.

2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
	(cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
	(cortexa57_tunings): Likewise.
	(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.

2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
	in the not conditional jump case.
	* doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
	* target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.

2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c: Include tm-constrs.h
	(AARCH64_FUSE_ADRP_ADD): Define.
	(cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
	(cortexa53_tunings): Likewise.
	(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.

2014-11-24  Martin Liska  <mliska@suse.cz>

	* ipa-inline.c (edge_badness): long is replaced by sreal
	as fibonacci_heap template type.
	(update_edge_key): Likewise.
	(inline_small_functions): Likewise.

2014-11-24  Martin Liska  <mliska@suse.cz>

	* predict.c (propagate_freq): More elegant sreal API is used.
	(estimate_bb_frequencies): Precomputed constants replaced by integer
	constants.
	* sreal.c (sreal::normalize): New function.
	(sreal::to_int): Likewise.
	(sreal::operator+): Likewise.
	(sreal::operator-): Likewise.
	(sreal::signedless_plus): Likewise.
	(sreal::signedless_minus): Likewise.
	(sreal::operator/): Negative number support is added.
	* sreal.h: Definition of new functions added.
	(inline sreal operator<<): New function.
	(inline sreal operator>>): Likewise.

2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-protos.h (struct tune_params): Add
	fuseable_ops field.
	* config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(aarch64_macro_fusion_p): New function.
	(aarch_macro_fusion_pair_p): Likewise.
	(TARGET_SCHED_MACRO_FUSION_P): Define.
	(TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
	(AARCH64_FUSE_MOV_MOVK): Likewise.
	(AARCH64_FUSE_NOTHING): Likewise.

2014-11-24  Martin Liska  <mliska@suse.cz>

	PR lto/63968
	* bb-reorder.c (find_traces_1_round): decreate_key is replaced
	with replace_key method.
	* fibonacci_heap.h (fibonacci_heap::insert): New argument.
	(fibonacci_heap::replace_key_data): Likewise.
	(fibonacci_heap::replace_key): New method that can even increment key,
	this operation costs O(log N).
	(fibonacci_heap::extract_min): New argument.
	(fibonacci_heap::delete_node): Likewise.

2014-11-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55334
	* function.h (struct function): Add last_clique member.
	* tree-inline.c (remap_dependence_clique): New function.
	(remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
	(copy_tree_body_r): Likewise.
	(copy_cfg_body): Free dependence map.
	(copy_gimple_seq_and_replace_locals): Likewise.
	* tree-pretty-print.c (dump_generic_node): Dump
	dependence info.
	* tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
	to answer alias query.
	* tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
	tree-pretty-print.h and gimple-walk.h.
	(struct variable_info): Add is_restrict_var flag and ruid
	member.
	(new_var_info): Initialize is_restrict_var.
	(make_constraint_from_restrict): Likewise.
	(create_variable_info_for): Exclude restricts from global vars
	from new handling.
	(intra_create_variable_infos): But not those from parameters.
	(visit_loadstore): New function.
	(maybe_set_dependence_info): Likewise.
	(compute_dependence_clique): Likewise.
	(compute_may_aliases): Call compute_dependence_clique.
	* tree-data-ref.c (dr_analyze_indices): Copy dependence info
	to fake MEM_REF.
	(dr_may_alias_p): Use recorded dependence info to answer
	alias query.
	* tree-core.h (struct tree_base): Add clique, base struct in
	union.
	* tree.h (MR_DEPENDENCE_CLIQUE): New macro.
	(MR_DEPENDENCE_BASE): Likewise.
	* tree-inline.h (dependence_hasher): New hash-map kind.
	(struct copy_body_data): Add dependence_map pointer.
	* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
	throwing away dependence info.
	* tree-streamer-in.c (unpack_value_fields): Stream dependence info.
	* tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.

2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53976
	* config/sh/sh_optimize_sett_clrt.cc
	(sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
	of void.  Abort at complex edges.
	(sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
	returned false.

2014-11-22  John David Anglin  <danglin@gcc.gnu.org>

	PR other/63694
	* configure.ac: Check for strtol, strtoul, strtoll and strtoull
	declarations.
	* configure: Regenerated.
	* config.in: Regenerated.

2014-11-22  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
	clones as having abstract origin used.
	* ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
	origin check.
	(clone_inlined_nodes): Copy abstract originflag.
	* lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
	abstract origin node.

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

	* params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
	* config/i386/i386.c (ix86_option_override_internal): Do not increase
	PARAM_MAX_COMPLETELY_PEELED_INSNS.

2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/63783
	PR target/51244
	* config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
	Do not emit bitwise not insn.  Emit logical not insn sequence instead.
	Adjust related comments throughout the file.

2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/63986
	PR target/51244
	* config/sh/sh.c (sh_is_logical_t_store_expr,
	sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
	(sh_split_movrt_negc_to_movt_xor): New function.
	(sh_find_set_of_reg): Move to ...
	* config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
	to template function.
	(set_of_reg): Use rtx_insn* for insn member.
	(sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
	rtx_insn* for insn argument.
	* config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
	sequence using new sh_split_movrt_negc_to_movt_xor function.
	(movrt_xor): Allow also for SH2A.
	(*movt_movrt): Delete insns and splits.

2014-11-22  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/60770
	* tree-sra.c (clobber_subtree): New function.
	(sra_modify_constructor_assign): Call it.

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

	PR target/63897
	* lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
	argument.
	(process_bb_lives): Rename dead_insn_p on remove_p
	and global_live_info_p on dead_insn_p.  Calculate local live info
	unconditionally.  Remove last argument in calls mark_regno_live and
	mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
	(lra_create_live_ranges): Rename to lra_create_live_ranges_1.
	Return bool.  Rename global_live_info_p on dead_insn_p.  Return
	flag of live info change.
	(lra_create_live_ranges): New.

2014-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/63848
	PR target/63975
	* internal-fn.c (expand_arith_overflow_result_store,
	expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
	do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
	adjust arguments to those functions.  Use unsignedp = true for
	EQ, NE, GEU, LEU, LTU and GTU comparisons.

	PR tree-optimization/64006
	* tree-vrp.c (stmt_interesting_for_vrp): Return true
	for {ADD,SUB,MUL}_OVERFLOW internal calls.
	(vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
	internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
	immediate uses would change their value ranges and return
	SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
	if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
	interesting for vrp.

2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/63965
	* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
	Altivec & -16 mask if the type is not valid for Altivec registers.
	(rs6000_secondary_reload_memory): Add support for ((reg + const) +
	reg) that occurs during push_reload processing.

	* config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
	alternative for moving constant vectors which are easy altivec
	constants to GPRs.  Set the length attribute each of the
	alternatives.

2014-11-21  Matthew Fortune  <matthew.fortune@imgtec.com>

	* configure.ac: When checking for MIPS .module support ensure that
	o32 FPXX is supported to avoid a second configure check.
	* configure: Regenerate.

2014-11-21  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/iterators.md (VS): New mode iterator.
	(vsi2qi): New mode attribute.
	(VSI2QI): Likewise.
	* config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
	* config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
	* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.

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

	PR bootstrap/63784
	* configure: Regenerated.

2014-11-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.

2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
	OPTION_MASK_ISA_PCOMMIT_SET): New.
	(ix86_handle_option): Handle OPT_mpcommit.
	* config.gcc: Add pcommitintrin.h
	* config/i386/pcommitintrin.h: New file.
	* config/i386/cpuid.h (bit_PCOMMIT): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__PCOMMIT__.
	* config/i386/i386.c (ix86_target_string): Add -mpcommit.
	(PTA_PCOMMIT): Define.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add pcommit.
	(ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
	(bdesc_special_args): Add __builtin_ia32_pcommit.
	* config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
	* config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
	(pcommit): New instruction.
	* config/i386/i386.opt: Add mpcommit.
	* config/i386/x86intrin.h: Include pcommitintrin.h.

2014-11-20  Mark Wielaard  <mjw@redhat.com>

	PR debug/38757
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
	* config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
	(darwin_override_options): Likewise.
	* config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Likewise.
	* dbxout.c (get_lang_number): Likewise.
	(dbxout_type): Likewise.
	(dbxout_symbol_location): Likewise.
	* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
	also for DW_LANG_{C,C99,ObjC}.
	(highest_c_language): New function.
	(gen_compile_unit_die): Call highest_c_language to merge LTO
	TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
	determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
	* fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
	* langhooks.h (struct lang_hooks): Add version comment to name.
	(lang_GNU_C): New function declaration.
	(lang_GNU_CXX): Likewise.
	* langhooks.c (lang_GNU_C): New function.
	(lang_GNU_CXX): Likewise.
	* vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.

2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
	OPTION_MASK_ISA_CLWB_SET): New.
	(ix86_handle_option): Handle OPT_mclwb.
	* config.gcc: Add clwbintrin.h.
	* config/i386/clwbintrin.h: New file.
	* config/i386/cpuid.h (bit_CLWB): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__CLWB__.
	* config/i386/i386.c (ix86_target_string): Add -mclwb.
	(PTA_CLWB): Define.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add clwb.
	(ix86_builtins): Add IX86_BUILTIN_CLWB.
	(ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
	(ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
	* config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
	* config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
	(clwb): New instruction.
	* config/i386/i386.opt: Add mclwb.
	* config/i386/x86intrin.h: Include clwbintrin.h.

2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
	OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx512vbmi.
	* config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
	* config/i386/avx512vbmiintrin.h: New file.
	* config/i386/avx512vbmivlintrin.h: Ditto.
	* config/i386/cpuid.h (bit_AVX512VBMI): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512VBMI__.
	* config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
	(PTA_AVX512VBMI): Define.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add avx512vbmi,
	(ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
	IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
	IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
	IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
	IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
	IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
	IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
	IX86_BUILTIN_VPERMI2VARQI128.
	(bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
	__builtin_ia32_vpmultishiftqb256_mask,
	__builtin_ia32_vpmultishiftqb128_mask,
	__builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
	__builtin_ia32_vpermt2varqi512_maskz,
	__builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
	__builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
	__builtin_ia32_vpermt2varqi256_maskz,
	__builtin_ia32_vpermt2varqi128_mask,
	__builtin_ia32_vpermt2varqi128_maskz,
	__builtin_ia32_vpermi2varqi256_mask,
	__builtin_ia32_vpermi2varqi128_mask.
	(ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
	* config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
	* config/i386/i386.opt: Add mavx512vbmi.
	* config/i386/immintrin.h: Include avx512vbmiintrin.h,
	avx512vbmivlintrin.h.
	* config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
	(VI1_AVX512VL): New iterator.
	(<avx512>_permvar<mode><mask_name>): Use it.
	(<avx512>_vpermi2var<mode>3_maskz): Ditto.
	(<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
	(<avx512>_vpermi2var<mode>3_mask): Ditto.
	(<avx512>_vpermt2var<mode>3_maskz): Ditto.
	(<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
	(<avx512>_vpermt2var<mode>3_mask): Ditto.
	(vpmultishiftqb<mode><mask_name>): Ditto.

2014-11-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR rtl-optimization/63952
	* optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
	* config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
	Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.

2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
	OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx512ifma.
	* config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
	* config/i386/avx512ifmaintrin.h: New file.
	* config/i386/avx512ifmaivlntrin.h: Ditto.
	* config/i386/cpuid.h (bit_AVX512IFMA): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	avx512ifma.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512IFMA__.
	* config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
	(PTA_AVX512IFMA): Define.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add avx512ifma.
	(ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
	IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
	IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
	IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
	IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
	IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
	IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
	(bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
	__builtin_ia32_vpmadd52luq512_maskz,
	__builtin_ia32_vpmadd52huq512_mask,
	__builtin_ia32_vpmadd52huq512_maskx,
	__builtin_ia32_vpmadd52luq256_mask,
	__builtin_ia32_vpmadd52luq256_maskz,
	__builtin_ia32_vpmadd52huq256_mask,
	__builtin_ia32_vpmadd52huq256_maskz,
	__builtin_ia32_vpmadd52luq128_mask,
	__builtin_ia32_vpmadd52luq128_maskz,
	__builtin_ia32_vpmadd52huq128_mask,
	__builtin_ia32_vpmadd52huq128_maskz,
	* config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
	* config/i386/i386.opt: Add mavx512ifma.
	* config/i386/immintrin.h: Include avx512ifmaintrin.h,
	avx512ifmavlintrin.h.
	* config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
	UNSPEC_VPMADD52HUQ.
	(VPMADD52): New iterator.
	(vpmadd52type): New attribute.
	(vpamdd52huq<mode>_maskz): New.
	(vpamdd52luq<mode>_maskz): Ditto.
	(vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
	(vpamdd52<vpmadd52type><mode>_mask): Ditto.

2014-11-21  Alan Lawrence  <alan.lawrence@arm.com>

	Revert:
	2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
	* fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.

2014-11-21  Andrew Bennett  <andrew.bennett@imgtec.com>

	* config/mips/mips.c (mips_process_sync_loop): Place a
	nop in the delay slot of the branch likely instruction.
	(mips_output_sync_loop): Ensure mips_branch_likely is
	set before calling mips_output_sync_loop.
	(mips_sync_loop_insns): Likewise.

2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR/target 63673
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
	the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
	double.

2014-11-21  Georg-Johann Lay  <avr@gjlay.de>

	Forward-port from 2014-10-30 4_9-branch r216934

	PR target/63633
	* config/avr/avr-protos.h (regmask): New inline function.
	(avr_fix_inputs, avr_emit3_fix_outputs): New protos.
	* config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
	(avr_fix_inputs, avr_emit3_fix_outputs): New functions.
	* config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
	(mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
	(<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
	* config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
	(<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
	(<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
	* config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
	(mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
	(usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
	(fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
	needed.

2014-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/61137
	* config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
	(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.

2014-11-21  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
	output mnemonic and operands.
	(aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
	(aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.

2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/i386.c (ix86_option_override_internal): Increase
	PARAM_MAX_COMPLETELY_PEELED_INSNS.

2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>

	PR target/60451
	* config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
	(expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
	replace for V16QI, V16HI and V32QI modes.
	(ix86_expand_vec_perm_const_1): Add new expand.

2014-11-21  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78-real.md (movqi_from_es): New pattern.
	* config/rl78/rl78.c (struct machine_function): Add uses_es field.
	(rl78_expand_prologue): Save the ES register in interrupt handlers
	that use it.
	(rl78_expand_epilogue): Restore the ES register if necessary.
	(rl78_start_function): Mention if the function uses the ES
	register.
	(rl78_lo16): Record the use of the ES register.
	(transcode_memory_rtx): Likewise.

2014-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/61773
	* tree-ssa-strlen.c (get_string_length): Don't assert
	stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.

	PR target/63910
	* simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
	modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
	CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.

2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
	HOST_WIDE_INT_M1U instead of ~0.
	(includes_rldicr_lshift_p): Likewise.

2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
	we need to look into its operand to determine if it is a valid
	address.

2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
	vaarg_p argument and create correct CFI info.
	(nds32_expand_prologue): Pass true or false to
	nds32_emit_stack_push_multiple function.

2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
	as RTX_FRAME_RELATED_P rtx.

2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.opt (march): Add help message.

2014-11-20  Patrick Palka  <ppalka@gcc.gnu.org>

	* tree-vrp.c (test_for_singularity): New parameter
	strict_overflow_p.  Set *strict_overflow_p to true if signed
	overflow must be undefined for the return value to satisfy the
	conditional.
	(simplify_cond_using_ranges): Don't perform the simplification
	if it violates overflow rules.

2014-11-20  Marek Polacek  <polacek@redhat.com>

	* tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.

2014-11-20  Andrew Stubbs  <ams@codesourcery.com>

	* tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
	condition would be removed due to undefined behaviour.

2014-11-20  Andrew Pinski  <apinski@cavium.com>

	PR ipa/63981
	PR ipa/63982
	* ipa-polymorphic-call.c (possible_placement_new):
	Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
	(ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
	(extr_type_from_vtbl_ptr_store): Likewise.

2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* config/rs6000/constraints.md: Avoid signed integer overflows.
	* config/rs6000/predicates.md: Likewise.
	* config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
	(includes_rldic_lshift_p): Likewise.
	(includes_rldicr_lshift_p): Likewise.
	* emit-rtl.c (const_wide_int_htab_hash): Likewise.
	* loop-iv.c (determine_max_iter): Likewise.
	(iv_number_of_iterations): Likewise.
	* tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
	* varasm.c (get_section_anchor): Likewise.

2014-11-20  Charles Baylis  <charles.baylis@linaro.org>

	PR target/63870
	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
	expression to aarch64_simd_lane_bounds.
	* config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
	prototype.
	* config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
	call to aarch64_simd_lane_bounds.
	(aarch64_get_lanedi): Likewise.
	(aarch64_ld2_lane<mode>): Likewise.
	(aarch64_ld3_lane<mode>): Likewise.
	(aarch64_ld4_lane<mode>): Likewise.
	(aarch64_im_lane_boundsi): Likewise.
	* config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
	parameter. Report calling function in error message if exp is non-NULL.

2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/60111
	* config/sh/sh.c: Use signed char for signed field.

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
	hash_table.

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* ipa-utils.c, lto-section-in.c, lto-streamer.h,
	tree-scalar-evolution.c: Replace htab with hash_table.

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* lto-section-in.c (lto_delete_in_decl_state): Adjust.
	(lto_free_function_in_decl_state): Likewise.
	* lto-streamer-out.c (copy_function_or_variable): Likewise.
	* lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
	(lto_file_decl_data_num_ ## name ## s): Likewise.
	(struct lto_tree_ref_table): Remove.
	(struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-map.h (hash_map::iterator): New class.
	(hash_map::begin): New method.
	(hash_map::end): Likewise.
	* alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
	replace splay_tree with hash_map.

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-table.h (hash_table::hash_table): Call alloc_entries.
	(hash_table::alloc_entries): new method.
	(hash_table::expand): Call alloc_entries.
	(hash_table::empty): Likewise.

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
	tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* doc/gty.texi: Document the new cache gty attribute.
	* gengtype.c (finish_cache_funcs): New function.
	(write_roots): Call gt_clear_cache on global variables with the cache
	gty attribute.
	* ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
	* ggc.h (gt_clear_caches): New declaration.
	* hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
	memory.
	(gt_cleare_cache): New function.
	* emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.

2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (try_combine): Prefer to delete dead SETs inside
	a PARALLEL over keeping them.

2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>

	* combine.c (combine_validate_cost): Always print the insn costs
	to the dump file.

2014-11-20  Richard Henderson <rth@redhat.com>

	PR target/63977
	* config/i386/i386.c (ix86_static_chain): Reinstate the check
	for DECL_STATIC_CHAIN.

2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
	Fixup prototype.
	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
	aarch64_cannot_force_const_mem, aarch64_classify_address,
	aarch64_classify_symbolic_expression): Fixup call to
	aarch64_classify_symbol.
	(aarch64_classify_symbol): Add range-checking for
	symbol + offset addressing for tiny and small models.

2014-11-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/63962
	* match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
	Guard with single-use operand 0.

2014-11-20   Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63677
	* tree-ssa-dom.c: Include gimplify.h for unshare_expr.
	(avail_exprs_stack): Make a vector of pairs.
	(struct hash_expr_elt): Replace stmt member with vop member.
	(expr_elt_hasher::equal): Simplify.
	(initialize_hash_element): Adjust.
	(initialize_hash_element_from_expr): Likewise.
	(dom_opt_dom_walker::thread_across_edge): Likewise.
	(record_cond): Likewise.
	(dom_opt_dom_walker::before_dom_children): Likewise.
	(print_expr_hash_elt): Likewise.
	(remove_local_expressions_from_table): Restore previous state
	if requested.
	(record_equivalences_from_stmt): Record &x + CST as constant
	&MEM[&x, CST] for further propagation.
	(vuse_eq): New function.
	(lookup_avail_expr): For loads use the alias oracle to see
	whether a candidate from the expr hash is usable.
	(avail_expr_hash): Do not hash VUSEs.

2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/59593
	* config/arm/arm.md (*movhi_insn): Use right formatting
	for immediate.

2014-11-20  Igor Zamyatin  <igor.zamyatin@intel.com>

	PR sanitizer/63845
	* function.c (assign_parms): Move init of pic_offset_table_rtx
	from here to...
	* cfgexpand.c (expand_used_vars): ...here.

2014-11-19  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (free_lang_data_in_type): If BINFO has no important
	information in it, set it to NULL.
	(get_binfo_at_offset): Do not walk fields, only bases.
	* ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
	to be NULL.
	* ipa-polymorphic-call.c (record_known_type): Likewise.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
	congruence_class_group *.

2014-11-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/63947
	* config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
	Output "b" and "nb" suffix for FP mode.

2014-11-19  Jan Hubicka  <hubicka@ucw.cz>

	PR bootstrap/63963
	* tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream
	out DECL_FUNCTION_SPECIFIC_TARGET
	* tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream
	in DECL_FUNCTION_SPECIFIC_TARGET.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* lra.c (lra): After creating live ranges in preparation for call
	to lra_inheritance, set live_p to true.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* tree-ssa-threadedge.c (thread_across_edge): Don't just release
	"path", delete it.
	* tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
	vec<> to auto_vec<> to fix a leak.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* dwarf2out.c (dwarf2out_c_finalize): Free producer_string.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* ira-costs.c (ira_costs_c_finalize): New function.
	* ira.h (ira_costs_c_finalize): New prototype.
	* toplev.c (toplev::finalize): Call ira_costs_c_finalize.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* ipa-reference.c (ipa_reference_c_finalize): Release
	optimization_summary_obstack.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* toplev.c (toplev::finalize): Free opts_obstack.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* toplev.c (toplev::finalize): Clean up save_decoded_options.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* bb-reorder.c
	(find_rarely_executed_basic_blocks_and_crossing_edges): Convert
	local bbs_in_hot_partition from vec<> to auto_vec<>.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* config/alpha/alpha.c (alpha_option_override): Remove static from
	"handle_trap_shadows_info" and "align_insns_info".
	* config/i386/i386.c (ix86_option_override): Likewise for
	"insert_vzeroupper_info".
	* config/rl78/rl78.c (rl78_asm_file_start): Likewise for
	"rl78_devirt_info" and "rl78_move_elim_info".
	* config/rs6000/rs6000.c (rs6000_option_override): Likewise for
	"analyze_swaps_info".
	* context.c (gcc::context::~context): New.
	* context.h (gcc::context::~context): New.
	* dumpfile.c (dump_files): Add "false" initializers for new field
	"owns_strings".
	(gcc::dump_manager::~dump_manager): New.
	(gcc::dump_manager::dump_register): Add param "take_ownership".
	* dumpfile.h (struct dump_file_info): Add field "owns_strings".
	(gcc::dump_manager::~dump_manager): New.
	(gcc::dump_manager::dump_register): Add param "take_ownership".
	* pass_manager.h (gcc::pass_manager::operator delete): New.
	(gcc::pass_manager::~pass_manager): New.
	* passes.c (pass_manager::register_one_dump_file): Pass "true" to
	new "owns_strings" argument to dump_register.
	(pass_manager::operator delete): New.
	(delete_pass_tree): New function.
	(pass_manager::~pass_manager): New.
	* statistics.c (statistics_early_init): Pass "false" to
	new "owns_strings" argument to dump_register.
	* toplev.c (toplev::finalize): Clean up the context and thus the
	things it owns.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
	obstack_free when cleaning up valid_mode_changes_obstack.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	PR jit/63854
	* opts.c (finalize_options_struct): New.
	* opts.h (finalize_options_struct): New.
	* toplev.c (toplev::finalize): Call finalize_options_struct
	on global_options and global_options_set.

2014-11-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Jakub Jelinek  <jakub@redhat.com>

	PR driver/36312
	PR driver/63837
	* gcc.c (process_command): Don't check for input/output
	filename equality if output is HOST_BIT_BUCKET.
	* toplev.c (init_asm_output): Likewise.

2014-11-19  David Malcolm  <dmalcolm@redhat.com>

	Merger of git branch "gimple-classes-v2-option-3".

	* ChangeLog.gimple-classes: New.

	* coretypes.h (struct gcond): Add forward decl.
	(struct gdebug): Likewise.
	(struct ggoto): Likewise.
	(struct glabel): Likewise.
	(struct gswitch): Likewise.
	(struct gassign): Likewise.
	(struct gasm): Likewise.
	(struct gcall): Likewise.
	(struct gtransaction): Likewise.
	(struct greturn): Likewise.
	(struct gbind): Likewise.
	(struct gcatch): Likewise.
	(struct geh_filter): Likewise.
	(struct geh_mnt): Likewise.
	(struct geh_else): Likewise.
	(struct gresx): Likewise.
	(struct geh_dispatch): Likewise.
	(struct gphi): Likewise.
	(struct gtry): Likewise.
	(struct gomp_atomic_load): Likewise.
	(struct gomp_atomic_store): Likewise.
	(struct gomp_continue): Likewise.
	(struct gomp_critical): Likewise.
	(struct gomp_for): Likewise.
	(struct gomp_parallel): Likewise.
	(struct gomp_task): Likewise.
	(struct gomp_sections): Likewise.
	(struct gomp_single): Likewise.
	(struct gomp_target): Likewise.
	(struct gomp_teams): Likewise.

	* doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
	for renaming of gimple subclasses.

	* gdbhooks.py: Update.

	* gimple-iterator.c (gsi_for_phi): New.
	(gsi_start_phis): Strengthen return type from gimple_stmt_iterator
	to gphi_iterator.
	* gimple-iterator.h (struct gphi_iterator): New subclass of
	gimple_stmt_iterator.
	(gsi_for_phi): New prototype.
	(gsi_start_phis): Strengthen return type from gimple_stmt_iterator
	to gphi_iterator.
	(gsi_next_nonvirtual_phi): Strengthen param from
	gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
	gimple to gphi *.

	* gsstruct.def: Update for renamings of classes.

	* gimple.c (gimple_build_return): Strengthen return type from
	gimple to greturn *.
	(gimple_call_reset_alias_info): Strengthen param to gcall *.
	(gimple_build_call_1): Strengthen return type from gimple to
	gcall *.
	(gimple_build_call_vec): Likewise.
	(gimple_build_call): Likewise.
	(gimple_build_call_valist): Likewise.
	(gimple_build_call_internal_1): Likewise.
	(gimple_build_call_internal): Likewise.
	(gimple_build_call_internal_vec): Likewise.
	(gimple_build_call_from_tree): Likewise.
	(gimple_build_assign_stat): Strengthen return type from gimple to
	gassign *.
	(gimple_build_assign_with_ops): Likewise.
	(gimple_build_assign_with_ops): Likewise.
	(gimple_build_cond): Strengthen return type from gimple to
	gcond *.
	(gimple_build_cond_from_tree): Likewise.
	(gimple_cond_set_condition_from_tree): Require a gcond *.
	(gimple_build_label): Strengthen return type from gimple to
	glabel *.
	(gimple_build_goto): Strengthen return type from gimple to
	ggoto *.
	(gimple_build_bind): Strengthen return type from gimple to
	gbind *.
	(gimple_build_asm_1): Strengthen return type from gimple to
	gasm *.
	(gimple_build_asm_vec): Likewise.
	(gimple_build_catch): Strengthen return type from gimple to
	gcatch *.
	(gimple_build_eh_filter): Strengthen return type from gimple to
	geh_filter *.
	(gimple_build_eh_must_not_throw): Strengthen return type from
	gimple to geh_mnt *.
	(gimple_build_eh_else): Strengthen return type from gimple to
	geh_else *.
	(gimple_build_try): Update for renaming of gimple_statement_try to
	gtry.
	(gimple_build_resx): Strengthen return type from gimple to
	gresx *.
	(gimple_build_switch_nlabels): Strengthen return type from gimple
	to gswitch *.
	(gimple_build_switch): Likewise.
	(gimple_build_eh_dispatch): Strengthen return type from gimple to
	geh_dispatch *.
	(gimple_build_debug_bind_stat): Strengthen return type from gimple
	to gdebug *.
	(gimple_build_debug_source_bind_stat): Strengthen return type from
	gimple to gdebug *.
	(gimple_build_omp_critical): Strengthen return type from gimple to
	gomp_critical *.
	(gimple_build_omp_for): Strengthen return type from gimple to
	gomp_for *.
	(gimple_build_omp_parallel): Strengthen return type from gimple to
	gomp_parallel *.
	(gimple_build_omp_task): Strengthen return type from gimple to
	gomp_task *.
	(gimple_build_omp_continue): Strengthen return type from gimple to
	gomp_continue *.
	(gimple_build_omp_sections): Strengthen return type from gimple to
	gomp_sections *.
	(gimple_build_omp_single): Strengthen return type from gimple to
	gomp_single *.
	(gimple_build_omp_target): Strengthen return type from gimple to
	gomp_target *.
	(gimple_build_omp_teams): Strengthen return type from gimple to
	gomp_teams *.
	(gimple_build_omp_atomic_load): Strengthen return type from gimple
	to gomp_atomic_load *.
	(gimple_build_omp_atomic_store): Strengthen return type from gimple
	to gomp_atomic_store *.
	(gimple_build_transaction): Strengthen return type from gimple
	to gtransaction *.
	(empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
	(gimple_call_fnspec): Require a const gcall *.
	(gimple_call_arg_flags): Likewise.
	(gimple_call_return_flags): Likewise.
	(gimple_set_bb): Add a checked cast.
	(gimple_copy): Within the cases, add locals of the appropriate
	subclass and use in place of "stmt" and "copy" for typesafety.
	(gimple_has_side_effects): Add a checked cast.
	(gimple_could_trap_p_1): Likewise.
	(gimple_call_copy_skip_args): Require a gcall *, and return one.
	(gimple_asm_clobbers_memory_p): Require a const gasm *.
	(infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
	dyn_cast, introducing local "return_stmt" and using ti in place
	of "stmt".

	* gimple.h (gimple_vec): Eliminate this typedef.
	(struct gimple_statement_call): Rename to...
	(struct gcall): ...this.
	(struct gimple_statement_bind): Rename to...
	(struct gbind): ...this.
	(struct gimple_statement_catch): Rename to...
	(struct gcatch): ...this.
	(struct gimple_statement_eh_filter): Rename to...
	(struct geh_filter): ...this.
	(struct gimple_statement_eh_else): Rename to...
	(struct geh_else): ...this.
	(struct gimple_statement_eh_mnt): Rename to...
	(struct geh_mnt): ...this.
	(struct gimple_statement_phi): Rename to...
	(struct gphi): ...this.
	(struct gimple_statement_resx): Rename to...
	(struct gresx): ...this.
	(struct gimple_statement_eh_dispatch): Rename to...
	(struct geh_dispatch): ...this.
	(struct gimple_statement_try): Rename to...
	(struct gtry): ...this.
	(struct gimple_statement_asm): Rename to...
	(struct gasm): ...this.
	(struct gimple_statement_omp_critical): Rename to...
	(struct gomp_critical): ...this.
	(struct gimple_statement_omp_for): Rename to...
	(struct gomp_for): ...this.
	(struct gimple_statement_omp_parallel): Rename to...
	(struct gomp_parallel): ...this.
	(struct gimple_statement_omp_target): Rename to...
	(struct gomp_target): ...this.
	(struct gimple_statement_omp_task): Rename to...
	(struct gomp_task): ...this.
	(struct gimple_statement_omp_sections): Rename to...
	(struct gomp_sections): ...this.
	(struct gimple_statement_omp_continue): Rename to...
	(struct gomp_continue): ...this.
	(struct gimple_statement_omp_single): Rename to...
	(struct gomp_single): ...this.
	(struct gimple_statement_omp_teams): Rename to...
	(struct gomp_teams): ...this.
	(struct gimple_statement_omp_atomic_load): Rename to...
	(struct gomp_atomic_load): ...this.
	(struct gimple_statement_omp_atomic_store :): Rename to...
	(struct gomp_atomic_store :): ...this.
	(struct gimple_statement_transaction): Rename to...
	(struct gtransaction): ...this.
	(struct gcond): New subclass.
	(struct gdebug): New subclass.
	(struct ggoto): New subclass.
	(struct glabel): New subclass.
	(struct gswitch): New subclass.
	(struct gassign): New subclass.
	(struct greturn): New subclass.
	(is_a_helper <gimple_statement_asm *>::test): Rename to...
	(is_a_helper <gasm *>::test): ...this.
	(is_a_helper <gimple_statement_bind *>::test): Rename to...
	(is_a_helper <gbind *>::test): ...this.
	(is_a_helper <gassign *>::test): New.
	(is_a_helper <gimple_statement_call *>::test): Rename to...
	(is_a_helper <gcall *>::test): ...this.
	(is_a_helper <gimple_statement_catch *>::test): Rename to...
	(is_a_helper <gcatch *>::test): ...this.
	(is_a_helper <gimple_statement_resx *>::test): Rename to...
	(is_a_helper <gresx *>::test): ...this.
	(is_a_helper <gcond *>::test): New.
	(is_a_helper <gdebug *>::test): New.
	(is_a_helper <ggoto *>::test): New.
	(is_a_helper <glabel *>::test): New.
	(is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
	(is_a_helper <geh_dispatch *>::test): ...this.
	(is_a_helper <gimple_statement_eh_else *>::test): Rename to...
	(is_a_helper <geh_else *>::test): ...this.
	(is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
	(is_a_helper <geh_filter *>::test): ...this.
	(is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
	(is_a_helper <geh_mnt *>::test): ...this.
	(is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
	(is_a_helper <gomp_atomic_load *>::test): ...this.
	(is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
	(is_a_helper <gomp_atomic_store *>::test): ...this.
	(is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
	(is_a_helper <gomp_continue *>::test): ...this.
	(is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
	(is_a_helper <gomp_critical *>::test): ...this.
	(is_a_helper <gimple_statement_omp_for *>::test): Rename to...
	(is_a_helper <gomp_for *>::test): ...this.
	(is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
	(is_a_helper <gomp_parallel *>::test): ...this.
	(is_a_helper <gimple_statement_omp_target *>::test): Rename to...
	(is_a_helper <gomp_target *>::test): ...this.
	(is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
	(is_a_helper <gomp_sections *>::test): ...this.
	(is_a_helper <gimple_statement_omp_single *>::test): Rename to...
	(is_a_helper <gomp_single *>::test): ...this.
	(is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
	(is_a_helper <gomp_teams *>::test): ...this.
	(is_a_helper <gimple_statement_omp_task *>::test): Rename to...
	(is_a_helper <gomp_task *>::test): ...this.
	(is_a_helper <gimple_statement_phi *>::test): Rename to...
	(is_a_helper <gphi *>::test): ...this.
	(is_a_helper <gimple_statement_transaction *>::test): Rename to...
	(is_a_helper <gtransaction *>::test): ...this.
	(is_a_helper <greturn *>::test): New.
	(is_a_helper <gswitch *>::test): New.
	(is_a_helper <gimple_statement_try *>::test): Rename to...
	(is_a_helper <gtry *>::test): ...this.
	(is_a_helper <const gimple_statement_asm *>::test): Rename to...
	(is_a_helper <const gasm *>::test): ...this.
	(is_a_helper <const gimple_statement_bind *>::test): Rename to...
	(is_a_helper <const gbind *>::test): ...this.
	(is_a_helper <const gimple_statement_call *>::test): Rename to...
	(is_a_helper <const gcall *>::test): ...this.
	(is_a_helper <const gimple_statement_catch *>::test): Rename to...
	(is_a_helper <const gcatch *>::test): ...this.
	(is_a_helper <const gimple_statement_resx *>::test): Rename to...
	(is_a_helper <const gresx *>::test): ...this.
	(is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
	(is_a_helper <const geh_dispatch *>::test): ...this.
	(is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
	(is_a_helper <const geh_filter *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_atomic_load *>::test):
	Rename to...
	(is_a_helper <const gomp_atomic_load *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
	Rename to...
	(is_a_helper <const gomp_atomic_store *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_continue *>::test):
	Rename to...
	(is_a_helper <const gomp_continue *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_critical *>::test):
	Rename to...
	(is_a_helper <const gomp_critical *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
	(is_a_helper <const gomp_for *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_parallel *>::test):
	Rename to...
	(is_a_helper <const gomp_parallel *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
	(is_a_helper <const gomp_target *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_sections *>::test):
	Rename to...
	(is_a_helper <const gomp_sections *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
	(is_a_helper <const gomp_single *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
	(is_a_helper <const gomp_teams *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
	(is_a_helper <const gomp_task *>::test): ...this.
	(is_a_helper <const gimple_statement_phi *>::test): Rename to...
	(is_a_helper <const gphi *>::test): ...this.
	(is_a_helper <const gimple_statement_transaction *>::test): Rename to...
	(is_a_helper <const gtransaction *>::test): ...this.
	(gimple_build_return): Strengthen return type to greturn *.
	(gimple_call_reset_alias_info): Require a gcall *.
	(gimple_build_call_vec): Return a gcall *.
	(gimple_build_call): Likewise.
	(gimple_build_call_valist): Likewise.
	(gimple_build_call_internal): Likewise.
	(gimple_build_call_internal_vec): Likewise.
	(gimple_build_call_from_tree): Likewise.
	(gimple_build_assign_stat): Return a gassign *.
	(gimple_build_assign_with_ops): Likewise.
	(gimple_build_cond): Return a gcond *.
	(gimple_build_cond_from_tree): Likewise.
	(gimple_cond_set_condition_from_tree): Require a gcond *.
	(gimple_build_label): Return a glabel *.
	(gimple_build_goto): Return a ggoto *.
	(gimple_build_bind): Return a gbind *.
	(gimple_build_asm_vec): Return a gasm *.
	(gimple_build_catch): Return a gcatch *.
	(gimple_build_eh_filter): Return a geh_filter *.
	(gimple_build_eh_must_not_throw): Return a geh_mnt *.
	(gimple_build_eh_else): Return a geh_else *.
	(gimple_build_try): Return a gtry *.
	(gimple_build_resx): Return a gresx *.
	(gimple_build_switch_nlabels): Return a gswitch *.
	(gimple_build_switch): Return a gswitch *.
	(gimple_build_eh_dispatch): Return a geh_dispatch *.
	(gimple_build_debug_bind_stat): Return a gdebug *.
	(gimple_build_debug_source_bind_stat): Return a gdebug *.
	(gimple_build_omp_critical): Return a gomp_critical *.
	(gimple_build_omp_for): Return a gomp_for *.
	(gimple_build_omp_parallel): Return a gomp_parallel *.
	(gimple_build_omp_task): Return a gomp_task *.
	(gimple_build_omp_continue): Return a gomp_continue *.
	(gimple_build_omp_sections): Return a gomp_sections *.
	(gimple_build_omp_single): Return a gomp_single *.
	(gimple_build_omp_target): Return a gomp_target *.
	(gimple_build_omp_teams): Return a gomp_teams *.
	(gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
	(gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
	(gimple_build_transaction): Return a gtransaction *.
	(gimple_call_arg_flags): Require a const gcall *.
	(gimple_call_return_flags): Likewise.
	(gimple_call_copy_skip_args): Require and return a gcall *.
	(gimple_asm_clobbers_memory_p): Require a const gasm *.
	(gimple_seq_first_stmt_as_a_bind): New.
	(gimple_assign_nontemporal_move_p): Require a const gassign *
	rather than a const_gimple.
	(gimple_call_internal_fn): Update for renaming to gcall.
	(gimple_call_fntype): Likewise.
	(gimple_call_set_fntype): Require a gcall * rather than a gimple.
	(gimple_call_set_fn): Likewise.
	(gimple_call_set_internal_fn): Likewise.
	(gimple_call_set_chain): Likewise.
	(gimple_call_set_tail): Likewise.
	(gimple_call_tail_p): Likewise.
	(gimple_call_set_return_slot_opt): Likewise.
	(gimple_call_return_slot_opt_p): Likewise.
	(gimple_call_set_from_thunk): Likewise.
	(gimple_call_from_thunk_p): Likewise.
	(gimple_call_set_va_arg_pack): Likewise.
	(gimple_call_va_arg_pack_p): Likewise.
	(gimple_call_set_nothrow): Likewise.
	(gimple_call_nothrow_p): Likewise.
	(gimple_call_set_alloca_for_var): Likewise.
	(gimple_call_alloca_for_var_p): Likewise.
	(gimple_call_use_set): Likewise.
	(gimple_call_clobber_set): Likewise.
	(gimple_call_return_type): Require a const gcall * rather than a
	const_gimple.
	(gimple_call_chain_ptr): Likewise.
	(gimple_call_copy_flags): Require a pair of gcall *.
	(gimple_cond_set_code): Require a gcond * rather than a gimple
	(gimple_cond_set_lhs): Likewise.
	(gimple_cond_set_rhs): Likewise.
	(gimple_cond_set_true_label): Likewise.
	(gimple_cond_set_false_label): Likewise.
	(gimple_cond_make_false): Likewise.
	(gimple_cond_make_true): Likewise.
	(gimple_cond_lhs_ptr): Require a const gcond * rather than a
	const_gimple.
	(gimple_cond_rhs_ptr): Likewise.
	(gimple_cond_true_label): Likewise.
	(gimple_cond_false_label): Likewise.
	(gimple_cond_true_p): Likewise.
	(gimple_cond_false_p): Likewise.
	(gimple_cond_set_condition): Likewise.
	(gimple_label_label): Require a const glabel *.
	(gimple_label_set_label): Require a glabel *.
	(gimple_goto_set_dest): Require a ggoto *.
	(gimple_bind_vars): Require a const gbind *.
	(gimple_bind_block): Likewise.
	(gimple_bind_set_vars): Require a gbind *.
	(gimple_bind_append_vars): Likewise.
	(gimple_bind_body_ptr): Likewise.
	(gimple_bind_body): Likewise.
	(gimple_bind_set_body): Likewise.
	(gimple_bind_add_stmt): Likewise.
	(gimple_bind_add_seq): Likewise.
	(gimple_bind_set_block): Likewise.
	(gimple_asm_ninputs): Require a const gasm *.
	(gimple_asm_noutputs): Likewise.
	(gimple_asm_nclobbers): Likewise.
	(gimple_asm_nlabels): Likewise.
	(gimple_asm_input_op): Likewise.
	(gimple_asm_input_op_ptr): Likewise.
	(gimple_asm_output_op): Likewise.
	(gimple_asm_output_op_ptr): Likewise.
	(gimple_asm_clobber_op): Likewise.
	(gimple_asm_label_op): Likewise.
	(gimple_asm_string): Likewise.
	(gimple_asm_volatile_p): Likewise.
	(gimple_asm_input_p): Likewise.
	(gimple_asm_set_input_op): Require a gasm *.
	(gimple_asm_set_output_op): Likewise.
	(gimple_asm_set_clobber_op): Likewise.
	(gimple_asm_set_label_op): Likewise.
	(gimple_asm_set_volatile): Likewise.
	(gimple_asm_set_input): Likewise.
	(gimple_catch_types): Require a const gcatch *.
	(gimple_catch_types_ptr): Require a gcatch *.
	(gimple_catch_handler_ptr): Likewise.
	(gimple_catch_handler): Likewise.
	(gimple_catch_set_types): Likewise.
	(gimple_catch_set_handler): Likewise.
	(gimple_eh_filter_types): Update for renaming of subclass to
	geh_filter.
	(gimple_eh_filter_types_ptr): Likewise.
	(gimple_eh_filter_failure_ptr): Likewise.
	(gimple_eh_filter_set_types): Require a geh_filter *.
	(gimple_eh_filter_set_failure): Likewise.
	(gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
	(gimple_eh_must_not_throw_set_fndecl): Likewise.
	(gimple_eh_else_n_body_ptr): Require a geh_else *.
	(gimple_eh_else_n_body): Likewise.
	(gimple_eh_else_e_body_ptr): Likewise.
	(gimple_eh_else_e_body): Likewise.
	(gimple_eh_else_set_n_body): Likewise.
	(gimple_eh_else_set_e_body): Likewise.
	(gimple_try_set_kind): Require a gtry *.
	(gimple_try_set_catch_is_cleanup): Likewise.
	(gimple_try_set_eval): Likewise.
	(gimple_try_set_cleanup): Likewise.
	(gimple_try_eval_ptr): Update for renaming of subclass to gtry.
	(gimple_try_cleanup_ptr): Likewise.
	(gimple_phi_capacity): Update for renaming of subclass to gphi.
	(gimple_phi_num_args): Likewise.
	(gimple_phi_result): Likewise.
	(gimple_phi_result_ptr): Likewise.
	(gimple_phi_arg): Likewise.
	(gimple_phi_set_result): Require a gphi *.
	(gimple_phi_set_arg): Likewise.
	(gimple_phi_arg_def_ptr): Likewise.
	(gimple_phi_arg_edge): Likewise.
	(gimple_phi_arg_location): Likewise.
	(gimple_phi_arg_location_from_edge): Likewise.
	(gimple_phi_arg_set_location): Likewise.
	(gimple_phi_arg_has_location): Likewise.
	(gimple_resx_region): Require a const gresx *.
	(gimple_resx_set_region): Require a gresx *.
	(gimple_eh_dispatch_region): Require a const geh_dispatch *.
	(gimple_eh_dispatch_set_region): Require a geh_dispatch *.
	(gimple_switch_num_labels): Require a const gswitch *.
	(gimple_switch_set_num_labels): Likewise.
	(gimple_switch_index): Likewise.
	(gimple_switch_index_ptr): Likewise.
	(gimple_switch_label): Likewise.
	(gimple_switch_default_label): Likewise.
	(gimple_switch_set_index): Require a gswitch *.
	(gimple_switch_set_label): Likewise.
	(gimple_switch_set_default_label): Likewise.
	(gimple_omp_critical_name): Require a const gomp_critical *.
	(gimple_omp_critical_name_ptr): Require a gomp_critical *.
	(gimple_omp_critical_set_name): Likewise.
	(gimple_omp_for_set_kind): Require a gomp_for *.
	(gimple_omp_for_set_combined_p): Likewise.
	(gimple_omp_for_set_combined_into_p): Likewise.
	(gimple_omp_for_clauses): Update for renaming of subclass to
	gomp_for.
	(gimple_omp_for_clauses_ptr): Likewise.
	(gimple_omp_for_set_clauses): Likewise.
	(gimple_omp_for_collapse): Likewise.
	(gimple_omp_for_index): Likewise.
	(gimple_omp_for_index_ptr): Likewise.
	(gimple_omp_for_set_index): Likewise.
	(gimple_omp_for_initial): Likewise.
	(gimple_omp_for_initial_ptr): Likewise.
	(gimple_omp_for_set_initial): Likewise.
	(gimple_omp_for_final): Likewise.
	(gimple_omp_for_final_ptr): Likewise.
	(gimple_omp_for_set_final): Likewise.
	(gimple_omp_for_incr): Likewise.
	(gimple_omp_for_incr_ptr): Likewise.
	(gimple_omp_for_set_incr): Likewise.
	(gimple_omp_for_pre_body): Likewise.
	(gimple_omp_for_set_pre_body): Likewise.
	(gimple_omp_parallel_clauses): Update for renaming of subclass to
	gomp_parallel.
	(gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
	(gimple_omp_parallel_set_clauses): Likewise.
	(gimple_omp_parallel_child_fn_ptr): Likewise.
	(gimple_omp_parallel_set_child_fn): Likewise.
	(gimple_omp_parallel_data_arg_ptr): Likewise.
	(gimple_omp_parallel_set_data_arg): Likewise.
	(gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
	(gimple_omp_parallel_data_arg): Likewise.
	(gimple_omp_task_clauses): Update for renaming of subclass to
	gomp_task.
	(gimple_omp_task_clauses_ptr): Likewise.
	(gimple_omp_task_set_clauses): Likewise.
	(gimple_omp_task_child_fn): Likewise.
	(gimple_omp_task_child_fn_ptr): Likewise.
	(gimple_omp_task_set_child_fn): Likewise.
	(gimple_omp_task_data_arg): Likewise.
	(gimple_omp_task_data_arg_ptr): Likewise.
	(gimple_omp_task_set_data_arg): Likewise.
	(gimple_omp_taskreg_clauses): Whitespace fixes.
	(gimple_omp_taskreg_clauses_ptr): Likewise.
	(gimple_omp_taskreg_set_clauses): Likewise.
	(gimple_omp_taskreg_child_fn): Likewise.
	(gimple_omp_taskreg_child_fn_ptr): Likewise.
	(gimple_omp_taskreg_set_child_fn): Likewise.
	(gimple_omp_taskreg_data_arg): Likewise.
	(gimple_omp_taskreg_data_arg_ptr): Likewise.
	(gimple_omp_taskreg_set_data_arg): Likewise.
	(gimple_omp_task_copy_fn): Update for renaming of subclass to
	gomp_task.
	(gimple_omp_task_copy_fn_ptr): Likewise.
	(gimple_omp_task_set_copy_fn): Likewise.
	(gimple_omp_task_arg_size): Likewise.
	(gimple_omp_task_arg_size_ptr): Likewise.
	(gimple_omp_task_set_arg_size): Likewise.
	(gimple_omp_task_arg_align): Likewise.
	(gimple_omp_task_arg_align_ptr): Likewise.
	(gimple_omp_task_set_arg_align): Likewise.
	(gimple_omp_single_clauses): Update for renaming of subclass to
	gomp_single.
	(gimple_omp_single_clauses_ptr): Likewise.
	(gimple_omp_single_set_clauses): Likewise.
	(gimple_omp_target_clauses): Update for renaming of subclass to
	gomp_target.
	(gimple_omp_target_clauses_ptr): Likewise.
	(gimple_omp_target_set_clauses): Require a gomp_target *.
	(gimple_omp_target_set_kind): Likewise.
	(gimple_omp_target_child_fn_ptr): Likewise.
	(gimple_omp_target_set_child_fn): Likewise.
	(gimple_omp_target_data_arg_ptr): Likewise.
	(gimple_omp_target_set_data_arg): Likewise.
	(gimple_omp_target_child_fn): Require a const gomp_target *.
	(gimple_omp_target_data_arg): Likewise.
	(gimple_omp_teams_clauses): Update for renaming of subclass to
	gomp_teams.
	(gimple_omp_teams_clauses_ptr): Likewise.
	(gimple_omp_teams_set_clauses): Require a gomp_teams *.
	(gimple_omp_sections_clauses): Update for renaming of subclass to
	gomp_sections.
	(gimple_omp_sections_clauses_ptr): Likewise.
	(gimple_omp_sections_set_clauses): Likewise.
	(gimple_omp_sections_control): Likewise.
	(gimple_omp_sections_control_ptr): Likewise.
	(gimple_omp_sections_set_control): Likewise.
	(gimple_omp_for_set_cond): Likewise.
	(gimple_omp_for_cond): Likewise.
	(gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
	(gimple_omp_atomic_store_val_ptr): Likewise.
	(gimple_omp_atomic_load_set_lhs): Likewise.
	(gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
	(gimple_omp_atomic_load_lhs): Likewise.
	(gimple_omp_atomic_load_rhs): Likewise.
	(gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
	(gimple_omp_atomic_load_set_rhs): Likewise.
	(gimple_omp_atomic_load_rhs_ptr): Likewise.
	(gimple_omp_continue_control_def): Require a const gomp_continue *.
	(gimple_omp_continue_control_use): Likewise.
	(gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
	(gimple_omp_continue_set_control_def): Likewise.
	(gimple_omp_continue_control_use_ptr): Likewise.
	(gimple_omp_continue_set_control_use): Likewise.
	(gimple_transaction_body_ptr): Require a gtransaction *.
	(gimple_transaction_body): Likewise.
	(gimple_transaction_label_ptr): Likewise.
	(gimple_transaction_label): Require a const gtransaction *.
	(gimple_transaction_subcode): Likewise.
	(gimple_transaction_set_body): Require a gtransaction *.
	(gimple_transaction_set_label): Likewise.
	(gimple_transaction_set_subcode): Likewise.
	(gimple_return_retval_ptr): Require a const greturn *.
	(gimple_return_retval): Likewise.
	(gimple_return_set_retval): Require a greturn *.
	(gimple_expr_type): Introduce local "call_stmt" and use in place of
	"stmt" for typesafety.

	* asan.c: Use gimple subclasses.
	* auto-profile.c: Likewise.
	* builtins.c: Likewise.
	* builtins.h: Likewise.
	* cfgexpand.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cgraph.c: Likewise.
	* cgraph.h: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* expr.h: Likewise.
	* gimple-builder.c: Likewise.
	* gimple-builder.h: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimple-streamer-in.c: Likewise.
	* gimple-streamer-out.c: Likewise.
	* gimple-walk.c: Likewise.
	* gimplify-me.c: Likewise.
	* gimplify.c: Likewise.
	* gimplify.h: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* internal-fn.c: Likewise.
	* internal-fn.def:: Likewise.
	* internal-fn.h: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* ipa-icf-gimple.h: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-prop.h: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-split.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* omp-low.c: Likewise.
	* predict.c: Likewise.
	* sanopt.c: Likewise.
	* sese.c: Likewise.
	* ssa-iterators.h: Likewise.
	* stmt.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfg.h: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-chkp.h: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-eh.h: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-inline.h: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-into-ssa.h: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-phinodes.h: Likewise.
	* tree-predcom.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-scalar-evolution.h
	* tree-sra.cn_function):
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-alias.h: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: 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-loop-unswitch.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-propagate.h: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-sccvn.h: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-strlen.c
	* tree-ssa-structalias.c
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadedge.h: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.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.h: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* ubsan.c: Likewise.
	* value-prof.c: Likewise.
	* value-prof.h: Likewise.
	* vtable-verify.c: Likewise.

2014-11-19  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* config/rs6000/constraints.md: Avoid signed integer overflows.
	* config/rs6000/predicates.md: Likewise.

2014-11-19  Renlin Li  <Renlin.Li@arm.com>

	PR target/63424
	* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.

2014-11-19  Renlin Li  <Renlin.Li@arm.com>

	PR middle-end/63762
	* ira.c (ira): Update preferred class.

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

	* gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
	(gimple_assign_set_rhs_with_ops_1): Renamed to ...
	(gimple_assign_set_rhs_with_ops): ... this.  Adjust binary arg
	inline overload to use it.  Add unary arg overload.
	* gimple.c (gimple_build_assign_with_ops): New unary arg overload.
	(gimple_assign_set_rhs_from_tree): Use
	gimple_assign_set_rhs_with_ops instead of
	gimple_assign_set_rhs_with_ops_1.
	(gimple_assign_set_rhs_with_ops_1): Renamed to ...
	(gimple_assign_set_rhs_with_ops): ... this.
	* ipa-split.c (split_function): Remove last NULL argument
	from gimple_build_assign_with_ops call.
	* tree-ssa-loop-im.c
	(move_computations_dom_walker::before_dom_children): Likewise.
	* tsan.c (instrument_builtin_call): Likewise.
	* tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
	vectorizable_conversion, vectorizable_load): Likewise.
	* tree-vect-loop.c (vect_is_simple_reduction_1,
	get_initial_def_for_induction): Likewise.
	* tree-loop-distribution.c (generate_memset_builtin): Likewise.
	* tree-vect-patterns.c (vect_handle_widen_op_by_const,
	vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
	vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
	vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
	vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
	adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
	* tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
	neg_replacement): Likewise.
	* asan.c (build_shadow_mem_access, maybe_create_ssa_name,
	maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
	* tree-vect-slp.c (vect_get_constant_vectors): Likewise.
	* omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
	expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
	simd_clone_adjust): Likewise.
	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
	* gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
	replace_one_candidate): Likewise.
	* gimple-builder.c (build_type_cast): Likewise.
	* tree-ssa-forwprop.c (simplify_rotate): Likewise.
	(forward_propagate_addr_expr_1): Remove last NULL argument
	from gimple_assign_set_rhs_with_ops call.
	(simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
	instead of gimple_assign_set_rhs_with_ops_1.
	* tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
	argument from gimple_build_assign_with_ops call.
	(repropagate_negates): Remove last NULL argument from
	gimple_assign_set_rhs_with_ops call.
	* ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
	last NULL argument from gimple_build_assign_with_ops call.
	(instrument_bool_enum_load): Likewise.  Remove last NULL argument
	from gimple_assign_set_rhs_with_ops call.
	* tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
	Remove last NULL argument from gimple_build_assign_with_ops call.
	(bswap_replace): Likewise.  Use gimple_assign_set_rhs_with_ops instead
	of gimple_assign_set_rhs_with_ops_1.
	(convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
	instead of gimple_assign_set_rhs_with_ops_1.
	* gimple-fold.c (replace_stmt_with_simplification): Likewise.
	(rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
	from gimple_build_assign_with_ops call.
	* tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
	from gimple_assign_set_rhs_with_ops call.
	* tree-vrp.c (simplify_truth_ops_using_ranges,
	simplify_bit_ops_using_ranges): Remove last NULL argument from
	gimple_assign_set_rhs_with_ops call.
	(simplify_float_conversion_using_ranges,
	simplify_internal_call_using_ranges): Remove last NULL argument from
	gimple_build_assign_with_ops call.

2014-11-19  Wilco Dijkstra  <wdijkstr@arm.com>

	PR target/61915
	* config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
	cost.

2014-11-19  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/63690
	* ubsan.c (instrument_object_size): Check for MEM_REF.

2014-11-19  Ilya Verbin  <ilya.verbin@intel.com>

	PR regression/63868
	* cgraph.c (cgraph_node::create): Guard g->have_offload with
	ifdef ENABLE_OFFLOADING.
	* omp-low.c (create_omp_child_function): Likewise.
	(expand_omp_target): Guard node->mark_force_output and offload_funcs
	with ifdef ENABLE_OFFLOADING.
	* varpool.c (varpool_node::get_create): Guard g->have_offload and
	offload_vars with ifdef ENABLE_OFFLOADING.

2014-11-19  Felix Yang  <felix.yang@huawei.com>
	    Shanyao Chen  <chenshanyao@huawei.com>

	PR target/59593
	* config/arm/arm.md (define_attr "arch"): Add v6t2.
	(define_attr "arch_enabled"): Add test for the above.
	(*movhi_insn_arch4): Add new alternative.

2014-11-19  Richard Henderson  <rth@redhat.com>

	* c-family/c-common.c (c_common_reswords): Add
	__builtin_call_with_static_chain.
	* c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
	* c/c-parser.c (c_parser_postfix_expression): Handle it.
	* doc/extend.texi (__builtin_call_with_static_chain): Document it.

	* calls.c (prepare_call_address): Allow decl or type for first arg.
	(expand_call): Pass type to prepare_call_address if no decl.
	* gimple-fold.c (gimple_fold_call): Eliminate the static chain if
	the function doesn't use it; fold it otherwise.
	* gimplify.c (gimplify_call_expr): Gimplify the static chain.
	* tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
	function calls.

	* targhooks.c (default_static_chain): Remove check for
	DECL_STATIC_CHAIN.
	* config/moxie/moxie.c (moxie_static_chain): Likewise.
	* config/i386/i386.c (ix86_static_chain): Allow decl or type
	as the first argument.
	* config/xtensa/xtensa.c (xtensa_static_chain): Change the name
	of the unused first parameter.
	* doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
	may be a type.
	* target.def (static_chain): Likewise.

2014-11-19  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
	__ARM_FP_FAST, __ARM_FEATURE_FMA, __ARM_FP,
	__ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.

2014-11-19  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/63879
	* fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
	!TYPE_OVERFLOW_SANITIZED.
	(fold_negate_expr) <case INTEGER_CST>: Fold when overflow
	does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
	is 0.

2014-11-19  Ilya Tocar  <ilya.tocar@intel.com>

	* collect2.c (main): Don't call fatal_error before
	diagnostic_initialize.
	* lto-wrapper.c (main): Likewise.

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

	PR tree-optimization/62167
	* tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
	conservatively.
	(gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
	assigns.

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

	PR tree-optimization/63915
	* tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
	true instead of false as last argument to gsi_replace.

	PR sanitizer/63520
	* internal-fn.c (expand_ubsan_result_store): New function.
	(expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
	Use it instead of just emit_move_insn.

2014-11-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63844
	* omp-low.c (fixup_child_record_type): Use a restrict qualified
	referece type for the receiver parameter.

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

	PR sanitizer/63913
	* ubsan.c: Include tree-eh.h.
	(instrument_bool_enum_load): Handle loads that can throw.

	PR rtl-optimization/63843
	* simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
	optimization of ashiftrt of subreg of lshiftrt, check that code
	is ASHIFTRT.

2014-11-18  Andrew MacLeod  <amacleod@redhat.com>

	* attribs.c (decl_attributes): Remove always true condition,
	TREE_TYPE(x) will never compare equal to a TYPE_DECL.

2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>

	PR target/63937
	* target.def (use_by_pieces_infrastructure_p): Take unsigned
	HOST_WIDE_INT as the size parameter.
	* targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
	* targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
	* config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
	* config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
	* config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
	* config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
	* config/aarch64/aarch64.c
	(aarch64_use_by_pieces_infrastructure_p)): Likewise.
	* doc/tm.texi: Regenerate.

2014-11-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
	(ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
	(ipa_get_indirect_edge_target_1): Use opt_for_fn.
	(good_cloning_opportunity_p): Likewise.
	(ipa-cp gate): Enable ipa-cp with LTO.
	* ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
	* ipa.c (symbol_table::remove_unreachable_nodes): Always build type
	inheritance.
	* ipa-inline-transform.c (inline_transform): Check if there are inlines
	to apply even at -O0.
	* cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
	(analyze_functions): Build type inheritance graph.
	* ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
	(want_early_inline_function_p, want_inline_small_function_p):
	Likewise.
	(check_callers): Likewise.
	(edge_badness): Likewise.
	(inline_small_functions): Always be ready for indirect inlining
	to happend.
	(ipa_inline): Always use want_inline_function_to_all_callers_p.
	(early_inline_small_functions): Use opt_for_fn.
	* ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
	(estimate_function_body_sizes): Likewise.
	(compute_inline_parameters): Likewise.
	(estimate_edge_devirt_benefit): Likewise.
	(inline_analyze_function): Likewise.
	* ipa-devirt.c (ipa_devirt): Likewise.
	(gate): Use in_lto_p.
	* ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
	(try_make_edge_direct_virtual_call): Likewise.
	(update_indirect_edges_after_inlining): Likewise.
	(ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
	* common.opt (findirect-inlining): Turn into optimization.
	* ipa-pure-const.c (add_new_function): Use opt_for_fn.
	(pure_const_generate_summary): Likewise.
	(gate_pure_const): Always enable with in_lto_p.

2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/mips/mips.md (compression): Add `micromips32' setting.
	(enabled, length): Handle it.
	(shift_compression): Replace `micromips' with `micromips32' in
	the `compression' attribute.
	(*add<mode>3, sub<mode>3): Likewise.

2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>

	* gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
	range, a jump otherwise.

2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
	Split into...
	(cortex_a15_gp_to_vfp): ...This.
	(cortex_a15_fp_to_gp): ...And this.
	Define and comment bypass from vfp operations to fp->gp moves.

2014-11-18  Martin Liska  <mliska@suse.cz>

	* var-tracking.c (vt_find_locations): New fibonacci_node is used.

2014-11-18  Martin Liska  <mliska@suse.cz>

	* bt-load.c (add_btr_def): New fibonacci_heap is used.
	(migrate_btr_defs): Likewise.

2014-11-18  Martin Liska  <mliska@suse.cz>

	* tracer.c (tail_duplicate): New fibonacci_heap class is used.

2014-11-18  Martin Liska  <mliska@suse.cz>

	* bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
	(find_traces): Likewise.
	(find_traces_1_round): Likewise.

2014-11-18  Martin Liska  <mliska@suse.cz>

	* fibonacci_heap.h: New file.
	(fibonacci_heap::insert): Created from fibheap_insert.
	(fibonacci_heap::empty): Created from fibheap_empty.
	(fibonacci_heap::nodes): Created from fibheap_nodes.
	(fibonacci_heap::min_key): Created from fibheap_min_key.
	(fibonacci_heap::decrease_key): Created from fibheap_replace_key.
	(fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
	(fibonacci_heap::extract_min): Created from fibheap_extract_min.
	(fibonacci_heap::min): Created from fibheap_min.
	(fibonacci_heap::replace_data): Created from fibheap_replace_data.
	(fibonacci_heap::delete_node): Created from fibheap_delete_node.
	(fibonacci_heap::union_with): Created from fibheap_union.
	* ipa-inline.c (update_edge_key): New heap API is used.
	(update_caller_keys): Likewise.
	(update_callee_keys): Likewise.
	(lookup_recursive_calls): Likewise.
	(recursive_inlining): Likewise.
	(add_new_edges_to_heap): Likewise.
	(heap_edge_removal_hook): Likewise.
	(inline_small_functions): Likewise.

2014-11-18  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/63866
	* asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
	put it into TYPE_NAME and TYPE_STUB_DECL.
	* ubsan.c (ubsan_type_descriptor_type): New variable.
	Function renamed to ...
	(ubsan_get_type_descriptor_type): ... this.  Cache
	return value in ubsan_type_descriptor_type variable.
	Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
	TYPE_NAME and TYPE_STUB_DECL.
	(ubsan_get_source_location_type): Create a TYPE_DECL for
	"__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
	(ubsan_type_descriptor, ubsan_create_data): Call
	ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
	Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.

2014-11-18  Felix Yang  <felix.yang@huawei.com>

	* config/aarch64/aarch64.c (doloop_end): New pattern.
	* config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.

2014-11-18  Jason Merrill  <jason@redhat.com>

	* tree.c (warn_deprecated_use): Show declaration with inform.

2014-11-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63914
	* tree-ssa-ccp.c (canonicalize_value): Remove float value
	canonicalization.
	(valid_lattice_transition): Allow (partial) transition
	from NaN to non-NaN if !HONOR_NANS.
	(set_lattice_value): Check for valid lattice transitions
	only when checking is enabled.

2014-11-18  Bernd Schmidt  <bernds@codesourcery.com>

	* config/nvptx/nvptx.c: Include <sstream> directly after "config.h".

2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/neon-testgen.ml (emit_prologue): Handle new
	compile_test_optim argument.
	(emit_automatics): Rename to emit_variables. Support variable
	indentation of its output.
	(compile_test_optim): New function.
	(test_intrinsic): Call compile_test_optim.
	* config/arm/neon.ml (features): Add Compiler_optim.
	(ops): Add Compiler_optim feature to Vbic and Vorn.
	(type_in_crypto_only): Replace 'or' by '||'.
	(reinterp): Likewise.
	(reinterpq): Likewise.

2014-11-18  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
	vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
	vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
	vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
	vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
	vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
	pointer dereference.

2014-11-18  Marc Glisse  <marc.glisse@inria.fr>

	* tree.c (element_mode, integer_truep): New functions.
	* tree.h (element_mode, integer_truep): Declare them.
	* fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
	fold_cond_expr_with_comparison, fold_real_zero_addition_p,
	fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
	fold_strip_sign_ops): Use element_mode.
	(fold_binary_loc): Use element_mode and element_precision.
	* match.pd: Use integer_truep, element_mode, element_precision,
	VECTOR_TYPE_P and build_one_cst. Extend some transformations to
	vectors. Simplify A/-A.

2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
	manual swapping implementation.
	(movcond_addsi): Likewise.
	* config/arm/arm.c (arm_canonicalize_comparison): Likewise.
	(arm_select_dominance_cc_mode): Likewise.
	(arm_reload_out_hi): Likewise.
	(gen_operands_ldrd_strd): Likewise.
	(output_move_double): Likewise.
	(arm_print_operand_address): Likewise.
	(thumb_output_move_mem_multiple): Likewise.
	(SWAP_RTX): Delete.

2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
	(COPYSIGNF_QUALIFIERS): Likewise.
	(CREATE_QUALIFIERS): Likewise.
	(DUP_QUALIFIERS): Likewise.
	(FLOAT_WIDEN_QUALIFIERS): Likewise.
	(FLOAT_NARROW_QUALIFIERS): Likewise.
	(REINTERP_QUALIFIERS): Likewise.
	(RINT_QUALIFIERS): Likewise.
	(SPLIT_QUALIFIERS): Likewise.
	(FIXCONV_QUALIFIERS): Likewise.
	(SCALARMUL_QUALIFIERS): Likewise.
	(SCALARMULL_QUALIFIERS): Likewise.
	(SCALARMULH_QUALIFIERS): Likewise.
	(SELECT_QUALIFIERS): Likewise.
	(VTBX_QUALIFIERS): Likewise.
	(SHIFTIMM_QUALIFIERS): Likewise.
	(SCALARMAC_QUALIFIERS): Likewise.
	(LANEMUL_QUALIFIERS): Likewise.
	(LANEMULH_QUALIFIERS): Likewise.
	(LANEMULL_QUALIFIERS): Likewise.
	(SHIFTACC_QUALIFIERS): Likewise.
	(SHIFTINSERT_QUALIFIERS): Likewise.
	(VTBL_QUALIFIERS): Likewise.
	(LOADSTRUCT_QUALIFIERS): Likewise.
	(LOADSTRUCTLANE_QUALIFIERS): Likewise.
	(STORESTRUCT_QUALIFIERS): Likewise.
	(STORESTRUCTLANE_QUALIFIERS): Likewise.
	(neon_builtin_type_mode): Delete.
	(v8qi_UP): Map to V8QImode.
	(v8qi_UP): Map to V8QImode.
	(v4hi_UP): Map to V4HImode.
	(v4hf_UP): Map to V4HFmode.
	(v2si_UP): Map to V2SImode.
	(v2sf_UP): Map to V2SFmode.
	(di_UP): Map to DImode.
	(v16qi_UP): Map to V16QImode.
	(v8hi_UP): Map to V8HImode.
	(v4si_UP): Map to V4SImode.
	(v4sf_UP): Map to V4SFmode.
	(v2di_UP): Map to V2DImode.
	(ti_UP): Map to TImode.
	(ei_UP): Map to EImode.
	(oi_UP): Map to OImode.
	(neon_itype): Delete.
	(neon_builtin_datum): Remove itype, make mode a machine_mode.
	(VAR1): Update accordingly.
	(arm_init_neon_builtins): Use machine_mode directly.
	(neon_dereference_pointer): Likewise.
	(arm_expand_neon_args): Use qualifiers to decide operand types.
	(arm_expand_neon_builtin): Likewise.
	* config/arm/arm_neon_builtins.def: Remap operation type for
	many builtins.

2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
	(enum arm_simd_type): Likewise.
	(struct arm_simd_type_info): Likewise
	(arm_mangle_builtin_scalar_type): Likewise.
	(arm_mangle_builtin_vector_type): Likewise.
	(arm_mangle_builtin_type): Likewise.
	(arm_simd_builtin_std_type): Likewise.
	(arm_lookup_simd_builtin_type): Likewise.
	(arm_simd_builtin_type): Likewise.
	(arm_init_simd_builtin_types): Likewise.
	(arm_init_simd_builtin_scalar_types): Likewise.
	(arm_init_neon_builtins): Rewrite using qualifiers.
	* config/arm/arm-protos.h (arm_mangle_builtin_type): New.
	* config/arm/arm-simd-builtin-types.def: New file.
	* config/arm/t-arm (arm-builtins.o): Depend on it.
	* config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
	* config/arm/arm_neon.h (int8x8_t): Use new internal type.
	(int16x4_t): Likewise.
	(int32x2_t): Likewise.
	(float16x4_t): Likewise.
	(float32x2_t): Likewise.
	(poly8x8_t): Likewise.
	(poly16x4_t): Likewise.
	(uint8x8_t): Likewise.
	(uint16x4_t): Likewise.
	(uint32x2_t): Likewise.
	(int8x16_t): Likewise.
	(int16x8_t): Likewise.
	(int32x4_t): Likewise.
	(int64x2_t): Likewise.
	(float32x4_t): Likewise.
	(poly8x16_t): Likewise.
	(poly16x8_t): Likewise.
	(uint8x16_t): Likewise.
	(uint16x8_t): Likewise.
	(uint32x4_t): Likewise.
	(uint64x2_t): Likewise.

2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* gcc/config/arm/arm-builtins.c	(arm_type_qualifiers): New.
	(neon_itype): Add new types corresponding to the types used in
	qualifiers names.
	(arm_unop_qualifiers): New.
	(arm_bswap_qualifiers): Likewise.
	(arm_binop_qualifiers): Likewise.
	(arm_ternop_qualifiers): Likewise.
	(arm_getlane_qualifiers): Likewise.
	(arm_lanemac_qualifiers): Likewise.
	(arm_setlane_qualifiers): Likewise.
	(arm_combine_qualifiers): Likewise.
	(arm_load1_qualifiers): Likewise.
	(arm_load1_lane_qualifiers): Likewise.
	(arm_store1_qualifiers): Likewise.
	(arm_storestruct_lane_qualifiers): Likewise.
	(UNOP_QUALIFIERS): Likewise.
	(DUP_QUALIFIERS): Likewise.
	(SPLIT_QUALIFIERS): Likewise.
	(CONVERT_QUALIFIERS): Likewise.
	(FLOAT_WIDEN_QUALIFIERS): Likewise.
	(FLOAT_NARROW_QUALIFIERS): Likewise.
	(RINT_QUALIFIERS): Likewise.
	(COPYSIGNF_QUALIFIERS): Likewise.
	(CREATE_QUALIFIERS): Likewise.
	(REINTERP_QUALIFIERS): Likewise.
	(BSWAP_QUALIFIERS): Likewise.
	(BINOP_QUALIFIERS): Likewise.
	(FIXCONV_QUALIFIERS): Likewise.
	(SCALARMUL_QUALIFIERS): Likewise.
	(SCALARMULL_QUALIFIERS): Likewise.
	(SCALARMULH_QUALIFIERS): Likewise.
	(TERNOP_QUALIFIERS): Likewise.
	(SELECT_QUALIFIERS): Likewise.
	(VTBX_QUALIFIERS): Likewise.
	(GETLANE_QUALIFIERS): Likewise.
	(SHIFTIMM_QUALIFIERS): Likewise.
	(LANEMAC_QUALIFIERS): Likewise.
	(SCALARMAC_QUALIFIERS): Likewise.
	(SETLANE_QUALIFIERS): Likewise.
	(SHIFTINSERT_QUALIFIERS): Likewise.
	(SHIFTACC_QUALIFIERS): Likewise.
	(LANEMUL_QUALIFIERS): Likewise.
	(LANEMULL_QUALIFIERS): Likewise.
	(LANEMULH_QUALIFIERS): Likewise.
	(COMBINE_QUALIFIERS): Likewise.
	(VTBL_QUALIFIERS): Likewise.
	(LOAD1_QUALIFIERS): Likewise.
	(LOADSTRUCT_QUALIFIERS): Likewise.
	(LOAD1LANE_QUALIFIERS): Likewise.
	(LOADSTRUCTLANE_QUALIFIERS): Likewise.
	(STORE1_QUALIFIERS): Likewise.
	(STORESTRUCT_QUALIFIERS): Likewise.
	(STORE1LANE_QUALIFIERS): Likewise.
	(STORESTRUCTLANE_QUALIFIERS): Likewise.
	(neon_builtin_datum): Keep track of qualifiers.
	(VAR1): Likewise.

2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm-builtins.c (VAR1): Add a comma.
	(VAR2): Rewrite in terms of VAR1.
	(VAR3-10): Likewise.
	(arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
	* config/arm/arm_neon_builtins.def: Remove trailing commas.

2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
	(target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
	* config/arm/arm-builtins.c: New.
	* config/arm/t-arm (arm_builtins.o): New.
	* config/arm/arm-protos.h (arm_expand_builtin): New.
	(arm_builtin_decl): Likewise.
	(arm_init_builtins): Likewise.
	(arm_atomic_assign_expand_fenv): Likewise.
	* config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
	(arm_init_builtins): Likewise.
	(arm_init_iwmmxt_builtins): Likewise
	(safe_vector_operand): Likewise
	(arm_expand_binop_builtin): Likewise
	(arm_expand_unop_builtin): Likewise
	(arm_expand_builtin): Likewise
	(arm_builtin_decl): Likewise
	(insn_flags): Remove static.
	(tune_flags): Likewise.
	(enum arm_builtins): Move to config/arm/arm-builtins.c.
	(arm_init_neon_builtins): Likewise.
	(struct builtin_description): Likewise.
	(arm_init_iwmmxt_builtins): Likewise.
	(arm_init_fp16_builtins): Likewise.
	(arm_init_crc32_builtins): Likewise.
	(arm_init_builtins): Likewise.
	(arm_builtin_decl): Likewise.
	(safe_vector_operand): Likewise.
	(arm_expand_ternop_builtin): Likewise.
	(arm_expand_binop_builtin): Likewise.
	(arm_expand_unop_builtin): Likewise.
	(neon_dereference_pointer): Likewise.
	(arm_expand_neon_args): Likewise.
	(arm_expand_neon_builtin): Likewise.
	(neon_split_vcombine): Likewise.
	(arm_expand_builtin): Likewise.
	(arm_builtin_vectorized_function): Likewise.
	(arm_atomic_assign_expand_fenv): Likewise.

2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
	* config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
	(FL_ARCH3M): Likewise.
	(FL_MODE26): Likewise.
	(FL_MODE32): Likewise.
	(FL_ARCH4): Likewise.
	(FL_ARCH5): Likewise.
	(FL_THUMB): Likewise.
	(FL_LDSCHED): Likewise.
	(FL_STRONG): Likewise.
	(FL_ARCH5E): Likewise.
	(FL_XSCALE): Likewise.
	(FL_ARCH6): Likewise.
	(FL_VFPV2): Likewise.
	(FL_WBUF): Likewise.
	(FL_ARCH6K): Likewise.
	(FL_THUMB2): Likewise.
	(FL_NOTM): Likewise.
	(FL_THUMB_DIV): Likewise.
	(FL_VFPV3): Likewise.
	(FL_NEON): Likewise.
	(FL_ARCH7EM): Likewise.
	(FL_ARCH7): Likewise.
	(FL_ARM_DIV): Likewise.
	(FL_ARCH8): Likewise.
	(FL_CRC32): Likewise.
	(FL_SMALLMUL): Likewise.
	(FL_IWMMXT): Likewise.
	(FL_IWMMXT2): Likewise.
	(FL_TUNE): Likewise.
	(FL_FOR_ARCH2): Likewise.
	(FL_FOR_ARCH3): Likewise.
	(FL_FOR_ARCH3M): Likewise.
	(FL_FOR_ARCH4): Likewise.
	(FL_FOR_ARCH4T): Likewise.
	(FL_FOR_ARCH5): Likewise.
	(FL_FOR_ARCH5T): Likewise.
	(FL_FOR_ARCH5E): Likewise.
	(FL_FOR_ARCH5TE): Likewise.
	(FL_FOR_ARCH5TEJ): Likewise.
	(FL_FOR_ARCH6): Likewise.
	(FL_FOR_ARCH6J): Likewise.
	(FL_FOR_ARCH6K): Likewise.
	(FL_FOR_ARCH6Z): Likewise.
	(FL_FOR_ARCH6ZK): Likewise.
	(FL_FOR_ARCH6T2): Likewise.
	(FL_FOR_ARCH6M): Likewise.
	(FL_FOR_ARCH7): Likewise.
	(FL_FOR_ARCH7A): Likewise.
	(FL_FOR_ARCH7VE): Likewise.
	(FL_FOR_ARCH7R): Likewise.
	(FL_FOR_ARCH7M): Likewise.
	(FL_FOR_ARCH7EM): Likewise.
	(FL_FOR_ARCH8A): Likewise.
	* config/arm/arm-protos.h: Take definitions moved from arm.c.

2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
	parameter, rearrange switch statement accordingly.
	(arm_evpc_neon_vrev): Remove "Magic Word".
	* config/arm/unspecs.md (unspec): Split many UNSPECs to
	rounding, or signed/unsigned variants.
	* config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
	(vcondu<mode><mode>): Likewise.
	(neon_vadd): Remove "Magic Word" operand.
	(neon_vaddl): Remove "Magic Word" operand, convert to use
	signed/unsigned iterator.
	(neon_vaddw): Likewise.
	(neon_vhadd): Likewise, also iterate over "rounding" forms.
	(neon_vqadd): Remove "Magic Word" operand, convert to use
	signed/unsigned iterator.
	(neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
	over "rounding" forms.
	(neon_vmul): Remove "Magic Word" operand, iterate over
	polynomial/float instruction forms.
	(neon_vmla): Remove "Magic Word" operand.
	(neon_vfma): Likewise.
	(neon_vfms): Likewise.
	(neon_vmls): Likewise.
	(neon_vmlal): Remove "Magic Word" operand, iterate over
	signed/unsigned forms.
	(neon_vmlsl): Likewise.
	(neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
	forms.
	(neon_vqdmlal): Remove "Magic Word" operand, iterate over
	signed/unsigned forms.
	(neon_vqdmlsl): Likewise.
	(neon_vmull): Likewise.
	(neon_vqdmull): Remove "Magic Word" operand.
	(neon_vsub): Remove "Magic Word" operand.
	(neon_vsubl): Remove "Magic Word" operand, convert to use
	signed/unsigned iterator.
	(neon_vsubw): Likewise.
	(neon_vhsub): Likewise.
	(neon_vqsub): Likewise.
	(neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
	over "rounding" forms.
	(neon_vceq): Remove "Magic Word" operand.
	(neon_vcge): Likewise.
	(neon_vcgeu): Likewise.
	(neon_vcgt): Likewise.
	(neon_vcgtu): Likewise.
	(neon_vcle): Likewise.
	(neon_vclt): Likewise.
	(neon_vcage): Likewise.
	(neon_vcagt): Likewise.
	(neon_vabd): Remove "Magic Word" operand, iterate over
	signed/unsigned forms, and split out...
	(neon_vabdf): ...this as new.
	(neon_vabdl): Remove "Magic Word" operand, iterate over
	signed/unsigned forms.
	(neon_vaba): Likewise.
	(neon_vmax): Remove "Magic Word" operand, iterate over
	signed/unsigned and max/min forms, and split out...
	(neon_v<maxmin>f): ...this as new.
	(neon_vmin): Delete.
	(neon_vpadd): Remove "Magic Word" operand.
	(neon_vpaddl): Remove "Magic Word" operand, iterate over
	signed/unsigned variants.
	(neon_vpadal): Likewise.
	(neon_vpmax): Remove "Magic Word" operand, iterate over
	signed/unsigned and max/min forms, and split out...
	(neon_vp<maxmin>f): ...this as new.
	(neon_vpmin): Delete.
	(neon_vrecps): Remove "Magic Word" operand.
	(neon_vrsqrts): Likewise.
	(neon_vabs): Likewise.
	(neon_vqabs): Likewise.
	(neon_vneg): Likewise.
	(neon_vqneg): Likewise.
	(neon_vcls): Likewise.
	(neon_vcnt): Likewise.
	(neon_vrecpe): Likewise.
	(neon_vrsqrte): Likewise.
	(neon_vmvn): Likewise.
	(neon_vget_lane): Likewise.
	(neon_vget_laneu): New.
	(neon_vget_lanedi): Remove "Magic Word" operand.
	(neon_vget_lanev2di): Likewise.
	(neon_vcvt): Remove "Magic Word" operand, iterate over
	signed/unsigned variants.
	(neon_vcvt_n): Likewise.
	(neon_vmovn): Remove "Magic Word" operand.
	(neon_vqmovn): Remove "Magic Word" operand, iterate over
	signed/unsigned variants.
	(neon_vmovun): Remove "Magic Word" operand.
	(neon_vmovl): Remove "Magic Word" operand, iterate over
	signed/unsigned variants.
	(neon_vmul_lane): Remove "Magic Word" operand.
	(neon_vmull_lane): Remove "Magic Word" operand, iterate over
	signed/unsigned variants.
	(neon_vqdmull_lane): Remove "Magic Word" operand.
	(neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
	rounding variants.
	(neon_vmla_lane): Remove "Magic Word" operand.
	(neon_vmlal_lane): Remove "Magic Word" operand, iterate over
	signed/unsigned variants.
	(neon_vqdmlal_lane): Remove "Magic Word" operand.
	(neon_vmls_lane): Likewise.
	(neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
	signed/unsigned variants.
	(neon_vqdmlsl_lane): Remove "Magic Word" operand.
	(neon_vmul_n): Remove "Magic Word" operand.
	(neon_vmull_n): Rename to...
	(neon_vmulls_n): ...this, remove "Magic Word" operand.
	(neon_vmullu_n): New.
	(neon_vqdmull_n): Remove "Magic Word" operand.
	(neon_vqdmulh_n): Likewise.
	(neon_vqrdmulh_n): New.
	(neon_vmla_n): Remove "Magic Word" operand.
	(neon_vmls_n): Likewise.
	(neon_vmlal_n): Rename to...
	(neon_vmlals_n): ...this, remove "Magic Word" operand.
	(neon_vmlalu_n): New.
	(neon_vqdmlal_n): Remove "Magic Word" operand.
	(neon_vmlsl_n): Rename to...
	(neon_vmlsls_n): ...this, remove "Magic Word" operand.
	(neon_vmlslu_n): New.
	(neon_vqdmlsl_n): Remove "Magic Word" operand.
	(neon_vrev64): Remove "Magic Word" operand.
	(neon_vrev32): Likewise.
	(neon_vrev16): Likewise.
	(neon_vshl): Remove "Magic Word" operand, iterate over
	signed/unsigned and "rounding" forms.
	(neon_vqshl): Likewise.
	(neon_vshr_n): Likewise.
	(neon_vshrn_n): Remove "Magic Word" operand, iterate over
	"rounding" forms.
	(neon_vqshrn_n): Remove "Magic Word" operand, iterate over
	signed/unsigned and "rounding" forms.
	(neon_vqshrun_n): Remove "Magic Word" operand, iterate over
	"rounding" forms.
	(neon_vshl_n): Remove "Magic Word" operand.
	(neon_vqshl_n): Remove "Magic Word" operand, iterate over
	signed/unsigned variants.
	(neon_vqshlu_n): Remove "Magic Word" operand.
	(neon_vshll_n): Remove "Magic Word" operand, iterate over
	signed/unsigned variants.
	(neon_vsra_n): Remove "Magic Word" operand, iterate over
	signed/unsigned and "rounding" forms.
	* config/arm/iterators.md (VPF): New.
	(VADDL): Likewise.
	(VADDW): Likewise.
	(VHADD): Likewise.
	(VQADD): Likewise.
	(VADDHN): Likewise.
	(VMLAL): Likewise.
	(VMLAL_LANE): Likewise.
	(VLMSL): Likewise.
	(VMLSL_LANE): Likewise.
	(VQDMULH): Likewise,
	(VQDMULH_LANE): Likewise.
	(VMULL): Likewise.
	(VMULL_LANE): Likewise.
	(VSUBL): Likewise.
	(VSUBW): Likewise.
	(VHSUB): Likewise.
	(VQSUB): Likewise.
	(VSUBHN): Likewise.
	(VABD): Likewise.
	(VABDL): Likewise.
	(VMAXMIN): Likewise.
	(VMAXMINF): Likewise.
	(VPADDL): Likewise.
	(VPADAL): Likewise.
	(VPMAXMIN): Likewise.
	(VPMAXMINF): Likewise.
	(VCVT_US): Likewise.
	(VCVT_US_N): Likewise.
	(VQMOVN): Likewise.
	(VMOVL): Likewise.
	(VSHL): Likewise.
	(VQSHL): Likewise.
	(VSHR_N): Likewise.
	(VSHRN_N): Likewise.
	(VQSHRN_N): Likewise.
	(VQSHRUN_N): Likewise.
	(VQSHL_N): Likewise.
	(VSHLL_N): Likewise.
	(VSRA_N): Likewise.
	(pf): Likewise.
	(sup): Likewise.
	(r): Liekwise.
	(maxmin): Likewise.
	(shift_op): Likewise.
	* config/arm/arm_neon_builtins.def (vaddl): Split to...
	(vaddls): ...this and...
	(vaddlu): ...this.
	(vaddw): Split to...
	(vaddws): ...this and...
	(vaddwu): ...this.
	(vhadd): Split to...
	(vhadds): ...this and...
	(vhaddu): ...this and...
	(vrhadds): ...this and...
	(vrhaddu): ...this.
	(vqadd): Split to...
	(vqadds): ...this and...
	(vqaddu): ...this.
	(vaddhn): Split to itself and...
	(vraddhn): ...this.
	(vmul): Split to...
	(vmulf): ...this and...
	(vmulp): ...this.
	(vmlal): Split to...
	(vmlals): ...this and...
	(vmlalu): ...this.
	(vmlsl): Split to...
	(vmlsls): ...this and...
	(vmlslu): ...this.
	(vqdmulh): Split to itself and...
	(vqrdmulh): ...this.
	(vmull): Split to...
	(vmullp): ...this and...
	(vmulls): ...this and...
	(vmullu): ...this.
	(vmull_n): Split to...
	(vmulls_n): ...this and...
	(vmullu_n): ...this.
	(vmull_lane): Split to...
	(vmulls_lane): ...this and...
	(vmullu_lane): ...this.
	(vqdmulh_n): Split to itself and...
	(vqrdmulh_n): ...this.
	(vqdmulh_lane): Split to itself and...
	(vqrdmulh_lane): ...this.
	(vshl): Split to...
	(vshls): ...this and...
	(vshlu): ...this and...
	(vrshls): ...this and...
	(vrshlu): ...this.
	(vqshl): Split to...
	(vqshls): ...this and...
	(vqrshlu): ...this and...
	(vqrshls): ...this and...
	(vqrshlu): ...this.
	(vshr_n): Split to...
	(vshrs_n): ...this and...
	(vshru_n): ...this and...
	(vrshrs_n): ...this and...
	(vrshru_n): ...this.
	(vshrn_n): Split to itself and...
	(vrshrn_n): ...this.
	(vqshrn_n): Split to...
	(vqshrns_n): ...this and...
	(vqshrnu_n): ...this and...
	(vqrshrns_n): ...this and...
	(vqrshrnu_n): ...this.
	(vqshrun_n): Split to itself and...
	(vqrshrun_n): ...this.
	(vqshl_n): Split to...
	(vqshl_s_n): ...this and...
	(vqshl_u_n): ...this.
	(vshll_n): Split to...
	(vshlls_n): ...this and...
	(vshllu_n): ...this.
	(vsra_n): Split to...
	(vsras_n): ...this and...
	(vsrau_n): ...this and.
	(vrsras_n): ...this and...
	(vrsrau_n): ...this and.
	(vsubl): Split to...
	(vsubls): ...this and...
	(vsublu): ...this.
	(vsubw): Split to...
	(vsubws): ...this and...
	(vsubwu): ...this.
	(vqsub): Split to...
	(vqsubs): ...this and...
	(vqsubu): ...this.
	(vhsub): Split to...
	(vhsubs): ...this and...
	(vhsubu): ...this.
	(vsubhn): Split to itself and...
	(vrsubhn): ...this.
	(vabd): Split to...
	(vabds): ...this and...
	(vabdu): ...this and...
	(vabdf): ...this.
	(vabdl): Split to...
	(vabdls): ...this and...
	(vabdlu): ...this.
	(vaba): Split to...
	(vabas): ...this and...
	(vabau): ...this and...
	(vabal): Split to...
	(vabals): ...this and...
	(vabalu): ...this.
	(vmax): Split to...
	(vmaxs): ...this and...
	(vmaxu): ...this and...
	(vmaxf): ...this.
	(vmin): Split to...
	(vmins): ...this and...
	(vminu): ...this and...
	(vminf): ...this.
	(vpmax): Split to...
	(vpmaxs): ...this and...
	(vpmaxu): ...this and...
	(vpmaxf): ...this.
	(vpmin): Split to...
	(vpmins): ...this and...
	(vpminu): ...this and...
	(vpminf): ...this.
	(vpaddl): Split to...
	(vpaddls): ...this and...
	(vpaddlu): ...this.
	(vpadal): Split to...
	(vpadals): ...this and...
	(vpadalu): ...this.
	(vget_laneu): New.
	(vqmovn): Split to...
	(vqmovns): ...this and...
	(vqmovnu): ...this.
	(vmovl): Split to...
	(vmovls): ...this and...
	(vmovlu): ...this.
	(vmlal_lane): Split to...
	(vmlals_lane): ...this and...
	(vmlalu_lane): ...this.
	(vmlsl_lane): Split to...
	(vmlsls_lane): ...this and...
	(vmlslu_lane): ...this.
	(vmlal_n): Split to...
	(vmlals_n): ...this and...
	(vmlalu_n): ...this.
	(vmlsl_n): Split to...
	(vmlsls_n): ...this and...
	(vmlslu_n): ...this.
	(vext): Make type "SHIFTINSERT".
	(vcvt): Split to...
	(vcvts): ...this and...
	(vcvtu): ...this.
	(vcvt_n): Split to...
	(vcvts_n): ...this and...
	(vcvtu_n): ...this.
	* config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
	(vaddl_s16): Likewise.
	(vaddl_s32): Likewise.
	(vaddl_u8): Likewise.
	(vaddl_u16): Likewise.
	(vaddl_u32): Likewise.
	(vaddw_s8): Likewise.
	(vaddw_s16): Likewise.
	(vaddw_s32): Likewise.
	(vaddw_u8): Likewise.
	(vaddw_u16): Likewise.
	(vaddw_u32): Likewise.
	(vhadd_s8): Likewise.
	(vhadd_s16): Likewise.
	(vhadd_s32): Likewise.
	(vhadd_u8): Likewise.
	(vhadd_u16): Likewise.
	(vhadd_u32): Likewise.
	(vhaddq_s8): Likewise.
	(vhaddq_s16): Likewise.
	(vhaddq_s32): Likewise.
	(vhaddq_u8): Likewise.
	(vhaddq_u16): Likewise.
	(vrhadd_s8): Likewise.
	(vrhadd_s16): Likewise.
	(vrhadd_s32): Likewise.
	(vrhadd_u8): Likewise.
	(vrhadd_u16): Likewise.
	(vrhadd_u32): Likewise.
	(vrhaddq_s8): Likewise.
	(vrhaddq_s16): Likewise.
	(vrhaddq_s32): Likewise.
	(vrhaddq_u8): Likewise.
	(vrhaddq_u16): Likewise.
	(vrhaddq_u32): Likewise.
	(vqadd_s8): Likewise.
	(vqadd_s16): Likewise.
	(vqadd_s32): Likewise.
	(vqadd_s64): Likewise.
	(vqadd_u8): Likewise.
	(vqadd_u16): Likewise.
	(vqadd_u32): Likewise.
	(vqadd_u64): Likewise.
	(vqaddq_s8): Likewise.
	(vqaddq_s16): Likewise.
	(vqaddq_s32): Likewise.
	(vqaddq_s64): Likewise.
	(vqaddq_u8): Likewise.
	(vqaddq_u16): Likewise.
	(vqaddq_u32): Likewise.
	(vqaddq_u64): Likewise.
	(vaddhn_s16): Likewise.
	(vaddhn_s32): Likewise.
	(vaddhn_s64): Likewise.
	(vaddhn_u16): Likewise.
	(vaddhn_u32): Likewise.
	(vaddhn_u64): Likewise.
	(vraddhn_s16): Likewise.
	(vraddhn_s32): Likewise.
	(vraddhn_s64): Likewise.
	(vraddhn_u16): Likewise.
	(vraddhn_u32): Likewise.
	(vraddhn_u64): Likewise.
	(vmul_p8): Likewise.
	(vmulq_p8): Likewise.
	(vqdmulh_s16): Likewise.
	(vqdmulh_s32): Likewise.
	(vqdmulhq_s16): Likewise.
	(vqdmulhq_s32): Likewise.
	(vqrdmulh_s16): Likewise.
	(vqrdmulh_s32): Likewise.
	(vqrdmulhq_s16): Likewise.
	(vqrdmulhq_s32): Likewise.
	(vmull_s8): Likewise.
	(vmull_s16): Likewise.
	(vmull_s32): Likewise.
	(vmull_u8): Likewise.
	(vmull_u16): Likewise.
	(vmull_u32): Likewise.
	(vmull_p8): Likewise.
	(vqdmull_s16): Likewise.
	(vqdmull_s32): Likewise.
	(vmla_s8): Likewise.
	(vmla_s16): Likewise.
	(vmla_s32): Likewise.
	(vmla_f32): Likewise.
	(vmla_u8): Likewise.
	(vmla_u16): Likewise.
	(vmla_u32): Likewise.
	(vmlaq_s8): Likewise.
	(vmlaq_s16): Likewise.
	(vmlaq_s32): Likewise.
	(vmlaq_f32): Likewise.
	(vmlaq_u8): Likewise.
	(vmlaq_u16): Likewise.
	(vmlaq_u32): Likewise.
	(vmlal_s8): Likewise.
	(vmlal_s16): Likewise.
	(vmlal_s32): Likewise.
	(vmlal_u8): Likewise.
	(vmlal_u16): Likewise.
	(vmlal_u32): Likewise.
	(vqdmlal_s16): Likewise.
	(vqdmlal_s32): Likewise.
	(vmls_s8): Likewise.
	(vmls_s16): Likewise.
	(vmls_s32): Likewise.
	(vmls_f32): Likewise.
	(vmls_u8): Likewise.
	(vmls_u16): Likewise.
	(vmls_u32): Likewise.
	(vmlsq_s8): Likewise.
	(vmlsq_s16): Likewise.
	(vmlsq_s32): Likewise.
	(vmlsq_f32): Likewise.
	(vmlsq_u8): Likewise.
	(vmlsq_u16): Likewise.
	(vmlsq_u32): Likewise.
	(vmlsl_s8): Likewise.
	(vmlsl_s16): Likewise.
	(vmlsl_s32): Likewise.
	(vmlsl_u8): Likewise.
	(vmlsl_u16): Likewise.
	(vmlsl_u32): Likewise.
	(vqdmlsl_s16): Likewise.
	(vqdmlsl_s32): Likewise.
	(vfma_f32): Likewise.
	(vfmaq_f32): Likewise.
	(vfms_f32): Likewise.
	(vfmsq_f32): Likewise.
	(vsubl_s8): Likewise.
	(vsubl_s16): Likewise.
	(vsubl_s32): Likewise.
	(vsubl_u8): Likewise.
	(vsubl_u16): Likewise.
	(vsubl_u32): Likewise.
	(vsubw_s8): Likewise.
	(vsubw_s16): Likewise.
	(vsubw_s32): Likewise.
	(vsubw_u8): Likewise.
	(vsubw_u16): Likewise.
	(vsubw_u32): Likewise.
	(vhsub_s8): Likewise.
	(vhsub_s16): Likewise.
	(vhsub_s32): Likewise.
	(vhsub_u8): Likewise.
	(vhsub_u16): Likewise.
	(vhsub_u32): Likewise.
	(vhsubq_s8): Likewise.
	(vhsubq_s16): Likewise.
	(vhsubq_s32): Likewise.
	(vhsubq_u8): Likewise.
	(vhsubq_u16): Likewise.
	(vhsubq_u32): Likewise.
	(vqsub_s8): Likewise.
	(vqsub_s16): Likewise.
	(vqsub_s32): Likewise.
	(vqsub_s64): Likewise.
	(vqsub_u8): Likewise.
	(vqsub_u16): Likewise.
	(vqsub_u32): Likewise.
	(vqsub_u64): Likewise.
	(vqsubq_s8): Likewise.
	(vqsubq_s16): Likewise.
	(vqsubq_s32): Likewise.
	(vqsubq_s64): Likewise.
	(vqsubq_u8): Likewise.
	(vqsubq_u16): Likewise.
	(vqsubq_u32): Likewise.
	(vqsubq_u64): Likewise.
	(vsubhn_s16): Likewise.
	(vsubhn_s32): Likewise.
	(vsubhn_s64): Likewise.
	(vsubhn_u16): Likewise.
	(vsubhn_u32): Likewise.
	(vsubhn_u64): Likewise.
	(vrsubhn_s16): Likewise.
	(vrsubhn_s32): Likewise.
	(vrsubhn_s64): Likewise.
	(vrsubhn_u16): Likewise.
	(vrsubhn_u32): Likewise.
	(vrsubhn_u64): Likewise.
	(vceq_s8): Likewise.
	(vceq_s16): Likewise.
	(vceq_s32): Likewise.
	(vceq_f32): Likewise.
	(vceq_u8): Likewise.
	(vceq_u16): Likewise.
	(vceq_u32): Likewise.
	(vceq_p8): Likewise.
	(vceqq_s8): Likewise.
	(vceqq_s16): Likewise.
	(vceqq_s32): Likewise.
	(vceqq_f32): Likewise.
	(vceqq_u8): Likewise.
	(vceqq_u16): Likewise.
	(vceqq_u32): Likewise.
	(vceqq_p8): Likewise.
	(vcge_s8): Likewise.
	(vcge_s16): Likewise.
	(vcge_s32): Likewise.
	(vcge_f32): Likewise.
	(vcge_u8): Likewise.
	(vcge_u16): Likewise.
	(vcge_u32): Likewise.
	(vcgeq_s8): Likewise.
	(vcgeq_s16): Likewise.
	(vcgeq_s32): Likewise.
	(vcgeq_f32): Likewise.
	(vcgeq_u8): Likewise.
	(vcgeq_u16): Likewise.
	(vcgeq_u32): Likewise.
	(vcle_s8): Likewise.
	(vcle_s16): Likewise.
	(vcle_s32): Likewise.
	(vcle_f32): Likewise.
	(vcle_u8): Likewise.
	(vcle_u16): Likewise.
	(vcle_u32): Likewise.
	(vcleq_s8): Likewise.
	(vcleq_s16): Likewise.
	(vcleq_s32): Likewise.
	(vcleq_f32): Likewise.
	(vcleq_u8): Likewise.
	(vcleq_u16): Likewise.
	(vcleq_u32): Likewise.
	(vcgt_s8): Likewise.
	(vcgt_s16): Likewise.
	(vcgt_s32): Likewise.
	(vcgt_f32): Likewise.
	(vcgt_u8): Likewise.
	(vcgt_u16): Likewise.
	(vcgt_u32): Likewise.
	(vcgtq_s8): Likewise.
	(vcgtq_s16): Likewise.
	(vcgtq_s32): Likewise.
	(vcgtq_f32): Likewise.
	(vcgtq_u8): Likewise.
	(vcgtq_u16): Likewise.
	(vcgtq_u32): Likewise.
	(vclt_s8): Likewise.
	(vclt_s16): Likewise.
	(vclt_s32): Likewise.
	(vclt_f32): Likewise.
	(vclt_u8): Likewise.
	(vclt_u16): Likewise.
	(vclt_u32): Likewise.
	(vcltq_s8): Likewise.
	(vcltq_s16): Likewise.
	(vcltq_s32): Likewise.
	(vcltq_f32): Likewise.
	(vcltq_u8): Likewise.
	(vcltq_u16): Likewise.
	(vcltq_u32): Likewise.
	(vcage_f32): Likewise.
	(vcageq_f32): Likewise.
	(vcale_f32): Likewise.
	(vcaleq_f32): Likewise.
	(vcagt_f32): Likewise.
	(vcagtq_f32): Likewise.
	(vcalt_f32): Likewise.
	(vcaltq_f32): Likewise.
	(vtst_s8): Likewise.
	(vtst_s16): Likewise.
	(vtst_s32): Likewise.
	(vtst_u8): Likewise.
	(vtst_u16): Likewise.
	(vtst_u32): Likewise.
	(vtst_p8): Likewise.
	(vtstq_s8): Likewise.
	(vtstq_s16): Likewise.
	(vtstq_s32): Likewise.
	(vtstq_u8): Likewise.
	(vtstq_u16): Likewise.
	(vtstq_u32): Likewise.
	(vtstq_p8): Likewise.
	(vabd_s8): Likewise.
	(vabd_s16): Likewise.
	(vabd_s32): Likewise.
	(vabd_f32): Likewise.
	(vabd_u8): Likewise.
	(vabd_u16): Likewise.
	(vabd_u32): Likewise.
	(vabdq_s8): Likewise.
	(vabdq_s16): Likewise.
	(vabdq_s32): Likewise.
	(vabdq_f32): Likewise.
	(vabdq_u8): Likewise.
	(vabdq_u16): Likewise.
	(vabdq_u32): Likewise.
	(vabdl_s8): Likewise.
	(vabdl_s16): Likewise.
	(vabdl_s32): Likewise.
	(vabdl_u8): Likewise.
	(vabdl_u16): Likewise.
	(vabdl_u32): Likewise.
	(vaba_s8): Likewise.
	(vaba_s16): Likewise.
	(vaba_s32): Likewise.
	(vaba_u8): Likewise.
	(vaba_u16): Likewise.
	(vaba_u32): Likewise.
	(vabaq_s8): Likewise.
	(vabaq_s16): Likewise.
	(vabaq_s32): Likewise.
	(vabaq_u8): Likewise.
	(vabaq_u16): Likewise.
	(vabaq_u32): Likewise.
	(vabal_s8): Likewise.
	(vabal_s16): Likewise.
	(vabal_s32): Likewise.
	(vabal_u8): Likewise.
	(vabal_u16): Likewise.
	(vabal_u32): Likewise.
	(vmax_s8): Likewise.
	(vmax_s16): Likewise.
	(vmax_s32): Likewise.
	(vmax_f32): Likewise.
	(vmax_u8): Likewise.
	(vmax_u16): Likewise.
	(vmax_u32): Likewise.
	(vmaxq_s8): Likewise.
	(vmaxq_s16): Likewise.
	(vmaxq_s32): Likewise.
	(vmaxq_f32): Likewise.
	(vmaxq_u8): Likewise.
	(vmaxq_u16): Likewise.
	(vmaxq_u32): Likewise.
	(vmin_s8): Likewise.
	(vmin_s16): Likewise.
	(vmin_s32): Likewise.
	(vmin_f32): Likewise.
	(vmin_u8): Likewise.
	(vmin_u16): Likewise.
	(vmin_u32): Likewise.
	(vminq_s8): Likewise.
	(vminq_s16): Likewise.
	(vminq_s32): Likewise.
	(vminq_f32): Likewise.
	(vminq_u8): Likewise.
	(vminq_u16): Likewise.
	(vminq_u32): Likewise.
	(vpadd_s8): Likewise.
	(vpadd_s16): Likewise.
	(vpadd_s32): Likewise.
	(vpadd_f32): Likewise.
	(vpadd_u8): Likewise.
	(vpadd_u16): Likewise.
	(vpadd_u32): Likewise.
	(vpaddl_s8): Likewise.
	(vpaddl_s16): Likewise.
	(vpaddl_s32): Likewise.
	(vpaddl_u8): Likewise.
	(vpaddl_u16): Likewise.
	(vpaddl_u32): Likewise.
	(vpaddlq_s8): Likewise.
	(vpaddlq_s16): Likewise.
	(vpaddlq_s32): Likewise.
	(vpaddlq_u8): Likewise.
	(vpaddlq_u16): Likewise.
	(vpaddlq_u32): Likewise.
	(vpadal_s8): Likewise.
	(vpadal_s16): Likewise.
	(vpadal_s32): Likewise.
	(vpadal_u8): Likewise.
	(vpadal_u16): Likewise.
	(vpadal_u32): Likewise.
	(vpadalq_s8): Likewise.
	(vpadalq_s16): Likewise.
	(vpadalq_s32): Likewise.
	(vpadalq_u8): Likewise.
	(vpadalq_u16): Likewise.
	(vpadalq_u32): Likewise.
	(vpmax_s8): Likewise.
	(vpmax_s16): Likewise.
	(vpmax_s32): Likewise.
	(vpmax_f32): Likewise.
	(vpmax_u8): Likewise.
	(vpmax_u16): Likewise.
	(vpmax_u32): Likewise.
	(vpmin_s8): Likewise.
	(vpmin_s16): Likewise.
	(vpmin_s32): Likewise.
	(vpmin_f32): Likewise.
	(vpmin_u8): Likewise.
	(vpmin_u16): Likewise.
	(vpmin_u32): Likewise.
	(vrecps_f32): Likewise.
	(vrecpsq_f32): Likewise.
	(vrsqrts_f32): Likewise.
	(vrsqrtsq_f32): Likewise.
	(vshl_s8): Likewise.
	(vshl_s16): Likewise.
	(vshl_s32): Likewise.
	(vshl_s64): Likewise.
	(vshl_u8): Likewise.
	(vshl_u16): Likewise.
	(vshl_u32): Likewise.
	(vshl_u64): Likewise.
	(vshlq_s8): Likewise.
	(vshlq_s16): Likewise.
	(vshlq_s32): Likewise.
	(vshlq_s64): Likewise.
	(vshlq_u8): Likewise.
	(vshlq_u16): Likewise.
	(vshlq_u32): Likewise.
	(vshlq_u64): Likewise.
	(vrshl_s8): Likewise.
	(vrshl_s16): Likewise.
	(vrshl_s32): Likewise.
	(vrshl_s64): Likewise.
	(vrshl_u8): Likewise.
	(vrshl_u16): Likewise.
	(vrshl_u32): Likewise.
	(vrshl_u64): Likewise.
	(vrshlq_s8): Likewise.
	(vrshlq_s16): Likewise.
	(vrshlq_s32): Likewise.
	(vrshlq_s64): Likewise.
	(vrshlq_u8): Likewise.
	(vrshlq_u16): Likewise.
	(vrshlq_u32): Likewise.
	(vrshlq_u64): Likewise.
	(vqshl_s8): Likewise.
	(vqshl_s16): Likewise.
	(vqshl_s32): Likewise.
	(vqshl_s64): Likewise.
	(vqshl_u8): Likewise.
	(vqshl_u16): Likewise.
	(vqshl_u32): Likewise.
	(vqshl_u64): Likewise.
	(vqshlq_s8): Likewise.
	(vqshlq_s16): Likewise.
	(vqshlq_s32): Likewise.
	(vqshlq_s64): Likewise.
	(vqshlq_u8): Likewise.
	(vqshlq_u16): Likewise.
	(vqshlq_u32): Likewise.
	(vqshlq_u64): Likewise.
	(vqrshl_s8): Likewise.
	(vqrshl_s16): Likewise.
	(vqrshl_s32): Likewise.
	(vqrshl_s64): Likewise.
	(vqrshl_u8): Likewise.
	(vqrshl_u16): Likewise.
	(vqrshl_u32): Likewise.
	(vqrshl_u64): Likewise.
	(vqrshlq_s8): Likewise.
	(vqrshlq_s16): Likewise.
	(vqrshlq_s32): Likewise.
	(vqrshlq_s64): Likewise.
	(vqrshlq_u8): Likewise.
	(vqrshlq_u16): Likewise.
	(vqrshlq_u32): Likewise.
	(vqrshlq_u64): Likewise.
	(vshr_n_s8): Likewise.
	(vshr_n_s16): Likewise.
	(vshr_n_s32): Likewise.
	(vshr_n_s64): Likewise.
	(vshr_n_u8): Likewise.
	(vshr_n_u16): Likewise.
	(vshr_n_u32): Likewise.
	(vshr_n_u64): Likewise.
	(vshrq_n_s8): Likewise.
	(vshrq_n_s16): Likewise.
	(vshrq_n_s32): Likewise.
	(vshrq_n_s64): Likewise.
	(vshrq_n_u8): Likewise.
	(vshrq_n_u16): Likewise.
	(vshrq_n_u32): Likewise.
	(vshrq_n_u64): Likewise.
	(vrshr_n_s8): Likewise.
	(vrshr_n_s16): Likewise.
	(vrshr_n_s32): Likewise.
	(vrshr_n_s64): Likewise.
	(vrshr_n_u8): Likewise.
	(vrshr_n_u16): Likewise.
	(vrshr_n_u32): Likewise.
	(vrshr_n_u64): Likewise.
	(vrshrq_n_s8): Likewise.
	(vrshrq_n_s16): Likewise.
	(vrshrq_n_s32): Likewise.
	(vrshrq_n_s64): Likewise.
	(vrshrq_n_u8): Likewise.
	(vrshrq_n_u16): Likewise.
	(vrshrq_n_u32): Likewise.
	(vrshrq_n_u64): Likewise.
	(vshrn_n_s16): Likewise.
	(vshrn_n_s32): Likewise.
	(vshrn_n_s64): Likewise.
	(vshrn_n_u16): Likewise.
	(vshrn_n_u32): Likewise.
	(vshrn_n_u64): Likewise.
	(vrshrn_n_s16): Likewise.
	(vrshrn_n_s32): Likewise.
	(vrshrn_n_s64): Likewise.
	(vrshrn_n_u16): Likewise.
	(vrshrn_n_u32): Likewise.
	(vrshrn_n_u64): Likewise.
	(vqshrn_n_s16): Likewise.
	(vqshrn_n_s32): Likewise.
	(vqshrn_n_s64): Likewise.
	(vqshrn_n_u16): Likewise.
	(vqshrn_n_u32): Likewise.
	(vqshrn_n_u64): Likewise.
	(vqrshrn_n_s16): Likewise.
	(vqrshrn_n_s32): Likewise.
	(vqrshrn_n_s64): Likewise.
	(vqrshrn_n_u16): Likewise.
	(vqrshrn_n_u32): Likewise.
	(vqrshrn_n_u64): Likewise.
	(vqshrun_n_s16): Likewise.
	(vqshrun_n_s32): Likewise.
	(vqshrun_n_s64): Likewise.
	(vqrshrun_n_s16): Likewise.
	(vqrshrun_n_s32): Likewise.
	(vqrshrun_n_s64): Likewise.
	(vshl_n_s8): Likewise.
	(vshl_n_s16): Likewise.
	(vshl_n_s32): Likewise.
	(vshl_n_s64): Likewise.
	(vshl_n_u8): Likewise.
	(vshl_n_u16): Likewise.
	(vshl_n_u32): Likewise.
	(vshl_n_u64): Likewise.
	(vshlq_n_s8): Likewise.
	(vshlq_n_s16): Likewise.
	(vshlq_n_s32): Likewise.
	(vshlq_n_s64): Likewise.
	(vshlq_n_u8): Likewise.
	(vshlq_n_u16): Likewise.
	(vshlq_n_u32): Likewise.
	(vshlq_n_u64): Likewise.
	(vqshl_n_s8): Likewise.
	(vqshl_n_s16): Likewise.
	(vqshl_n_s32): Likewise.
	(vqshl_n_s64): Likewise.
	(vqshl_n_u8): Likewise.
	(vqshl_n_u16): Likewise.
	(vqshl_n_u32): Likewise.
	(vqshl_n_u64): Likewise.
	(vqshlq_n_s8): Likewise.
	(vqshlq_n_s16): Likewise.
	(vqshlq_n_s32): Likewise.
	(vqshlq_n_s64): Likewise.
	(vqshlq_n_u8): Likewise.
	(vqshlq_n_u16): Likewise.
	(vqshlq_n_u32): Likewise.
	(vqshlq_n_u64): Likewise.
	(vqshlu_n_s8): Likewise.
	(vqshlu_n_s16): Likewise.
	(vqshlu_n_s32): Likewise.
	(vqshlu_n_s64): Likewise.
	(vqshluq_n_s8): Likewise.
	(vqshluq_n_s16): Likewise.
	(vqshluq_n_s32): Likewise.
	(vqshluq_n_s64): Likewise.
	(vshll_n_s8): Likewise.
	(vshll_n_s16): Likewise.
	(vshll_n_s32): Likewise.
	(vshll_n_u8): Likewise.
	(vshll_n_u16): Likewise.
	(vshll_n_u32): Likewise.
	(vsra_n_s8): Likewise.
	(vsra_n_s16): Likewise.
	(vsra_n_s32): Likewise.
	(vsra_n_s64): Likewise.
	(vsra_n_u8): Likewise.
	(vsra_n_u16): Likewise.
	(vsra_n_u32): Likewise.
	(vsra_n_u64): Likewise.
	(vsraq_n_s8): Likewise.
	(vsraq_n_s16): Likewise.
	(vsraq_n_s32): Likewise.
	(vsraq_n_s64): Likewise.
	(vsraq_n_u8): Likewise.
	(vsraq_n_u16): Likewise.
	(vsraq_n_u32): Likewise.
	(vsraq_n_u64): Likewise.
	(vrsra_n_s8): Likewise.
	(vrsra_n_s16): Likewise.
	(vrsra_n_s32): Likewise.
	(vrsra_n_s64): Likewise.
	(vrsra_n_u8): Likewise.
	(vrsra_n_u16): Likewise.
	(vrsra_n_u32): Likewise.
	(vrsra_n_u64): Likewise.
	(vrsraq_n_s8): Likewise.
	(vrsraq_n_s16): Likewise.
	(vrsraq_n_s32): Likewise.
	(vrsraq_n_s64): Likewise.
	(vrsraq_n_u8): Likewise.
	(vrsraq_n_u16): Likewise.
	(vrsraq_n_u32): Likewise.
	(vrsraq_n_u64): Likewise.
	(vabs_s8): Likewise.
	(vabs_s16): Likewise.
	(vabs_s32): Likewise.
	(vabs_f32): Likewise.
	(vabsq_s8): Likewise.
	(vabsq_s16): Likewise.
	(vabsq_s32): Likewise.
	(vabsq_f32): Likewise.
	(vqabs_s8): Likewise.
	(vqabs_s16): Likewise.
	(vqabs_s32): Likewise.
	(vqabsq_s8): Likewise.
	(vqabsq_s16): Likewise.
	(vqabsq_s32): Likewise.
	(vneg_s8): Likewise.
	(vneg_s16): Likewise.
	(vneg_s32): Likewise.
	(vneg_f32): Likewise.
	(vnegq_s8): Likewise.
	(vnegq_s16): Likewise.
	(vnegq_s32): Likewise.
	(vnegq_f32): Likewise.
	(vqneg_s8): Likewise.
	(vqneg_s16): Likewise.
	(vqneg_s32): Likewise.
	(vqnegq_s8): Likewise.
	(vqnegq_s16): Likewise.
	(vqnegq_s32): Likewise.
	(vmvn_s8): Likewise.
	(vmvn_s16): Likewise.
	(vmvn_s32): Likewise.
	(vmvn_u8): Likewise.
	(vmvn_u16): Likewise.
	(vmvn_u32): Likewise.
	(vmvn_p8): Likewise.
	(vmvnq_s8): Likewise.
	(vmvnq_s16): Likewise.
	(vmvnq_s32): Likewise.
	(vmvnq_u8): Likewise.
	(vmvnq_u16): Likewise.
	(vmvnq_u32): Likewise.
	(vmvnq_p8): Likewise.
	(vcls_s8): Likewise.
	(vcls_s16): Likewise.
	(vcls_s32): Likewise.
	(vclsq_s8): Likewise.
	(vclsq_s16): Likewise.
	(vclsq_s32): Likewise.
	(vclz_s8): Likewise.
	(vclz_s16): Likewise.
	(vclz_s32): Likewise.
	(vclz_u8): Likewise.
	(vclz_u16): Likewise.
	(vclz_u32): Likewise.
	(vclzq_s8): Likewise.
	(vclzq_s16): Likewise.
	(vclzq_s32): Likewise.
	(vclzq_u8): Likewise.
	(vclzq_u16): Likewise.
	(vclzq_u32): Likewise.
	(vcnt_s8): Likewise.
	(vcnt_u8): Likewise.
	(vcnt_p8): Likewise.
	(vcntq_s8): Likewise.
	(vcntq_u8): Likewise.
	(vcntq_p8): Likewise.
	(vrecpe_f32): Likewise.
	(vrecpe_u32): Likewise.
	(vrecpeq_f32): Likewise.
	(vrecpeq_u32): Likewise.
	(vrsqrte_f32): Likewise.
	(vrsqrte_u32): Likewise.
	(vrsqrteq_f32): Likewise.
	(vrsqrteq_u32): Likewise.
	(vget_lane_s8): Likewise.
	(vget_lane_s16): Likewise.
	(vget_lane_s32): Likewise.
	(vget_lane_f32): Likewise.
	(vget_lane_u8): Likewise.
	(vget_lane_u16): Likewise.
	(vget_lane_u32): Likewise.
	(vget_lane_p8): Likewise.
	(vget_lane_p16): Likewise.
	(vget_lane_s64): Likewise.
	(vget_lane_u64): Likewise.
	(vgetq_lane_s8): Likewise.
	(vgetq_lane_s16): Likewise.
	(vgetq_lane_s32): Likewise.
	(vgetq_lane_f32): Likewise.
	(vgetq_lane_u8): Likewise.
	(vgetq_lane_u16): Likewise.
	(vgetq_lane_u32): Likewise.
	(vgetq_lane_p8): Likewise.
	(vgetq_lane_p16): Likewise.
	(vgetq_lane_s64): Likewise.
	(vgetq_lane_u64): Likewise.
	(vcvt_s32_f32): Likewise.
	(vcvt_f32_s32): Likewise.
	(vcvt_f32_u32): Likewise.
	(vcvt_u32_f32): Likewise.
	(vcvtq_s32_f32): Likewise.
	(vcvtq_f32_s32): Likewise.
	(vcvtq_f32_u32): Likewise.
	(vcvtq_u32_f32): Likewise.
	(vcvt_n_s32_f32): Likewise.
	(vcvt_n_f32_s32): Likewise.
	(vcvt_n_f32_u32): Likewise.
	(vcvt_n_u32_f32): Likewise.
	(vcvtq_n_s32_f32): Likewise.
	(vcvtq_n_f32_s32): Likewise.
	(vcvtq_n_f32_u32): Likewise.
	(vcvtq_n_u32_f32): Likewise.
	(vmovn_s16): Likewise.
	(vmovn_s32): Likewise.
	(vmovn_s64): Likewise.
	(vmovn_u16): Likewise.
	(vmovn_u32): Likewise.
	(vmovn_u64): Likewise.
	(vqmovn_s16): Likewise.
	(vqmovn_s32): Likewise.
	(vqmovn_s64): Likewise.
	(vqmovn_u16): Likewise.
	(vqmovn_u32): Likewise.
	(vqmovn_u64): Likewise.
	(vqmovun_s16): Likewise.
	(vqmovun_s32): Likewise.
	(vqmovun_s64): Likewise.
	(vmovl_s8): Likewise.
	(vmovl_s16): Likewise.
	(vmovl_s32): Likewise.
	(vmovl_u8): Likewise.
	(vmovl_u16): Likewise.
	(vmovl_u32): Likewise.
	(vmul_lane_s16): Likewise.
	(vmul_lane_s32): Likewise.
	(vmul_lane_f32): Likewise.
	(vmul_lane_u16): Likewise.
	(vmul_lane_u32): Likewise.
	(vmulq_lane_s16): Likewise.
	(vmulq_lane_s32): Likewise.
	(vmulq_lane_f32): Likewise.
	(vmulq_lane_u16): Likewise.
	(vmulq_lane_u32): Likewise.
	(vmla_lane_s16): Likewise.
	(vmla_lane_s32): Likewise.
	(vmla_lane_f32): Likewise.
	(vmla_lane_u16): Likewise.
	(vmla_lane_u32): Likewise.
	(vmlaq_lane_s16): Likewise.
	(vmlaq_lane_s32): Likewise.
	(vmlaq_lane_f32): Likewise.
	(vmlaq_lane_u16): Likewise.
	(vmlaq_lane_u32): Likewise.
	(vmlal_lane_s16): Likewise.
	(vmlal_lane_s32): Likewise.
	(vmlal_lane_u16): Likewise.
	(vmlal_lane_u32): Likewise.
	(vqdmlal_lane_s16): Likewise.
	(vqdmlal_lane_s32): Likewise.
	(vmls_lane_s16): Likewise.
	(vmls_lane_s32): Likewise.
	(vmls_lane_f32): Likewise.
	(vmls_lane_u16): Likewise.
	(vmls_lane_u32): Likewise.
	(vmlsq_lane_s16): Likewise.
	(vmlsq_lane_s32): Likewise.
	(vmlsq_lane_f32): Likewise.
	(vmlsq_lane_u16): Likewise.
	(vmlsq_lane_u32): Likewise.
	(vmlsl_lane_s16): Likewise.
	(vmlsl_lane_s32): Likewise.
	(vmlsl_lane_u16): Likewise.
	(vmlsl_lane_u32): Likewise.
	(vqdmlsl_lane_s16): Likewise.
	(vqdmlsl_lane_s32): Likewise.
	(vmull_lane_s16): Likewise.
	(vmull_lane_s32): Likewise.
	(vmull_lane_u16): Likewise.
	(vmull_lane_u32): Likewise.
	(vqdmull_lane_s16): Likewise.
	(vqdmull_lane_s32): Likewise.
	(vqdmulhq_lane_s16): Likewise.
	(vqdmulhq_lane_s32): Likewise.
	(vqdmulh_lane_s16): Likewise.
	(vqdmulh_lane_s32): Likewise.
	(vqrdmulhq_lane_s16): Likewise.
	(vqrdmulhq_lane_s32): Likewise.
	(vqrdmulh_lane_s16): Likewise.
	(vqrdmulh_lane_s32): Likewise.
	(vmul_n_s16): Likewise.
	(vmul_n_s32): Likewise.
	(vmul_n_f32): Likewise.
	(vmul_n_u16): Likewise.
	(vmul_n_u32): Likewise.
	(vmulq_n_s16): Likewise.
	(vmulq_n_s32): Likewise.
	(vmulq_n_f32): Likewise.
	(vmulq_n_u16): Likewise.
	(vmulq_n_u32): Likewise.
	(vmull_n_s16): Likewise.
	(vmull_n_s32): Likewise.
	(vmull_n_u16): Likewise.
	(vmull_n_u32): Likewise.
	(vqdmull_n_s16): Likewise.
	(vqdmull_n_s32): Likewise.
	(vqdmulhq_n_s16): Likewise.
	(vqdmulhq_n_s32): Likewise.
	(vqdmulh_n_s16): Likewise.
	(vqdmulh_n_s32): Likewise.
	(vqrdmulhq_n_s16): Likewise.
	(vqrdmulhq_n_s32): Likewise.
	(vqrdmulh_n_s16): Likewise.
	(vqrdmulh_n_s32): Likewise.
	(vmla_n_s16): Likewise.
	(vmla_n_s32): Likewise.
	(vmla_n_f32): Likewise.
	(vmla_n_u16): Likewise.
	(vmla_n_u32): Likewise.
	(vmlaq_n_s16): Likewise.
	(vmlaq_n_s32): Likewise.
	(vmlaq_n_f32): Likewise.
	(vmlaq_n_u16): Likewise.
	(vmlaq_n_u32): Likewise.
	(vmlal_n_s16): Likewise.
	(vmlal_n_s32): Likewise.
	(vmlal_n_u16): Likewise.
	(vmlal_n_u32): Likewise.
	(vqdmlal_n_s16): Likewise.
	(vqdmlal_n_s32): Likewise.
	(vmls_n_s16): Likewise.
	(vmls_n_s32): Likewise.
	(vmls_n_f32): Likewise.
	(vmls_n_u16): Likewise.
	(vmls_n_u32): Likewise.
	(vmlsq_n_s16): Likewise.
	(vmlsq_n_s32): Likewise.
	(vmlsq_n_f32): Likewise.
	(vmlsq_n_u16): Likewise.
	(vmlsq_n_u32): Likewise.
	(vmlsl_n_s16): Likewise.
	(vmlsl_n_s32): Likewise.
	(vmlsl_n_u16): Likewise.
	(vmlsl_n_u32): Likewise.
	(vqdmlsl_n_s16): Likewise.
	(vqdmlsl_n_s32): Likewise.

2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
	Add cost of alu.arith in simple SImode case.

2014-11-18  Jiong Wang  <jiong.wang@arm.com>

	* lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
	registers.

2014-11-18  Marat Zakirov  <m.zakirov@samsung.com>

	* opts.c (finish_options): Disable aggressive opts for sanitizer.
	(common_handle_option): Move code to finish_options.

2014-11-18  Yury Gribov  <y.gribov@samsung.com>

	PR sanitizer/63802
	* stor-layout.c (min_align_of_type): Respect user alignment
	more.

2014-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>

	* passes.c (remove_cgraph_node_from_order): New.
	(do_per_function_toporder): Register cgraph removal
	hook.

2014-11-17  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
	* config/arm/arm.md (generic_sched): Exclude cortex-m7.
	(generic_vfp): Likewise.
	* config/arm/cortex-m7.md: Pipeline description for cortex-m7.

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

	PR rtl-optimization/63906
	* lra-remat.c (operand_to_remat): Check SP and
	frame_pointer_required.

2014-11-17  Mircea Namolaru  <mircea.namolaru@inria.fr>

	* doc/invoke.texi (floop-unroll-and-jam): Document
	(loop-unroll-jam-size): Likewise.
	(loop-unroll-jam-depth): Likewise.
	* graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
	(getScheduleForBandList): Replaced unsafe union_map reuse.

2014-11-17  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/thunderx.md: Remove copyright which should not
	have been there.

2014-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
	Altivec style vector loads that ignore the bottom 3 bits of the
	address.
	(rs6000_debug_addr_mask): New function to print the addr_mask
	values if debugging.
	(rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
	out addr_mask.
	(rs6000_setup_reg_addr_masks): Add support for Altivec style
	vector loads that ignore the bottom 3 bits of the address.  Allow
	pre-increment and pre-decrement on floating point, even if the
	-mupper-regs-{sf,df} options were used.
	(rs6000_init_hard_regno_mode_ok): Rework DFmode support if
	-mupper-regs-df.  Add support for -mupper-regs-sf.  Rearrange code
	placement for direct move support.
	(rs6000_option_override_internal): Add checks for -mupper-regs-df
	requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
	If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
	depending on the underlying cpu.
	(rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
	(rs6000_secondary_reload_toc_costs): Helper function to identify
	costs of a TOC load for secondary reload support.
	(rs6000_secondary_reload_memory): Helper function for secondary
	reload, to determine if a particular memory operation is directly
	handled by the hardware, or if it needs support from secondary
	reload to create a valid address.
	(rs6000_secondary_reload): Rework code, to be clearer.  If the
	appropriate -mupper-regs-{sf,df} is used, use FPR registers to
	reload scalar values, since the FPR registers have D-form
	addressing. Move most of the code handling memory to the function
	rs6000_secondary_reload_memory, and use the reg_addr structure to
	determine what type of address modes are supported.  Print more
	debug information if -mdebug=addr.
	(rs6000_secondary_reload_inner): Rework entire function to be more
	general.  Use the reg_addr bits to determine what type of
	addressing is supported.
	(rs6000_preferred_reload_class): Rework.  Move constant handling
	into a single place.  Prefer using FLOAT_REGS for scalar floating
	point.
	(rs6000_secondary_reload_class): Use a FPR register to move a
	value from an Altivec register to a GPR, and vice versa.  Move VSX
	handling above traditional floating point.

	* config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
	Delete some spaces in the constraints.
	(DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
	allow using FPR registers to load/store an Altivec register for
	scalar floating point types.
	(SF->SF move peephole2): Likewise.
	(DFmode splitter): Add a define_split to move floating point
	constants to the constant pool before register allocation.
	Normally constants are put into the pool immediately, but
	-ffast-math delays putting them into the constant pool for the
	reciprocal approximation support.
	(SFmode splitter): Likewise.

	* config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
	(-mupper-regs-sf): Likewise.

	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	__UPPER_REGS_DF__ if -mupper-regs-df.  Define __UPPER_REGS_SF__ if
	-mupper-regs-sf.
	(-mupper-regs): New combination option that sets -mupper-regs-sf
	and -mupper-regs-df by default if the cpu supports the instructions.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mupper-regs, -mupper-regs-sf, and -mupper-regs-df.

	* config/rs6000/predicates.md (memory_fp_constant): New predicate
	to return true if the operand is a floating point constant that
	must be put into the constant pool, before register allocation
	occurs.

	* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
	-mupper-regs-df by default.
	(ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
	(POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
	various -mcpu=... options.
	(power7 cpu): Enable -mupper-regs-df by default.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mupper-regs.

2014-11-17  Zhouyi Zhou <yizhouzhou@ict.ac.cn>

	* ira-conflicts.c (build_conflict_bit_table): Add the current
	object to OBJECTS_LIVE after traversing OBJECTS_LIVE.

2014-11-17  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
	(ipa_get_indirect_edge_target): Add SPECULATIVE argument.
	(devirtualization_time_bonus): Use it.
	(ipcp_discover_new_direct_edges): Likewise.
	* ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
	* ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.

2014-11-17  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (free_lang_data_in_decl): Set
	DECL_FUNCTION_SPECIFIC_OPTIMIZATION to optimization_default_node.

2014-11-17  Jan Hubicka  <hubicka@ucw.cz>

	* cgraphunit.c (analyze_functions): Use opt_for_fn.
	* cgraph.h (cgraph_node::optimize_for_size_p): Likewise.

2014-11-17  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (symbol_table::create_edge): Use opt_for_fn.
	(cgraph_node::cannot_return_p): Likewise.
	(cgraph_edge::cannot_lead_to_return_p): Likewise.
	(cgraph_edge::maybe_hot_p): Likewise.

2014-11-17  Jan Hubicka  <hubicka@ucw.cz>

	* predict.c (maybe_hot_frequency_p): Use opt_for_fn.
	(optimize_function_for_size_p): Likewise.
	(probably_never_executed): Likewise; replace cfun by fun.

2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
	variant reading from memory and assembling to ld1.

	* config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
	vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
	vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
	vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
	vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
	vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
	vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.

2014-11-17  Jason Merrill  <jason@redhat.com>

	* tree-inline.c (copy_fn): New.
	* tree-inline.h: Declare it.

2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
	* config/aarch64/aarch64-simd-builtins.def (create): Remove.
	* config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
	* config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
	vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
	* config/aarch64/iterators.md (VD1): Remove.

2014-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-cores.def (cortex-a53): Remove
	AARCH64_FL_CRYPTO from feature flags.
	(cortex-a57): Likewise.
	(cortex-a57.cortex-a53): Likewise.

2014-11-17  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
	DECL_FUNCTION_SPECIFIC_TARGET.
	* i386.c (ix86_set_current_function): Handle explicit default options.

2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>

	* builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
	instead of BNDmode.
	(expand_builtin_mempcpy_with_bounds): Likewise.
	(expand_builtin_memset_with_bounds): Likewise.

2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
	ipa-ref.h, plugin-api.h.
	(get_string_length): Handle calls with bounds.
	(adjust_last_stmt): Likewise.
	(handle_builtin_strchr): Likewise.
	(handle_builtin_strcpy): Likewise.
	(handle_builtin_memcpy): Likewise.
	(handle_builtin_strcat): Likewise.

2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
	(chkp_get_nochk_fndecl): New.
	(chkp_optimize_string_function_calls): New.
	(chkp_opt_execute): Call chkp_optimize_string_function_calls.
	* tree-cfg.h (insert_cond_bb): New.
	* tree-cfg.c (insert_cond_bb): New.

2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-core.h (built_in_class): Add builtin codes to be used
	by Pointer Bounds Checker for instrumented builtin functions.
	* tree-streamer-in.c: Include ipa-chkp.h.
	(streamer_get_builtin_tree): Created instrumented decl if
	required.
	* ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
	* ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
	function decls.
	(chkp_maybe_clone_builtin_fndecl): New.
	(chkp_maybe_create_clone): Support builtin function decls.
	(chkp_versioning): Clone builtin functions.
	* tree-chkp.c (chkp_instrument_normal_builtin): New.
	(chkp_add_bounds_to_call_stmt): Support builtin functions.
	(chkp_replace_function_pointer): Likewise.
	* builtins.c (expand_builtin_memcpy_args): New.
	(expand_builtin_memcpy): Call expand_builtin_memcpy_args.
	(expand_builtin_memcpy_with_bounds): New.
	(expand_builtin_mempcpy_with_bounds): New.
	(expand_builtin_mempcpy_args): Add orig_exp arg. Support
	BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
	(expand_builtin_memset_with_bounds): New.
	(expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
	(expand_builtin_with_bounds): New.
	* builtins.h (expand_builtin_with_bounds): New.
	* expr.c (expand_expr_real_1): Support instrumented builtin calls.

2014-11-17  Dodji Seketeli  <dodji@redhat.com>

	* gimple.h (gimple_set_visited, gimple_visited_p)
	(gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
	comments to these accessors.

2014-11-17  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
	Set avr_log_details to "all".

2014-11-17  Richard Biener  <rguenther@suse.de>

	PR middle-end/63898
	* match.pd: Guard X / CST -> X * CST' transform against
	zero CST.

2014-11-17  Terry Guo  <terry.guo@arm.com>

	* config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
	format.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* ifcvt.c (HAVE_cbranchcc4): Define.
	(noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
	Use HAVE_cbranchcc4.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/aarch64.c (aarch64_code_to_ccmode,
	aarch64_convert_mode, aarch64_gen_ccmp_first,
	aarch64_gen_ccmp_next): New functions.
	(TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
	* aarch64.c (aarch64_nzcv_codes): New data.
	(aarch64_ccmp_mode_to_code): New.
	(aarch64_print_operand): Output nzcv.
	config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
	New patterns.
	(cstore<mode>4): Handle ccmp_cc_register.
	* config/aarch64/predicates.md (const0_operand): New.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/aarch64-modes.def: Define ccmp CC mode.
	* config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
	extacted from aarch64_get_condition_code.
	(aarch64_get_condition_code): Call aarch64_get_condition_code_1.
	config/aarch64/predicates.md (ccmp_cc_register): New predicate.

014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
	aarch64_ccmp_operand): New constraints.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* Makefile.in: Add ccmp.o.
	* ccmp.c: New file.
	* ccmp.h: New file.
	* expr.c: include "ccmp.h"
	(expand_cond_expr_using_cmove): Handle VOIDmode.
	(expand_expr_real_1): Try to expand ccmp.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* cfgexpand.c (expand_gimple_cond): Check ccmp.
	* expmed.c (emit_cstore): Make it global.
	* expmed.h: #include "insn-codes.h"
	(emit_cstore): New prototype.
	* expr.c (expand_operands): Make it global.
	* expr.h (expand_operands): New prototype.
	* optabs.c (get_rtx_code): Make it global.
	* optabs.h (get_rtx_code): New prototype.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
	* doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
	* doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.

2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>

	PR middle-end/63790
	* tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
	Always combine comparisons or conversions from booleans.

2014-11-16  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::speculation_consistent_p): Constify.
	(ipa_polymorphic_call_context::meet_speculation_with): New function.
	(ipa_polymorphic_call_context::combine_with): Handle types in
	construction better.
	(ipa_polymorphic_call_context::equal_to): Do not bother about useless
	speculation.
	(ipa_polymorphic_call_context::meet_with): New function.
	* cgraph.h (class ipa_polymorphic_call_context): Add
	meet_width, meet_speculation_with; constify speculation_consistent_p.
	* ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine
	with incomming context.
	(propagate_context_accross_jump_function): Likewise; be more cureful.
	about set_contains_variable.
	(ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
	(find_more_scalar_values_for_callers_subset): Fix.
	(find_more_contexts_for_caller_subset): Perform meet operation.

2014-11-16  Jan Hubicka  <hubicka@ucw.cz>

	* passes.c (execute_one_pass): Do not apply all transforms prior
	every simple IPA pass.
	* cgraphunit.c: Do not include fibheap.h
	(expand_thunk): Use get_untransformed_body.
	(cgraph_node::expand): Likewise.
	* tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
	* cgraph.c (release_function_body): Do not push cfun when CFG
	is not there.
	(cgraph_node::get_untransformed_body): Break out from ...
	(cgraph_node::get_body): ... here; add code to apply all transforms.
	* cgraph.h (cgraph_node): Add get_untransformed_body.
	* ipa-icf.c (sem_function::init): Use get_untransformed_body.
	* cgraphclones.c (duplicate_thunk_for_node): Likewise.
	* tree-inline.c (expand_call_inline): LIkewise.
	* i386.c (ix86_reset_to_default_globals): Break out from ...
	(ix86_set_current_function): ... here;
	(ix86_reset_previous_fndecl): Use it.
	(ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.

2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
	* doc/tm.texi: Regenerate.

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

	* config/sh/sh.c: Do not include algorithm.
	(sh_emit_scc_to_t): Replace open-coded swap with std::swap
	to swap values.
	(sh_emit_compare_and_branch): Ditto.
	(sh_emit_compare_and_set): Ditto.
	* config/sh/sh.md (replacement peephole2): Ditto.
	(cstore4_media): Ditto.
	(*fmasf4): Ditto.

2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-remat.c (cand_transf_func): Process regno for
	rematerialization too.
	* lra.c (lra): Switch on rematerialization pass.

2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>

	* lra.c (lra): Switch off rematerialization pass.

2014-11-15  Marc Glisse  <marc.glisse@inria.fr>

	* config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
	_mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
	instead of builtins.
	* config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
	typedefs.
	(_mm_sqrt_sd): Fix comment.
	(_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
	_mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
	_mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
	_mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
	_mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
	_mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
	_mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
	_mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
	Use vector extensions instead of builtins.
	* config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
	_mm_mullo_epi32): Likewise.
	* config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
	New typedefs.
	(_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
	_mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
	Use vector extensions instead of builtins.
	* config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
	_mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
	_mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
	_mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
	_mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
	_mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
	_mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
	* config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
	New typedefs.
	(_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
	_mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
	_mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
	_mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
	_mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
	_mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
	_mm512_div_ps): Use vector extensions instead of builtins.
	* config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
	_mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
	* config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
	* config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
	Likewise.

2014-11-15  Jan Hubicka <hubicka@ucw.cz>

	* lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
	* lto-streamer.h (cl_optimization_stream_out,
	cl_optimization_stream_in): Declare.
	* optc-save-gen.awk: Generate cl_optimization LTO streaming
	and hashing routines.
	* opth-gen.awk: Add prototype of cl_optimization_hash.
	* tree-streamer-in.c (unpack_ts_optimization): Remove.
	(streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
	* tree-streamer-out.c (pack_ts_optimization): Remove.
	(streamer_pack_tree_bitfields): Use cl_optimization_stream_out.

2014-11-15  Mircea Namolaru  <mircea.namolaru@inria.fr>

	* common.opt (flag_loop_unroll_and_jam): New flag.
	* params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
	jam flag.
	(PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
	* graphite-poly.h (struct poly_bb:map_sepclass): New field
	* graphite-poly.c (new_poly_bb): Initialization for new field.
	(apply_poly_transforms): Support for unroll and jam flag.
	* graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
	separation class.
	(generate_luj_sepclass_opt): Build the separation class option.
	(generate_luj_options): Set unroll and jam options.
	(set_options): Support for unroll and jam options.
	(scop_to_isl_ast): Likewise
	* graphite-optimize-isl.c (getPrevectorMap_full): New function for
	computing the separating class map.
	(optimize_isl): Support for the separating class map.
	(apply_schedule_map_to_scop): Likewise.
	(getScheduleMap): Likewise.
	(getScheduleForBand): Likewise.
	(getScheduleForBandList): Likewise.
	* graphite.c (gate_graphite_transforms): Add unroll and jam flag.
	* toplev.c (process_options) Likewise.

2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-cfg.c (replace_loop_annotate_in_block): New function extracted
	from...
	(replace_loop_annotate): ...here.  Call it on the header and on the
	latch block, if any.  Restore proper behavior of final cleanup.

2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
	for max-completely-peeled-insns limit.

2014-11-14  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.h (ipa_known_type_data): Remove.
	(ipa_binfo_from_known_type_jfunc): Remove.

2014-11-14  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
	over to thunderx.
	* config/aarch64/aarch64.md: Include thunderx.md.
	(generic_sched): Set to no for thunderx.
	* config/aarch64/thunderx.md: New file.

2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/predicates.md (easy_fp_constant): Delete redunant
	tests for 0.0.

	* config/rs6000/vector.md (VEC_R): Move secondary reload support
	insns to rs6000.md from vector.md.
	(reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
	(reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
	(vec_reload_and_plus_<mptrsize>): Likewise.

	* config/rs6000/rs6000.md (Fa): New mode attribute to give
	constraint for the Altivec registers for a type.
	(RELOAD): New mode iterator for all of the types that have
	secondary reload address support to load up a base register.
	(extendsfdf2_fpr): Use correct constraint.
	(copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
	instruction.
	(floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
	Generate the non-VSX instruction if all registers were FPRs.  Do
	not use the patterns in vsx.md for scalar operations.
	(floatsi<mode>2_lfiwax_mem): Likewise.
	(floatunssi<mode>2_lfiwzx): Likewise.
	(floatunssi<mode>2_lfiwzx_mem): Likewise.
	(fix_trunc<mode>di2_fctidz): Likewise.
	(fixuns_trunc<mode>di2_fctiduz): Likewise.
	(fctiwz_<mode>): Likewise.
	(fctiwuz_<mode>): Likewise.
	(friz): Likewise.
	(floatdidf2_fpr): Likewise.
	(floatdidf2_mem): Likewise.
	(floatunsdidf2): Likewise.
	(floatunsdidf2_fcfidu): Likewise.
	(floatunsdidf2_mem): Likewise.
	(floatdisf2_fcfids): Likewise.
	(floatdisf2_mem): Likewise.
	(floatdisf2_internal1): Add explicit test for not FCFIDS to make
	it more obvious that the code is for pre-ISA 2.06 machines.
	(floatdisf2_internal2): Likewise.
	(floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
	Generate the non-VSX instruction if all registers were FPRs.  Do
	not use the patterns in vsx.md for scalar operations.
	(floatunsdisf2_mem): Likewise.
	(reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
	handlers here from vector.md, and expand the types we generate
	reload handlers for.
	(reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
	(vec_reload_and_plus_<mptrsize>): Likewise.

	* config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
	vector forms of the instructions.  Move VSX scalar forms to
	rs6000.md, and add support for -mupper-regs-sf.
	(vsx_floatuns<VSi><mode>2): Likewise.
	(vsx_fix_trunc<mode><VSi>2): Likewise.
	(vsx_fixuns_trunc<mode><VSi>2): Likewise.
	(vsx_float_fix_<mode>2): Delete DF version, rename to
	vsx_float_fix_v2df2.
	(vsx_float_fix_v2df2): Likewise.

2014-11-14  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
	(ipa_pass_through_data): Removed field type_preserved.
	(ipa_ancestor_jf_data): removed fields type and type_preserved.
	(ipa_jump_func): Removed field known_type.
	(ipa_get_jf_known_type_offset): Removed.
	(ipa_get_jf_known_type_base_type): Likewise.
	(ipa_get_jf_known_type_component_type): Likewise.
	(ipa_get_jf_ancestor_type): Likewise.
	* ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
	(ipa_get_jf_pass_through_result): Likewise.
	(ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
	(values_equal_for_ipcp_p): Removed BINFO handling.
	(ipa_get_indirect_edge_target_1): Updated comment.
	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
	of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
	(ipa_set_jf_known_type): Removed.
	(ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
	all callers.
	(ipa_set_jf_arith_pass_through): Likewise.
	(ipa_set_ancestor_jf): Likewise.
	(ipa_binfo_from_known_type_jfunc): Removed.
	(prop_type_change_info): Removed fields known_current_type and
	multiple_types_encountered.
	(extr_type_from_vtbl_ptr_store): Removed.
	(check_stmt_for_type_change): Do not attempt to identify changed type.
	(detect_type_change_from_memory_writes): Do not set the removed fields,
	always set jfunc to unknown.
	(compute_complex_assign_jump_func): Do not detect dynamic type change.
	(compute_complex_ancestor_jump_func): Likewise.
	(compute_known_type_jump_func): Removed.
	(ipa_compute_jump_functions_for_edge): Do not detect dynamic type
	change.  Do not comute known type jump functions.
	(combine_known_type_and_ancestor_jfs): Removed.
	(update_jump_functions_after_inlining): Removed handling of
	IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
	(ipa_write_jump_function): Do not stream removed fields or known type
	jump functions.
	(ipa_read_jump_function): Likewise.

2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-int.h (lra_create_live_ranges): Add parameter.
	* lra-lives.c (temp_bitmap): Move higher.
	(initiate_live_solver): Move temp_bitmap initialization into
	lra_live_ranges_init.
	(finish_live_solver): Move temp_bitmap clearing into
	live_ranges_finish.
	(process_bb_lives): Add parameter.  Use it to control live info
	update and dead insn elimination.  Pass it to mark_regno_live and
	mark_regno_dead.
	(lra_create_live_ranges): Add parameter.  Pass it to
	process_bb_lives.
	(lra_live_ranges_init, lra_live_ranges_finish): See changes in
	initiate_live_solver and finish_live_solver.
	* lra-remat.c (do_remat): Process insn non-operand hard regs too.
	Use temp_bitmap to update avail_cands.
	* lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
	check with lra_need_for_spill_p after live range pass.  Switch on
	rematerialization pass.

2014-11-14  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
	agg_preserved flag instead.
	(ipa_get_jf_ancestor_type_preserved): Likewise.
	(ipa_node_params): Rename known_vals to known_csts, update all users.
	New field known_contexts.
	(ipa_get_indirect_edge_target): Update prototype.
	(ipcp_poly_ctx_values_pool): Declare.
	(ipa_context_from_jfunc): Likewise.
	* ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
	* cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
	parameter newline of method dump.
	* ipa-cp.c (ctxlat): New field.
	(ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
	(ipcp_poly_ctx_values_pool):New variable.
	(ipa_get_poly_ctx_lat): New function.
	(print_ipcp_constant_value): New overloaded function for contexts.
	(print_all_lattices): Also print contexts.
	(ipa_topo_info): New field contexts;
	(set_all_contains_variable): Also set the flag in the context lattice.
	(initialize_node_lattices): Likewise for flag bottom.
	(ipa_get_jf_ancestor_result): Removed BINFO handling.
	(ipa_value_from_jfunc): Likewise.
	(ipa_context_from_jfunc): New function.
	(values_equal_for_ipcp_p): New overloaded function for contexts.
	(allocate_and_init_ipcp_value): Construct the value.
	(allocate_and_init_ipcp_value): New overloaded function for contexts.
	(propagate_scalar_accross_jump_function): Removed handling of
	KNOWN_TYPE jump functions.
	(propagate_context_accross_jump_function): New function.
	(propagate_constants_accross_call): Also propagate contexts.
	(ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
	(ipa_get_indirect_edge_target): Likewise.
	(devirtualization_time_bonus): Likewise.
	(gather_context_independent_values): Create and populate known_contexts
	vector rather than known_binfos.
	(perform_estimation_of_a_value): Work on contexts rather than BINFOs.
	(estimate_local_effects): Likewise.
	(add_all_node_vals_to_toposort): Also add contexts to teir topological
	sort.
	(ipcp_propagate_stage): Also propagate effects of contexts.
	(ipcp_discover_new_direct_edges): Receive and pass known_contexts to
	ipa_get_indirect_edge_target_1.
	(cgraph_edge_brings_value_p): New overloaded function for contexts.
	(create_specialized_node): Work on contexts rather than BINFOs.
	(find_more_contexts_for_caller_subset): New function.
	(known_contexts_useful_p): New function.
	(copy_useful_known_contexts): Likewise.
	(modify_known_vectors_with_val): Likewise.
	(ipcp_val_in_agg_replacements_p): Renamed to
	ipcp_val_agg_replacement_ok_p, return true for all offset indicating
	non-aggregate.
	(ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
	(decide_about_value): Work on contexts rather than BINFOs.
	(decide_whether_version_node): Likewise.
	(ipcp_driver): Initialize the new alloc pool.
	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
	printing of edge contexts.
	(ipa_set_ancestor_jf): Replace assert with conditional setting of
	type_preserved to false.
	(update_jump_functions_after_inlining): Use access function instead of
	reading agg_preserved directly.  Store combined context in the ancestor
	case.
	(try_make_edge_direct_virtual_call): Work on contexts rather than
	BINFOs.
	(update_indirect_edges_after_inlining): Get context from
	ipa_context_from_jfunc.
	(ipa_free_node_params_substructures): Free also known_contexts.
	(ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
	(ipa_free_all_structures_after_iinln): Likewise.
	* ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
	contexts rather than BINFOs.
	(estimate_edge_devirt_benefit): Likewise.
	(estimate_edge_size_and_time): Likewise.
	(estimate_calls_size_and_time): Likewise.
	(estimate_node_size_and_time): Likewise.
	(estimate_ipcp_clone_size_and_time): Likewise.
	(do_estimate_edge_time): Likewise.
	(do_estimate_edge_size): Likewise.
	(do_estimate_edge_hints): Likewise.
	* ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
	parameter newline, ouput newline only when it is set.
	(ipa_polymorphic_call_context::equal_to): New method.

2014-11-14  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_value_source): Converted to a template class.  All
	users converted to the same specialization as the using class/function
	or specialization on tree.
	(ipcp_value): Likewise.
	(ipcp_lattice): Likewise.
	(ipcp_agg_lattice): Now derived from tree specialization of
	ipcp_lattice.
	(values_topo): Moved to new class value_topo_info.
	(ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
	Updated all callers.
	(print_lattice): Turned into ipcp_lattice::print.  Updated all
	callers.
	(value_topo_info): New class template.
	(ipa_topo_info): New field constants.  New constructor.
	(build_toporder_info): Do not clear stack_top, only checkign assert
	it.
	(set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
	Updated all callers.
	(set_lattice_contains_variable): Turned into
	ipcp_lattice::set_contains_variable.  Updated all callers.
	(add_value_source): Turned into ipcp_value::add_source.  Updated all
	callers.
	(allocate_and_init_ipcp_value): New function.
	(add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
	parameter got default a value.  Updated all callers.
	(add_scalar_value_to_lattice): Removed, users converted to using
	ipcp_lattice::add_value with default value of the last parameter.
	(add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
	all callers.
	(propagate_effects): Made method of value_topo_info.
	(cgraph_edge_brings_value_p): Now a template function.
	(get_info_about_necessary_edges): Likewise.
	(gather_edges_for_value): Likewise.
	(perhaps_add_new_callers): Likewise.
	(decide_about_value): Likewise.
	* ipa-prop.h (ipcp_lattice): Remove fowrward declaration.

2014-11-14  Jakub Jelinek  <jakub@redhat.com>

	* doc/install.texi (--with-diagnostics-color=): Document.

	* tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
	IFN_GOMP_SIMD_LANE without lhs as useless.

	* ipa-pure-const.c (struct funct_state_d): Add can_free field.
	(varying_state): Add true for can_free.
	(check_call): For builtin or internal !nonfreeing_call_p set
	local->can_free.
	(check_stmt): For asm volatile and asm with "memory" set
	local->can_free.
	(analyze_function): Clear local->can_free initially, continue
	calling check_stmt until all flags are computed, dump can_free
	flag.
	(pure_const_write_summary): Write can_free flag.
	(pure_const_read_summary): Read it back.
	(propagate_pure_const): Propagate also can_free flag, set
	w->nonfreeing_fn if it is false after propagation.
	* cgraph.h (cgraph_node): Add nonfreeing_fn member.
	* gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
	(nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
	Also return true for IFN_ABNORMAL_DISPATCHER.
	* cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
	* lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
	(input_overwrite_node): Read it back.

2014-11-14  Jakub Jelinek  <jakub@redhat.com>
	    Marek Polacek  <polacek@redhat.com>

	* sanopt.c: Include tree-ssa-operands.h.
	(struct sanopt_info): Add has_freeing_call_p,
	has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
	imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
	being_visited_p fields.
	(struct sanopt_ctx): Add asan_check_map field.
	(imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
	maybe_optimize_asan_check_ifn): New functions.
	(sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
	internal calls.
	(pass_sanopt::execute): Call sanopt_optimize even for
	-fsanitize=address.
	* gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
	internal calls.

2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
	'if (extract_scalar_result)' to the only place that it is true.

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

	* config.gcc (default_gnu_indirect_function): Set to yes
	for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
	Android nor uclibc.

2014-11-14  Felix Yang  <felix.yang@huawei.com>
	    Jiji Jiang  <jiangjiji@huawei.com>

	* config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
	VALL mode iterator instead of VALLDI.

2014-11-14  Jan Hubicka  <hubicka@ucw.cz>

	* optc-save-gen.awk: Output cl_target_option_eq,
	cl_target_option_hash, cl_target_option_stream_out,
	cl_target_option_stream_in functions.
	* opth-gen.awk: Output prototypes for
	cl_target_option_eq and cl_target_option_hash.
	* lto-streamer.h (cl_target_option_stream_out,
	cl_target_option_stream_in): Declare.
	* tree.c (cl_option_hash_hash): Use cl_target_option_hash.
	(cl_option_hash_eq): Use cl_target_option_eq.
	* tree-streamer-in.c (unpack_value_fields): Stream in
	TREE_TARGET_OPTION.
	* lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
	DECL_FUNCTION_SPECIFIC_TARGET.
	(hash_tree): Hash TREE_TARGET_OPTION; visit
	DECL_FUNCTION_SPECIFIC_TARGET.
	* tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
	TS_TARGET_OPTION.
	(streamer_write_tree_body): Output TS_TARGET_OPTION.

2014-11-14  Richard Biener  <rguenther@suse.de>

	* gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
	valueization hook defaulted to no_follow_ssa_edges.
	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
	2nd valueization hook to gimple_simplify.
	* tree-ssa-ccp.c (valueize_op_1): New function to be
	used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
	(ccp_fold): Adjust.
	* tree-vrp.c (vrp_valueize_1): New function to be
	used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
	(vrp_visit_assignment_or_call): Adjust.

2014-11-14  Marek Polacek  <polacek@redhat.com>

	* fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
	that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
	folding with TYPE_OVERFLOW_SANITIZED.

2014-11-14  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/63839
	* asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
	ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
	* builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
	Define.
	* builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
	instrument BUILT_IN_UNREACHABLE here.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
	const.
	* sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
	* tree-ssa-ccp.c (optimize_unreachable): Bail out if
	SANITIZE_UNREACHABLE.
	* ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
	* ubsan.h (ubsan_instrument_unreachable): Adjust declaration.

2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>

	* config/rs6000/vector.md (vec_shl_<mode>): Remove.
	(vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.

2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>

	* optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
	BYTES_BIG_ENDIAN.
	* tree-vect-loop.c (calc_vec_perm_mask_for_shift,
	vect_create_epilog_for_reduction): Likewise.
	* doc/md.texi (vec_shr_m): Clarify direction of shifting.

2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/63724
	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
	numerical immediate handling to...
	(aarch64_internal_mov_immediate): ...this. New.
	(aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
	(aarch64_mov_operand_p): Relax predicate.
	* config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
	(*movsi_aarch64): Turn into define_insn_and_split and new alternative
	for 'n'.
	(*movdi_aarch64): Likewise.

2014-11-14  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement more binary patterns exercised by
	fold_stmt.
	* fold-const.c (sing_bit_p): Export.
	(exact_inverse): Likewise.
	(fold_binary_loc): Remove patterns here.
	(tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
	* fold-const.h (sing_bit_p): Declare.
	(exact_inverse): Likewise.

2014-11-14  Marek Polacek  <polacek@redhat.com>

	* tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.

2014-11-14  Richard Biener  <rguenther@suse.de>

	* genmatch.c (add_operator): Allow CONSTRUCTOR.
	(dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
	(parser::parse_op): Allow to iterate over predicates.

2014-11-14  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac (--with-diagnostics-color): New configure
	option, default to --with-diagnostics-color=auto.
	* toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
	to determine -fdiagnostics-color= option default.
	* doc/invoke.texi (-fdiagnostics-color=): Document new
	default.
	* configure: Regenerated.
	* config.in: Regenerated.

2014-11-13  Teresa Johnson  <tejohnson@google.com>

	PR tree-optimization/63841
	* tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.

2014-11-14  Bin Cheng  <bin.cheng@arm.com>

	* timevar.def (TV_SCHED_FUSION): New time var.
	* passes.def (pass_sched_fusion): New pass.
	* config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
	(extract_base_offset_in_addr, fusion_load_store): New.
	(arm_sched_fusion_priority): New.
	(arm_option_override): Disable scheduling fusion by default
	on non-armv7 processors or ldrd/strd isn't preferred.
	* sched-int.h (struct _haifa_insn_data): New field.
	(INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
	* sched-rgn.c (rest_of_handle_sched_fusion): New.
	(pass_data_sched_fusion, pass_sched_fusion): New.
	(make_pass_sched_fusion): New.
	* haifa-sched.c (sched_fusion): New.
	(insn_cost): Handle sched_fusion.
	(priority): Handle sched_fusion by calling target hook.
	(enum rfs_decision): New enum value.
	(rfs_str): New element for RFS_FUSION.
	(rank_for_schedule): Support sched_fusion.
	(schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
	(schedule_block, fix_tick_ready): Handle sched_fusion.
	* common.opt (flag_schedule_fusion): New.
	* tree-pass.h (make_pass_sched_fusion): New.
	* target.def (fusion_priority): New.
	* doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
	* doc/tm.texi: Regenerated.
	* doc/invoke.texi (-fschedule-fusion): New.

2014-11-13  Rong Xu  <xur@google.com>

	PR debug/63581
	* cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
	footer, instead of unconditionally overwritten.

2014-11-14  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (clear_outer_type): Make public.  Fix comment.
	* ipa-devirt.c (possible_polymorphic_call_targets): Use
	clear_outer_type when resetting the context.

2014-11-13  Dominique Dhumieres  <dominiq@lps.ens.fr>

	PR bootstrap/63853
	* gcc.c (handle_foffload_option): Replace strchrnul with strchr.
	* lto-wrapper.c (parse_env_var, append_offload_options): Likewise.

2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>

	* fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
	* tree-inline.c (estimate_operator_cost): Likewise.
	* tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
	Likewise.

	* tree-vect-generic.c (expand_vector_operations_1): Remove assertion
	against VEC_RSHIFT_EXPR.

	* optabs.h (expand_vec_shift_expr): Remove.
	* optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
	(expand_vec_shift_expr): Remove.
	* tree.def (VEC_RSHIFT_EXPR): Remove

2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>

	* optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
	(shift_amt_for_vec_perm_mask): New.
	(expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
	and mask appropriate.

	* tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
	(have_whole_vector_shift): New.
	(vect_model_reduction_cost): Call have_whole_vector_shift instead of
	looking for vec_shr_optab.
	(vect_create_epilog_for_reduction): Likewise; also rename local variable
	have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
	instead of VEC_RSHIFT_EXPRs.

	* tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.

2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>

	* tree-vectorizer.h (vect_gen_perm_mask): Remove.
	(vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.

	* tree_vec_data_refs.c (vect_permute_load_chain,
	vec_permute_store_chain, vec_shift_permute_load_chain): Replace
	vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.

	* tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
	Likewise.
	(vect_gen_perm_mask_checked): New.
	(vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
	(vect_gen_perm_mask_any): ...this.
	(perm_mask_for_reverse): Call can_vec_perm_p and
	vect_gen_perm_mask_checked.

2014-11-13  Felix Yang  <felix.yang@huawei.com>

	* ipa-utils.h: Fix typo in comments.
	* ipa-profile.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.

2014-11-13  Teresa Johnson  <tejohnson@google.com>

	PR tree-optimization/63841
	* tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.

2014-11-13  Teresa Johnson  <tejohnson@google.com>

	PR tree-optimization/63841
	* tree.c (initializer_zerop): A clobber does not zero initialize.

2014-11-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* optabs.c (prepare_operand): Gracefully fail if the mode of X
	does not match the operand mode expected by the insn pattern.

2014-11-13  Richard Biener  <rguenther@suse.de>

	* match.pd: Add tcc_comparison, inverted_tcc_comparison
	and inverted_tcc_comparison_with_nans operator lists.
	Use tcc_comparison in the truth_valued_p predicate definition.
	Restrict logical_inverted_value with bit_xor to integral types.
	Build a boolean true for simplifying x |^ !x because of
	vector types.  Implement patterns from forward_propagate_comparison
	* tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
	(get_prop_dest_stmt): Likewise.
	(pass_forwprop::execute): Do not call it.
	* fold-const.c (fold_unary_loc): Remove the pattern here.

2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>

	* config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
	tmake_file.
	(i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
	accelerator compiler.
	* config/i386/intelmic-mkoffload.c: New file.
	* config/i386/t-intelmic: Ditto.

2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>

	* common.opt (foffload, foffload-abi): New options.
	* config/i386/i386.c (ix86_offload_options): New static function.
	(TARGET_OFFLOAD_OPTIONS): Define.
	* coretypes.h (enum offload_abi): New enum.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
	* gcc.c (offload_targets): New static variable.
	(handle_foffload_option): New static function.
	(driver_handle_option): Handle OPT_foffload_.
	(driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
	according to offload_targets.
	* hooks.c (hook_charptr_void_null): New hook.
	* hooks.h (hook_charptr_void_null): Declare.
	* lto-opts.c: Include lto-section-names.h.
	(lto_write_options): Append options from target offload_options hook and
	store them to offload_lto section.  Do not store target-specific,
	driver and diagnostic options in offload_lto section.
	* lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
	OPT_foffload_abi_.
	(append_compiler_options, append_linker_options)
	(append_offload_options): New static functions.
	(compile_offload_image): Add new arguments with options.
	Call append_compiler_options and append_offload_options.
	(compile_images_for_offload_targets): Add new arguments with options.
	(find_and_merge_options): New static function.
	(run_gcc): Outline options handling into the new functions:
	find_and_merge_options, append_compiler_options, append_linker_options.
	* opts.c (common_handle_option): Don't handle OPT_foffload_.
	Forbid OPT_foffload_abi_ for non-offload compiler.
	* target.def (offload_options): New target hook.

2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* gcc.c (spec_host_machine, accel_dir_suffix): New variables.
	(process_command): Tweak path construction for the possibility
	of being configured as an offload compiler.
	(driver::maybe_putenv_OFFLOAD_TARGETS): New function.
	(driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
	(driver::set_up_specs): Tweak path construction for the possibility of
	being configured as an offload compiler.
	* lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
	(offload_names, offloadbegin, offloadend): New static variables.
	(free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
	(compile_images_for_offload_targets, copy_file, find_offloadbeginend):
	New static functions.
	(run_gcc): Determine whether offload sections are present.  If so, run
	compile_images_for_offload_targets and return the names of new generated
	objects to linker.  If there are offload sections, but no LTO sections,
	then return the copies of input objects without link-time recompilation.

2014-11-13  Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_node::gen_kids): Fix placement of break statement.

2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* Makefile.in (GTFILES): Add omp-low.h to list of GC files.
	* cgraphunit.c: Include omp-low.h.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
	* gengtype.c (open_base_files): Add omp-low.h to ifiles.
	* lto-cgraph.c (output_offload_tables): New function.
	(input_offload_tables): Likewise.
	* lto-section-in.c (lto_section_name): Add "offload_table".
	* lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
	(OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
	* lto-streamer-out.c (lto_output): Call output_offload_tables.
	* lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
	(output_offload_tables, input_offload_tables): Declare.
	* omp-low.c: Include common/common-target.h and lto-section-names.h.
	(offload_funcs, offload_vars): New global <tree, va_gc> vectors.
	(expand_omp_target): Add child_fn into offload_funcs vector.
	(add_decls_addresses_to_decl_constructor): New function.
	(omp_finish_file): Likewise.
	* omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
	* target.def (record_offload_symbol): New DEFHOOK.
	* toplev.c: Include omp-low.h.
	(compile_file): Call omp_finish_file.
	* varpool.c: Include omp-low.h.
	(varpool_node::get_create): Add decl into offload_vars vector.

2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Bernd Schmidt  <bernds@codesourcery.com>

	* cgraph.c: Include context.h.
	(cgraph_node::create): Set node->offloadable and g->have_offload if
	decl have "omp declare target" attribute.
	* cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
	* cgraphunit.c: Include lto-section-names.h.
	(ipa_passes): Call ipa_write_summaries if there is something to write to
	OFFLOAD_SECTION_NAME_PREFIX sections.
	(symbol_table::compile): Set flag_generate_lto if there is something to
	offload.
	Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
	* context.c (gcc::context::context): Initialize have_offload with false.
	* context.h (class context): Add have_offload flag.
	* ipa-inline-analysis.c (inline_generate_summary): Do not exit under
	flag_generate_lto.
	(inline_free_summary): Always remove hooks.
	* lto-cgraph.c (referenced_from_other_partition_p): Ignore references
	from non-offloadable nodes while streaming a node into offload section.
	(reachable_from_other_partition_p): Likewise.
	(select_what_to_stream): New function.
	(compute_ltrans_boundary): Do not call
	lto_set_symtab_encoder_in_partition if the node should not be streamed.
	* lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
	(section_name_prefix): Declare.
	* lto-streamer.c (section_name_prefix): New variable.
	(lto_get_section_name): Use section_name_prefix instead of
	LTO_SECTION_NAME_PREFIX.
	* lto-streamer.h (select_what_to_stream): Declare.
	* omp-low.c: Include context.h.
	(is_targetreg_ctx): New function.
	(scan_sharing_clauses): Use offloadable flag, instead of an attribute.
	(create_omp_child_function, check_omp_nesting_restrictions): Use new
	is_targetreg_ctx function.  Replace usage of "omp declare target"
	attribute with a cgraph_node flag offloadable.
	(expand_omp_target): Set mark_force_output for offloadable functions.
	(lower_omp_critical): Set offloadable flag for omp critical symbol.
	* passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
	select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
	if the node should not be streamed out.
	* tree-pass.h (ipa_write_summaries): New bool argument.
	* varpool.c: Include context.h.
	(varpool_node::get_create): Set node->offloadable and g->have_offload if
	decl have "omp declare target" attribute.

2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>

	* Makefile.in (real_target_noncanonical, accel_dir_suffix)
	(enable_as_accelerator): New variables substituted by configure.
	(libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
	being configured as an offload compiler.
	(DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
	ACCEL_DIR_SUFFIX.
	(install-cpp, install-common, install_driver, install-gcc-ar): Do not
	install for the offload compiler.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac (real_target_noncanonical, accel_dir_suffix)
	(enable_as_accelerator): Compute new variables.
	(ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
	(OFFLOAD_TARGETS): List of target names suitable for offloading.
	(ENABLE_OFFLOADING): Define if list of offload targets is not empty.
	* doc/install.texi (Options specification): Document
	--enable-as-accelerator-for and --enable-offload-targets.

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

	PR tree-optimization/63828
	* ipa-polymorphic-call.c (possible_placement_new): Check
	POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.

2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/tm.texi.in (SELECT_CC_MODE): Update example.
	(REVERSIBLE_CC_MODE): Fix example.
	(REVERSE_CONDITION): Fix typo.
	* doc/tm.texi: Regenerate.

2014-11-13  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (pass_data_expand_omp): Set properties_provided to
	PROP_gimple_eomp.
	(pass_expand_omp::gate): Remove function.  Move gate expression to ...
	(pass_expand_omp::execute): ... here, as new variable gate.  Add early
	exit if gate is false.
	(pass_data pass_data_expand_omp_ssa): New pass_data.
	(class pass_expand_omp_ssa): New pass.
	(make_pass_expand_omp_ssa): New function.
	* passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
	instead of NEXT_PASS.
	(pass_expand_omp_ssa): Add after pass_parallelize_loops.
	* tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
	(pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
	and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
	cfun->omp_expand_needed.
	* tree-pass.h: Add define PROP_gimple_eomp.
	(make_pass_expand_omp_ssa): Declare.

2014-11-13  Marek Polacek  <polacek@redhat.com>

	* tree.h (TYPE_OVERFLOW_SANITIZED): Define.
	* fold-const.c (fold_binary_loc): Use it.
	* match.pd: Likewise.

2014-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>

	* lra-lives.c (struct bb_data): Rename to ...
	(struct bb_data_pseudos): ... this.
	(initiate_live_solver): Update struct name.

2014-11-13  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement conditional expression patterns.
	* tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
	them here.
	(combine_cond_exprs): Remove.
	(pass_forwprop::execute): Do not call combine_cond_exprs.
	* fold-const.c (fold_ternary_loc): Remove patterns here.
	(pedantic_omit_one_operand_loc): Remove.

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

	PR middle-end/61559
	* match.pd: Implement bswap patterns for transforms checked by
	gcc.dg/builtin-bswap-8.c.

2014-11-13  Vladimir Makarov  <vmakarov@redhat.com>

	* lra.c (lra): Switch off rematerialization pass.

2014-11-12  Vladimir Makarov  <vmakarov@redhat.com>

	* common.opt (flra-remat): New.
	* opts.c (default_options_table): Add entry for flra_remat.
	* timevar_def (TV_LRA_REMAT): New.
	* doc/invoke.texi (-flra-remat): Add description of the new
	option.
	* doc/passes.texi (-flra-remat): Remove lra-equivs.c and
	lra-saves.c.  Add lra-remat.c.
	* Makefile.in (OBJS): Add lra-remat.o.
	* lra-remat.c: New file.
	* lra.c: Add info about the rematerialization pass in the top
	comment.
	(collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
	Process unallocatable regs too.
	(lra_constraint_new_insn_uid_start): Remove.
	(lra): Add code for calling rematerialization sub-pass.
	* lra-int.h (lra_constraint_new_insn_uid_start): Remove.
	(lra_constrain_insn, lra_remat): New prototypes.
	(lra_eliminate_regs_1): Add parameter.
	* lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
	Process unallocatable hard regs too.
	(process_bb_lives): Ditto.
	* lra-spills.c (remove_pseudos): Add argument to
	lra_eliminate_regs_1 call.
	* lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
	for sp offset calculation.
	(lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
	(eliminate_regs_in_insn): Add parameter.  Use it for sp offset
	calculation.
	(process_insn_for_elimination): Add argument for
	eliminate_regs_in_insn call.
	* lra-constraints.c (get_equiv_with_elimination):  Add argument
	for lra_eliminate_regs_1 call.
	(process_addr_reg): Add parameter.  Use it.
	(process_address_1): Ditto.  Add argument for process_addr_reg
	call.
	(process_address): Ditto.
	(curr_insn_transform): Add parameter.  Use it.  Add argument for
	process_address calls.
	(lra_constrain_insn): New function.
	(lra_constraints): Add argument for curr_insn_transform call.

2014-11-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* opts-global.c (postpone_unknown_option_warning): Fix spelling.
	(print_ignored_options): Fix quoting.
	* opts.c (common_handle_option): Likewise.
	(set_debug_level): Likewise.
	* toplev.c (process_options): Likewise.

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

	PR ipa/63838
	* ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
	chain instead of node->indirect_calls.  Put !can_throw into
	conditions of all the loops.

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

	* config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
	set pic_offset_table_rtx.

2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>

	* common/config/mips/mips-common.c (mips_handle_option): Ensure
	that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
	* config.gcc (--with-fp-32): New option.
	(--with-odd-spreg-32): Likewise.
	* config.in (HAVE_AS_DOT_MODULE): New config define.
	* config/mips/mips-protos.h
	(mips_secondary_memory_needed): New prototype.
	(mips_hard_regno_caller_save_mode): Likewise.
	* config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
	(mips_get_arg_info): Assert that V2SFmode is only handled specially
	with TARGET_PAIRED_SINGLE_FLOAT.
	(mips_return_mode_in_fpr_p): Likewise.
	(mips16_call_stub_mode_suffix): Likewise.
	(mips_get_reg_raw_mode): New static function.
	(mips_return_fpr_pair): O32 return values span two registers.
	(mips16_build_call_stub): Likewise.
	(mips_function_value_regno_p): Support both FP return registers.
	(mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
	specific cases for TARGET_FPXX to move via memory.
	(mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
	than UNITS_PER_FPREG 'span' one register.
	(mips_dwarf_frame_reg_mode): New static function.
	(mips_file_start): Switch to using .module instead of .gnu_attribute.
	No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
	Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
	(mips_save_reg, mips_restore_reg): Always represent DFmode frame
	slots with two CFI directives even for O32 FP64.
	(mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
	saving/restoring callee-saved registers.
	(mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
	(mips_secondary_memory_needed): New function.
	(mips_option_override): ABI check for TARGET_FLOATXX.  Disable
	odd-numbered single-precision registers	when using TARGET_FLOATXX.
	Implement -modd-spreg and defaults.
	(mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
	callee-saved behaviour.
	(mips_hard_regno_caller_save_mode): Implement.
	(TARGET_GET_RAW_RESULT_MODE): Define target hook.
	(TARGET_GET_RAW_ARG_MODE): Define target hook.
	(TARGET_DWARF_FRAME_REG_MODE): Define target hook.
	* config/mips/mips.h (TARGET_FLOAT32): New macro.
	(TARGET_O32_FP64A_ABI): Likewise.
	(TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
	_MIPS_SPFPSET builtin define.
	(MIPS_FPXX_OPTION_SPEC): New macro.
	(OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
	--with-odd-spreg-32=* to -m[no-]odd-spreg.
	(ISA_HAS_ODD_SPREG): New macro.
	(ISA_HAS_MXHC1): True for anything other than -mfp32.
	(ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
	(MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
	(HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
	(HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
	(SECONDARY_MEMORY_NEEDED): Likewise.
	(FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
	* config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
	FP64A ABI extensions.
	(move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
	TARGET_FLOAT64.
	* config/mips/mips.opt (mfpxx): New target option.
	(modd-spreg): Likewise.
	* config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
	* config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
	fp64 sysroot.
	* config/mips/t-mti-elf: Remove fp64 multilib.
	* config/mips/t-mti-linux: Likewise.
	* configure.ac: Detect .module support.
	* configure: Regenerate.
	* doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
	* doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
	options.

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

	PR target/63815
	* config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
	from ...
	(ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
	(x86_output_mi_thunk): Set PIC register to %r11.  Call
	ix86_init_large_pic_reg to initialize PIC register.

2014-11-12  Kai Tietz  <ktietz@redhat.com>

	* sdbout.c (sdbout_symbol): Eliminate register only
	if decl isn't a global variable.

2014-11-12  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.

	* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
	qualifier_lane_index.
	(aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
	(aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
	(aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.

	(aarch64_types_getlane_qualifiers): Rename to...
	(aarch64_types_binop_imm_qualifiers): ...this.
	(TYPES_SHIFTIMM): Follow renaming.
	(TYPES_GETLANE): Rename to...
	(TYPE_GETREG): ...this.

	(aarch64_types_setlane_qualifiers): Rename to...
	(aarch64_type_ternop_imm_qualifiers): ...this.
	(TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
	(TYPES_SETLANE): Follow renaming above, and rename self to...
	(TYPE_SETREG): ...this.

	(enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
	(aarch64_simd_expand_args): Add range check and endianness-flip.

	(aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.

	* config/aarch64/aarch64-simd.md
	(aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
	(aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
	(aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.

	(aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
	(aarch64_sq<r>dmulh_lane<mode>): ...this.

	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.

	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.

	(aarch64_sqdmull_lane<mode>_internal *2): Rename to...
	(aarch64_sqdmull_lane<mode>): ...this.

	(aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
	(aarch64_sqdmull_laneq<mode>): ...this.

	(aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
	(aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
	aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
	aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.

	(aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
	aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
	aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
	bounds check and lane flip.

	* config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
	get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
	set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.

	(sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
	sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
	renaming of TERNOP_LANE to QUADOP_LANE.

	(sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
	sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
	qualifiers to TERNOP_LANE.

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

	* Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
	* configure.ac: Ditto.
	* graphite-interchange.c: Remove HAVE_CLOOG block.
	* config.in: Regenerate.
	* configure: Regenerate.

2014-11-12  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
	caller-save.
	(EPILOGUE_USES): Guard the check by epilogue_completed.
	* config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
	LR.
	(aarch64_can_eliminate): Check LR_REGNUM liveness.

2014-11-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.

2014-11-12  Marek Polacek  <polacek@redhat.com>

	* fold-const.c (fold_binary_loc): Don't fold if the result
	is undefined.
	* match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
	-(-A) -> A): Likewise.

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

	Merge from match-and-simplify branch
	2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* genmatch.c (user_id): Add new member is_oper_list.
	(user_id::user_id): Add new default argument.
	(parser::parse_operator_list): New function.
	(parser::parse_for): Allow operator-list.
	(parser::parse_pattern): Call parser::parse_operator_list.
	(parser::parse_operation): Reject operator-list.
	* match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.

	2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.

	2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* genmatch.c (parser::parse_op): Check if predicate is used in
	result operand.

	2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* genmatch.c (parser::parse_for): Make sure to have a valid
	token to report errors at.

	2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* genmatch.c (parser): Add new member parsing_match_operand.
	(parser::parse_operation): Check for conditional convert in result
	operand.
	(parser::parse_expr): Check for commutative operator in result operand.
	Check for :type in match operand.
	(parser::parse_simplify): Set/unset parsing_match_operand.
	(parser::parser): Initialize parsing_match_operand.

	2014-10-28  Richard Biener  <rguenther@suse.de>

	* genmatch.c (parser::parse_for): Properly check for already
	defined operators.

	2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* genmatch.c (error_cb): Adjust for printing warnings.
	(warning_at): New function.
	(user_id): Add new member used.
	(get_operator): Mark user_id as used.
	(parse_for): Warn for unused operators.

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

	* match.pd: Implement simple complex operations cancelling.
	* fold-const.c (fold_unary_loc): Remove them here.

2014-11-12  Joseph Myers  <joseph@codesourcery.com>

	* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
	Define __NO_MATH_ERRNO__ if -fno-math-errno.
	* doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.

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

	* genmatch.c (::gen_transform): Add capture_info and
	expand_compares arguments.
	(struct expr): Add is_generic flag.
	(lower_cond): New functions lowering [VEC_]COND_EXPR
	conditions to a GENERIC and a GIMPLE variant.
	(lower): Call lower_cond.
	(cmp_operand): Also compare the is_generic flag.
	(capture_info::cinfo): Add cond_expr_cond_p flag.
	(capture_info::capture_info): Pass down whether the
	expression argument is a COND_EXPR condition.
	(capture_info::walk_match): Likewise, mark captures
	capturing COND_EXPR conditions with cond_expr_cond_p.
	(expr::gen_transform): Pass down whether we need to
	expand compares from COND_EXPR conditions.
	(capture::gen_transform): Expand compares substituted
	from COND_EXPR conditions into non-COND_EXPR conditions.
	(dt_operand::gen_gimple_expr): Handle explicitely marked
	GENERIC expressions as generic.
	(dt_simplify::gen): Pass whether we need to expand
	conditions to gen_transform.  Handle capture results
	which are from COND_EXPR conditions.
	(main): Pass gimple flag down to lower.

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

	PR c/59708
	* builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
	* builtins.c (fold_builtin_arith_overflow): New function.
	(fold_builtin_3): Use it.
	* builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
	BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
	BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
	BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
	BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
	BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
	BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
	BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
	BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
	BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
	* builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
	BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
	BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
	BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
	BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
	* expr.c (write_complex_part): Remove prototype, no longer static.
	* expr.h (write_complex_part): New prototype.
	* function.c (aggregate_value_p): For internal functions return 0.
	* gimple-fold.c (arith_overflowed_p): New functions.
	(gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
	* gimple-fold.h (arith_overflowed_p): New prototype.
	* tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
	(find_non_realpart_uses, maybe_optimize_arith_overflow): New
	functions.
	(eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
	into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
	never used.
	* gimplify.c (gimplify_call_expr): Handle gimplification of
	internal calls with lhs.
	* internal-fn.c (get_range_pos_neg, get_min_precision,
	expand_arith_overflow_result_store): New functions.
	(ubsan_expand_si_overflow_addsub_check): Renamed to ...
	(expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
	UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
	Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
	(ubsan_expand_si_overflow_neg_check): Renamed to ...
	(expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
	arguments, remove STMT argument.  Handle SUB_OVERFLOW with
	0 as first argument expansion.
	(ubsan_expand_si_overflow_mul_check): Renamed to ...
	(expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
	UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
	Handle MUL_OVERFLOW expansion.
	(expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
	arguments for it.
	(expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
	expand_neg_overflow, prepare arguments for it.
	(expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
	for it.
	(expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
	expand_MUL_OVERFLOW): New functions.
	* internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
	internal functions.
	* tree-vrp.c (check_for_binary_op_overflow): New function.
	(extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
	is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
	(simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
	internal functions.
	* optabs.def (umulv4_optab): New optab.
	* config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
	(*umulv<mode>4, *<u>mulvqi4): New define_insns.
	* doc/extend.texi (Integer Overflow Builtins): Document
	__builtin_*_overflow.

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

	* genmatch.c (capture_info::capture_info): Add missing
	COND_EXPR handling.
	(capture_info::walk_match): Fix COND_EXPR handling.
	(capture_info::walk_result): Likewise.

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

	PR middle-end/63821
	* match.pd: Add missing conversion to the -(T)-X pattern.

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

	PR bootstrap/63819
	* hash-table.h: Include ggc.h also for generator programs.
	* genmatch.c (ggc_internal_cleared_alloc): Properly define
	using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.

2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/63761
	* tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
	rather than taking it as a parameter. Add some comments to explain the
	gsi_move_before in case of load and why canonicalization of bswap into
	a rotation is only done for 16bit values.
	(pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
	refer to the statement just before cur_stmt. Ignore 16bit bswap that
	are already in canonical form. Adapt bswap_replace to removal of its
	gsi parameter.

2014-11-12  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
	* rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
	(for_each_rtx_in_insn): Delete.
	(init_rtlanal): Remove initialization of non_rtx_starting_operands.
	* df-core.c: Remove reference to for_each_rtx in comment.

2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>

	* Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
	arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
	* doc/aarch64-acle-intrinsics.texi: Remove.
	* doc/arm-acle-intrinsics.texi: Remove.
	* doc/arm-neon-intrinsics.texi: Remove.
	* doc/extend.texi: Consolidate sections AArch64 intrinsics,
	ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
	Extension section. Add references to public ACLE specification.

2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>

	* tree-vrp.c (register_edge_assert_for_2): Change return type to
	void and adjust accordingly.
	(register_edge_assert_for_1): Likewise.
	(register_edge_assert_for): Likewise.
	(find_conditional_asserts): Likewise.
	(find_switch_asserts): Likewise.
	(find_assert_locations_1): Likewise.
	(find_assert_locations): Likewise.
	(insert_range_insertions): Inspect the need_assert_for bitmap.

2014-11-11  Andrew Pinski  <apinski@cavium.com>

	Bug target/61997
	* config.gcc (aarch64*-*-*): Set target_gtfiles to include
	aarch64-builtins.c.
	* config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
	at the end of the file.

2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR driver/36312
	* diagnostic-core.h: Add prototype for fatal_error.
	* diagnostic.c (fatal_error): New function fatal_error.
	* gcc.c (store_arg): Remove have_o_argbuf_index.
	(process_command): Check if input and output files are the same.
	* toplev.c (init_asm_output): Check if input and output files are
	the same.

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

	* reorg.c (fill_slots_from_thread): Do not copy frame-related insns.

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

	PR target/61535
	* config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
	smaller than 8 bytes.
	(sparc_function_arg_1): Tweak.
	(sparc_function_value_1): Tweak.

2014-11-11  David Malcolm  <dmalcolm@redhat.com>

	* ChangeLog.jit: New.
	* Makefile.in (doc_build_sys): New variable, set to "sphinx" if
	sphinx is installed, falling back to "texinfo" otherwise.
	(FULL_DRIVER_NAME): New variable, adapted from the
	install-driver target.  New target, a symlink within the builddir,
	linked to "xgcc", for use when running the JIT library from the
	builddir.
	(MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
	(install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
	out.
	* configure.ac (doc_build_sys): New variable, set to "sphinx" if
	sphinx is installed, falling back to "texinfo" otherwise.
	(GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
	GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
	* configure: Regenerate.
	* doc/install.texi (--enable-host-shared): Specify that this is
	required when building libgccjit.
	(Tools/packages necessary for modifying GCC): Add Sphinx.
	* timevar.def (TV_JIT_REPLAY): New.
	(TV_ASSEMBLE): New.
	(TV_LINK): New.
	(TV_LOAD): New.

2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

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

	* config/aarch64/aarch64-simd.md
	(aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
	(aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
	are punning between float vectors and integer vectors.

2014-11-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
	open-coded swap with std::swap to swap values.
	(alpha_emit_setcc): Ditto.
	(alpha_emit_conditional_move): Ditto.
	(alpha_split_tmode_pair): Ditto.

2014-11-11  Evgeny Stupachenko  <evstupac@gmail.com>

	* tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
	permutations on power of 2 cases.

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

	* config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
	(CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).

2014-11-11  Richard Biener  <rguenther@suse.de>

	* tree-core.h (pedantic_lvalues): Remove.
	* fold-const.c (pedantic_lvalues): Likewise.
	(pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.

2014-11-11  Martin Liska  <mliska@suse.cz>

	PR ipa/63622
	PR ipa/63795
	* ipa-icf.c (sem_function::merge): Add new target symbol alias
	support guard.
	(sem_variable::merge): Likewise.
	* ipa-icf.h (target_supports_symbol_aliases_p): New function.

2014-11-11  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement patterns from associate_plusminus
	and factor in differences from the fold-const.c implementation.
	* fold-const.c (fold_binary_loc): Remove patterns here.
	* tree-ssa-forwprop.c (associate_plusminus): Remove.
	(pass_forwprop::execute): Don't call it.
	* tree.c (tree_nop_conversion_p): New function, factored
	from tree_nop_conversion.
	* tree.h (tree_nop_conversion_p): Declare.

2014-11-11  Uros Bizjak  <ubizjak@gmail.com>

	* system.h: Include algorithm and utility.
	* rtl.h: Do not include utility here.
	* wide-int.h: Ditto.
	* tree-vect-data-refs.c (swap): Remove template.
	(vect_prune_runtime_alias_test_list): Use std::swap instead of swap.

2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR bootstrap/63699
	PR bootstrap/63750
	* system.h: Include <string> before "safe-ctype.h"
	* wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
	calls to min/max with wi namespace.
	* ipa-chkp.c: Don't include <string>.

2014-11-11  Terry Guo  <terry.guo@arm.com>

	* doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
	* config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
	registers.
	(*thumb1_movhf): Likewise.

2014-11-11  Uros Bizjak  <ubizjak@gmail.com>

	* sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
	instead of INT64_MAX.

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

	* doc/install.texi (Prerequisites): Remove CLooG.

2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>

	* ipa-inline.c (edge_badness): Adjust.
	(inline_small_functions): Likewise.
	* predict.c (propagate_freq): Likewise.
	(estimate_bb_frequencies): Likewise.
	* sreal.c (sreal::dump): Rename from dump_sreal.
	(debug): Adjust.
	(copy): Remove function.
	(sreal::shift_right): Rename from sreal_sift_right.
	(sreal::normalize): Rename from normalize.
	(sreal_init): Remove function.
	(sreal::to_int): Rename from sreal_to_int.
	(sreal_compare): Remove function.
	(sreal::operator+): Rename from sreal_add.
	(sreal::operator-): Rename from sreal_sub.
	(sreal::operator*): Rename from sreal_mul.
	(sreal::operator/): Rename from sreal_div.
	* sreal.h (class sreal): Adjust.
	(inline sreal &operator+=): New operator.
	(inline sreal &operator-=): Likewise.
	(inline sreal &operator/=): Likewise.
	(inline sreal &operator*=): Likewise.
	(inline bool operator!=): Likewise.
	(inline bool operator>): Likewise.
	(inline bool operator<=): Likewise.
	(inline bool operator>=): Likewise.

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

	* sched-deps.c (sched_analyze_1): Check pending list if it is not
	less than MAX_PENDING_LIST_LENGTH.
	(sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.

2014-11-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_decompose_address): Replace open-coded
	swap with std::swap to swap values.
	(ix86_fixup_binary_operands): Ditto.
	(ix86_binary_operator_ok): Ditto.
	(ix86_prepare_fp_compare_args): Ditto.
	(ix86_expand_branch): Ditto.
	(ix86_expand_carry_flag_compare): Ditto.
	(ix86_expand_int_movcc): Ditto.
	(ix86_prepare_sse_fp_compare_args): Ditto.
	(ix86_expand_sse_fp_minmax): Ditto.
	(ix86_expand_int_vcond): Ditto.
	(ix86_split_long_move): Ditto.
	(ix86_expand_sse_comi): Ditto.
	(ix86_expand_sse_compare_and_jump): Ditto.
	(ix86_expand_sse_compare_mask): Ditto.
	* config/i386/i386.md (*add<mode>_1): Ditto.
	(addsi_1_zext): Ditto.
	(*addhi_1): Ditto.
	(*addqi_1): Ditto.
	(*add<mode>_2): Ditto.
	(*addsi_2_zext): Ditto.
	(*add<mode>_3): Ditto.
	(*addsi_3_zext): Ditto.
	(*add<mode>_5): Ditto.
	(absneg splitter): Ditto.

2014-11-11  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2014-10-31  Uros Bizjak  <ubizjak@gmail.com>

	PR target/63620
	* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
	* config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
	* config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
	be reloaded through memory.
	(*pushxf): Ditto.
	(*pushdf): Ditto.

2014-11-11  Jakub Jelinek  <jakub@redhat.com>
	    Martin Liska  <mliska@suse.cz>

	* ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
	(func_checker::compare_gimple_call): Compare gimple_call_fn,
	gimple_call_chain, gimple_call_fntype and call flags.

2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/63620
	PR rtl-optimization/63799
	* lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
	and setting PIC pseudo insns.
	(lra_create_live_ranges): Fix the typo.

2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>

	PR middle-end/63748
	* tree-ssa-propagate.c (may_propagate_copy): Allow propagating
	SSA copies whose source and destination names both occur in
	abnormal PHIs.

2014-11-10 Roman Gareev  <gareevroman@gmail.com>

	* Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
	* common.opt: Remove using of fgraphite-code-generator flag.
	* flag-types.h: Likewise.
	* graphite.c: Remove using of CLooG.
	* graphite-blocking.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-poly.h: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite-clast-to-gimple.c: Removed.
	* graphite-clast-to-gimple.h: Likewise.
	* graphite-htab.h: Likewise.

2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
	Add.

2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>

	* config/frv/frv.c (frv_io_handle_use_1): Delete.
	(frv_io_handle_use): Use find_all_hard_regs.

2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>

	* config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
	than an rtx *.  Take the regstate_t directly rather than via a void *.
	Return a bool rather than an int.  Iterate over all subrtxes here.
	(frv_registers_conflict_p): Update accordingly.

2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>

	* config/frv/frv.c: Include rtl-iter.h.
	(frv_acc_group_1): Delete.
	(frv_acc_group): Use FOR_EACH_SUBRTX.

2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>

	* config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
	(frv_clear_registers_used): Delete.
	(frv_ifcvt_modify_tests): Use find_all_hard_regs.

2014-11-10  Jan Hubicka  <hubicka@ucw.cz>

	PR bootstrap/63573
	* calls.c (initialize_argument_information): When emitting thunk call
	use original memory placement of the argument.

2014-11-10  Renlin Li  <renlin.li@arm.com>

	PR middle-end/61529
	* tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.

2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
	bswaphi if available.

2014-11-10  Bernd Schmidt  <bernds@codesourcery.com>

	* config/nvptx/nvptx.c: New file.
	* config/nvptx/nvptx.h: New file.
	* config/nvptx/nvptx-protos.h: New file.
	* config/nvptx/nvptx.md: New file.
	* config/nvptx/t-nvptx: New file.
	* config/nvptx/nvptx.opt: New file.
	* common/config/nvptx/nvptx-common.c: New file.
	* config.gcc: Handle nvptx-*-*.

2014-11-10  Richard Biener  <rguenther@suse.de>

	* tree-ssa-operands.c (finalize_ssa_uses): Properly put
	released operands on the free list.

2014-11-10  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement pattern from simplify_mult.
	* tree-ssa-forwprop.c (simplify_mult): Remove.
	(pass_forwprop::execute): Do not call simplify_mult.

2014-11-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63800
	* tree-ssa-pre.c (eliminate_push_avail): Push in a way so
	we can restore the previous availability in after_dom_children.
	(eliminate_dom_walker::after_dom_children): Restore
	previous availability.

2014-11-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/63798
	* expr.c (expand_expr_real_2): When expanding FMA_EXPRs
	properly treat the embedded multiplication as commutative
	when looking for feeding negates.

2014-11-10  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.

2014-11-10  Martin Liska  <mliska@suse.cz>

	* gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
	for the test because of default char signedness
	on powerpc64 target.

2014-11-10  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement pattern from simplify_conversion_from_bitmask.
	* tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
	(pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.

2014-11-10  Richard Biener  <rguenther@suse.de>

	* match.pd: Move rest of the conversion combining patterns
	from tree-ssa-forwprop.c.
	* tree-ssa-forwprop.c (combine_conversions): Remove.
	(pass_forwprop::execute): Do not call it.

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

	* gimple-low.c (lower_function_body): Clear the location of the first
	inserted representative return if it also fills in for the fallthru.

2014-11-10  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-if-conv.c (add_to_predicate_list): Check unconditionally
	that bb is always executed to early exit. Use predicate of
	cd-equivalent block for join blocks if it exists.
	(if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
	(tree_if_conversion): Free post-dominance information.

2014-11-09  Jason Merrill  <jason@redhat.com>

	* config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
	* config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
	(_mm_mask_cvtusepi32_storeu_epi16)
	(_mm_mask_cvtsepi64_storeu_epi32): Return void.

2014-11-09  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/avr/predicates.md (low_io_address_operand): Fix typo.

2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/63620
	* lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
	name.  Move to lra.c.  Make it external.
	(substitute_pseudo_within_insn): Ditto.
	(inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
	the new names.
	(undo_optional_reloads): Ditto.
	* lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
	New prototypes.
	(lra_substitute_pseudo_within_insn): Ditto.
	* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
	(mark_regno_live): Add parameter.  Update bb_gen_pseudos.
	(mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
	bb_killed_pseudos.
	(struct bb_data, bb_data_t, bb_data): New.
	(get_bb_data, get_bb_data_by_index): Ditto.
	(all_hard_regs_bitmap): New.
	(live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
	(initiate_live_solver, finish_live_solver): New.
	(process_bb_lives): Change return type.  Add code updating local
	live data and removing dead insns.  Pass new argument to
	mark_regno_live and mark_regno_dead.  Check changing bb pseudo
	life info.  Return the result.
	(lra_create_live_ranges): Add code to do global pseudo live
	analysis.
	(lra_live_ranges_init): Call initiate_live_solver.
	(lra_live_ranges_finish): Call finish_live_solver.
	* lra.c (lra_dump_bitmap_with_title): New.
	(lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
	from lra-constraints.c.

2014-11-09  Richard Biener  <rguenther@suse.de>

	* match.pd: Add patterns convering two conversions in a row
	from fold-const.c.
	* fold-const.c (fold_unary_loc): Remove them here.
	* tree-ssa-forwprop.c (combine_conversions): Likewise.
	* genmatch.c (dt_node::gen_kids): Check whether we may
	follow SSA use-def chains.

2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c: Include rtl-iter.h.
	(aarch64_tls_operand_p_1): Delete.
	(aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.

2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arm/arm.c (arm_note_pic_base): Delete.
	(arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.

2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arm/arm.c: Include rtl-iter.h.
	(arm_tls_referenced_p_1): Delete.
	(arm_tls_referenced_p): Use FOR_EACH_SUBRTX.

2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arm/aarch-common.c: Include rtl-iter.h.
	(search_term, arm_find_sub_rtx_with_search_term): Delete.
	(arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
	(arm_get_set_operands): Pass the insn pattern rather than the
	insn itself.
	(arm_no_early_store_addr_dep): Likewise.

2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* config/arm/arm.c (arm_set_return_address): Mark the store as frame
	related, if any.
	(thumb_set_return_address): Likewise.

2014-11-07  Jeff Law  <law@redhat.com>

	PR tree-optimization/61515
	* tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
	stack rather than looking at every SSA_NAME's value.

2014-11-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63605
	* fold-const.c (fold_binary_loc): Properly use element_precision
	for types that may not be scalar.

2014-11-07  Evgeny Stupachenko  <evstupac@gmail.com>

	PR target/63534
	* config/i386/i386.md (builtin_setjmp_receiver): Use
	pic_offset_table_rtx for PIC register.
	(nonlocal_goto_receiver): Delete.

2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>

	* config.gcc (sparc-*-rtems*): Clean away unused t-elf.
	* config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.

2014-11-07  Martin Liska  <mliska@suse.cz>

	PR ipa/63580
	* cgraphunit.c (cgraph_node::create_wrapper):
	TREE_ADDRESSABLE is set to false for a newly created thunk.

2014-11-07  Martin Liska  <mliska@suse.cz>

	PR ipa/63747
	* ipa-icf-gimple.c (func_checker::compare_gimple_switch):
	Missing checking for CASE_LOW and CASE_HIGH added.

2014-11-07  Martin Liska  <mliska@suse.cz>

	PR ipa/63595
	* cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
	is correctly handled for thunks created by IPA ICF.

2014-11-07  Jiong Wang  <jiong.wang@arm.com>
2014-11-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63676
	* gimple-fold.c (fold_gimple_assign): Do not fold node when
	TREE_CLOBBER_P be true.

2014-11-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/63770
	* match.pd: Guard conflicting GENERIC pattern properly.

2014-11-07  Richard Biener  <rguenther@suse.de>

	* match.pd: Add patterns for POINTER_PLUS_EXPR association
	and special patterns from tree-ssa-forwprop.c
	* fold-const.c (fold_binary_loc): Remove them here.
	* tree-ssa-forwprop.c (to_purge): New global bitmap.
	(fwprop_set_lattice_val): New function.
	(fwprop_invalidate_lattice): Likewise.
	(remove_prop_source_from_use): Instead of purging dead EH
	edges record blocks to do that in to_purge.
	(tidy_after_forward_propagate_addr): Likewise.
	(forward_propagate_addr_expr): Invalidate the lattice for
	SSA names we release.
	(simplify_conversion_from_bitmask): Likewise.
	(simplify_builtin_call): Likewise.
	(associate_pointerplus_align): Remove.
	(associate_pointerplus_diff): Likewise.
	(associate_pointerplus): Likewise.
	(fold_all_stmts): Merge with ...
	(pass_forwprop::execute): ... the original loop over all
	basic-blocks.  Delay purging dead EH edges and invalidate
	the lattice for SSA names we release.

2014-11-07  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.opt (masm-syntax-unified): New option.
	* doc/invoke.texi (-masm-syntax-unified): Document new option.
	* config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
	(ASM_APP_ON): Redefined.
	* config/arm/arm.c (arm_option_override): Thumb2 inline assembly
	code always use UAL syntax.
	(arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
	* config/arm/thumb1.md: Likewise.

2014-11-06  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
	Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
	or in_call_delay.

2014-11-06  Steve Ellcey  <sellcey@imgtec.com>

	* config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
	Set default_mips_arch and default_mips_abi instead of tm_defines.
	(mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
	of tm_defines.
	(mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
	* config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
	based on MIPS_ABI_DEFAULT.
	(STANDARD_STARTFILE_PREFIX_2): Ditto.

2014-11-06  Joseph Myers  <joseph@codesourcery.com>

	* doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
	cases of extended identifiers.

2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.

2014-11-06  DJ Delorie  <dj@redhat.com>

	* config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
	conditional.
	(movhicc_<code>_<mode>): Likewise.
	* config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
	subregs.
	(m32c_eh_return_data_regno): Change to using memregs to avoid
	tying up all the compute regs.
	(m32c_legitimate_address_p) Subregs are not valid addresses.

2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>

	* function.c (thread_prologue_and_epilogue_insns): No longer static.
	* function.h (thread_prologue_and_epilogue_insns): Declare.

	* target.def (assemble_undefined_decl): New hooks.
	* hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
	* hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
	* doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
	* doc/tm.texi: Regenerate.
	* output.h (assemble_undefined_decl): Declare.
	(get_fnname_from_decl): Declare.
	* varasm.c (assemble_undefined_decl): New function.
	(get_fnname_from_decl): New function.
	* final.c (rest_of_handle_final): Use it.
	* varpool.c (varpool_output_variables): Call assemble_undefined_decl
	for nodes without a definition.

	* target.def (call_args, end_call_args): New hooks.
	* hooks.c (hook_void_rtx_tree): New empty function.
	* hooks.h (hook_void_rtx_tree): Declare.
	* doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
	* doc/tm.texi: Regenerate.
	* calls.c (expand_call): Slightly rearrange the code.  Use the two new
	hooks.
	(expand_library_call_value_1): Use the two new hooks.

	* expr.c (use_reg_mode): Just return for pseudo registers.

	* combine.c (try_combine): Don't allow a call as one of the source
	insns.

	* target.def (decl_end): New hook.
	* varasm.c (assemble_variable_contents, assemble_constant_contents):
	Use it.
	* doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
	* doc/tm.texi: Regenerate.

2014-11-06  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.c (aarch64_architecture_version): New.
	(processor): New architecture_version field.
	(aarch64_override_options): Initialize aarch64_architecture_version.
	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
	__ARM_ARCH_PROFILE, aarch64_arch_name macro.

2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* params.def (sra-max-scalarization-size-Ospeed): New.
	(sra-max-scalarization-size-Osize): Likewise.
	* doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
	(sra-max-scalarization-size-Osize): Likewise.
	* toplev.c (process_options): Set default values for new
	parameters.
	* tree-sra.c (analyze_all_variable_accesses): Use new parameters.
	* targhooks.c (get_move_ratio): Remove static designator.
	* target.h (get_move_ratio): Declare.

2014-11-06  Marek Polacek  <polacek@redhat.com>

	* sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
	Remove vector limit.

2014-11-06  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement bitwise binary and unary simplifications
	from tree-ssa-forwprop.c.
	* fold-const.c (fold_unary_loc): Remove them here.
	(fold_binary_loc): Likewise.
	* tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
	(truth_valued_ssa_name): Likewise.
	(lookup_logical_inverted_value): Likewise.
	(simplify_bitwise_binary_1): Likewise.
	(hoist_conversion_for_bitop_p): Likewise.
	(simplify_bitwise_binary_boolean): Likewise.
	(simplify_bitwise_binary): Likewise.
	(pass_forwprop::execute): Remove calls to simplify_not_neg_expr
	and simplify_bitwise_binary.
	* genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
	(decision_tree::insert): Also insert non-expressions.

2014-11-06  Hale Wang  <hale.wang@arm.com>

	* config/arm/arm-cores.def: Add support for
	-mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
	cortex-m1.small-multiply.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm.c: Update the rtx-costs for MUL.
	* config/arm/bpabi.h: Handle
	-mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
	cortex-m1.small-multiply.
	* doc/invoke.texi: Document
	-mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
	cortex-m1.small-multiply.

2014-11-06  Hale Wang  <hale.wang@arm.com>

	* config/arm/arm.c: Add cortex-m7 tune.
	* config/arm/arm-cores.def: Use cortex-m7 tune.

2014-11-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/63538
	* config/i386/i386.c (in_large_data_p): Reject automatic variables.
	(ix86_encode_section_info): Do not check for non-automatic varibles
	when setting SYMBOL_FLAG_FAR_ADDR flag.
	(x86_64_elf_select_section): Do not check ix86_cmodel here.
	(x86_64_elf_unique_section): Ditto.
	(x86_elf_aligned_common): Emit tab before .largecomm.

2014-11-05  Joseph Myers  <joseph@codesourcery.com>

	PR preprocessor/9449
	* doc/cpp.texi (Character sets, Tokenization)
	(Implementation-defined behavior): Don't refer to UCNs in
	identifiers requiring -fextended-identifiers.
	* doc/cppopts.texi (-fextended-identifiers): Document as enabled
	by default for C99 and later and C++.
	* doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
	identifiers needing -fextended-identifiers.

2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
	for 512-bit wide modes.
	(expand_vec_perm_1): Use correct versions of patterns.
	* config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
	(vashr<mode>3<mask_name>): Split V8HImode and V16QImode.

2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c: New.
	* ipa-chkp.h: New.
	* tree-chkp.c: New.
	* tree-chkp.h: New.
	* tree-chkp-opt.c: New.
	* rtl-chkp.c: New.
	* rtl-chkp.h: New.
	* Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
	tree-chkp-opt.o.
	(GTFILES): Add tree-chkp.c.
	* mode-classes.def (MODE_POINTER_BOUNDS): New.
	* tree.def (POINTER_BOUNDS_TYPE): New.
	* genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
	(POINTER_BOUNDS_MODE): New.
	(make_pointer_bounds_mode): New.
	* machmode.h (POINTER_BOUNDS_MODE_P): New.
	* stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
	(layout_type): Support POINTER_BOUNDS_TYPE.
	* tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
	* tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
	* tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
	(type_contains_placeholder_1): Likewise.
	(build_common_tree_nodes): Initialize
	pointer_bounds_type_node.
	* tree.h (POINTER_BOUNDS_TYPE_P): New.
	(pointer_bounds_type_node): New.
	(POINTER_BOUNDS_P): New.
	(BOUNDED_TYPE_P): New.
	(BOUNDED_P): New.
	(CALL_WITH_BOUNDS_P): New.
	* gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
	(gimple_call_with_bounds_p): New.
	(gimple_call_set_with_bounds): New.
	(gimple_return_retbnd): New.
	(gimple_return_set_retbnd): New
	* gimple.c (gimple_build_return): Increase number of ops
	for return statement.
	(gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
	flag.
	* gimple-pretty-print.c (dump_gimple_return): Print second op.
	* rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
	* gimplify.c (gimplify_init_constructor): Avoid infinite
	loop during gimplification of bounds initializer.
	* calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
	(special_function_p): Use original decl name when analyzing
	instrumentation clone.
	(arg_data): Add fields special_slot, pointer_arg and
	pointer_offset.
	(store_bounds): New.
	(emit_call_1): Propagate instrumentation flag for CALL.
	(initialize_argument_information): Compute pointer_arg,
	pointer_offset and special_slot for pointer bounds arguments.
	(finalize_must_preallocate): Preallocate when storing bounds
	in bounds table.
	(compute_argument_addresses): Skip pointer bounds.
	(expand_call): Store bounds into tables separately.  Return
	result joined with resulting bounds.
	* cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
	(expand_call_stmt): Propagate bounds flag for CALL_EXPR.
	(expand_return): Add returned bounds arg.  Handle returned bounds.
	(expand_gimple_stmt_1): Adjust to new expand_return signature.
	(gimple_expand_cfg): Reset rtx bounds map.
	* expr.c: Include tree-chkp.h, rtl-chkp.h.
	(expand_assignment): Handle returned bounds.
	(store_expr_with_bounds): New.  Replaces store_expr with new bounds
	target argument.  Handle bounds returned by calls.
	(store_expr): Now wraps store_expr_with_bounds.
	* expr.h (store_expr_with_bounds): New.
	* function.c: Include tree-chkp.h, rtl-chkp.h.
	(bounds_parm_data): New.
	(use_register_for_decl): Do not registerize decls used for bounds
	stores and loads.
	(assign_parms_augmented_arg_list): Add bounds of the result
	structure pointer as the second argument.
	(assign_parm_find_entry_rtl): Mark bounds are never passed on
	the stack.
	(assign_parm_is_stack_parm): Likewise.
	(assign_parm_load_bounds): New.
	(assign_bounds): New.
	(assign_parms): Load bounds and determine a location for
	returned bounds.
	(diddle_return_value_1): New.
	(diddle_return_value): Handle returned bounds.
	* function.h (rtl_data): Add field for returned bounds.
	* varasm.c: Include tree-chkp.h.
	(output_constant): Support POINTER_BOUNDS_TYPE.
	(output_constant_pool_2): Support MODE_POINTER_BOUNDS.
	(ultimate_transparent_alias_target): Move up.
	(make_decl_rtl): For instrumented function use
	name of the original decl.
	(assemble_start_function): Mark function as global
	in case it is instrumentation clone of the global
	function.
	(do_assemble_alias): Follow transparent alias chain
	for identifier.  Check if original alias is public.
	(maybe_assemble_visibility): Use visibility of the
	original function for instrumented version.
	(default_unique_section): Likewise.
	* emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
	(init_emit_once): Build pointer bounds zero constants.
	* explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
	* target.def (builtin_chkp_function): New.
	(chkp_bound_type): New.
	(chkp_bound_mode): New.
	(chkp_make_bounds_constant): New.
	(chkp_initialize_bounds): New.
	(load_bounds_for_arg): New.
	(store_bounds_for_arg): New.
	(load_returned_bounds): New.
	(store_returned_bounds): New.
	(chkp_function_value_bounds): New.
	(setup_incoming_vararg_bounds): New.
	(function_arg): Update hook description with new possible return
	value CONST_INT.
	* targhooks.h (default_load_bounds_for_arg): New.
	(default_store_bounds_for_arg): New.
	(default_load_returned_bounds): New.
	(default_store_returned_bounds): New.
	(default_chkp_bound_type): New.
	(default_chkp_bound_mode): New.
	(default_builtin_chkp_function): New.
	(default_chkp_function_value_bounds): New.
	(default_chkp_make_bounds_constant): New.
	(default_chkp_initialize_bounds): New.
	(default_setup_incoming_vararg_bounds): New.
	* targhooks.c (default_load_bounds_for_arg): New.
	(default_store_bounds_for_arg): New.
	(default_load_returned_bounds): New.
	(default_store_returned_bounds): New.
	(default_chkp_bound_type): New.
	(default_chkp_bound_mode); New.
	(default_builtin_chkp_function): New.
	(default_chkp_function_value_bounds): New.
	(default_chkp_make_bounds_constant): New.
	(default_chkp_initialize_bounds): New.
	(default_setup_incoming_vararg_bounds): New.
	* builtin-types.def (BT_BND): New.
	(BT_FN_PTR_CONST_PTR): New.
	(BT_FN_CONST_PTR_CONST_PTR): New.
	(BT_FN_BND_CONST_PTR): New.
	(BT_FN_CONST_PTR_BND): New.
	(BT_FN_PTR_CONST_PTR_SIZE): New.
	(BT_FN_PTR_CONST_PTR_CONST_PTR): New.
	(BT_FN_VOID_PTRPTR_CONST_PTR): New.
	(BT_FN_VOID_CONST_PTR_SIZE): New.
	(BT_FN_VOID_PTR_BND): New.
	(BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
	(BT_FN_BND_CONST_PTR_SIZE): New.
	(BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
	(BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
	* chkp-builtins.def: New.
	* builtins.def: include chkp-builtins.def.
	(DEF_CHKP_BUILTIN): New.
	* builtins.c: Include tree-chkp.h and rtl-chkp.h.
	(expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
	BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
	BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
	BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
	BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
	BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
	BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
	BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
	BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
	BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
	(std_expand_builtin_va_start): Init bounds for va_list.
	* cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
	__CHKP__ macro when Pointer Bounds Checker is on.
	* params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
	* passes.def (pass_ipa_chkp_versioning): New.
	(pass_early_local_passes): Renamed to pass_build_ssa_passes.
	(pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
	(pass_chkp_instrumentation_passes): New.
	(pass_ipa_chkp_produce_thunks): New.
	(pass_local_optimization_passes): New.
	(pass_chkp_opt): New.
	* tree-pass.h (make_pass_ipa_chkp_versioning): New.
	(make_pass_ipa_chkp_produce_thunks): New.
	(make_pass_chkp): New.
	(make_pass_chkp_opt): New.
	(make_pass_early_local_passes): Renamed to ...
	(make_pass_build_ssa_passes): This.
	(make_pass_chkp_instrumentation_passes): New.
	(make_pass_local_optimization_passes): New.
	* passes.c (pass_manager::execute_early_local_passes): Execute
	early passes in three steps.
	(execute_all_early_local_passes): Renamed to ...
	(execute_build_ssa_passes): This.
	(pass_data_early_local_passes): Renamed to ...
	(pass_data_build_ssa_passes): This.
	(pass_early_local_passes): Renamed to ...
	(pass_build_ssa_passes): This.
	(pass_data_chkp_instrumentation_passes): New.
	(pass_chkp_instrumentation_passes): New.
	(pass_data_local_optimization_passes): New.
	(pass_local_optimization_passes): New.
	(make_pass_early_local_passes): Renamed to ...
	(make_pass_build_ssa_passes): This.
	(make_pass_chkp_instrumentation_passes): New.
	(make_pass_local_optimization_passes): New.
	* c-family/c.opt (fcheck-pointer-bounds): New.
	(fchkp-check-incomplete-type): New.
	(fchkp-zero-input-bounds-for-main): New.
	(fchkp-first-field-has-own-bounds): New.
	(fchkp-narrow-bounds): New.
	(fchkp-narrow-to-innermost-array): New.
	(fchkp-optimize): New.
	(fchkp-use-fast-string-functions): New.
	(fchkp-use-nochk-string-functions): New.
	(fchkp-use-static-bounds): New.
	(fchkp-use-static-const-bounds): New.
	(fchkp-treat-zero-dynamic-size-as-infinite): New.
	(fchkp-check-read): New.
	(fchkp-check-write): New.
	(fchkp-store-bounds): New.
	(fchkp-instrument-calls): New.
	(fchkp-instrument-marked-only): New.
	(Wchkp): New.
	* c-family/c-common.c (handle_bnd_variable_size_attribute): New.
	(handle_bnd_legacy): New.
	(handle_bnd_instrument): New.
	(c_common_attribute_table): Add bnd_variable_size, bnd_legacy
	and bnd_instrument.  Fix documentation.
	(c_common_format_attribute_table): Likewsie.
	* toplev.c: include tree-chkp.h.
	(process_options): Check Pointer Bounds Checker is supported.
	(compile_file): Add chkp_finish_file call.
	* ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
	to handle instrumentation clones properly.
	(propagate_constants_accross_call): Do not propagate
	through instrumentation thunks.
	* ipa-pure-const.c (propagate_pure_const): Support
	IPA_REF_CHKP.
	* ipa-inline.c (early_inliner): Check edge has summary allocated.
	* ipa-split.c: Include tree-chkp.h.
	(find_retbnd): New.
	(split_part_set_ssa_name_p): New.
	(consider_split): Do not split retbnd and retval
	producers.
	(insert_bndret_call_after): new.
	(split_function): Propagate Pointer Bounds Checker
	instrumentation marks and handle returned bounds.
	* tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
	into bit field and add with_bounds field.
	* tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
	with_bounds field for instrumented calls.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
	CALL_WITH_BOUNDS_P flag for calls.
	* tree-ssa-ccp.c: Include tree-chkp.h.
	(insert_clobber_before_stack_restore): Handle
	BUILT_IN_CHKP_BNDRET calls.
	* tree-ssa-dce.c: Include tree-chkp.h.
	(propagate_necessity): For free call fed by alloc check
	bounds are also provided by the same alloc.
	(eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
	used by free calls.
	* tree-inline.c: Include tree-chkp.h.
	(declare_return_variable): Add arg holding
	returned bounds slot.  Create and initialize returned bounds var.
	(remap_gimple_stmt): Handle returned bounds.
	Return sequence of statements instead of a single statement.
	(insert_init_stmt): Add declaration.
	(remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
	(copy_bb): Adjust to changed return type of remap_gimple_stmt.
	Properly handle bounds in va_arg_pack and va_arg_pack_len.
	(expand_call_inline): Handle returned bounds.  Add bounds copy
	for generated mem to mem assignments.
	* tree-inline.h (copy_body_data): Add fields retbnd and
	assign_stmts.
	* value-prof.c: Include tree-chkp.h.
	(gimple_ic): Support returned bounds.
	* ipa.c (cgraph_build_static_cdtor_1): Support contructors
	with "chkp ctor" and "bnd_legacy" attributes.
	(symtab_remove_unreachable_nodes): Keep initial values for
	pointer bounds to be used for checks eliminations.
	(process_references): Handle IPA_REF_CHKP.
	(walk_polymorphic_call_targets): Likewise.
	* ipa-visibility.c (cgraph_externally_visible_p): Mark
	instrumented 'main' as externally visible.
	(function_and_variable_visibility): Filter instrumentation
	thunks.
	* cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
	field.
	(cgraph_node): Add instrumented_version, orig_decl and
	instrumentation_clone fields.
	(symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
	(varpool_node): Add need_bounds_init field.
	(cgraph_local_p): New.
	* cgraph.c: Include tree-chkp.h.
	(cgraph_node::remove): Fix instrumented_version
	of the referenced node if any.
	(cgraph_node::dump): Dump instrumentation_clone and
	instrumented_version fields.
	(cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
	references and instrumentation thunks.
	(cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
	all not instrumented instrumentation clones alive.
	(cgraph_redirect_edge_call_stmt_to_callee): Support
	returned bounds.
	* cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
	reference.
	(cgraph_rebuild_references): Likewise.
	* cgraphunit.c: Include tree-chkp.h.
	(assemble_thunks_and_aliases): Skip thunks calling instrumneted
	function version.
	(varpool_finalize_decl): Register statically initialized decls
	in Pointer Bounds Checker.
	(walk_polymorphic_call_targets): Do not mark generated call to
	__builtin_unreachable as with_bounds.
	(output_weakrefs): If there are both instrumented and original
	versions, output only one of them.
	(cgraph_node::expand_thunk): Set with_bounds flag
	for created call statement.
	* ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
	(ipa_ref): increase size of use field.
	* symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
	* varpool.c (dump_varpool_node): Dump need_bounds_init field.
	(ctor_for_folding): Do not fold constant bounds vars.
	* lto-streamer.h (LTO_minor_version): Change minor version from
	0 to 1.
	* lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
	pointer bounds.
	(lto_output_node): Output instrumentation_clone,
	thunk.add_pointer_bounds_args and orig_decl field.
	(lto_output_ref): Adjust to new ipa_ref::use field size.
	(input_overwrite_node): Read instrumentation_clone field.
	(input_node): Read thunk.add_pointer_bounds_args and orig_decl
	fields.
	(input_ref): Adjust to new ipa_ref::use field size.
	(input_cgraph_1): Compute instrumented_version fields and restore
	IDENTIFIER_TRANSPARENT_ALIAS chains.
	(lto_output_varpool_node): Output
	need_bounds_init value.
	(input_varpool_node): Read need_bounds_init value.
	* lto-partition.c (add_symbol_to_partition_1): Keep original
	and instrumented versions together.
	(privatize_symbol_name): Restore transparent alias chain if required.
	(add_references_to_partition): Add references to pointer bounds vars.
	* dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
	* dwarf2out.c (gen_subprogram_die): Ignore bound args.
	(gen_type_die_with_usage): Skip pointer bounds.
	(dwarf2out_global_decl): Likewise.
	(is_base_type): Support POINTER_BOUNDS_TYPE.
	(gen_formal_types_die): Skip pointer bounds.
	(gen_decl_die): Likewise.
	* var-tracking.c (vt_add_function_parameters): Skip
	bounds parameters.
	* ipa-icf.c (sem_function::merge): Do not merge when instrumentation
	thunk still exists.
	(sem_variable::merge): Reset need_bounds_init flag.
	* doc/extend.texi: Document Pointer Bounds Checker built-in functions
	and attributes.
	* doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
	(TARGET_STORE_BOUNDS_FOR_ARG): New.
	(TARGET_LOAD_RETURNED_BOUNDS): New.
	(TARGET_STORE_RETURNED_BOUNDS): New.
	(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
	(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
	(TARGET_BUILTIN_CHKP_FUNCTION): New.
	(TARGET_CHKP_BOUND_TYPE): New.
	(TARGET_CHKP_BOUND_MODE): New.
	(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
	(TARGET_CHKP_INITIALIZE_BOUNDS): New.
	* doc/tm.texi: Regenerated.
	* doc/rtl.texi (MODE_POINTER_BOUNDS): New.
	(BND32mode): New.
	(BND64mode): New.
	* doc/invoke.texi (-mmpx): New.
	(-mno-mpx): New.
	(chkp-max-ctor-size): New.
	* config/i386/constraints.md (w): New.
	(Ti): New.
	(Tb): New.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
	* config/i386/i386-modes.def (BND32): New.
	(BND64): New.
	* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
	* config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
	(regclass_map): Add bound registers.
	(dbx_register_map): Likewise.
	(dbx64_register_map): Likewise.
	(svr4_dbx_register_map): Likewise.
	(isa_opts): Add -mmpx.
	(PTA_MPX): New.
	(ix86_option_override_internal): Support MPX ISA.
	(ix86_conditional_register_usage): Support bound registers.
	(ix86_code_end): Add MPX bnd prefix.
	(output_set_got): Likewise.
	(print_reg): Avoid prefixes for bound registers.
	(ix86_print_operand): Add '!' (MPX bnd) print prefix support.
	(ix86_print_operand_punct_valid_p): Likewise.
	(ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
	UNSPEC_BNDLDX_ADDR.
	(ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
	(ix86_class_likely_spilled_p): Add bound regs support.
	(ix86_hard_regno_mode_ok): Likewise.
	(x86_order_regs_for_local_alloc): Likewise.
	(ix86_bnd_prefixed_insn_p): New.
	(ix86_builtins): Add
	IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
	IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
	IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
	IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
	IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
	IX86_BUILTIN_BNDUPPER.
	(builtin_isa): Add leaf_p and nothrow_p fields.
	(def_builtin): Initialize leaf_p and nothrow_p.
	(ix86_add_new_builtins): Handle leaf_p and nothrow_p
	flags.
	(bdesc_mpx): New.
	(bdesc_mpx_const): New.
	(ix86_init_mpx_builtins): New.
	(ix86_init_builtins): Call ix86_init_mpx_builtins.
	(ix86_emit_cmove): New.
	(ix86_emit_move_max): New.
	(ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
	IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
	IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
	IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
	IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
	IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
	(ix86_function_value_bounds): New.
	(ix86_builtin_mpx_function): New.
	(ix86_get_arg_address_for_bt): New.
	(ix86_load_bounds): New.
	(ix86_store_bounds): New.
	(ix86_load_returned_bounds): New.
	(ix86_store_returned_bounds): New.
	(ix86_mpx_bound_mode): New.
	(ix86_make_bounds_constant): New.
	(ix86_initialize_bounds):
	(TARGET_LOAD_BOUNDS_FOR_ARG): New.
	(TARGET_STORE_BOUNDS_FOR_ARG): New.
	(TARGET_LOAD_RETURNED_BOUNDS): New.
	(TARGET_STORE_RETURNED_BOUNDS): New.
	(TARGET_CHKP_BOUND_MODE): New.
	(TARGET_BUILTIN_CHKP_FUNCTION): New.
	(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
	(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
	(TARGET_CHKP_INITIALIZE_BOUNDS): New.
	(ix86_option_override_internal): Do not
	support x32 with MPX.
	(init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
	and force_bnd_pass.
	(function_arg_advance_32): Return number of used integer
	registers.
	(function_arg_advance_64): Likewise.
	(function_arg_advance_ms_64): Likewise.
	(ix86_function_arg_advance): Handle pointer bounds.
	(ix86_function_arg): Likewise.
	(ix86_function_value_regno_p): Mark fisrt bounds registers as
	possible function value.
	(ix86_function_value_1): Handle pointer bounds type/mode
	(ix86_return_in_memory): Likewise.
	(ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
	(ix86_expand_call): Generate returned bounds.
	(ix86_setup_incoming_vararg_bounds): New.
	(ix86_va_start): Initialize bounds for pointers in va_list.
	(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
	* config/i386/i386.h (TARGET_MPX): New.
	(TARGET_MPX_P): New.
	(FIRST_PSEUDO_REGISTER): Fix to new value.
	(FIXED_REGISTERS): Add bound registers.
	(CALL_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(HARD_REGNO_NREGS): Likewise.
	(VALID_BND_REG_MODE): New.
	(FIRST_BND_REG): New.
	(LAST_BND_REG): New.
	(reg_class): Add BND_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(BND_REGNO_P): New.
	(ANY_BND_REG_P): New.
	(BNDmode): New.
	(HI_REGISTER_NAMES): Add bound registers.
	(ix86_args): Add bnd_regno, bnds_in_bt,	force_bnd_pass and
	stdarg fields.
	* config/i386/i386.md (UNSPEC_BNDMK): New.
	(UNSPEC_BNDMK_ADDR): New.
	(UNSPEC_BNDSTX): New.
	(UNSPEC_BNDLDX): New.
	(UNSPEC_BNDLDX_ADDR): New.
	(UNSPEC_BNDCL): New.
	(UNSPEC_BNDCU): New.
	(UNSPEC_BNDCN): New.
	(UNSPEC_MPX_FENCE): New.
	(UNSPEC_SIZEOF): New.
	(BND0_REG): New.
	(BND1_REG): New.
	(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(prefix_rep): Check for bnd prefix.
	(prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(length_nobnd): New.
	(length): Use length_nobnd when specified.
	(memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(BND): New.
	(bnd_ptr): New.
	(BNDCHECK): New.
	(bndcheck): New.
	(*jcc_1): Add MPX bnd prefix.
	(*jcc_2): Likewise.
	(jump): Likewise.
	(*indirect_jump): Likewise.
	(*tablejump_1): Likewise.
	(simple_return_internal): Likewise.
	(simple_return_internal_long): Likewise.
	(simple_return_pop_internal): Likewise.
	(simple_return_indirect_internal): Likewise.
	(<mode>_mk): New.
	(*<mode>_mk): New.
	(mov<mode>): New.
	(*mov<mode>_internal_mpx): New.
	(<mode>_<bndcheck>): New.
	(*<mode>_<bndcheck>): New.
	(<mode>_ldx): New.
	(*<mode>_ldx): New.
	(<mode>_stx): New.
	(*<mode>_stx): New.
	move_size_reloc_<mode>): New.
	* config/i386/predicates.md (address_mpx_no_base_operand): New.
	(address_mpx_no_index_operand): New.
	(bnd_mem_operator): New.
	(symbol_operand): New.
	(x86_64_immediate_size_operand): New.
	* config/i386/i386.opt (mmpx): New.
	* config/i386/i386-builtin-types.def (BND): New.
	(ULONG): New.
	(BND_FTYPE_PCVOID_ULONG): New.
	(VOID_FTYPE_BND_PCVOID): New.
	(VOID_FTYPE_PCVOID_PCVOID_BND): New.
	(BND_FTYPE_PCVOID_PCVOID): New.
	(BND_FTYPE_PCVOID): New.
	(BND_FTYPE_BND_BND): New.
	(PVOID_FTYPE_PVOID_PVOID_ULONG): New.
	(PVOID_FTYPE_PCVOID_BND_ULONG): New.
	(ULONG_FTYPE_VOID): New.
	(PVOID_FTYPE_BND): New.

2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>

	* passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
	pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
	pass_cleanup_barriers, pass_delay_slots,
	pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
	pass_shorten_branches, pass_est_nothrow_function_flags,
	pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
	into pass_late_compilation.
	(pass_late_compilation): Add.
	* passes.c (pass_data_late_compilation, pass_late_compilation,
	make_pass_late_compilation): New.
	* timevar.def (TV_LATE_COMPILATION): New.

	* target.def (omit_struct_return_reg): New data hook.
	* doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
	* doc/tm.texi: Regenerate.
	* function.c (expand_function_end): Use it.

	* target.def (no_register_allocation): New data hook.
	* doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
	* doc/tm.texi: Regenerate.
	* ira.c (gate_ira): New function.
	(pass_data_ira): Set has_gate.
	(pass_ira): Add a gate function.
	(pass_data_reload): Likewise.
	(pass_reload): Add a gate function.
	(pass_ira): Use it.
	* reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
	no register allocation happens on the target and return.
	* final.c (alter_subreg): Ensure register is not a pseudo before
	calling simplify_subreg.
	(output_operand): Assert that x isn't a pseudo only if doing
	register allocation.

	* dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
	global vars.

	* optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
	sorry if necessary.

2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>

	* simplify-rtx.c (simplify_binary_operation_1): Div check added.
	* rtl.h (SUBREG_P): New macro added.

2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_build_scalar_type): Remove.
	(aarch64_scalar_builtin_types, aarch64_simd_type,
	aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
	aarch64_mangle_builtin_vector_type,
	aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
	aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
	aarch64_init_simd_builtin_types,
	aarch64_init_simd_builtin_scalar_types): New.
	(aarch64_init_simd_builtins): Refactor.
	(aarch64_init_crc32_builtins): Fixup with qualifier.
	* config/aarch64/aarch64-protos.h
	(aarch64_mangle_builtin_type): Export.
	* config/aarch64/aarch64-simd-builtin-types.def: New.
	* config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
	(aarch64_mangle_type): Refactor.
	* config/aarch64/arm_neon.h: Declare vector types based on
	internal types.
	* config/aarch64/t-aarch64: Update dependency.

2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
	atomic_update_decl): Guard declaration with #ifdef.

2014-11-04  Marek Polacek  <polacek@redhat.com>

	* sanopt.c (sanopt_optimize_walker): Remove unused variables.

2014-11-04  Marek Polacek  <polacek@redhat.com>

	* Makefile.in (OBJS): Add sanopt.o.
	(GTFILES): Add sanopt.c.
	* asan.h (asan_expand_check_ifn): Declare.
	* asan.c (asan_expand_check_ifn): No longer static.
	(class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
	* sanopt.c: ...here.  New file.

2014-11-04  Jiong Wang  <jiong.wang@arm.com>
	    Wilco Dijkstra  <wilco.dijkstra@arm.com>

	PR target/63293
	* config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
	stack adjustment.

2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>

	* combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
	also verify that mode is equal to the mode of op0.

	* bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
	emit into a sequence instead.

2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.

2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>

	config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
	(reduc_smin_scal_<mode> *2): ...this; extract scalar result.
	(reduc_smax_<mode> *2): Rename to...
	(reduc_smax_scal_<mode> *2): ...this; extract scalar result.
	(reduc_umin_<mode> *2): Rename to...
	(reduc_umin_scal_<mode> *2): ...this; extract scalar result.
	(reduc_umax_<mode> *2): Rename to...
	(reduc_umax_scal_<mode> *2): ...this; extract scalar result.

2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>

	config/arm/neon.md (reduc_plus_*): Rename to...
	(reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.

2014-11-04  Michael Collison <michael.collison@linaro.org>

	* config/aarch64/iterators.md (lconst_atomic): New mode attribute
	to support constraints for CONST_INT in atomic operations.
	* config/aarch64/atomics.md
	(atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
	(atomic_nand<mode>): Likewise.
	(atomic_fetch_<atomic_optab><mode>): Likewise.
	(atomic_fetch_nand<mode>): Likewise.
	(atomic_<atomic_optab>_fetch<mode>): Likewise.
	(atomic_nand_fetch<mode>): Likewise.

2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
	of __ARM_FEATURE_IDIV.

2014-11-04  Marek Polacek  <polacek@redhat.com>

	* ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.

2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.

2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	Revert:
	2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
	* ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
	Allow CC mode if HAVE_cbranchcc4.

2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
	with -fdump-go-spec.  Anonymous substructures are now flattened and
	replaced by their fields (record) or the first named, non-bitfield
	field (union).

2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* input.c (expand_location_to_spelling_point): Fix typo.
	(expansion_point_location_if_in_system_header): Fix comment.

2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>

	* config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.

2014-11-03  Richard Biener  <rguenther@suse.de>

	* tree-eh.c (operation_could_trap_helper_p): Handle conversions
	like ordinary operations.
	* gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
	as NOP_EXPR.

2014-11-03  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
	macros.
	* configure, config.h.in: Regenerate.
	* config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
	(TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
	(RS6000_GLIBC_ATOMIC_FENV): New macro.
	* config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
	(TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
	(RS6000_GLIBC_ATOMIC_FENV): New macro.
	* config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
	(atomic_update_decl): New static variables.
	(rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
	Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
	and __atomic_feupdateenv for soft-float and no-FPRs.

2014-11-03  Richard Biener  <rguenther@suse.de>

	* match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
	Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
	* fold-const.c (fold_unary_loc): Remove them here.
	(tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
	* gimple-fold.c (fold_gimple_assign): Remove now obsolete
	GIMPLE_UNARY_RHS case.
	(gimple_fold_stmt_to_constant_1): Likewise.
	(replace_stmt_with_simplification): Fix inverted comparison.

2014-11-03  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/60770
	* tree-into-ssa.c (rewrite_update_stmt): Return whether the
	statement should be removed.
	(maybe_register_def): Likewise. Replace clobbers with default
	definitions.
	(rewrite_dom_walker::before_dom_children): Remove statement if
	rewrite_update_stmt says so.
	* tree-ssa-live.c: Include tree-ssa.h.
	(set_var_live_on_entry): Do not mark undefined variables as live.
	(verify_live_on_entry): Do not check undefined variables.
	* tree-ssa.h (ssa_undefined_value_p): New parameter for the case
	of partially undefined variables.
	* tree-ssa.c (ssa_undefined_value_p): Likewise.
	(execute_update_addresses_taken): Do not drop clobbers.

2014-11-03  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/63666
	* fold-const.c: Include "optabs.h".
	(fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
	can_vec_perm_p permutation to one that is not.

2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* ifcvt.c (noce_try_store_flag_mask): Check rtx cost.

2014-11-03  Andrew Pinski  <apinski@cavium.com>

	* config/mips/mips-cpus.def (octeon3): New cpu.
	* config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
	(mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
	of the comparison no longer matches mode of the operands.
	(mips_issue_rate): Handle PROCESSOR_OCTEON3.
	* config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
	(TARGET_OCTEON2): Likewise.
	(TUNE_OCTEON): Add Octeon3.
	* config/mips/mips.md (processor): Add octeon3.
	* config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
	(octeon_arith): Add octeon3.
	(octeon_condmove): Remove.
	(octeon_condmove_o1): New reservation.
	(octeon_condmove_o2): New reservation.
	(octeon_condmove_o3_int_on_cc): New reservation.
	(octeon_load_o2): Add octeon3.
	(octeon_cop_o2): Likewise.
	(octeon_store): Likewise.
	(octeon_brj_o2): Likewise.
	(octeon_imul3_o2): Likewise.
	(octeon_imul_o2): Likewise.
	(octeon_mfhilo_o2): Likewise.
	(octeon_imadd_o2): Likewise.
	(octeon_idiv_o2_si): Likewise.
	(octeon_idiv_o2_di): Likewise.
	(octeon_fpu): Add to the automaton.
	(octeon_fpu): New cpu unit.
	(octeon_condmove_o2): Check for non floating point modes.
	(octeon_load_o2): Add prefetchx.
	(octeon_cop_o2): Don't check for octeon3.
	(octeon3_faddsubcvt): New reservation.
	(octeon3_fmul): Likewise.
	(octeon3_fmadd): Likewise.
	(octeon3_div_sf): Likewise.
	(octeon3_div_df): Likewise.
	(octeon3_sqrt_sf): Likewise.
	(octeon3_sqrt_df): Likewise.
	(octeon3_rsqrt_sf): Likewise.
	(octeon3_rsqrt_df): Likewise.
	(octeon3_fabsnegmov): Likewise.
	(octeon_fcond): Likewise.
	(octeon_fcondmov): Likewise.
	(octeon_fpmtc1): Likewise.
	(octeon_fpmfc1): Likewise.
	(octeon_fpload): Likewise.
	(octeon_fpstore): Likewise.
	* config/mips/mips-tables.opt: Regenerate.
	* doc/invoke.texi (-march=@var{arch}): Add octeon3.

2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
	Allow CC mode if HAVE_cbranchcc4.

2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arc/arc.c (write_ext_corereg_1): Delete.
	(arc_write_ext_corereg): Use FOR_EACH_SUBRTX.

2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arc/arc.c (arc600_corereg_hazard_1): Delete.
	(arc600_corereg_hazard): Use FOR_EACH_SUBRTX.

2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
	(small_data_pattern_1): Delete.
	(small_data_pattern): Use FOR_EACH_SUBRTX.

2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arc/arc.c: Include rtl-iter.h.
	(arc_rewrite_small_data_1): Delete.
	(arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.

2014-11-02  Michael Collison  <michael.collison@linaro.org>

	* config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
	to support vector modes.
	(CTZ_DEFINED_VALUE_AT_ZERO): Ditto.

2014-11-01  Andrew MacLeod  <amacleod@redhat,com>

	* optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
	and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
	* genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
	* optabs.c: (gen_move_insn): Move to expr.c.
	* expr.h: Move protypes and enums to optabs.h.
	* expr.c: (gen_move_insn): Relocate from optabs.c.
	* genemit.c (main): Include insn-codes.h.
	* gengtype.c (open_base_files): Include insn-codes.h.
	* asan.c: Include insn-codes.h.
	* bb-reorder.c: Ditto.
	* builtins.c: Ditto.
	* calls.c: Ditto.
	* cfgexpand.c: Ditto.
	* cilk-common.c: Ditto.
	* combine.c: Ditto.
	* dojump.c: Ditto.
	* dse.c: Ditto.
	* except.c: Ditto.
	* explow.c: Ditto.
	* expmed.c: Ditto.
	* function.c: Ditto.
	* ifcvt.c: Ditto.
	* internal-fn.c: Ditto.
	* loop-unroll.c: Ditto.
	* lra.c: Ditto.
	* modulo-sched.c: Ditto.
	* omp-low.c: Ditto.
	* postreload.c: Ditto.
	* ree.c: Ditto.
	* reload.c: Ditto.
	* reload1.c: Ditto.
	* shrink-wrap.c: Ditto.
	* simplify-rtx.c: Ditto.
	* stmt.c: Ditto.
	* target-globals.c: Ditto.
	* targhooks.c: Ditto.
	* toplev.c: Ditto.
	* tree-if-conv.c: Ditto.
	* tree-ssa-forwprop.c: Ditto.
	* tree-ssa-loop-prefetch.c: Ditto.
	* tree-ssa-math-opts.c: Ditto.
	* tree-ssa-phiopt.c: Ditto.
	* tree-ssa-reassoc.c: Ditto.
	* tree-switch-conversion.c: Ditto.
	* tree-vect-data-refs.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-loop.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree-vect-slp.c: Ditto.
	* tree-vect-stmts.c: Ditto.
	* tree-vrp.c: Ditto.
	* value-prof.c: Ditto.
	* config/aarch64/aarch64-builtins.c: Ditto.
	* config/alpha/alpha.c: Ditto.
	* config/arm/arm.c: Ditto.
	* config/cris/cris.c: Ditto.
	* config/epiphany/epiphany.c: Ditto.
	* config/frv/frv.c: Ditto.
	* config/h8300/h8300.c: Ditto.
	* config/ia64/ia64.c: Ditto.
	* config/iq2000/iq2000.c: Ditto.
	* config/m32c/m32c.c: Ditto.
	* config/mep/mep.c: Ditto.
	* config/microblaze/microblaze.c: Ditto.
	* config/mips/mips.c: Ditto.
	* config/mn10300/mn10300.c: Ditto.
	* config/moxie/moxie.c: Ditto.
	* config/msp430/msp430.c: Ditto.
	* config/nios2/nios2.c: Ditto.
	* config/pa/pa.c: Ditto.
	* config/rl78/rl78.c: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/rx/rx.c: Ditto.
	* config/s390/s390.c: Ditto.
	* config/sh/sh.c: Ditto.
	* config/sh/sh_treg_combine.cc: Ditto.
	* config/spu/spu.c: Ditto.
	* config/stormy16/stormy16.c: Ditto.
	* config/tilegx/mul-tables.c: Ditto.
	* config/tilegx/tilegx.c: Ditto.
	* config/tilepro/mul-tables.c: Ditto.
	* config/tilepro/tilepro.c: Ditto.
	* config/vax/vax.c: Ditto.

2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
	(CLEAR_BY_PIECES_P): Likewise.
	(SET_BY_PIECES_P): Likewise.
	(STORE_BY_PIECES_P): Likewise.
	* doc/tm.texi: Regenerate.
	* system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
	SET_BY_PIECES_P, STORE_BY_PIECES_P.
	* expr.c (MOVE_BY_PIECES_P): Remove.
	(CLEAR_BY_PIECES_P): Likewise.
	(SET_BY_PIECES_P): Likewise.
	(STORE_BY_PIECES_P): Likewise.
	(can_move_by_pieces): Rewrite in terms of
	targetm.use_by_pieces_infrastructure_p.
	(emit_block_move_hints): Likewise.
	(can_store_by_pieces): Likewise.
	(store_by_pieces): Likewise.
	(clear_storage_hints): Likewise.
	(emit_push_insn): Likewise.
	(expand_constructor): Likewise.

2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_use_by_pieces_infrastructre_p): New.
	(TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
	* config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.

2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
	(STORE_BY_PIECES_P): Likewise.
	* config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
	(mips_move_by_pieces_p): Rename to...
	(mips_use_by_pieces_infrastructure_p): ...this, use new hook
	parameters, use the default hook implementation as a
	fall-back.

2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
	(sh_use_by_pieces_infrastructure_p): Likewise.
	* config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
	(STORE_BY_PIECES_P): Likewise.
	(SET_BY_PIECES_P): Likewise.

2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
	(arc_use_by_pieces_infrastructure_p): Likewise.
	* confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
	(CAN_MOVE_BY_PIECES): Likewise.

2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
	(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
	* config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
	(CLEAR_BY_PIECES): Likewise.
	(SET_BY_PIECES): Likewise.
	(STORE_BY_PIECES): Likewise.

2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>

	* target.def (use_by_pieces_infrastructure_p): New.
	* doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
	is deprecated.
	(STORE_BY_PIECES_P): Likewise.
	(CLEAR_BY_PIECES_P): Likewise.
	(SET_BY_PIECES_P): Likewise.
	(TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
	* doc/tm.texi: Regenerate.
	* expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
	TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
	(STORE_BY_PIECES_P): Likewise.
	(CLEAR_BY_PIECES_P): Likewise.
	(SET_BY_PIECES_P): Likewise.
	(STORE_MAX_PIECES): Move to...
	* defaults.h (STORE_MAX_PIECES): ...here.
	* targhooks.c (get_move_ratio): New.
	(default_use_by_pieces_infrastructure_p): Likewise.
	* targhooks.h (default_use_by_pieces_infrastructure_p): New.
	* target.h (by_pieces_operation): New.

2014-10-31  Uros Bizjak  <ubizjak@gmail.com>

	PR target/63702
	* config/i386/i386.c (ix86_expand_args_builtin): Remove extra
	assignment to 'nargs' variable.

2014-10-31  Uros Bizjak  <ubizjak@gmail.com>

	PR target/63620
	* config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
	* config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
	* config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
	be reloaded through memory.
	(*pushxf): Ditto.
	(*pushdf): Ditto.

2014-10-31  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/63659
	* ree.c (update_reg_equal_equiv_notes): New function.
	(combine_set_extension, transform_ifelse): Use it.

2014-10-31  Jeff Law  <law@redhat.com>

	* doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
	and Jonny Grant (collect2).

2014-10-31  Richard Biener  <rguenther@suse.de>

	* builtins.c (fold_builtin_atomic_always_lock_free): Use
	CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
	approprate.
	(fold_builtin_expect): Likewise.
	(integer_valued_real_p): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
	(find_foldable_builtin_expect): Likewise.
	* trans-mem.c (thread_private_new_memory): Likewise.
	* tree-affine.c (aff_combination_expand): Likewise.
	* tree-data-ref.c (initialize_matrix_A): Likewise.
	* tree-inline.c (copy_bb): Likewise.
	* tree-pretty-print.c (dump_function_name): Likewise.
	(print_call_name): Likewise.
	* tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
	* tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
	* tree-vect-generic.c (expand_vector_operations_1): Likewise.
	* tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
	(vect_recog_widen_mult_pattern): Likewise.
	(vect_operation_fits_smaller_type): Likewise.
	* tree-vrp.c (find_assert_locations_1): Likewise.
	* tree-ssa-dom.c (initialize_hash_element): Canonicalize
	converts to NOP_EXPR.

2014-10-31  Richard Biener  <rguenther@suse.de>

	* genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
	CONVERT_EXPRs in generated code.
	(dt_simplify::gen): Likewise.

2014-10-31  Evgeny Stupachenko  <evstupac@gmail.com>

	PR target/63534
	* config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
	REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
	(ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
	using mcount in 32bit PIC mode.
	(ix86_elim_entry_set_got): New.
	(ix86_expand_prologue): For the mcount profiling emit new SET_GOT
	in PROLOGUE, delete initial if possible.

2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
	(want_inline_function_to_all_callers_p): Fix formatting and simplify.

2014-10-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/63259
	* tree-ssa-math-opts.c (bswap_replace): Replace expression by a
	rotation left if it is a 16 bit byte swap.
	(pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
	and RROTATE_EXPR statements if it is a byte rotation.

2014-10-31  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/63697
	* tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
	MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
	instead of vr0.min - vr1.min and vr0.max - vr1.max.

2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR ipa/63696
	* ipa-icf.c (sem_function::~sem_function): Change free to delete
	to avoid alloc-dealloc mismatch with new, called in
	ipa_icf::sem_function::init.

2014-10-30  Felix Yang  <felix.yang@huawei.com>

	* config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
	* config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
	(xtensa_reorg, xtensa_reorg_loops): New.
	(xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
	(hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
	(xtensa_emit_loop_end): Emit the zero-overhead loop end label.
	(xtensa_doloop_hooks): Define.
	* config/xtensa/xtensa.md (doloop_end, loop_end): New
	(zero_cost_loop_start): Rewritten.
	(zero_cost_loop_end): Likewise.

2014-10-30  Steve Ellcey  <sellcey@imgtec.com>

	* config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.

2014-10-30  Richard Biener  <rguenther@suse.de>

	* genmatch.c: Remove <map>, <utility> and <string> includes.
	Include ggc.h and hash-map.h.
	(ggc_internal_cleared_alloc): Provide stub definition.
	(ggc_free): Likewise.
	(struct capture_id_map_hasher): New traits for hash_map.
	(cid_map_t): New typedef.
	(everywhere else): Replace std::map use with cid_map_t.
	* hash-map.h (hash_map::elements): New member function.
	* Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
	hash-map.h and $(GGC_H) as dependency.

2014-10-30  Richard Biener  <rguenther@suse.de>

	* genmatch.c (capture_info::walk_c_expr): Ignore capture
	uses inside TREE_TYPE ().
	* gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
	(find_candidates_dom_walker::before_dom_children): Likewise.
	(replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
	(replace_profitable_candidates): Likewise.
	* tree-ssa-dom.c (initialize_hash_element): Canonicalize
	CONVERT_EXPR_CODE_P to CONVERT_EXPR.
	* convert.c (convert_to_integer): Use CASE_CONVERT.

2014-10-30  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement more patterns that simplify to a single value.
	* fold-const.c (fold_binary_loc): Remove them here.
	* tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
	(fwprop_ssa_val): Remove restriction on single uses.

2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/avr/driver-avr.c (avr_set_current_device): Remove.

2014-10-30  Martin Liska  <mliska@suse.cz>

	PR ipa/63574
	PR ipa/63664
	* ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
	(func_checker::compare_gimple_label): Simlified comparison introduced.
	* ipa-icf-gimple.h: Missing comment added.

2014-10-30  Jeff Law  <law@redhat.com>

	* config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
	argument from rtx to rtx_insn *.
	(compute_movmem_length, compute_clrmem_length): Likewise.
	(copy_fp_args, length_fp_args): Likewise.
	* config/pa/pa.c (legitimize_pic_address): Promote local variable
	"insn" from rtx to rtx_insn *.
	(legitimize_tls_address, pa_emit_move_sequence): Likewise.
	(pa_output_block_move, store_reg, store_reg_modify): Likewise.
	(set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
	(branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
	(pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
	(compute_movmem_length, compute_clrmem_length): Likewise.
	(copy_fp-args, length_fp_args): Likewise.

2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.h (MACHMODE): Treat machine_mode as a
	scalar typedef.
	(CUMULATIVE_ARGS): Guard against target includes.
	(machine_function): Likewise.

2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
	recog state after aarch64_prev_real_insn call.

2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.

2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
	(struct machine_function): Gate definition on
	!defined(USED_FOR_TARGET).

2014-10-29  DJ Delorie  <dj@redhat.com>

	* expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.

2014-10-29  Martin Liska  <mliska@suse.cz>

	PR ipa/63587
	* cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
	to local declarations.
	* function.c (add_local_decl): Implementation moved from header
	file, assert introduced for tree type.
	* function.h: Likewise.

2014-10-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* godump.c (go_format_type): Represent "float _Complex" and
	"double _Complex" as complex64 or complex128 in Go, as appropriate.

2014-10-29  Richard Biener  <rguenther@suse.de>

	* match.pd: Implement a first set of conversion patterns.
	* fold-const.c (fold_unary_loc): Remove them here.
	* tree-ssa-forwprop.c (simplify_vce): Remove.
	(pass_forwprop::execute): Do not call simplify_vce.

2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	* addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
	builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
	cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
	config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
	config/aarch64/aarch64.c, config/aarch64/aarch64.h,
	config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
	config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
	config/arc/arc.h, config/arc/predicates.md,
	config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
	config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
	config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
	config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
	config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
	config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
	config/cr16/cr16-protos.h, config/cr16/cr16.c,
	config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
	config/darwin-protos.h, config/darwin.c,
	config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
	config/epiphany/epiphany.md, config/fr30/fr30.c,
	config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
	config/h8300/h8300-protos.h, config/h8300/h8300.c,
	config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
	config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
	config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
	config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
	config/iq2000/iq2000.c, config/iq2000/iq2000.md,
	config/lm32/lm32-protos.h, config/lm32/lm32.c,
	config/m32c/m32c-protos.h, config/m32c/m32c.c,
	config/m32r/m32r-protos.h, config/m32r/m32r.c,
	config/m68k/m68k-protos.h, config/m68k/m68k.c,
	config/mcore/mcore-protos.h, config/mcore/mcore.c,
	config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
	config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
	config/mips/mips-protos.h, config/mips/mips.c,
	config/mmix/mmix-protos.h, config/mmix/mmix.c,
	config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
	config/moxie/moxie.c, config/msp430/msp430-protos.h,
	config/msp430/msp430.c, config/nds32/nds32-cost.c,
	config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
	config/nds32/nds32-protos.h, config/nds32/nds32.c,
	config/nios2/nios2-protos.h, config/nios2/nios2.c,
	config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
	config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
	config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
	config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
	config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
	config/s390/predicates.md, config/s390/s390-protos.h,
	config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
	config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
	config/sh/sh.md, config/sparc/predicates.md,
	config/sparc/sparc-protos.h, config/sparc/sparc.c,
	config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
	config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
	config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
	config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
	config/tilepro/tilepro.c, config/v850/v850-protos.h,
	config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
	config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
	config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
	dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
	doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
	dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
	except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
	fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
	fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
	genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
	graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
	internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
	ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
	libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
	loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
	lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
	lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
	output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
	recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
	regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
	rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
	sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
	simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
	targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
	tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
	tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
	tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
	tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
	tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
	tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
	tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
	var-tracking.c, varasm.c: Remove redundant enum from
	machine_mode.
	* gengtype.c (main): Treat machine_mode as a scalar typedef.
	* genmodes.c (emit_insn_modes_h): Hide inline functions if
	USED_FOR_TARGET.

2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/63340 (part 2)
	* rtl.h (invalid_mode_change_p): Delete.
	(valid_mode_changes_for_regno): New function.
	* reginfo.c (invalid_mode_change_p): Delete.
	(valid_mode_changes_for_regno): New function.
	* ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
	classes to registers that are allowed by valid_mode_changes_for_regno.
	(setup_regno_cost_classes_by_mode): Likewise.
	(print_allocno_costs): Remove invalid_mode_change_p test.
	(print_pseudo_costs, find_costs_and_classes): Likewise.

2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/63340 (part 1)
	* ira-costs.c (all_cost_classes): New variable.
	(complete_cost_classes): New function, split out from...
	(setup_cost_classes): ...here.
	(initiate_regno_cost_classes): Set up all_cost_classes.
	(restrict_cost_classes): New function.
	(setup_regno_cost_classes_by_aclass): Restrict the cost classes to
	registers that are valid for the register's mode.
	(setup_regno_cost_classes_by_mode): Model the mode cache as a
	restriction of all_cost_classes to a particular mode.
	(print_allocno_costs): Remove contains_reg_of_mode check.
	(print_pseudo_costs, find_costs_and_classes): Likewise.

2014-10-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63666
	* tree-vect-slp.c (vect_get_mask_element): Properly handle
	accessing out-of-bound elements.

2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.md
	(movhi_internal): Always detect maskmov.
	(movqi_internal): Fix target check.

2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/avx512bwintrin.h: Add new intrinsics.
	* config/i386/avx512vlbwintrin.h: Ditto.
	* config/i386/avx512vlintrin.h: Ditto.

2014-10-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* godump.c (precision_to_units): New helper function.
	(go_append_artificial_name): Ditto.
	(go_append_decl_name): Ditto.
	(go_append_bitfield): Ditto.
	(go_get_uinttype_for_precision): Ditto.
	(go_append_padding): Ditto.
	(go_force_record_alignment): Ditto.
	(go_format_type): Represent unions with an array of uints of the size
	of the alignment in go.	 This fixes the 'random' size of the union's
	representation using just the first field.
	(go_format_type): Add argument that indicates whether a record is
	nested (used for generation of artificial go names).
	(go_output_fndecl): Adapt to new go_format_type signature.
	(go_output_typedef): Ditto.
	(go_output_var): Ditto.
	(go_output_var): Prefer to output type as alias (typedef).
	(go_format_type): Bitfields in records are simulated as arrays of bytes
	in go.

	* godump.c (go_format_type): Fix handling of arrays with zero elements.

2014-10-28  Andrew MacLeod  <amacleod@redhat.com>

	* cgraph.h: Flatten.  Remove all include files.
	(symbol_table::initialize): Move to cgraph.c.
	* cgraph.c: Adjust include files.
	(symbol_table::initialize): Relocate from cgraph.h.
	* gengtype.c (open_base_files): Adjust include files.
	* gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
	included files.
	* ipa-inline.h: Remove all include files.
	* ipa-prop.h: Ditto.
	* ipa-reference.h: Ditto.
	* ipa-utils.h: Ditto:
	* lto-streamer.h: Remove cgraph.h from include list.
	* asan.c: Adjust include files.
	* auto-profile.c: Ditto.
	* bb-reorder.c: Ditto.
	* calls.c: Ditto.
	* cfgexpand.c: Ditto.
	* cgraphbuild.c: Ditto.
	* cgraphclones.c: Ditto.
	* cgraphunit.c: Ditto.
	* combine.c: Ditto.
	* coverage.c: Ditto.
	* data-streamer.c: Ditto.
	* data-streamer-in.c: Ditto.
	* data-streamer-out.c: Ditto.
	* dbxout.c: Ditto.
	* dwarf2out.c: Ditto.
	* except.c: Ditto.
	* expr.c: Ditto.
	* final.c: Ditto.
	* fold-const.c: Ditto.
	* ggc-page.c: Ditto.
	* gimple-fold.c: Ditto.
	* gimple-iterator.c: Ditto.
	* gimple-pretty-print.c: Ditto.
	* gimple-streamer-in.c: Ditto.
	* gimple-streamer-out.c: Ditto.
	* gimplify.c: Ditto.
	* ipa.c: Ditto.
	* ipa-comdats.c: Ditto.
	* ipa-cp.c: Ditto.
	* ipa-devirt.c: Ditto.
	* ipa-icf.c: Ditto.
	* ipa-icf-gimple.c: Ditto.
	* ipa-inline-analysis.c: Ditto.
	* ipa-inline.c: Ditto.
	* ipa-inline-transform.c: Ditto.
	* ipa-polymorphic-call.c: Ditto.
	* ipa-profile.c: Ditto.
	* ipa-prop.c: Ditto.
	* ipa-pure-const.c: Ditto.
	* ipa-ref.c: Ditto.
	* ipa-reference.c: Ditto.
	* ipa-split.c: Ditto.
	* ipa-utils.c: Ditto.
	* ipa-visibility.c: Ditto.
	* langhooks.c: Ditto.
	* lto-cgraph.c: Ditto.
	* lto-compress.c: Ditto.
	* lto-opts.c: Ditto.
	* lto-section-in.c: Ditto.
	* lto-section-out.c: Ditto.
	* lto-streamer.c: Ditto.
	* lto-streamer-in.c: Ditto.
	* lto-streamer-out.c: Ditto.
	* omp-low.c: Ditto.
	* opts-global.c: Ditto.
	* passes.c: Ditto.
	* predict.c: Ditto.
	* print-tree.c: Ditto.
	* profile.c: Ditto.
	* ree.c: Ditto.
	* stor-layout.c: Ditto.
	* symtab.c: Ditto.
	* toplev.c: Ditto.
	* trans-mem.c: Ditto.
	* tree.c: Ditto.
	* tree-cfg.c: Ditto.
	* tree-eh.c: Ditto.
	* tree-emutls.c: Ditto.
	* tree-inline.c: Ditto.
	* tree-nested.c: Ditto.
	* tree-pretty-print.c: Ditto.
	* tree-profile.c: Ditto.
	* tree-sra.c: Ditto.
	* tree-ssa-alias.c: Ditto.
	* tree-ssa-loop-ivcanon.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* tree-ssa-pre.c: Ditto.
	* tree-ssa-structalias.c: Ditto.
	* tree-streamer.c: Ditto.
	* tree-streamer-in.c: Ditto.
	* tree-streamer-out.c: Ditto.
	* tree-switch-conversion.c: Ditto.
	* tree-tailcall.c: Ditto.
	* tree-vect-data-refs.c: Ditto.
	* tree-vectorizer.c: Ditto.
	* tree-vect-stmts.c: Ditto.
	* tsan.c: Ditto.
	* ubsan.c: Ditto.
	* value-prof.c: Ditto.
	* varasm.c: Ditto.
	* varpool.c: Ditto.
	* config/arm/arm.c: Ditto.
	* config/bfin/bfin.c: Ditto.
	* config/c6x/c6x.c: Ditto.
	* config/cris/cris.c: Ditto.
	* config/darwin.c: Ditto.
	* config/darwin-c.c: Ditto.
	* config/i386/i386.c: Ditto.
	* config/i386/winnt.c: Ditto.
	* config/microblaze/microblaze.c: Ditto.
	* config/mips/mips.c: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/rx/rx.c: Ditto.

2014-10-28  Richard Biener  <rguenther@suse.de>

	* gimple-fold.h (follow_single_use_edges): Declare.
	* gimple-fold.c (follow_single_use_edges): New function.
	(gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
	* tree-ssa-propagate.c
	(substitute_and_fold_dom_walker::before_dom_children): Allow
	following single-use edges when folding stmts we propagated into.

2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/avx512bwintrin.h: New.
	* config/i386/avx512dqintrin.h: Ditto.
	* config/i386/avx512vlbwintrin.h: Ditto.
	* config/i386/avx512vldqintrin.h: Ditto.
	* config/i386/avx512vlintrin.h: Ditto.
	* config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
	avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.

2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
	avx_shufpd256_mask, avx_vpermilv2df_mask.

2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_init_mmx_sse_builtins):
	Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
	__builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
	__builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
	__builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
	__builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
	__builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
	__builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
	__builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
	__builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
	__builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
	__builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
	__builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
	__builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
	__builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
	__builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
	__builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
	__builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
	__builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.

2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
	IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
	IX86_BUILTIN_GATHER3ALTDIV8SI.
	(ix86_expand_builtin):
	Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
	IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
	IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
	IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
	IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
	IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
	IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
	IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
	IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
	IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
	IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
	IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
	IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
	IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
	IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
	IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
	IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
	IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
	(ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
	V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.

2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386-builtin-types.def
	(SHORT): New.
	(V32HI): Ditto.
	(V12QI): Ditto.
	(V14QI): Ditto.
	(V32SI): Ditto.
	(V8UDI): Ditto.
	(V16USI): Ditto.
	(V32UHI): Ditto.
	(PSHORT): Ditto.
	(PV32QI): Ditto.
	(PV32HI): Ditto.
	(PV64QI): Ditto.
	(PCV8HI): Ditto.
	(PCV16QI): Ditto.
	(PCV16HI): Ditto.
	(PCV32QI): Ditto.
	(PCV32HI): Ditto.
	(PCV64QI): Ditto.
	(V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
	(V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
	(V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
	(V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
	(V16SF_FTYPE_V16HI): Ditto.
	(V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
	(V16SF_FTYPE_V16SI): Ditto.
	(V4DI_FTYPE_V4DI): Ditto.
	(V16SI_FTYPE_V16SF): Ditto.
	(V8DI_FTYPE_PV2DI): Ditto.
	(V8DF_FTYPE_PV2DF): Ditto.
	(V4DI_FTYPE_PV2DI): Ditto.
	(V4DF_FTYPE_PV2DF): Ditto.
	(V16SI_FTYPE_PV2SI): Ditto.
	(V16SF_FTYPE_PV2SF): Ditto.
	(V8SF_FTYPE_FLOAT): Ditto.
	(V4SF_FTYPE_FLOAT): Ditto.
	(V4DF_FTYPE_DOUBLE): Ditto.
	(V8SF_FTYPE_PV4SF): Ditto.
	(V8SI_FTYPE_PV4SI): Ditto.
	(V4SI_FTYPE_PV2SI): Ditto.
	(V8SF_FTYPE_PV2SF): Ditto.
	(V8SI_FTYPE_PV2SI): Ditto.
	(V16SF_FTYPE_PV8SF): Ditto.
	(V16SI_FTYPE_PV8SI): Ditto.
	(V8DI_FTYPE_V8SF): Ditto.
	(V4DI_FTYPE_V4SF): Ditto.
	(V2DI_FTYPE_V4SF): Ditto.
	(V64QI_FTYPE_QI): Ditto.
	(V32HI_FTYPE_HI): Ditto.
	(V16UHI_FTYPE_V16UHI): Ditto.
	(V32UHI_FTYPE_V32UHI): Ditto.
	(V2UDI_FTYPE_V2UDI): Ditto.
	(V4UDI_FTYPE_V4UDI): Ditto.
	(V8UDI_FTYPE_V8UDI): Ditto.
	(V4USI_FTYPE_V4USI): Ditto.
	(V16USI_FTYPE_V16USI): Ditto.
	(V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
	(V2DF_FTYPE_V8DF_INT): Ditto.
	(V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
	(V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
	(V8DF_FTYPE_V8DF_INT): Ditto.
	(V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
	(V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
	(V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
	(V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
	(V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
	(V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
	(V8DI_FTYPE_V8DI_INT): Ditto.
	(V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
	(V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
	(V8SF_FTYPE_V16SF_INT): Ditto.
	(V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
	(V64QI_FTYPE_V32HI_V32HI): Ditto.
	(V32HI_FTYPE_V16SI_V16SI): Ditto.
	(V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
	(V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
	(V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
	(V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
	(V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
	(V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
	(V32HI_FTYPE_V64QI_V64QI): Ditto.
	(V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
	(V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
	(V32HI_FTYPE_V32HI_V32HI): Ditto.
	(V32HI_FTYPE_V32HI_INT): Ditto.
	(V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
	(V16SI_FTYPE_V32HI_V32HI): Ditto.
	(V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
	(V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
	(V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
	(V8SI_FTYPE_V16SI_INT): Ditto.
	(V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
	(V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
	(V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
	(V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
	(V8DI_FTYPE_V16SI_V16SI): Ditto.
	(V8DI_FTYPE_V64QI_V64QI): Ditto.
	(V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
	(V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
	(V2DI_FTYPE_V8DI_INT): Ditto.
	(V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
	(QI_FTYPE_QI): Ditto.
	(SI_FTYPE_SI): Ditto.
	(DI_FTYPE_DI): Ditto.
	(HI_FTYPE_V16QI): Ditto.
	(SI_FTYPE_V32QI): Ditto.
	(DI_FTYPE_V64QI): Ditto.
	(QI_FTYPE_V8HI): Ditto.
	(HI_FTYPE_V16HI): Ditto.
	(SI_FTYPE_V32HI): Ditto.
	(QI_FTYPE_V4SI): Ditto.
	(QI_FTYPE_V8SI): Ditto.
	(HI_FTYPE_V16SI): Ditto.
	(QI_FTYPE_V2DI): Ditto.
	(QI_FTYPE_V4DI): Ditto.
	(QI_FTYPE_V8DI): Ditto.
	(V16QI_FTYPE_HI): Ditto.
	(V32QI_FTYPE_SI): Ditto.
	(V64QI_FTYPE_DI): Ditto.
	(V8HI_FTYPE_QI): Ditto.
	(V16HI_FTYPE_HI): Ditto.
	(V32HI_FTYPE_SI): Ditto.
	(V4SI_FTYPE_QI): Ditto.
	(V4SI_FTYPE_HI): Ditto.
	(V8SI_FTYPE_QI): Ditto.
	(V8SI_FTYPE_HI): Ditto.
	(V2DI_FTYPE_QI): Ditto.
	(V4DI_FTYPE_QI): Ditto.
	(QI_FTYPE_QI_QI): Ditto.
	(SI_FTYPE_SI_SI): Ditto.
	(DI_FTYPE_DI_DI): Ditto.
	(QI_FTYPE_QI_INT): Ditto.
	(SI_FTYPE_SI_INT): Ditto.
	(DI_FTYPE_DI_INT): Ditto.
	(HI_FTYPE_V16QI_V16QI): Ditto.
	(HI_FTYPE_V16QI_V16QI_HI): Ditto.
	(HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
	(SI_FTYPE_V32QI_V32QI): Ditto.
	(SI_FTYPE_V32QI_V32QI_SI): Ditto.
	(SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
	(DI_FTYPE_V64QI_V64QI): Ditto.
	(DI_FTYPE_V64QI_V64QI_DI): Ditto.
	(DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
	(QI_FTYPE_V8HI_V8HI): Ditto.
	(QI_FTYPE_V8HI_V8HI_QI): Ditto.
	(QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
	(HI_FTYPE_V16HI_V16HI): Ditto.
	(HI_FTYPE_V16HI_V16HI_HI): Ditto.
	(HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
	(SI_FTYPE_V32HI_V32HI): Ditto.
	(SI_FTYPE_V32HI_V32HI_SI): Ditto.
	(SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
	(QI_FTYPE_V4SI_V4SI): Ditto.
	(QI_FTYPE_V4SI_V4SI_QI): Ditto.
	(QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
	(QI_FTYPE_V8SI_V8SI): Ditto.
	(QI_FTYPE_V8SI_V8SI_QI): Ditto.
	(QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
	(QI_FTYPE_V2DI_V2DI): Ditto.
	(QI_FTYPE_V2DI_V2DI_QI): Ditto.
	(QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
	(QI_FTYPE_V4DI_V4DI): Ditto.
	(QI_FTYPE_V4DI_V4DI_QI): Ditto.
	(QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
	(V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
	(V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
	(V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
	(V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
	(V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
	(V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
	(V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
	(V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
	(V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
	(V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
	(V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
	(V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
	(V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
	(V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
	(V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
	(V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
	(V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
	(V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
	(V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
	(V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
	(V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
	(V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
	(V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
	(V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
	(V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
	(V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
	(V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
	(V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
	(V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
	(V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
	(V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
	(V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
	(V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
	(V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
	(V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
	(V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
	(V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
	(V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
	(V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
	(V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
	(V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
	(V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
	(V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
	(V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
	(V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
	(V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
	(V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
	(V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
	(V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
	(V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
	(V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
	(V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
	(V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
	(V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
	(V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
	(V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
	(V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
	(V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
	(V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
	(V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
	(V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
	(V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
	(V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
	(V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
	(V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
	(V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
	(V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
	(V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
	(V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
	(V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
	(V8SI_FTYPE_SI_V8SI_QI): Ditto.
	(V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
	(V4SI_FTYPE_SI_V4SI_QI): Ditto.
	(V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
	(V4DI_FTYPE_DI_V4DI_QI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
	(V2DI_FTYPE_DI_V2DI_QI): Ditto.
	(V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
	(V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
	(V64QI_FTYPE_QI_V64QI_DI): Ditto.
	(V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
	(V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
	(V32QI_FTYPE_QI_V32QI_SI): Ditto.
	(V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
	(V16QI_FTYPE_QI_V16QI_HI): Ditto.
	(V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
	(V32HI_FTYPE_HI_V32HI_SI): Ditto.
	(V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
	(V16HI_FTYPE_HI_V16HI_HI): Ditto.
	(V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
	(V8HI_FTYPE_HI_V8HI_QI): Ditto.
	(V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
	(V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
	(V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
	(V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
	(V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
	(V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
	(V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
	(V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
	(V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
	(V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
	(V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
	(V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
	(V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
	(V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
	(V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
	(V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
	(V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
	(V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
	(V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
	(V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
	(V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
	(V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
	(V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
	(V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
	(V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
	(V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
	(V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
	(V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
	(V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
	(V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
	(V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
	(V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
	(V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
	(V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
	(V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
	(V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
	(V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
	(V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
	(V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
	(V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
	(V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
	(V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
	(VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
	(VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
	(VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
	(VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
	(VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
	(VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
	(VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
	(VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
	(VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
	(VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
	(VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
	(VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
	(VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
	(VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
	(VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
	(VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
	(VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
	(VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
	(VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
	(VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
	(VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
	(VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
	(VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
	(VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
	(V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
	(V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
	(V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
	(V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
	(V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
	(V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
	(V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
	(V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
	(V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
	(V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
	(V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
	(V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
	(V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
	(V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
	(V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
	(V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
	(V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
	(V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
	(V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
	(V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
	(V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
	(V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
	(V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
	(V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
	(V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
	(V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
	(V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
	(V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
	(V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
	(V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
	(V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
	(V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
	(V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
	(V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
	(V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
	(V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
	(QI_FTYPE_V8DF_INT): Ditto.
	(QI_FTYPE_V4DF_INT): Ditto.
	(QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
	(QI_FTYPE_V2DF_INT): Ditto.
	(HI_FTYPE_V16SF_INT): Ditto.
	(QI_FTYPE_V8SF_INT): Ditto.
	(QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
	(QI_FTYPE_V4SF_INT): Ditto.
	(QI_FTYPE_V8DF_INT_QI): Ditto.
	(QI_FTYPE_V4DF_INT_QI): Ditto.
	(QI_FTYPE_V2DF_INT_QI): Ditto.
	(HI_FTYPE_V16SF_INT_HI): Ditto.
	(QI_FTYPE_V8SF_INT_QI): Ditto.
	(QI_FTYPE_V4SF_INT_QI): Ditto.
	(V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
	(V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
	(V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
	(V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
	(V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
	(V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
	(V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
	(V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
	(V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
	(V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
	(V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
	(V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
	(V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
	(V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
	(V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
	(V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
	(V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
	(V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
	(V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
	(V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
	(V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
	(V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
	(V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
	(V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
	(VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
	(VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
	(VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
	(VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
	(VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
	(VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
	(VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
	(VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
	(VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
	(VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
	(VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
	(VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
	(VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
	(VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
	(VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
	(VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
	(V8DI_FTYPE_V8DI_INT): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
	(V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
	(V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
	(V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
	(V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
	(V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
	(V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
	(V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
	(V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
	(V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
	(V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
	(V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
	(V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
	(V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
	* config/i386/i386.c (ix86_builtins):
	Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
	IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
	IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
	IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
	IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
	IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
	IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
	IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
	IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
	IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
	IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
	IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
	IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
	IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
	IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
	IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
	IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
	IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
	IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
	IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
	IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
	IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
	IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
	IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
	IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
	IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
	IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
	IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
	IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
	IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
	IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
	IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
	IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
	IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
	IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
	IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
	IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
	IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
	IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
	IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
	IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
	IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
	IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
	IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
	IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
	IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
	IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
	IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
	IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
	IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
	IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
	IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
	IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
	IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
	IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
	IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
	IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
	IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
	IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
	IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
	IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
	IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
	IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
	IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
	IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
	IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
	IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
	IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
	IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
	IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
	IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
	IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
	IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
	IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
	IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
	IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
	IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
	IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
	IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
	IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
	IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
	IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
	IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
	IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
	IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
	IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
	IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
	IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
	IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
	IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
	IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
	IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
	IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
	IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
	IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
	IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
	IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
	IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
	IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
	IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
	IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
	IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
	IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
	IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
	IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
	IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
	IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
	IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
	IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
	IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
	IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
	IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
	IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
	IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
	IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
	IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
	IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
	IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
	IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
	IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
	IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
	IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
	IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
	IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
	IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
	IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
	IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
	IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
	IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
	IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
	IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
	IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
	IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
	IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
	IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
	IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
	IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
	IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
	IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
	IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
	IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
	IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
	IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
	IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
	IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
	IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
	IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
	IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
	IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
	IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
	IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
	IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
	IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
	IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
	IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
	IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
	IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
	IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
	IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
	IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
	IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
	IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
	IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
	IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
	IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
	IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
	IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
	IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
	IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
	IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
	IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
	IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
	IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
	IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
	IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
	IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
	IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
	IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
	IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
	IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
	IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
	IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
	IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
	IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
	IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
	IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
	IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
	IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
	IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
	IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
	IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
	IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
	IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
	IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
	IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
	IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
	IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
	IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
	IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
	IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
	IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
	IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
	IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
	IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
	IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
	IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
	IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
	IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
	IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
	IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
	IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
	IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
	IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
	IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
	IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
	IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
	IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
	IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
	IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
	IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
	IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
	IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
	IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
	IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
	IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
	IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
	IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
	IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
	IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
	IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
	IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
	IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
	IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
	IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
	IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
	IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
	IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
	IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
	IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
	IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
	IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
	IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
	IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
	IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
	IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
	IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
	IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
	IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
	IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
	IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
	IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
	IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
	IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
	IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
	IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
	IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
	IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
	IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
	IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
	IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
	IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
	IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
	IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
	IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
	IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
	IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
	IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
	IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
	IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
	IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
	IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
	IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
	IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
	IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
	IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
	IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
	IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
	IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
	IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
	IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
	IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
	IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
	IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
	IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
	IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
	IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
	IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
	IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
	IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
	IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
	IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
	IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
	IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
	IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
	IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
	IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
	IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
	IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
	IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
	IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
	IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
	IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
	IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
	IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
	IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
	IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
	IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
	IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
	IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
	IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
	IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
	IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
	IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
	IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
	IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
	IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
	IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
	IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
	IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
	IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
	IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
	IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
	IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
	IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
	IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
	IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
	IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
	IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
	IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
	IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
	IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
	IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
	IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
	IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
	IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
	IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
	IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
	IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
	IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
	IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
	IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
	IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
	IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
	IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
	IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
	IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
	IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
	IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
	IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
	IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
	IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
	IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
	IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
	IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
	IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
	IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
	IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
	IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
	IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
	IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
	IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
	IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
	IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
	IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
	IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
	IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
	IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
	IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
	IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
	IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
	IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
	IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
	IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
	IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
	IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
	IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
	IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
	IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
	IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
	IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
	IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
	IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
	IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
	IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
	IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
	IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
	IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
	IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
	IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
	IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
	IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
	IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
	IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
	IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
	IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
	IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
	IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
	IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
	IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
	IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
	IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
	IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
	IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
	IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
	IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
	IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
	IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
	IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
	IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
	IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
	IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
	IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
	IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
	IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
	IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
	IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
	IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
	IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
	IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
	IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
	IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
	IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
	IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
	IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
	IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
	IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
	IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
	IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
	IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
	IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
	IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
	IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
	IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
	IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
	IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
	IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
	IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
	IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
	IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
	IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
	IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
	IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
	IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
	IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
	IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
	IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
	IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
	IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
	IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
	IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
	IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
	IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
	IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
	IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
	IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
	IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
	IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
	IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
	IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
	IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
	IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
	IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
	IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
	IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
	IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
	IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
	IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
	IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
	IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
	IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
	IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
	IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
	IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
	IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
	IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
	IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
	IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
	IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
	IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
	IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
	IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
	IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
	IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
	IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
	IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
	IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
	IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
	IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
	IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
	IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
	IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
	(bdesc_special_args):
	Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
	__builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
	__builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
	__builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
	__builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
	__builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
	__builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
	__builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
	__builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
	__builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
	__builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
	__builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
	__builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
	__builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
	__builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
	__builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
	__builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
	__builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
	__builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
	__builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
	__builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
	__builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
	__builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
	__builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
	__builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
	__builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
	__builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
	__builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
	__builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
	__builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
	__builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
	__builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
	__builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
	__builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
	__builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
	__builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
	__builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
	__builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
	__builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
	__builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
	__builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
	__builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
	__builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
	__builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
	__builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
	__builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
	__builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
	__builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
	__builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
	__builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
	__builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
	__builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
	__builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
	__builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
	__builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
	__builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
	__builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
	__builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
	__builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
	__builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
	__builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
	__builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
	__builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
	__builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
	__builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
	__builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
	__builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
	__builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
	__builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
	__builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
	__builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
	__builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
	__builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
	__builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
	__builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
	__builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
	__builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
	__builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
	__builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
	__builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
	__builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
	__builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
	__builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
	__builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
	__builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
	__builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
	__builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
	__builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
	__builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
	__builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
	__builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
	__builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
	__builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
	__builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
	__builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
	__builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
	__builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
	__builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
	__builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
	__builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
	__builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
	__builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
	__builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
	__builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
	__builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
	__builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
	__builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
	__builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
	__builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
	__builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
	__builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
	__builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
	__builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
	__builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
	__builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
	__builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
	__builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
	__builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
	__builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
	__builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
	__builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
	__builtin_ia32_reducesd, __builtin_ia32_reducess,
	__builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
	__builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
	__builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
	__builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
	__builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
	__builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
	__builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
	__builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
	__builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
	__builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
	__builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
	__builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
	__builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
	__builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
	__builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
	__builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
	__builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
	__builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
	__builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
	__builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
	__builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
	__builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
	__builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
	__builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
	__builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
	__builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
	__builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
	__builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
	__builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
	__builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
	__builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
	__builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
	__builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
	__builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
	__builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
	__builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
	__builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
	__builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
	__builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
	__builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
	__builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
	__builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
	__builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
	__builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
	__builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
	__builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
	__builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
	__builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
	__builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
	__builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
	__builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
	__builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
	__builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
	__builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
	__builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
	__builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
	__builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
	__builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
	__builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
	__builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
	__builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
	__builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
	__builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
	__builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
	__builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
	__builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
	__builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
	__builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
	__builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
	__builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
	__builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
	__builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
	__builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
	__builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
	__builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
	__builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
	__builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
	__builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
	__builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
	__builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
	__builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
	__builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
	__builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
	__builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
	__builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
	__builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
	__builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
	__builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
	__builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
	__builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
	__builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
	__builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
	__builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
	__builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
	__builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
	__builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
	__builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
	__builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
	__builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
	__builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
	__builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
	__builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
	__builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
	__builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
	__builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
	__builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
	__builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
	__builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
	__builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
	__builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
	__builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
	__builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
	__builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
	__builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
	__builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
	__builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
	__builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
	__builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
	__builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
	__builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
	__builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
	__builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
	__builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
	__builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
	__builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
	__builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
	__builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
	__builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
	__builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
	__builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
	__builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
	__builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
	__builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
	__builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
	__builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
	__builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
	__builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
	__builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
	__builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
	__builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
	__builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
	__builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
	__builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
	__builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
	__builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
	__builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
	__builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
	__builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
	__builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
	__builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
	__builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
	__builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
	__builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
	__builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
	__builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
	__builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
	__builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
	__builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
	__builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
	__builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
	__builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
	__builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
	__builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
	__builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
	__builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
	__builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
	__builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
	__builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
	__builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
	__builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
	__builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
	__builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
	__builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
	__builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
	__builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
	__builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
	__builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
	__builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
	__builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
	__builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
	__builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
	__builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
	__builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
	__builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
	__builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
	__builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
	__builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
	__builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
	__builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
	__builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
	__builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
	__builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
	__builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
	__builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
	__builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
	__builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
	__builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
	__builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
	__builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
	__builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
	__builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
	__builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
	__builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
	__builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
	__builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
	__builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
	__builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
	__builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
	__builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
	__builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
	__builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
	__builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
	__builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
	__builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
	__builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
	__builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
	__builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
	__builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
	__builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
	__builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
	__builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
	__builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
	__builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
	__builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
	__builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
	__builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
	__builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
	__builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
	__builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
	__builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
	__builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
	__builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
	__builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
	__builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
	__builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
	__builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
	__builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
	__builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
	__builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
	__builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
	__builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
	__builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
	__builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
	__builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
	__builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
	__builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
	__builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
	__builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
	__builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
	__builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
	__builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
	__builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
	__builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
	__builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
	__builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
	__builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
	__builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
	__builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
	__builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
	__builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
	__builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
	__builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
	__builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
	__builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
	__builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
	__builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
	__builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
	__builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
	__builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
	__builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
	__builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
	__builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
	__builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
	__builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
	__builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
	__builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
	__builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
	__builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
	__builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
	__builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
	__builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
	__builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
	__builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
	__builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
	__builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
	__builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
	__builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
	__builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
	__builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
	__builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
	__builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
	__builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
	__builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
	__builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
	__builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
	__builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
	__builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
	__builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
	__builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
	__builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
	__builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
	__builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
	__builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
	__builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
	__builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
	__builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
	__builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
	__builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
	__builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
	__builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
	__builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
	__builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
	__builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
	__builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
	__builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
	__builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
	__builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
	__builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
	__builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
	__builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
	__builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
	__builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
	__builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
	__builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
	__builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
	__builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
	__builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
	__builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
	__builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
	__builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
	__builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
	__builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
	__builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
	__builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
	__builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
	__builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
	__builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
	__builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
	__builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
	__builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
	__builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
	__builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
	__builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
	__builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
	__builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
	__builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
	__builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
	__builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
	__builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
	__builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
	__builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
	__builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
	__builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
	__builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
	__builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
	(ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
	DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
	V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
	V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
	HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
	HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
	V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
	SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
	QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
	V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
	V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
	V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
	V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
	V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
	V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
	V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
	V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
	V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
	V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
	V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
	V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
	V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
	V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
	V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
	V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
	V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
	V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
	V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
	V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
	V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
	V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
	V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
	V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
	V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
	HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
	DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
	HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
	QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
	QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
	V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
	V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
	V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
	V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
	V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
	V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
	V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
	V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
	V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
	V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
	V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
	V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
	V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
	V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
	V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
	V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
	V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
	V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
	V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
	V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
	QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
	HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
	QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
	V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
	V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
	V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
	V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
	V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
	V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
	V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
	V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
	V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
	V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
	V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
	V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
	V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
	V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
	V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
	V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
	V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
	V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
	V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
	V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
	QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
	QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
	QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
	SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
	SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
	QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
	V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
	V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
	V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
	V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
	V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
	V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
	V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
	V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
	V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
	V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
	V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
	V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
	V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
	V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
	V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
	V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
	V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
	V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
	V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
	V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
	V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
	V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
	V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
	V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
	V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
	VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
	VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
	VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
	VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
	VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
	VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
	VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
	VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
	VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
	VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
	VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
	VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
	V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
	V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
	V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
	V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
	V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
	V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
	V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.

2014-10-28  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
	type for the left shift in CASE_CONVERT case.

2014-10-28  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* asan.h (asan_intercepted_p): New function.
	* asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
	hash value construction.  Call iterative_hash_expr instead of explicit
	hash building.
	(asan_mem_ref_hasher::equal): Change condition.
	(has_mem_ref_been_instrumented): Likewise.
	(update_mem_ref_hash_table): Likewise.
	(maybe_update_mem_ref_hash_table): New function.
	(instrument_strlen_call): Removed.
	(get_mem_refs_of_builtin_call): Handle new parameter.
	(instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
	of instrument_mem_region_access if intercepted_p is true.
	(instrument_mem_region_access): Instrument only base with len instead of
	base and end with 1.
	(build_check_stmt): Remove start_instrumented and end_instrumented
	parameters.
	(enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
	ASAN_CHECK_END_INSTRUMENTED.  Change ASAN_CHECK_LAST.
	(asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
	* builtins.c (expand_builtin): Include asan.h.  Don't expand
	string/memory builtin functions that have interceptors if ASan is
	enabled.

2014-10-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/63665
	* fold-const.c (fold_comparison): Properly guard simplifying
	against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.

2014-10-28  Alan Lawrence  <alan.lawrence@arm.com>

	* expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
	* fold-const.c (const_binop): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* tree-inline.c (estimate_operator_cost): Likewise.
	* tree-vect-generic.c (expand_vector_operations_1): Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	(expand_vec_shift_expr): Likewise, update comment.
	* tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
	* optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
	* optabs.def: Remove vec_shl_optab.
	* doc/md.texi: Remove references to vec_shr_m.

2014-10-28  Yury Gribov  <y.gribov@samsung.com>

	* asan.c (report_error_func): Add noabort path.
	(check_func): Ditto.  Formatting.
	(asan_expand_check_ifn): Handle noabort path.
	* common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
	to default value.
	* doc/invoke.texi (-fsanitize-recover=): Mention KASan.
	* opts.c (finish_options): Reword comment.
	* sanitizer.def: Add noabort ASan builtins.

2014-10-28  Yury Gribov  <y.gribov@samsung.com>

	* asan.c (set_asan_shadow_offset): New function.
	(asan_shadow_offset): Likewise.
	(asan_emit_stack_protection): Call asan_shadow_offset.
	(build_shadow_mem_access): Likewise.
	* asan.h (set_asan_shadow_offset): Declare.
	* common.opt (fasan-shadow-offset): New option.
	(frandom-seed): Fixed parameter name.
	* doc/invoke.texi (fasan-shadow-offset): Describe new option.
	(frandom-seed): Fixed parameter name.
	* opts-global.c (handle_common_deferred_options): Handle
	-fasan-shadow-offset.
	* opts.c (common_handle_option): Likewise.

2014-10-27  Jiong Wang <jiong.wang@arm.com>

	PR target/63442
	* optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".

2014-10-27  DJ Delorie  <dj@redhat.com>

	* tree.c (build_common_tree_nodes): Don't even store the
	__int128 types if they're not supported.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/i386/i386.c (ix86_loop_memcount): Delete.
	(ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/i386/i386.c (find_constant_1): Delete.
	(find_constant): Use FOR_EACH_SUBRTX.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/i386/i386.c (extended_reg_mentioned_1): Delete.
	(x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/i386/i386.c: Include rtl-iter.h
	(ix86_check_avx256_register): Take a const_rtx and return a bool.
	(ix86_check_avx256_stores): Update call accordingly.
	(ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
	(ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
	Take an rtx and return a bool.
	* config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
	Use FOR_EACH_SUBRTX_VAR.
	* config/alpha/predicates.md (some_small_symbolic_operand): Update
	accordingly.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
	a bool.
	* config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
	(alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/alpha/alpha.c (alpha_set_memflags_1): Delete.
	(alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/alpha/alpha.c: Include rtl-iter.h.
	(split_small_symbolic_operand_1): Delete.
	(split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/s390/s390.c: Include rtl-iter.h.
	(check_dpu): Delete.
	(s390_loop_unroll_adjust): Only iterate over patterns.
	Use FOR_EACH_SUBRTX.

2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>

	* config/spu/spu.c: Include rtl-iter.h
	(ea_symbol_ref): Replace with...
	(ea_symbol_ref_p): ...this new function.
	(spu_legitimate_address_p): Update call accordingly.
	(spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.

2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* aclocal.m4, configure: Rebuild.
	* Makefile.in (aclocal_deps): Add gcc-plugin.m4.
	* configure.ac: Use GCC_ENABLE_PLUGINS.
	* stor-layout.c (finish_bitfield_layout): Now public.  Change
	argument type to 'tree'.
	(finish_record_layout): Update.
	* stor-layout.h (finish_bitfield_layout): Declare.

2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
	* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
	Restore, enable for bigendian, update to use __builtin..._scal...

2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
	reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
	(reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
	reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.

	* config/aarch64/aarch64-simd.md
	(reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
	(reduc_<maxmin_uns>_internal<mode>): ...this.
	(reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
	(reduc_<maxmin_uns>_scal_<mode>): New (*2).

	(reduc_<maxmin_uns>_v2si): Combine with below, renaming...
	(reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
	(reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).

	* config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
	vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
	vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
	vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
	vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
	vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
	vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
	__builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.

2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd-builtins.def
	(reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
	Remove.
	(reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.

	* config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
	(reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.

	(reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
	(aarch64_reduc_plus_internal<mode>): ...this.

	(reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
	(aarch64_reduc_plus_internalv2si): ...this.

	(reduc_splus_<mode>/V2F): Rename to...
	(aarch64_reduc_plus_internal<mode>): ...this.

	* config/aarch64/iterators.md
	(UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
	(UNSPEC_ADDV): New.
	(sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.

	* config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
	vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
	vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
	vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
	__builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.

2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/61114
	* doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
	optabs, and note in reduc_[us](plus|min|max) to prefer the former.

	* expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
	back to old reduc_... + BIT_FIELD_REF only if not.

	* optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
	return the reduce-to-scalar (reduc_..._scal) optab.
	(scalar_reduc_to_vector): New.

	* optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
	reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
	New.

	* optabs.h (scalar_reduc_to_vector): Declare.

	* tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
	to either scalar or vector.

2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>

	PR tree-optimization/61114
	* expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
	extract_bit_field around optab result.

	* fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
	scalar not vector.

	* tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
	for REDUC_{MIN,MAX,PLUS}_EXPR.

	* tree-vect-loop.c (vect_analyze_loop): Update comment.
	(vect_create_epilog_for_reduction): For direct vector reduction, use
	result of tree code directly without extract_bit_field.

	* tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
	comment.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* basic-block.h: Remove all includes.
	(enum profile_status_d, struct control_flow_graph): Move to cfg.h
	* cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
	* Makefile.in (GTFILES): Add cfg.h to list.
	* cgraph.h (symbol_table::create_empty): Move to cgraph.c.
	* cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
	* genconditions.c (write_header): Add predict.h and basic-block.h to
	lits of includes.
	* genemit.c (main): Ditto.
	* genpreds.c (write_insn_preds_c): Ditto.
	* genrecog.c (write_header): Ditto.
	* gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
	to list of includes.
	* alias.c: Adjust include files.
	* asan.c: Ditto.
	* auto-inc-dec.c: Ditto.
	* auto-profile.c: Ditto.
	* bb-reorder.c: Ditto.
	* bt-load.c: Ditto.
	* builtins.c: Ditto.
	* caller-save.c: Ditto.
	* calls.c: Ditto.
	* cfg.c: Ditto.
	* cfganal.c: Ditto.
	* cfgbuild.c: Ditto.
	* cfgcleanup.c: Ditto.
	* cfgexpand.c: Ditto.
	* cfghooks.c: Ditto.
	* cfgloop.c: Ditto.
	* cfgloopanal.c: Ditto.
	* cfgloopmanip.c: Ditto.
	* cfgrtl.c: Ditto.
	* cgraphbuild.c: Ditto.
	* cgraphclones.c: Ditto.
	* cgraphunit.c: Ditto.
	* combine-stack-adj.c: Ditto.
	* combine.c: Ditto.
	* compare-elim.c: Ditto.
	* coverage.c: Ditto.
	* cprop.c: Ditto.
	* cse.c: Ditto.
	* cselib.c: Ditto.
	* data-streamer-in.c: Ditto.
	* data-streamer-out.c: Ditto.
	* data-streamer.c: Ditto.
	* dce.c: Ditto.
	* ddg.c: Ditto.
	* ddg.h: Ditto.
	* df-core.c: Ditto.
	* df-problems.c: Ditto.
	* df-scan.c: Ditto.
	* df.h: Ditto.
	* dojump.c: Ditto.
	* dominance.c: Ditto.
	* domwalk.c: Ditto.
	* dse.c: Ditto.
	* dwarf2cfi.c: Ditto.
	* emit-rtl.c: Ditto.
	* et-forest.c: Ditto.
	* except.c: Ditto.
	* expmed.c: Ditto.
	* expr.c: Ditto.
	* final.c: Ditto.
	* fold-const.c: Ditto.
	* function.c: Ditto.
	* fwprop.c: Ditto.
	* gcc-plugin.h: Ditto.
	* gcse.c: Ditto.
	* generic-match-head.c: Ditto.
	* ggc-page.c: Ditto.
	* gimple-builder.c: Ditto.
	* gimple-expr.c: Ditto.
	* gimple-fold.c: Ditto.
	* gimple-iterator.c: Ditto.
	* gimple-low.c: Ditto.
	* gimple-match-head.c: Ditto.
	* gimple-pretty-print.c: Ditto.
	* gimple-ssa-isolate-paths.c: Ditto.
	* gimple-ssa-strength-reduction.c: Ditto.
	* gimple-streamer-in.c: Ditto.
	* gimple-streamer-out.c: Ditto.
	* gimple-streamer.h: Ditto.
	* gimple-walk.c: Ditto.
	* gimple.c: Ditto.
	* gimplify-me.c: Ditto.
	* gimplify.c: Ditto.
	* graph.c: Ditto.
	* graphite-blocking.c: Ditto.
	* graphite-clast-to-gimple.c: Ditto.
	* graphite-dependences.c: Ditto.
	* graphite-interchange.c: Ditto.
	* graphite-isl-ast-to-gimple.c: Ditto.
	* graphite-optimize-isl.c: Ditto.
	* graphite-poly.c: Ditto.
	* graphite-scop-detection.c: Ditto.
	* graphite-sese-to-poly.c: Ditto.
	* graphite.c: Ditto.
	* haifa-sched.c: Ditto.
	* hw-doloop.c: Ditto.
	* ifcvt.c: Ditto.
	* init-regs.c: Ditto.
	* internal-fn.c: Ditto.
	* ipa-cp.c: Ditto.
	* ipa-devirt.c: Ditto.
	* ipa-icf-gimple.c: Ditto.
	* ipa-icf.c: Ditto.
	* ipa-inline-analysis.c: Ditto.
	* ipa-inline.c: Ditto.
	* ipa-polymorphic-call.c: Ditto.
	* ipa-profile.c: Ditto.
	* ipa-prop.c: Ditto.
	* ipa-pure-const.c: Ditto.
	* ipa-reference.c: Ditto.
	* ipa-split.c: Ditto.
	* ipa-utils.c: Ditto.
	* ipa.c: Ditto.
	* ira-build.c: Ditto.
	* ira-color.c: Ditto.
	* ira-conflicts.c: Ditto.
	* ira-costs.c: Ditto.
	* ira-emit.c: Ditto.
	* ira-lives.c: Ditto.
	* ira.c: Ditto.
	* jump.c: Ditto.
	* lcm.c: Ditto.
	* loop-doloop.c: Ditto.
	* loop-init.c: Ditto.
	* loop-invariant.c: Ditto.
	* loop-iv.c: Ditto.
	* loop-unroll.c: Ditto.
	* lower-subreg.c: Ditto.
	* lra-assigns.c: Ditto.
	* lra-coalesce.c: Ditto.
	* lra-constraints.c: Ditto.
	* lra-eliminations.c: Ditto.
	* lra-lives.c: Ditto.
	* lra-spills.c: Ditto.
	* lra.c: Ditto.
	* lto-cgraph.c: Ditto.
	* lto-compress.c: Ditto.
	* lto-opts.c: Ditto.
	* lto-section-in.c: Ditto.
	* lto-section-out.c: Ditto.
	* lto-streamer-in.c: Ditto.
	* lto-streamer-out.c: Ditto.
	* lto-streamer.c: Ditto.
	* mcf.c: Ditto.
	* mode-switching.c: Ditto.
	* modulo-sched.c: Ditto.
	* omp-low.c: Ditto.
	* optabs.c: Ditto.
	* opts-global.c: Ditto.
	* passes.c: Ditto.
	* postreload-gcse.c: Ditto.
	* postreload.c: Ditto.
	* predict.c: Ditto.
	* print-rtl.c: Ditto.
	* profile.c: Ditto.
	* recog.c: Ditto.
	* ree.c: Ditto.
	* reg-stack.c: Ditto.
	* regcprop.c: Ditto.
	* regcprop.h: Ditto.
	* reginfo.c: Ditto.
	* regrename.c: Ditto.
	* regstat.c: Ditto.
	* reload.c: Ditto.
	* reload1.c: Ditto.
	* reorg.c: Ditto.
	* resource.c: Ditto.
	* rtlanal.c: Ditto.
	* sched-deps.c: Ditto.
	* sched-ebb.c: Ditto.
	* sched-int.h: Ditto.
	* sched-rgn.c: Ditto.
	* sched-vis.c: Ditto.
	* sel-sched-dump.c: Ditto.
	* sel-sched-ir.c: Ditto.
	* sel-sched-ir.h: Ditto.
	* sel-sched.c: Ditto.
	* sese.c: Ditto.
	* shrink-wrap.c: Ditto.
	* stack-ptr-mod.c: Ditto.
	* stmt.c: Ditto.
	* store-motion.c: Ditto.
	* symtab.c: Ditto.
	* toplev.c: Ditto.
	* tracer.c: Ditto.
	* trans-mem.c: Ditto.
	* tree-affine.c: Ditto.
	* tree-call-cdce.c: Ditto.
	* tree-cfg.c: Ditto.
	* tree-cfgcleanup.c: Ditto.
	* tree-chrec.c: Ditto.
	* tree-complex.c: Ditto.
	* tree-data-ref.c: Ditto.
	* tree-dfa.c: Ditto.
	* tree-eh.c: Ditto.
	* tree-emutls.c: Ditto.
	* tree-if-conv.c: Ditto.
	* tree-inline.c: Ditto.
	* tree-into-ssa.c: Ditto.
	* tree-loop-distribution.c: Ditto.
	* tree-nested.c: Ditto.
	* tree-nrv.c: Ditto.
	* tree-object-size.c: Ditto.
	* tree-outof-ssa.c: Ditto.
	* tree-parloops.c: Ditto.
	* tree-phinodes.c: Ditto.
	* tree-predcom.c: Ditto.
	* tree-pretty-print.c: Ditto.
	* tree-profile.c: Ditto.
	* tree-scalar-evolution.c: Ditto.
	* tree-sra.c: Ditto.
	* tree-ssa-address.c: Ditto.
	* tree-ssa-alias.c: Ditto.
	* tree-ssa-ccp.c: Ditto.
	* tree-ssa-coalesce.c: Ditto.
	* tree-ssa-copy.c: Ditto.
	* tree-ssa-copyrename.c: Ditto.
	* tree-ssa-dce.c: Ditto.
	* tree-ssa-dom.c: Ditto.
	* tree-ssa-dse.c: Ditto.
	* tree-ssa-forwprop.c: Ditto.
	* tree-ssa-ifcombine.c: Ditto.
	* tree-ssa-live.c: Ditto.
	* tree-ssa-loop-ch.c: Ditto.
	* tree-ssa-loop-im.c: Ditto.
	* tree-ssa-loop-ivcanon.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* tree-ssa-loop-manip.c: Ditto.
	* tree-ssa-loop-niter.c: Ditto.
	* tree-ssa-loop-prefetch.c: Ditto.
	* tree-ssa-loop-unswitch.c: Ditto.
	* tree-ssa-loop.c: Ditto.
	* tree-ssa-math-opts.c: Ditto.
	* tree-ssa-operands.c: Ditto.
	* tree-ssa-phiopt.c: Ditto.
	* tree-ssa-phiprop.c: Ditto.
	* tree-ssa-pre.c: Ditto.
	* tree-ssa-propagate.c: Ditto.
	* tree-ssa-reassoc.c: Ditto.
	* tree-ssa-sccvn.c: Ditto.
	* tree-ssa-sink.c: Ditto.
	* tree-ssa-strlen.c: Ditto.
	* tree-ssa-structalias.c: Ditto.
	* tree-ssa-tail-merge.c: Ditto.
	* tree-ssa-ter.c: Ditto.
	* tree-ssa-threadedge.c: Ditto.
	* tree-ssa-threadupdate.c: Ditto.
	* tree-ssa-uncprop.c: Ditto.
	* tree-ssa-uninit.c: Ditto.
	* tree-ssa.c: Ditto.
	* tree-ssanames.c: Ditto.
	* tree-stdarg.c: Ditto.
	* tree-streamer-in.c: Ditto.
	* tree-streamer-out.c: Ditto.
	* tree-streamer.c: Ditto.
	* tree-switch-conversion.c: Ditto.
	* tree-tailcall.c: Ditto.
	* tree-vect-data-refs.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-loop-manip.c: Ditto.
	* tree-vect-loop.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree-vect-slp.c: Ditto.
	* tree-vect-stmts.c: Ditto.
	* tree-vectorizer.c: Ditto.
	* tree-vrp.c: Ditto.
	* tree.c: Ditto.
	* tsan.c: Ditto.
	* ubsan.c: Ditto.
	* valtrack.c: Ditto.
	* valtrack.h: Ditto.
	* value-prof.c: Ditto.
	* var-tracking.c: Ditto.
	* varasm.c: Ditto.
	* varpool.c: Ditto.
	* vtable-verify.c: Ditto.
	* web.c: Ditto.
	* config/aarch64/aarch64-builtins.c: Ditto.
	* config/aarch64/aarch64.c: Ditto.
	* config/alpha/alpha.c: Ditto.
	* config/arc/arc.c: Ditto.
	* config/arm/arm.c: Ditto.
	* config/avr/avr.c: Ditto.
	* config/bfin/bfin.c: Ditto.
	* config/c6x/c6x.c: Ditto.
	* config/cr16/cr16.c: Ditto.
	* config/cris/cris.c: Ditto.
	* config/darwin-c.c: Ditto.
	* config/darwin.c: Ditto.
	* config/epiphany/epiphany.c: Ditto.
	* config/epiphany/mode-switch-use.c: Ditto.
	* config/epiphany/resolve-sw-modes.c: Ditto.
	* config/fr30/fr30.c: Ditto.
	* config/frv/frv.c: Ditto.
	* config/h8300/h8300.c: Ditto.
	* config/i386/i386.c: Ditto.
	* config/i386/winnt.c: Ditto.
	* config/ia64/ia64.c: Ditto.
	* config/iq2000/iq2000.c: Ditto.
	* config/lm32/lm32.c: Ditto.
	* config/m32c/m32c.c: Ditto.
	* config/m32r/m32r.c: Ditto.
	* config/m68k/m68k.c: Ditto.
	* config/mcore/mcore.c: Ditto.
	* config/mep/mep.c: Ditto.
	* config/microblaze/microblaze.c: Ditto.
	* config/mips/mips.c: Ditto.
	* config/mmix/mmix.c: Ditto.
	* config/mn10300/mn10300.c: Ditto.
	* config/moxie/moxie.c: Ditto.
	* config/msp430/msp430.c: Ditto.
	* config/nds32/nds32-cost.c: Ditto.
	* config/nds32/nds32-fp-as-gp.c: Ditto.
	* config/nds32/nds32-intrinsic.c: Ditto.
	* config/nds32/nds32-isr.c: Ditto.
	* config/nds32/nds32-md-auxiliary.c: Ditto.
	* config/nds32/nds32-memory-manipulation.c: Ditto.
	* config/nds32/nds32-pipelines-auxiliary.c: Ditto.
	* config/nds32/nds32-predicates.c: Ditto.
	* config/nds32/nds32.c: Ditto.
	* config/nios2/nios2.c: Ditto.
	* config/pa/pa.c: Ditto.
	* config/pdp11/pdp11.c: Ditto.
	* config/rl78/rl78.c: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/rx/rx.c: Ditto.
	* config/s390/s390.c: Ditto.
	* config/sh/sh-mem.cc: Ditto.
	* config/sh/sh.c: Ditto.
	* config/sh/sh_optimize_sett_clrt.cc: Ditto.
	* config/sh/sh_treg_combine.cc: Ditto.
	* config/sparc/sparc.c: Ditto.
	* config/spu/spu.c: Ditto.
	* config/stormy16/stormy16.c: Ditto.
	* config/tilegx/tilegx.c: Ditto.
	* config/tilepro/tilepro.c: Ditto.
	* config/v850/v850.c: Ditto.
	* config/vax/vax.c: Ditto.
	* config/xtensa/xtensa.c: Ditto.

2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
	* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
	Remove using preprocessor directives.

2014-10-27  Richard Biener  <rguenther@suse.de>

	* match.pd (0 % X): Properly use the iterator iterating over
	all modulo operators.
	(X % 1): Likewise.

2014-10-27  Richard Biener  <rguenther@suse.de>

	* tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
	(lattice): New global.
	(fwprop_ssa_val): New function.
	(fold_all_stmts): Likewise.
	(pass_forwprop::execute): Finally fold all stmts.

2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/53061
	* doc/invoke.texi (fmessage-length): Update text to match reality.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/microblaze/microblaze.c: Include rtl-iter.h.
	(microblaze_tls_referenced_p_1): Delete.
	(microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (mips_at_reg_p): Delete.
	(mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (mips_record_lo_sum): Replace with...
	(mips_record_lo_sums): ...this new function.
	(mips_reorg_process_insns): Update accordingly.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (mips_sim_insn): Update comment.
	(mips_sim_wait_regs_2): Delete.
	(mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
	and return a bool.  Iterate over all subrtxes here.
	(r10k_needs_protection_p): Update accordingly.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
	rather than an rtx pointer.  Change type of insn from "void *"
	to its real type.  Return bool rather than int.  Iterate over
	all subrtxes here.
	(r10k_needs_protection_p_store): Update accordingly.
	(r10k_needs_protection_p): Likewise.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
	(mips16_rewrite_pool_refs): Take the insn and constant pool as
	parameters.  Iterate over the instruction's pattern and return void.
	(mips16_lay_out_constants): Update accordingly.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (mips_kernel_reg_p): Replace with...
	(mips_refers_to_kernel_reg_p): ...this new function.
	(mips_expand_prologue): Update accordingly.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c (mips_rewrite_small_data_1): Take the context
	as a parameter instead of the containing MEM.  Iterate over all
	subrtxes.  Don't return a value.
	(mips_rewrite_small_data): Update call accordingly.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mips/mips.c: Include rtl-iter.h.
	(mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
	Take the context as a parameter instead of the containing MEM.
	Iterate over all subrtxes.
	(mips_small_data_pattern_p): Update call accordingly.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
	(mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mep/mep.c (mep_store_find_set): Take a const_rtx and
	return a bool.  Replace "void *" with specific type.  Iterate
	over all subrtxes.
	(mep_store_data_bypass_1): Update calls accordingly.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/mep/mep.c: Include rtl-iter.h.
	(global_reg_mentioned_p_1): Take a const_rtx and return a bool.
	(xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/xtensa/xtensa.c: Include rtl-iter.h.
	(xtensa_tls_referenced_p_1): Delete.
	(xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/sh/sh.c (sh_contains_memref_p_1): Delete.
	(sh_contains_memref_p): Use FOR_EACH_SUBRTX.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
	rtx as argument and return the number of changes.
	* config/sh/sh.c: Include rtl-iter.h.
	(shmedia_cleanup_truncate): Take an rtx as argument and iterate
	over all subrtxes.  Return the number of changes made.
	* config/sh/sh.md: Update caller accordingly.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
	(m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.

2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/m68k/m68k.c: Include rtl-iter.h.
	(m68k_final_prescan_insn_1): Delete.
	(m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.

2014-10-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/63641
	* tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
	to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).

2014-10-25  Alan Modra  <amodra@gmail.com>

	PR rtl-optimization/63615
	* simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
	decomposing PLUS or MINUS if operands are not placed adjacent
	in the "ops" array.

2014-10-25  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
	not allow e500 double in registers not satisyfing
	SPE_SIMD_REGNO_P.

2014-10-24  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c (declare_in_namespace): Only emit external
	declarations in the local scope once.

2014-10-24  Jonathan Wakely  <jwakely@redhat.com>

	* ginclude/stdbool.h: Do not define bool, true or false in C++11.

2014-10-24  Charles Baylis  <charles.baylis@linaro.org>

	* config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
	update uses to use new macro arguments.
	(__LD3_LANE_FUNC): Likewise.
	(__LD4_LANE_FUNC): Likewise.

2014-10-24  Charles Baylis  <charles.baylis@linaro.org>

	* config/aarch64/aarch64-builtins.c
	(aarch64_types_loadstruct_lane_qualifiers): Define.
	* config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
	ld4_lane): New builtins.
	* config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
	New pattern.
	(aarch64_vec_load_lanesci_lane<mode>): Likewise.
	(aarch64_vec_load_lanesxi_lane<mode>): Likewise.
	(aarch64_ld2_lane<mode>): New expand.
	(aarch64_ld3_lane<mode>): Likewise.
	(aarch64_ld4_lane<mode>): Likewise.
	* config/aarch64/aarch64.md (define_c_enum "unspec"): Add
	UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.

2014-10-24  Georg-Johann Lay  <avr@gjlay.de>

	* avr-protos.h (avr_out_sign_extend): New.
	* avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
	(avr_out_sign_extend): New function.
	* avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
	(extendhisi2, extendpsisi2): Use it.
	(adjust_len) [sext]: New.

2014-10-24  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
	added.

2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
	(LINK_SPEC): Include CA53_ERR_835769_SPEC.
	* config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
	(LINK_SPEC): Include CA53_ERR_835769_SPEC.

2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
	do while (0).
	* config/aarch64/aarch64.c (is_mem_p): Delete.
	(is_memory_op): Rename to...
	(has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
	(dep_between_memop_and_curr): Assert that the input is a SET.
	(aarch64_madd_needs_nop): Add comment.  Do not call
	dep_between_memop_and_curr on NULL body.
	(aarch64_final_prescan_insn): Add comment.
	Include rtl-iter.h.

2014-10-24  Richard Biener  <rguenther@suse.de>

	* Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
	to genmatch BUILD_LIBS instead.

2014-10-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (expr::gen_transform): Use fold_buildN_loc
	and build_call_expr_loc.
	(dt_simplify::gen): Drop non_lvalue for GIMPLE, use
	non_lvalue_loc to build it for GENERIC.
	(decision_tree::gen_generic): Add location argument to
	generic_simplify prototype.
	(capture_info): New class.
	(capture_info::capture_info): New constructor.
	(capture_info::walk_match): New method.
	(capture_info::walk_result): New method.
	(capture_info::walk_c_expr): New method.
	(dt_simplify::gen): Handle preserving side-effects for
	GENERIC code generation.
	(decision_tree::gen_generic): Do not reject operands
	with TREE_SIDE_EFFECTS.
	* generic-match.h: New file.
	* generic-match-head.c: Include generic-match.h, not gimple-match.h.
	* match.pd: Add some constant folding patterns from fold-const.c.
	* fold-const.c: Include generic-match.h.
	(fold_unary_loc): Dispatch to generic_simplify.
	(fold_ternary_loc): Likewise.
	(fold_binary_loc): Likewise.  Remove patterns now implemented
	by generic_simplify.
	* gimple-fold.c (replace_stmt_with_simplification): New function.
	(fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
	(no_follow_ssa_edges): New function.
	(fold_stmt): New overload with valueization hook.  Use
	no_follow_ssa_edges for the overload without hook.
	(fold_stmt_inplace): Likewise.
	* gimple-fold.h (no_follow_ssa_edges): Declare.

2014-10-24  Felix Yang  <felix.yang@huawei.com>
	Jiji Jiang  <jiangjiji@huawei.com>

	PR target/63173
	* config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
	(__LD3R_FUNC): Ditto.
	(__LD4R_FUNC): Ditto.
	(vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
	 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
	 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
	 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
	 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
	 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
	(vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
	 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
	 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
	 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
	 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
	 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
	(vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
	 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
	 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
	 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
	 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
	 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
	* config/aarch64/aarch64.md (define_c_enum "unspec"): Add
	UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
	* config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
	builtins.
	* config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
	(aarch64_simd_ld3r<mode>): Likewise.
	(aarch64_simd_ld4r<mode>): Likewise.
	(aarch64_ld2r<mode>): New expand.
	(aarch64_ld3r<mode>): Likewise.
	(aarch64_ld4r<mode>): Likewise.

2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>

	* rtlanal.c (get_base_term): Handle SCRATCH.

2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>

	* haifa-sched.c (sched_init): Disable max_issue when scheduling for
	register pressure.

2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>

	* haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
	(cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
	(max_issue, choose_ready, sched_init): Update.

2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>

	* sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
	* haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
	(rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
	(rank_for_schedule): Update calls to rfs_result to pass new parameters.
	(print_rank_for_schedule_stats): Print out elements of ready list that
	ended up on their respective places due to each of the sorting
	heuristics.
	(ready_sort): Update.
	(debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
	(schedule_block): Update.

2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>

	* haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
	arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
	(print_curr_reg_pressure, setup_insn_reg_pressure_info,)
	(model_update_pressure, model_spill_cost): Use sched_class_regs_num.
	(model_start_schedule): Update.
	(sched_pressure_start_bb): New static function.  Calculate
	sched_class_regs_num.
	(schedule_block): Use it.
	(alloc_global_sched_pressure_data): Calculate call_used_regs_num.

2014-10-24  Richard Biener  <rguenther@suse.de>

	* Makefile.in (BUILD_CPPLIB): When in stage2+ use the
	host library and make sure to pull in the required libintl
	and libiconv dependencies.

2014-10-24  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Fix copy-and-pasto.

2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR bootstrap/63632
	* collect2.c (main): Filter out -fno-lto.

2014-10-24  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
	division by zero in dumps.
	(sem_item_optimizer::merge_classes): Ditto.

2014-10-23  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_can_combine_p): Fix typo in last change.

2014-10-23  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (extract_range_from_assert): Fix typo in comment.

2014-10-23  Ian Lance Taylor  <iant@google.com>

	* config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.

2014-10-23  Jakub Jelinek  <jakub@redhat.com>

	PR debug/63623
	* var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
	(stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
	instead of only handling autoinc in dest if it is a MEM.
	(vt_stack_adjustments): Fix up formatting.

2014-10-23  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
	independend of -mlarge.
	* config/msp430/constraints.md (Ys): Update comment.

2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>

	PR target/63534
	PR target/63618
	* cse.c (delete_trivially_dead_insns): Consider PIC register is used
	while it is pseudo.
	* dse.c (deletable_insn_p): Likewise.

2014-10-23  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.c: Fix GNU coding rules and typos.
	* config/avr/avr.h: Dito.
	* config/avr/avr-c.c: Dito.
	* config/avr/avr.md: Dito.

2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
	New.
	(define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
	iterator.
	(define_expand "abs<mode>2"): Ditto.

2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>

	* tree-core.h (tree_var_decl): Extend `function_code' field
	by one bit, move `regdecl_flag' field to ...
	(tree_decl_with_vis): Here.
	* tree.h (DECL_STATIC_CHAIN): Update struct name.

2014-10-23  Richard Biener  <rguenther@suse.de>

	* Makefile.in (BUILD_CPPLIB): Add.
	(build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
	Drop LIBIBERTY.

2014-10-23  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Preserve side-effects of
	X - X when simplifying to 0.
	* stor-layout.c (finish_bitfield_representative): Strip
	side-effects of evaluating the difference of two DECL_FIELD_OFFSET.

2014-10-22  Richard Biener  <rguenther@suse.de>
	    Tobias Burnus <burnus@net-b.de>

	PR lto/63603
	* gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.

2014-10-22  Dehao Chen  <dehao@google.com>

	* auto-profile.c: Change order of header files.

2014-10-22  Guozhi Wei  <carrot@google.com>

	PR tree-optimization/63530
	tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
	pointer alignment according to DR_MISALIGNMENT.

2014-10-22  David Malcolm  <dmalcolm@redhat.com>

	* ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.

2014-10-22  Andrew MacLeod  <amacleod@redhat.com>

	* cfgbuild.h: New.  Add prototypes for cfgbuild.c.
	* cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
	* cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
	* dominance.h: New.  Add prototypes for dominance.c.
	* cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
	* cfghooks.h: (struct profile_record) Relocate here.
	Relocate 2 prototypes from basic-block.h.
	* basic-block.h: Move prototypes and struct to new header files.
	Include cfgbuild.h, cfgcleanup.h, and dominance.h.
	* rtl.h: Move a few prototypes to new header files.
	* cfgcleanup.c (merge_memattrs): Make static.
	* genopinit.c (main): Add predict.h to list of includes.
	* predict.h: Update prototype list to match predict.c.
	* predict.c (maybe_hot_count_p): Export.
	(cgraph_edge::maybe_hot_p): Move to cgraph.c.
	(cgraph_node::optimize_for_size_p): Move to cgraph.h.
	* cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
	* cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
	* profile.h: Adjust prototypes.
	* ifcvt.h: New.  Relocate struct ce_if_block here.
	* ifcvt.c: Include ifcvt.h.
	* config/frv/frv.c: Include ifcvt.h.
	* config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.

2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>

	* lra.c (lra): Remove call to recog_init.
	* config/i386/i386.md (preferred_for_speed): New attribute
	(*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
	"enabled".  Remove check for sched1.

2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>

	* recog.h (recog_data_d): Remove enabled_alternatives.
	* recog.c (extract_insn): Don't set it.
	* reload.c (find_reloads): Call get_enabled_alternatives.

2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>

	* recog.h (constrain_operands): Add an alternative_mask parameter.
	(constrain_operands_cached): Likewise.
	(get_preferred_alternatives): Declare new form.
	* recog.c (get_preferred_alternatives): New bb-taking instance.
	(constrain_operands): Take the set of available alternatives as
	a parameter.
	(check_asm_operands, insn_invalid_p, extract_constrain_insn)
	(extract_constrain_insn_cached): Update calls to constrain_operands.
	* caller-save.c (reg_save_code): Likewise.
	* ira.c (setup_prohibited_mode_move_regs): Likewise.
	* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
	* ree.c (combine_reaching_defs): Likewise.
	* reload.c (can_reload_into): Likewise.
	* reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
	(gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
	(emit_insn_if_valid_for_reload): Likewise.
	* reorg.c (fill_slots_from_thread): Likewise.
	* config/i386/i386.c (ix86_attr_length_address_default): Likewise.
	* config/pa/pa.c (pa_can_combine_p): Likewise.
	* config/rl78/rl78.c (insn_ok_now): Likewise.
	* config/sh/sh.md (define_peephole2): Likewise.
	* final.c (final_scan_insn): Update call to constrain_operands_cached.

2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
	attributes.
	* genattr.c (main): Handle "preferred_for_size" and
	"preferred_for_speed" in the same way as "enabled".
	* recog.h (bool_attr): New enum.
	(target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
	(get_preferred_alternatives, check_bool_attrs): Declare.
	* recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
	(get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
	New functions.
	(get_enabled_alternatives): Use get_bool_attr_mask.
	* ira-costs.c (record_reg_classes): Use get_preferred_alternatives
	instead of recog_data.enabled_alternatives.
	* ira.c (ira_setup_alts): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
	* ira-lives.c (preferred_alternatives): New variable.
	(process_bb_node_lives): Set it.
	(check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
	(single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
	of recog_data.enabled_alternatives.
	* lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
	to preferred_alternatives.
	* lra-constraints.c (process_alt_operands): Update accordingly.
	* lra.c (lra_set_insn_recog_data): Likewise.
	(lra_update_insn_recog_data): Assert check_bool_attrs.

2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>

	* recog.h (extract_constrain_insn): Declare.
	* recog.c (extract_constrain_insn): New function.
	* lra.c (check_rtl): Use it.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* reg-stack.c (check_asm_stack_operands): Likewise.
	(subst_asm_stack_regs): Likewise.
	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
	* regrename.c (build_def_use): Likewise.
	* sel-sched.c (get_reg_class): Likewise.
	* config/arm/arm.c (note_invalid_constants): Likewise.
	* config/s390/predicates.md (execute_operation): Likewise.

2014-10-22  Jakub Jelinek  <jakub@redhat.com>
	    Yury Gribov  <y.gribov@samsung.com>

	* common.opt (flag_sanitize_recover): New variable.
	(fsanitize-recover): Remove Var/Init, deprecate.
	(fsanitize-recover=): New option.
	* doc/invoke.texi (fsanitize-recover): Update docs.
	* opts.c (finish_options): Use opts->x_flag_sanitize
	instead of flag_sanitize.  Prohibit -fsanitize-recover
	for anything besides UBSan.  Formatting.
	(common_handle_option): Handle OPT_fsanitize_recover_
	and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
	instead of flag_sanitize.
	* asan.c (pass_sanopt::execute): Fix up formatting.
	* ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
	ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
	instrument_bool_enum_load, ubsan_instrument_float_cast,
	instrument_nonnull_arg, instrument_nonnull_return): Check
	bits in flag_sanitize_recover bitmask instead of
	flag_sanitize_recover as bool flag.

2014-10-22  Jiong Wang <jiong.wang@arm.com>

	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.

2014-10-22  Renlin Li <renlin.li@arm.com>

	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
	__ARM_FEATURE_IDIV__.

2014-10-22  Richard Biener  <rguenther@suse.de>

	* Makefile.in (s-match): Adjust dependencies to only catch
	match.pd.

2014-10-22  Richard Biener  <rguenther@suse.de>
	Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
	(MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
	(gimple-match.c): Generate by triggering s-match.
	(generic-match.c): Likewise.
	(s-match): Rule to build gimple-match.c and generic-match.c
	by running the genmatch generator program.
	(build/hash-table.o): Dependencies to build hash-table.c for the host.
	(build/genmatch.o): Dependencies to build genmatch.
	(genprog): Add match.
	(build/genmatch): Likewise.
	(TEXI_GCCINT_FILES): Add match-and-simplify.texi.
	* generic-match-head.c: New file.
	* gimple-match-head.c: Likewise.
	* gimple-match.h: Likewise.
	* genmatch.c: Likewise.
	* match.pd: Likewise.
	* builtins.h (fold_builtin_n): Export.
	* builtins.c (fold_builtin_n): Likewise.
	* gimple-fold.h (gimple_build): Declare various overloads.
	(gimple_simplify): Likewise.
	(gimple_convert): Re-implement in terms of gimple_build.
	* gimple-fold.c (gimple_convert): Remove.
	(gimple_build): New functions.
	* doc/match-and-simplify.texi: New file.
	* doc/gccint.texi: Add menu item Match and Simplify and include
	match-and-simplify.texi.

2014-10-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/63594
	* config/i386/i386.c (ix86_expand_vector_init_duplicate): For
	V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
	even for just TARGET_AVX2, not only for
	TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
	call ix86_vector_duplicate_value only if TARGET_AVX512BW,
	otherwise build it using concatenation of 256-bit
	broadcast.
	* config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
	avx512 broadcast patterns.
	(vec_dup<mode>): Likewise.  For avx2 use
	v<sseintprefix>broadcast<bcstscalarsuff> instead of
	vbroadcast<ssescalarmodesuffix>.
	(AVX2_VEC_DUP_MODE): New mode iterator.
	(*vec_dup<mode>): New TARGET_AVX2 define_insn with
	AVX2_VEC_DUP_MODE iterator, add a splitter for that.

	PR target/63542
	* config/i386/i386.c (ix86_pic_register_p): Also return
	true if x is a hard register with ORIGINAL_REGNO equal to
	pic_offset_table_rtx pseudo REGNO.
	(ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
	after reload, subtract GOT_SYMBOL_NAME symbol if possible.

2014-10-22  Alan Modra  <amodra@gmail.com>

	* gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
	* coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
	(gcc_obstack_init): Use obstack_specify_allocation in place of
	_obstack_begin.
	* genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
	(regexp_representation): Likewise.
	* godump.c (go_output_type): Likewise.

2014-10-21  John David Anglin  <danglin@gcc.gnu.org>

	* config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
	* config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
	* config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.

2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/invoke.texi (pedantic-errors): Explain better.

2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Vidya Praveen <vidya.praveen@atmel.com>
	    Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
	    Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
	    Pitchumani Sivanupandi <Pitchumani.S@atmel.com>

	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
	__MEMX for avrtiny.
	* config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
	(avr_nonconst_pointer_addrspace): Likewise.
	* config/avr/avr.h (AVR_HAVE_LPM): Define.

	Added AVRTINY architecture to avr target.
	* config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
	(base_arch_s): member added for AVRTINY architecture.
	* config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
	alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
	AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
	and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
	respectively. LAST_CALLEE_SAVED_REG macro added for the last register
	in callee saved register list.
	(avr_option_override): CCP address updated for AVRTINY.
	(avr_init_expanders): tmp and zero rtx initialized as per arch.
	Reset avr_have_dimode if AVRTINY.
	(sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
	(emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
	(avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
	Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
	(expand_epilogue): Likewise.
	(avr_print_operand): Print CCP address in case of AVRTINY also.
	<TBD>bad address
	(function_arg_regno_p): Check different register list for arguments
	if AVRTINY.
	(init_cumulative_args): Check for AVRTINY to update number of argument
	registers.
	(tiny_valid_direct_memory_access_range): New function. Return false if
	direct memory access range is not in accepted range for AVRTINY.
	(avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
	indirect load (with displacement) for AVRTINY.
	(out_movqi_r_mr): Updated instruction length for AVRTINY. Call
	avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
	(avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
	indirect load (no displacement) for AVRTINY.
	(avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
	indirect load (with displacement) for AVRTINY.
	(avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
	indirect load for pre-decrement address.
	(out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
	functions. Update instruction length for AVRTINY.
	(avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
	SImode.
	(avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
	(out_movsi_r_mr): Likewise, for SImode.
	(avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
	indirect store (no displacement) for AVRTINY.
	(avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
	indirect store (with displacement) for AVRTINY.
	(out_movsi_mr_r): Emit out insn for IO address store. Update store
	instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
	store functions.
	(avr_out_load_psi_reg_no_disp_tiny): New function to handle register
	indirect load (no displacement) for PSImode in AVRTINY.
	(avr_out_load_psi_reg_disp_tiny): New function to handle register
	indirect load (with displacement) for PSImode in AVRTINY.
	(avr_out_load_psi): Call PSImode register indirect load functions for
	AVRTINY. Update instruction length for AVRTINY.
	(avr_out_store_psi_reg_no_disp_tiny): New function to handle register
	indirect store (no displacement) for PSImode in AVRTINY.
	(avr_out_store_psi_reg_disp_tiny): New function to handle register
	indirect store (with displacement) for PSImode in AVRTINY.
	(avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
	register indirect store functions for AVRTINY.
	(avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
	register indirect store (with displacement) for AVRTINY.
	(out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
	register indirect store function for QImode in AVRTINY.
	(avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
	(avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
	indirect store (no displacement) for HImode in AVRTINY.
	(avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
	indirect store (with displacement) for HImode in AVRTINY.
	(avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
	indirect store for post-increment address in HImode.
	(out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
	register indirect store function for HImode in AVRTINY.
	(avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
	in case of AVRTINY.
	(order_regs_for_local_alloc): Updated register allocation order for
	AVRTINY.
	(avr_conditional_register_usage): New function. It is a target hook
	(TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
	used registers list and register allocation order for AVRTINY.
	(avr_return_in_memory): Update return value size for AVRTINY.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
	for AVRTINY arch and tiny program memory base address.
	* config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
	(avr_texinfo): Added description for AVRTINY arch.
	* config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
	STATIC_CHAIN_REGNUM for AVRTINY.
	* config/avr/avr-mcus.def: Added AVRTINY arch devices.
	* config/avr/avr.md: Added constants for tmp/ zero registers in
	AVRTINY. Attributes for AVRTINY added.
	(mov<mode>): Move src/ dest address to register if it is not in AVRTINY
	memory access range.
	(mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
	in AVRTINY memory access range.
	(*mov<mode>): Likewise for HImode and SImode.
	(*movsf): Likewise for SFmode.
	(delay_cycles_2): Updated instructions to be emitted as AVRTINY does
	not have sbiw.
	* config/avr/avr-protos.h: Added function prototype for
	tiny_valid_direct_memory_access_range.
	* config/avr/avr-tables.opt: Regenerate.
	* gcc/config/avr/t-multilib: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

2014-10-21  Andrew Pinski  <apinski@cavium.com>

	* doc/invoke.texi (AARCH64/mtune): Document thunderx as an
	available option also.
	* config/aarch64/aarch64-cost-tables.h: New file.
	* config/aarch64/aarch64-cores.def (thunderx): New core.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
	of config/arm/aarch-cost-tables.h.
	(thunderx_regmove_cost): New variable.
	(thunderx_tunings): New variable.

2014-10-21  Dehao Chen  <dehao@google.com>

	* auto-profile.c: New file.
	* auto-profile.h: New file.
	* basic-block.h (maybe_hot_count_p): New export func.
	(add_working_set): New export func.
	* gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
	(GCOV_TAG_AFDO_FUNCTION): Likewise.
	(GCOV_TAG_AFDO_WORKING_SET): Likewise.
	* opts.c (enable_fdo_optimizations): New func.
	(common_handle_option): Handle -fauto-profile flag.
	* ipa-inline.c (want_early_inline_function_p): Iterative-einline.
	(class pass_early_inline): Export early_inliner.
	(early_inliner): Likewise.
	(pass_early_inline::execute): Likewise.
	* ipa-inline.h (early_inliner): Likewise.
	* predict.c (maybe_hot_count_p): New export func.
	(counts_to_freqs): AutoFDO logic.
	(rebuild_frequencies): Likewise.
	* tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
	* profile.c (add_working_set): New func.
	* Makefile.in (auto-profile.o): New object file.
	* passes.def (pass_ipa_auto_profile): New pass.
	* tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
	* tree-pass.h (make_pass_ipa_auto_profile): New pass.
	* toplev.c (compile_file): AutoFDO logic.
	* doc/invoke.texi (-fauto-profile): New doc.
	* coverage.c (coverage_init): AutoFDO logic.
	* common.opt (-fauto-profile): New flag.
	* timevar.def (TV_IPA_AUTOFDO): New tag.
	* value-prof.c (gimple_alloc_histogram_value): New export func.
	(check_ic_target): Likewise.
	* value-prof.h (gimple_alloc_histogram_value): Likewise.
	(check_ic_target): Likewise.

2014-10-21  David Malcolm  <dmalcolm@redhat.com>

	* cgraph.c (cgraph_c_finalize): New function.
	* cgraph.h (cgraph_c_finalize): New prototype.
	(cgraphunit_c_finalize): New prototype.
	* cgraphunit.c (first_analyzed): Move from analyze_functions
	to file-scope.
	(first_analyzed_var): Likewise.
	(analyze_functions): Move static variables into file-scope.
	(cgraphunit_c_finalize): New function.
	* diagnostic.c (diagnostic_finish): Free the memory for
	context->classify_diagnostic and context->printer, running the
	destructor for the latter.
	(bt_stop): Use toplev::main.
	* dwarf2out.c (dwarf2out_finalize): New function.
	* dwarf2out.h (dwarf2out_c_finalize): New prototype.
	* gcse.c (gcse_c_finalize): New function.
	* gcse.h (gcse_c_finalize): New prototype.
	* ggc-page.c (init_ggc): Make idempotent.
	* input.c (input_location): Initialize to UNKNOWN_LOCATION.
	* ipa-cp.c (ipa_cp_c_finalize): New function.
	* ipa-prop.h (ipa_cp_c_finalize): New prototype.
	* ipa-pure-const.c (function_insertion_hook_holder): Move to be
	a field of class pass_ipa_pure_const.
	(node_duplication_hook_holder): Likewise.
	(node_removal_hook_holder): Likewise.
	(register_hooks): Convert to method...
	(pass_ipa_pure_const::register_hooks): ...here, converting
	static variable init_p into...
	(pass_ipa_pure_const::init_p): ...new field.
	(pure_const_generate_summary): Update invocation of
	register_hooks to invoke as a method of current_pass.
	(pure_const_read_summary): Likewise.
	(propagate): Convert to...
	(pass_ipa_pure_const::execute): ...method.
	* ipa-reference.c (ipa_init): Move static bool init_p from here
	to...
	(ipa_init_p): New file-scope variable, so that it can be reset
	when repeatedly invoking the compiler within one process by...
	(ipa_reference_c_finalize): New function.
	* ipa-reference.h (ipa_reference_c_finalize): New.
	* main.c (main): Replace invocation of toplev_main with
	construction of a toplev instance, and call its "main" method.
	* params.c (global_init_params): Add an assert that
	params_finished is false.
	(params_c_finalize): New.
	* params.h (params_c_finalize): New.
	* passes.c (execute_ipa_summary_passes): Set "current_pass" before
	invoking generate_summary, for the benefit of pass_ipa_pure_const.
	(ipa_write_summaries_2): Assign "pass" to "current_pass" global
	before calling write_summary hook.
	(ipa_write_optimization_summaries_1): Likewise when calling
	write_optimization_summary hook.
	(ipa_read_summaries_1): Likewise for read_summary hook.
	(ipa_read_optimization_summaries_1): Likewise for
	read_optimization_summary hook.
	(execute_ipa_stmt_fixups): Likewise.
	* stringpool.c (init_stringpool): Clean up if we're called more
	than once.
	* timevar.c (timevar_init): Ignore repeated calls.
	* toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
	"ipa-prop.h".
	(general_init): Reset "input_location" to UNKNOWN_LOCATION.
	(initialize_rtl): Move static local "initialized_once"
	into file scope, and rename to...
	(rtl_initialized): New variable.
	(do_compile): Move timevar initialization from here to
	toplev::start_timevars.
	(toplev::toplev, toplev::~toplev, toplev::start_timevars,
	toplev::finalize): New functions.
	(toplev_main): Rename to...
	(toplev::main): ...this.
	* toplev.h (class toplev): New class.

2014-10-21  Andrew MacLeod  <amacleod@redhat.com>

	* loop-doloop.c: Include loop-unroll.h.

2014-10-21  Andrew MacLeod  <amacleod@redhat.com>

	* cfg.h: New.  Header file for cfg.c.
	* cfganal.h: New.  Header file for cfganal.c.
	* lcm.h: New.  Header file for lcm.c.
	* loop-unroll.h: New.  Header file for loop-unroll.h.
	* cfgloop.h: (unroll_loops): Remove prototype.
	* basic-block.h: Move prototypes and structs to new header files.
	Include cfg.h, cfganal.h, and lcm.h.
	* loop-init.c: Include loop-unroll.h.
	* loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
	* modulo-sched.c: Include loop-unroll.h.

2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
	MARKER_BYTE_UNKNOWN markers when handling casts.

2014-10-21  Richard Biener  <rguenther@suse.de>

	* tree-ssa-phiopt.c (value_replacement): Properly verify we
	are the non-singleton PHI.

2014-10-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/63563
	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
	if either dra or drb stmts are not normal loads/stores.

2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/i386.c (expand_vec_perm_1): Fix
	expand_vec_perm_palignr case.
	* config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
	VI1_AVX512.

2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* cfgloopanal.c (seq_cost): Delete.
	* rtl.h (seq_cost): New prototype.
	* rtlanal.c (seq_cost): New function.
	* tree-ssa-loop-ivopts.c (seq_cost): Delete.

2014-10-20  Andrew MacLeod  <amacleod@redhat.com>

	* cfgrtl.h: New.  Add prototypes for cfgrtl.c.
	* basic-block.h: Remove prototypes for cfgrtl.c.
	* cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
	prototypes to cfgrtl.h.
	* profile.h (profile_info): Add extern export declaration.
	* rtl.h: Remove prototypes for cfgrtl.h.
	* tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
	* ipa-inline.c: Include profile.h.
	* loop-unroll.c: Ditto.
	* modulo-sched.c: Ditto.
	* postreload-gcse.c: Ditto.
	* predict.c: Ditto.
	* sched-ebb.c: Ditto.
	* sched-rgn.c: Ditto.
	* tracer.c: Ditto.
	* tree-ssa-loop-ivcanon.c: Ditto.

2014-10-20  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
	operands to get a def operand kind match.  Signal mismatches
	to the parent so we can try swapping its operands.
	(vect_build_slp_tree): Try swapping operands if they have
	a mismatched operand kind.

2014-10-20  Alan Modra  <amodra@gmail.com>

	PR debug/60655
	* simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
	Increase "ops" array size.  Correct array size tests.  Init
	n_constants in loop.  Break out of innermost loop when finding
	a trivial CONST expression.

2014-10-20  Martin Liska  <mliska@suse.cz>

	PR ipa/63583
	* ipa-icf-gimple.c (func_checker::compare_gimple_asm):
	Gimple tempate string is compared.

2014-10-20  Uros Bizjak  <ubizjak@gmail.com>

	* varasm.c (const_alias_set): Remove.
	(init_varasm_once): Remove initialization of const_alias_set.
	(build_constant_desc): Do not set alias set to const_alias_set.

2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>

	* configure: Regenerate.
	* configure.ac: Move the test for section attribute specifier "e" in GAS
	out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
	* langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
	* varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
	ifdef HAVE_GAS_SECTION_EXCLUDE.

2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>

	* doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
	match_operand expression.

2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
	    David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
	function.
	(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.

2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Options to Request or Suppress Warnings):
	Explain options precedence.
	(Wtrampolines): Do not indent paragraph.

2014-10-18  John David Anglin  <danglin@gcc.gnu.org>

	* doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
	* config/pa/pa-protos.h (pa_following_call): Delete declaration.
	(pa_jump_in_call_delay): Likewise.
	* config/pa/pa.c (pa_option_override): Remove jump in call delay
	override.
	(pa_output_millicode_call): Remove support for jump in call delay.
	(pa_output_call): Likewise.
	(pa_jump_in_call_delay): Delete.
	(pa_following_call): Likewise.
	* config/pa/pa.md (in_call_delay): Remove jump in delay check.
	(uncond_branch): Remove following call check from attribute length.

2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53513
	* config/sh/sh-modes.def (PSI): Remove.
	* config/sh/sh-protos.h (get_fpscr_rtx): Remove.
	* config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
	(sh_reorg): Remove commented out FPSCR code.
	(fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
	insn instead of move insn.
	(sh_hard_regno_mode_ok): Return SImode for FPSCR.
	(sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
	handling.
	(sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
	(sh1_builtin_p): Uncomment.
	(SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
	(bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
	* config/sh/sh/predicates.md (fpscr_operand): Simplify.
	(fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
	(general_movsrc_operand, general_movdst_operand): Disallow
	fpscr_operand.
	* config/sh/sh.md (FPSCR_FR): New constant.
	(push_fpscr): Emit sts_fpscr insn.
	(pop_fpscr): Emit lds_fpscr_insn.
	(movsi_ie): Disallow FPSCR operands.
	(fpu_switch, unnamed related split, extend_psi_si,
	truncate_si_psi): Remove insns.
	(lds_fpscr, sts_fpscr): New insns.
	(toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.

2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
	(clone_inlined_nodes): Do not overwrite the clone if above predicate
	returns true.

2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/i386.c (MAX_VECT_LEN): Move earlier.
	(expand_vec_perm_d): Ditto.
	(ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
	V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
	V4DFmode.
	(ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
	(ix86_expand_sse_unpack): Handle V64QImode.
	(expand_vec_perm_blend): Update conditions for TARGET, handle
	V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
	(expand_vec_perm_pshufb): Handle V64QImode.
	(expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
	V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
	(ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
	(ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
	(ix86_expand_vecop_qihi): Handle V64QImode.
	* config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
	(define_mode_iterator VEC_PERM_AVX2): Add V32HI.
	(define_mode_iterator VEC_PERM_CONST): Add V32HI.
	(define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
	(mul<mode>3): Use VI1_AVX512.
	(<sse2_avx2>_packsswb): Ditto.
	(<sse2_avx2>_packuswb): Ditto.
	(<ssse3_avx2>_pshufb<mode>3): Ditto.
	(<shift_insn><mode>3): Ditto.

2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
	conditions to fix bootstrap.

2014-10-17  Andrew MacLeod  <amacleod@redhat.com>

	gcc-plugin.h:  Add tm.h and flattened includes from function.h.

2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
	and V32HI modes, update V8HI, V16QI, V32QI modes handling.
	(ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
	* config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
	(define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
	(define_expand "vec_init<mode>"): Use VF48_I1248.

2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
	expand_sse2_mulvxdi3.

2014-10-17  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_comparison): Remove redundant constant
	folding and operand swapping.
	(fold_binary_loc): Do comparison operand swapping here.
	(fold_ternary_loc): Canonicalize operand order for
	commutative ternary operations.
	* tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
	and FMA_EXPR.

2014-10-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/63464
	* gimple.h (gimple_seq_discard): New prototype.
	* gimple.c: Include stringpool.h and tree-ssanames.h.
	(gimple_seq_discard): New function.
	* optabs.h (lshift_cheap_p): New prototype.
	* optabs.c (lshift_cheap_p): New function, moved from...
	* tree-switch-conversion.c (lshift_cheap_p): ... here.
	* tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
	(reassoc_branch_fixups): New variable.
	(update_range_test): Add otherrangep and seq arguments.
	Unshare exp.  If otherrange is NULL, use for other ranges
	array of pointers pointed by otherrangep instead.
	Emit seq before gimplified statements for tem.
	(optimize_range_tests_diff): Adjust update_range_test
	caller.
	(optimize_range_tests_xor): Likewise.  Fix up comment.
	(extract_bit_test_mask, optimize_range_tests_to_bit_test): New
	functions.
	(optimize_range_tests): Adjust update_range_test caller.
	Call optimize_range_tests_to_bit_test.
	(branch_fixup): New function.
	(execute_reassoc): Call branch_fixup.

	PR tree-optimization/63302
	* tree-ssa-reassoc.c (optimize_range_tests_xor,
	optimize_range_tests_diff): Use !integer_pow2p () instead of
	tree_log2 () < 0.

2014-10-17  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_function::merge): Local flags are set to false
	to enforce equal calling convention to be used.
	* opts.c (common_handle_option): Indentation fix.

2014-10-17  Marc Glisse  <marc.glisse@inria.fr>

	* tree-into-ssa.c (is_old_name): Replace "new" with "old".

2014-10-17  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/61605
	* regcprop.c (copyprop_hardreg_forward_1): Use
	regs_invalidated_by_this_call instead of regs_invalidated_by_call.

2014-10-17  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/61605
	* regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.
	Don't notice stores for noops.  Don't regard noops as copies.

2014-10-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
	register in a special way.
	(__cpuid_count): Ditto.
	* config/i386/driver-i386.h: Protect with
	"#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
	(host_detect_local_cpu): Mention that GCC with non-fixed %ebx
	is required to compile the function.

2014-10-16  DJ Delorie  <dj@redhat.com>

	* flag-types.h (sanitize_code): Don't assume targets have 32-bit
	integers.

	* config/rs6000/rs6000-c.c (rid_int128): New.
	(rs6000_macro_to_expand): Use instead of RID_INT128.

2014-10-16  Andrew MacLeod  <amacleod@redhat.com>

	* function.h: Flatten file.  Remove includes, adjust prototypes to
	reflect only what is in function.h.
	(enum direction, struct args_size, struct locate_and_pad_arg_data,
	ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
	from expr.h.
	(ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
	(optimize_function_for_size_p, optimize_function_for_speed_p): Move
	prototypes to predict.h.
	(init_varasm_status): Move prototype to varasm.h.
	* expr.h: Adjust include files.
	(enum direction, struct args_size, struct locate_and_pad_arg_data,
	ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
	to function.h.
	(locate_and_pad_parm): Move prototype to function.h.
	* rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
	assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
	assign_temp, reposition_prologue_and_epilogue_notes,
	prologue_epilogue_contains, sibcall_epilogue_contains,
	update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
	set_return_jump_label): Move prototypes to function.h.
	* predict.h (optimize_function_for_size_p,
	optimize_function_for_speed_p): Relocate prototypes from function.h.
	* shrink-wrap.h (emit_return_into_block, active_insn_between,
	convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
	function.h.
	* varasm.h (init_varasm_status): Relocate prototype from function.h.
	* genattrtab.c (write_header): Add predict.h to include list.
	* genconditions.c (write_header): Add predict.h to include list.
	* genemit.c (main): Adjust header file includes.
	* gengtype.c (ifiles): Add flattened function.h header files.
	* genoutput.c (output_prologue): Add predict.h to include list.
	* genpreds.c (write_insn_preds_c): Adjust header file includes.
	* genrecog.c (write_header): Add flattened function.h header files.
	* alias.c: Adjust include files.
	* auto-inc-dec.c: Likewise.
	* basic-block.h: Likewise.
	* bb-reorder.c: Likewise.
	* bt-load.c: Likewise.
	* builtins.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloop.h: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.h: Likewise.
	* cgraphclones.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* coverage.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* dbxout.c: Likewise.
	* ddg.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* dojump.c: Likewise.
	* dwarf2cfi.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* function.c: Likewise.
	* gcse.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-streamer.h: Likewise.
	* haifa-sched.c: Likewise.
	* ifcvt.c: Likewise.
	* ira.c: Likewise.
	* jump.c: Likewise.
	* lcm.c: Likewise.
	* loop-invariant.c: Likewise.
	* lra-assigns.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-spills.c: Likewise.
	* lra.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* mode-switching.c: Likewise.
	* modulo-sched.c: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* passes.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* profile.c: Likewise.
	* recog.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* reginfo.c: Likewise.
	* regrename.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtlanal.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched.c: Likewise.
	* shrink-wrap.c: Likewise.
	* simplify-rtx.c: Likewise.
	* statistics.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* symtab.c: Likewise.
	* targhooks.c: Likewise.
	* toplev.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-operands.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.
	* tree-stdarg.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree.c: Likewise.
	* tsan.c: Likewise.
	* valtrack.c: Likewise.
	* varasm.c: Likewise.
	* vmsdbgout.c: Likewise.
	* web.c: Likewise.
	* config/aarch64/aarch64.c: Add flattened includes from function.h.
	* config/alpha/alpha.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/avr/avr-log.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/cr16/cr16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/darwin.c: Likewise.
	* config/epiphany/epiphany.c: Likewise.
	* config/epiphany/mode-switch-use.c: Likewise.
	* config/epiphany/resolve-sw-modes.c: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/lm32/lm32.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep-pragma.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/msp430/msp430.c: Likewise.
	* config/nds32/nds32-cost.c: Likewise.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/score/score.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

2014-10-16  Richard Earnshaw  <rearnsha@arm.com>

	* config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
	(TARGET_LEGITIMIZE_ADDRESS): Redefine.

2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-protos.h (fldi_ok): Remove.
	* config/sh/sh.c (fldi_ok): Likewise.
	(sh_secondary_reload): Don't use fldi_ok.
	* config/sh/constraints.md (G constraint, H constraint): Don't use
	fldi_ok.

2014-10-16  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item_optimizer::process_cong_reduction):
	Cast to unsigned long.
	(sem_item_optimizer::dump_cong_classes): Likewise.

2014-10-16  Tom de Vries  <tom@codesourcery.com>

	* tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
	with SSA_NAME_IN_FREELIST.

2014-10-16  Richard Biener  <rguenther@suse.de>

	PR middle-end/63554
	* builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
	(fold_builtin_strncat_chk): Move ...
	* gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
	(gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.

2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/59401
	* config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
	GBR to 0.

2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
	V64QI modes.

2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
	V16SI, V32HI, V64QI modes.

2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/53513
	* config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
	expand_sf_binop, expand_df_unop, expand_df_binop): Remove.

	* config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
	to match fp insn patterns.
	(calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
	list.
	(emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
	expand_df_unop, expand_df_binop): Remove.
	(sh_conditional_register_usage): Mark FPSCR_MODES_REG and
	FPSCR_STAT_REG as not call clobbered.
	(sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
	invoking fpscr_set_from_mem.

	* config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
	(SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
	FPSCR_STAT_REG.
	(REGISTER_NAMES): Adjust.
	(SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
	(FIRST_PSEUDO_REGISTER): Increase to 156.
	(DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
	FPSCR_STAT_REG.
	(REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
	FPSCR_MODES_REG and FPSCR_STAT_REG.
	(REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.

	* config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
	FPSCR_SZ): Add new constants.
	(UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.

	(movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
	(fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
	Use TARGET_FPU_ANY condition.
	(fpu_switch peephole2): Remove.
	(fpu_switch split): Use simple_mem_operand to capture the mem and
	adjust split implementation.
	(extend_psi_si, truncate_si_psi): New insns.
	(toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
	set of FPSCR_MODES_REG.

	(push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
	reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
	calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
	call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
	call_value_compact, call_value_compact_rettramp, call,
	call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
	sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
	sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
	sibcall_value_compact, sibcall_value, call_value_pop_compact,
	call_value_pop_compact_rettramp, various unnamed splits):
	Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
	function uses.

	(floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
	(fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
	(cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
	(cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
	(ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.

	(udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
	*fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
	cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
	subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
	cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
	truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
	and use of FPSCR_MODES_REG.  Adjust gen_* function uses.

2014-10-16  Martin Liska  <mliska@suse.cz>
	    Jan Hubicka  <hubicka@ucw.cz>

	* Makefile.in: New object files included.
	* cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
	is printed.
	(verify_edge_corresponds_to_fndecl): More sensitive verification
	of nodes that are merged by IPA ICF.
	* cgraph.h (cgraph_node::num_references): New function.
	* cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
	* common.opt: New options ipa-icf, ipa-icf-functions and
	ipa-icf-variables introduced.
	* doc/invoke.texi: Documentation of new options introduced.
	* ipa-icf-gimple.c: New file.
	* ipa-icf-gimple.h: New file.
	* ipa-icf.c: New file.
	* ipa-icf.h: New file.
	* lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
	(input_overwrite_node): Likewise.
	* lto-section-in.c: New icf section added.
	* lto-streamer.h (enum lto_section_type): Likewise.
	* opts.c (common_handle_option): New option added.
	* passes.def: New pass included.
	* timevar.def: Time variable for IPA ICF added.
	* tree-pass.h: New IPA ICF pass entry point added.

2014-10-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63168
	* tree-cfg.c (gimple_can_merge_blocks_p): Only protect
	latches if after merging they are no longer simple.
	* cfghooks.c (merge_blocks): Handle merging a latch block
	into another block.

2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
	support AVX-512VL instructions.

2014-10-16  DJ Delorie  <dj@redhat.com>

	* tree-core.h: Fix comment to not assume pointers are multiples of
	bytes.

2014-10-15  Tom Tromey  <tromey@redhat.com>

	* timevar.h (class auto_timevar): New class.

2014-10-15  Uros Bizjak  <ubizjak@gmail.com>

	PR go/59432
	* config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
	Remove the second alternative.
	(regprefix): Remove mode attribute.
	(atomic_compare_and_swap<mode>): Do not fixup operand 2.
	* config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.

	Revert:
	2013-11-05  Ian Lance Taylor  <iant@google.com>

	* config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
	If possible, add .cfi directives to record change to bx.
	* config/i386/i386.c (ix86_emit_cfi): New function.
	* config/i386/i386-protos.h (ix86_emit_cfi): Declare.

2014-10-15  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/62026
	* cgraphclones.c (duplicate_thunk_for_node): Get body to have args
	to duplicate.
	* lto-streamer-out.c (lto_output): Handle correctly thunks that was
	born at WPA time.

2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/63448
	* lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
	(LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
	(LRA_MAX_INHERITANCE_PASSES): Use it.
	(lra_constraint_iter_after_spill): Remove.
	(lra_assignment_iter): New.
	(lra_assignment_iter_after_spill): New.
	* lra-assigns.c (lra_assignment_iter): New.
	(lra_assignment_iter_after_spill): New.
	(former_reload_pseudo_spill_p): New.
	(spill_for): Set up former_reload_pseudo_spill_p.
	(setup_live_pseudos_and_spill_after_risky): Ditto.
	(assign_by_spills): Ditto.
	(lra_assign): Increment lra_assignment_iter.  Print the iteration
	number.  Reset former_reload_pseudo_spill_p.  Check
	lra_assignment_iter_after_spill.
	* lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
	lra_assignment_iter and lra_assignment_iter_after_spill.
	* lra-constraints.c (lra_constraint_iter_after_spill): Remove.
	(lra_constraints): Remove code with
	lra_assignment_iter_after_spill.

2014-10-15  Teresa Johnson  <tejohnson@google.com>

	PR bootstrap/63432
	* tree-ssa-threadupdate.c (recompute_probabilities): Better
	overflow checking.

2014-10-15  Renlin Li <renlin.li@arm.com>

	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
	__ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
	__ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
	__ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.

2014-10-15  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_call): Properly keep virtual
	SSA form up-to-date when devirtualizing a call to
	__builtin_unreachable and avoid fixing up EH info here.

2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
	to support AVX-512BW.
	(define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
	(define_expand "<plusminus_insn><mode>3"): Remove masking support.
	(define_insn "*<plusminus_insn><mode>3"): Ditto.
	(define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
	(define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
	(define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
	(define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
	(define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
	(define_insn "*andnot<mode>3"): Ditto.
	(define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
	(define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
	(define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
	(define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
	(define_insn "*abs<mode>2"): Remove masking support.
	(define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
	(define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
	(define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.

2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/predicates.md (define_predicate "constm1_operand"): New.
	* config/i386/sse.md
	(define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
	(define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
	(define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
	(define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
	(define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
	(define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
	(define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.

2014-10-15  Renlin Li <renlin.li@arm.com>

	* config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.

2014-10-15  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
	MINUS_EXPR in unsigned type to avoid undefined behavior.

2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (self_referential_size): Do not promote arguments.

2014-10-15  Marek Polacek  <polacek@redhat.com>

	* doc/invoke.texi: Update to reflect that GNU11 is the default
	mode for C.
	* c-common.h (c_language_kind): Update comment.

2014-10-15  Richard Biener  <rguenther@suse.de>

	* hash-table.c: Include bconfig.h if building for the host.
	* hash-table.h: Do not include ggc.h on the host but just declare
	a few ggc allocation templates.

2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Jeff Law  <law@redhat.com>

	* caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
	multiple hard registers, use smaller mode derived from MODE.

2014-10-15  Andreas Schwab  <schwab@suse.de>

	* explow.c (convert_memory_address_addr_space_1): Mark in_const
	as ATTRIBUTE_UNUSED.

2014-10-14  Jan Hubicka  <hubicka@ucw.cz>

	* loop-unroll.c (decide_unrolling_and_peeling): Rename to
	(decide_unrolling): ... this one.
	(peel_loops_completely): Remove.
	(decide_peel_simple): Remove.
	(decide_peel_once_rolling): Remove.
	(decide_peel_completely): Remove.
	(peel_loop_simple): Remove.
	(peel_loop_completely): Remove.
	(unroll_and_peel_loops): Rename to ...
	(unroll_loops): ... this one; handle only unrolling.
	* cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and LPT_PEEL_SIMPLE.
	(UAP_PEEL): Remove.
	(unroll_and_peel_loops): Remove.
	(unroll_loops): New.
	* passes.def: Replace pass_rtl_unroll_and_peel_loops
	by pass_rtl_unroll_loops.
	* loop-init.c (gate_rtl_unroll_and_peel_loops,
	rtl_unroll_and_peel_loops): Rename to ...
	(gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
	(pass_rtl_unroll_and_peel_loops): Rename to ...
	(pass_rtl_unroll_loops): ... this one.
	* tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
	(make_pass_rtl_unroll_loops): New.
	* tree-ssa-loop-ivcanon.c (estimated_peeled_sequence_size,
	try_peel_loop): New.
	(canonicalize_loop_induction_variables): Update.

2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
	* config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
	!TARGET_HARD_FLOAT_POSTINC.
	(*lsip, *ssip): new instructions.

2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
	remove.

2014-10-14  Andrew Pinski  <apinski@cavium.com>

	* explow.c (convert_memory_address_addr_space): Rename to ...
	(convert_memory_address_addr_space_1): This.  Add in_const argument.
	Inside a CONST RTL, permute the conversion and addition of constant
	for zero and sign extended pointers.
	(convert_memory_address_addr_space): New function.

2014-10-14  Andrew Pinski  <apinski@cavium.com>

	Revert:
	2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/49721
	* explow.c (convert_memory_address_addr_space): Also permute the
	conversion and addition of constant for zero-extend.

2014-10-14  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430-modes.def (PSI): Add.

	* config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding):
	New.
	(msp430_hard_regno_nregs_with_padding): New.
	* config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
	(msp430_hard_regno_nregs_has_padding): New.
	(msp430_hard_regno_nregs_with_padding): New.
	(msp430_unwind_word_mode): Use PSImode instead of SImode.
	(msp430_addr_space_legitimate_address_p): New.
	(msp430_asm_integer): New.
	(msp430_init_dwarf_reg_sizes_extra): New.
	(msp430_print_operand): Use X suffix for PSImode even in small model.
	* config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
	(PTR_SIZE): ...but 4 bytes for EH.
	(SIZE_TYPE): Use __int20.
	(PTRDIFF_TYPE): Likewise.
	(INCOMING_FRAME_SP_OFFSET): Adjust.
	* config/msp430/msp430.md (movqi_topbyte): New.
	(movpsi): Use fixed suffixes.
	(movsipsi2): Enable for 430X, not large model.
	(extendhipsi2): Likewise.
	(zero_extendhisi2): Likewise.
	(zero_extendhisipsi2): Likewise.
	(extend_and_shift1_hipsi2): Likewise.
	(extendpsisi2): Likewise.
	(*bitbranch<mode>4_z): Fix suffix logic.

2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/62019
	* tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
	do not choke on null node.
	<VAR_DECL>: Likewise.

2014-10-14  DJ Delorie  <dj@redhat.com>

	* machmode.h (int_n_data_t): New.
	(int_n_enabled_p): New.
	(int_n_data): New.
	* tree.c (int_n_enabled_p): New.
	(int_n_trees): New.
	(make_or_reuse_type): Check for all __intN types, not just __int128.
	(build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
	entries.
	* tree.h (int128_integer_type_node): Remove.
	(int128_unsigned_type_node): Remove.
	(int_n_trees_t): New.
	(int_n_enabled_p): New.
	(int_n_trees): New.
	* toplev.c (standard_type_bitsize): New.
	(do_compile): Check which __intN types are enabled for the current run.
	* builtin-types.def (BT_INT128): Remove.
	(BT_UINT128): Remove.
	* machmode.def: Add macro to create __int128 for all targets.
	* stor-layout.c (mode_for_size): Support __intN types.
	(smallest_mode_for_size): Likewise.
	(initialize_sizetypes): Support __intN types.
	* genmodes.c (struct mode_data): Add int_n field.
	(blank_mode): Likewise.
	(INT_N): New.
	(make_int_n): New.
	(emit_insn_modes_h): Count __intN entries and define NUM_INT_N_ENTS.
	(emit_mode_int_n): New.
	(emit_insn_modes_c): Call it.
	* gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
	types, not just __int128.
	* tree-core.h (integer_type_kind): Remove __int128-specific
	entries, reserve spots for __intN entries.

	* config/msp430/msp430-modes.def (PSI): Add.

2014-10-14  Kito Cheng  <kito@0xlab.org>

	* ira.c: Fix typo in comment.
	* ira.h: Ditto.
	* ira-build.c: Ditto.
	* ira-color.c: Ditto.
	* ira-emit.c: Ditto.
	* ira-int.h: Ditto.
	* ira-lives.c: Ditto.

2014-10-14  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/63475
	* alias.c (true_dependence_1): Always use get_addr to extract
	true address operands from x_addr and mem_addr.  Use extracted
	address operands to check for references with alignment ANDs.
	Use extracted address operands with find_base_term and
	base_alias_check. For noncanonicalized operands call canon_rtx with
	extracted address operand.
	(write_dependence_1): Ditto.
	(may_alias_p): Ditto.  Remove unused calls to canon_rtx.

2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>

	PR target/63534
	* config/i386/i386.c (ix86_expand_split_stack_prologue): Make
	__morestack local.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
	(ix86_expand_int_vcond): Ditto.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(emit_reduc_half): Handle V64QI and V32HI mode.
	* config/i386/sse.md
	(define_mode_iterator VI_AVX512BW): New.
	(define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
	* config/i386/sse.md
	(define_mode_iterator VI): Add V64QI and V32HI modes.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
	(define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
	(define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
	(define_mode_iterator VI2_AVX2): Add V32HI mode.
	(define_expand "mul<mode>3<mask_name>"): Add masking.
	(define_insn "*mul<mode>3<mask_name>"): Ditto.
	(define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
	(define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
	(define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
	(define_mode_attr SDOT_PMADD_SUF): Ditto.
	(define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
	(define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
	(define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
	(define_insn "avx2_packusdw"): Delete.
	(define_insn "sse4_1_packusdw"): Ditto.
	(define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "vec_dup<mode>"): Update constraints.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator SSESCALARMODE): Add V4TI mode.
	(define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
	(define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_expand "mul<mode>3<mask_name>"): Add masking.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
	(define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
	(define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
	(define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
	Ditto.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
	use VF_128_256 mode iterator and update assembler emit code.
	(define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
	(define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
	Add masking, use VF_128_256 mode iterator.
	(define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
	(define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
	Add masking, use VF_128_256 mode iterator and update assembler emit
	code.
	(define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
	(define_mode_attr avx512flogicsuff): Delete.
	(define_insn "avx512f_<logic><mode>"): Ditto.
	(define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
	MODE_TI.
	(define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
	(define_expand "vashr<mode>3<mask_name>"): Add masking,
	use VI12_128 mode iterator.
	(define_expand "ashrv2di3<mask_name>"): New.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
	CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
	CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
	CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
	CODE_FOR_avx512vl_ucmpv4si3_mask.
	* config/i386/sse.md
	(define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
	"<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
	(define_insn
	"<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
	(define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
	(define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
	(define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
	(define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
	(define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
	(define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
	(define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
	(define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
	(define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
	(define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
	(define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
	(define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
	(define_insn "avx512dq_mul<mode>3<mask_name>"): New.

2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "avx512f_blendm<mode>"): Delete.
	(define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
	(define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
	(define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
	V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
	(define_insn
	"avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
	Remove.
	(define_insn
	"<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
	New.
	(define_insn
	"<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
	Ditto.
	(define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
	(define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
	(define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
	(define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
	Delete.
	(define_insn
	"<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
	New.
	(define_insn
	"<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
	Ditto.
	(define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
	Delete.
	(define_insn
	"<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
	New.
	(define_insn
	"<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
	Ditto.

2014-10-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63512
	* tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
	modified.

2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/63260
	* config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
	abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
	of FPSCR.
	(negsf2_i): Rename to *negsf2_i.
	(abssf2_i): Rename to *abssf2_i.
	(negdf2_i): Rename to *negdf2_i.
	(absdf2_i): Rename to *absdf2_i.

2014-10-14  Felix Yang  <felix.yang@huawei.com>
	    Jeff Law  <law@redhat.com>

	* ira.c (struct equivalence): Change member "is_arg_equivalence" and
	"replace" into boolean bitfields; turn member "loop_depth" into a short
	integer; add new member "no_equiv" and "reserved".
	(no_equiv): Set no_equiv of struct equivalence if register is marked
	as having no known equivalence.
	(update_equiv_regs): Check all definitions for a multiple-set
	register to make sure that the RHS have the same value.

2014-10-13  Richard Henderson  <rth@redhat.com>

	* combine-stack-adj.c (no_unhandled_cfa): New.
	(maybe_merge_cfa_adjust): New.
	(combine_stack_adjustments_for_block): Use them.

2014-10-13  Aldy Hernandez  <aldyh@redhat.com>

	* Makefile.in (TAGS): Tag ../include files.

2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
	to rs6000_dbx_register_number.
	(DWARF_FRAME_REGNUM): Redefine as identity map.
	(DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
	* config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
	* config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
	argument to handle .debug_frame and .eh_frame directly.  Always
	translate SPE high register numbers.  Add special treatment for CR,
	but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.

	* config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
	* config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
	(RS6000_USE_DWARF_NUMBERING): Define.
	* config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
	(RS6000_USE_DWARF_NUMBERING): Define.
	* config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
	(RS6000_USE_DWARF_NUMBERING): Define.
	* config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
	(RS6000_USE_DWARF_NUMBERING): Define.
	* config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
	* config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.

2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/i386.c (ix86_address_cost): Lower cost for
	when address contains GOT register.

2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
	    Vladimir Makarov  <vmakarov@redhat.com>

	PR target/8340
	PR middle-end/47602
	PR rtl-optimization/55458
	* config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
	(ix86_init_pic_reg): New.
	(ix86_select_alt_pic_regnum): Add check on pseudo register.
	(ix86_save_reg): Likewise.
	(ix86_expand_prologue): Remove PIC register initialization
	now performed in ix86_init_pic_reg.
	(ix86_output_function_epilogue): Add check on pseudo register.
	(set_pic_reg_ever_alive): New.
	(legitimize_pic_address): Replace df_set_regs_ever_live with new
	set_pic_reg_ever_alive.
	(legitimize_tls_address): Likewise.
	(ix86_pic_register_p): New check.
	(ix86_delegitimize_address): Add check on pseudo register.
	(ix86_expand_call): Insert move from pseudo PIC register to ABI
	defined REAL_PIC_OFFSET_TABLE_REGNUM.
	(TARGET_INIT_PIC_REG): New.
	(TARGET_USE_PSEUDO_PIC_REG): New.
	* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
	if pic_offset_table_rtx exists.
	* doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
	Document.
	* doc/tm.texi: Regenerate.
	* function.c (assign_parms): Generate pseudo register for PIC.
	* init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
	register.
	* ira-color.c (color_pass): Add check on pseudo register.
	* ira-emit.c (change_loop): Don't create copies for PIC pseudo
	register.
	* ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
	register.
	(ira): Add target specific PIC register initialization.
	(do_reload): Keep PIC pseudo register.
	* lra-assigns.c (spill_for): Add checks on pseudo register.
	* lra-constraints.c (contains_symbol_ref_p): New.
	(lra_constraints): Enable lra risky transformations when PIC is pseudo
	register.
	* shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
	* target.def (use_pseudo_pic_reg): New.
	(init_pic_reg): New.

2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
	Remove m_SILVERMONT and m_INTEL from the tune.

2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR libfortran/63471
	* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
	when _HPUX_SOURCE is defined.

2014-10-13  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/62127
	* tree.c (remap_type_1): When remapping array, remap
	also its type.

2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>

	* Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
	longer impact parallelization.

2014-10-13  Jan Hubicka  <hubicka@ucw.cz>

	PR bootstrap/63496
	* ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.

2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>

	* asan.c (instrument_derefs): BIT_FIELD_REF added.

2014-10-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63419
	* gimple-fold.h (gimple_convert): New function.
	* gimple-fold.c (gimple_convert): Likewise.
	* tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
	to split out required conversions early.

2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>

	* rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
	Add the parts of an insn in reverse order, with the pattern at
	the top of the queue.  Detect when we're iterating over a SEQUENCE
	pattern and in that case just consider patterns of subinstructions.

2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/59401
	* config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
	of rtx.
	* config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
	insn walking.
	(sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
	address.  Use def chains to handle GBR clobbering call insns.

2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>

	* asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
	config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
	config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
	function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
	output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
	tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
	* doc/gty.texi (for_user): Document new option.
	* gengtype.c (create_user_defined_type): Don't try to get a struct for
	char.
	(walk_type): Don't error out on for_user option.
	(write_func_for_structure): Emit user marking routines if requested by
	for_user option.
	(write_local_func_for_structure): Likewise.
	(main): Mark types with for_user option as used.
	* ggc.h (gt_pch_nx): Add overload for unsigned int.
	* hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
	* hash-table.h (ggc_hasher): New struct.
	(hash_table::create_ggc): New function.
	(gt_pch_nx): New overload for hash_table.

2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
	* config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
	* config/sh/sh.c: Likewise.
	* config/sh/sh-mem.cc: Likewise.
	* config/sh/sh.md: Likewise.
	* config/sh/predicates.md: Likewise.
	* config/sh/sync.md: Likewise.

2014-10-11  Martin Liska  <mliska@suse.cz>

	PR middle-end/63376
	* cgraphunit.c (symbol_table::process_new_functions): Missing call
	for call_cgraph_insertion_hooks added.

2014-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/63495
	* stor-layout.c (min_align_of_type): Don't decrease alignment
	through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
	TYPE_USER_ALIGN is set.

2014-10-10  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/63483
	* alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
	references when alignment ANDs are involved.
	(write_dependence_p): Ditto.
	(may_alias_p): Ditto.

2014-10-10  Marek Polacek  <polacek@redhat.com>

	* asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
	* doc/invoke.texi: Document -fsanitize=object-size.
	* flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
	or it into SANITIZE_UNDEFINED.
	* gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
	* internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
	* internal-fn.def (UBSAN_OBJECT_SIZE): Define.
	* opts.c (common_handle_option): Handle -fsanitize=object-size.
	* ubsan.c: Include tree-object-size.h.
	(ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
	(ubsan_expand_bounds_ifn): Use false instead of 0.
	(ubsan_expand_objsize_ifn): New function.
	(instrument_object_size): New function.
	(pass_ubsan::execute): Add object size instrumentation.
	* ubsan.h (ubsan_expand_objsize_ifn): Declare.

2014-10-10  Richard Henderson  <rth@redhat.com>

	PR target/63404
	* shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
	Restrict the set of expressions we're willing to move.

2014-10-10  Jeff Law  <law@redhat.com>

	* ira.c (struct equivalence): Promote INIT_INSNs field to
	an rtx_insn_list.  Add comments.
	(no_equiv): Promote LIST to an rtx_insn_list.  Update
	testing for and creating the special marker.  Use methods
	to extract the insn and next pointers.  Promote INSN to an
	rtx_insn.
	(update_equiv_regs): Update test for special marker in the
	INIT_INSNs list.

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

	* configure.ac: Add --enable-fix-cortex-a53-835769 option.
	* configure: Regenerate.
	* config/aarch64/aarch64.c (aarch64_override_options): Handle
	TARGET_FIX_ERR_A53_835769_DEFAULT.
	* config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
	value to 2.
	* doc/install.texi (aarch64*-*-*): Document
	new --enable-fix-cortex-a53-835769 option.

2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
	(ADJUST_INSN_LENGTH): Define.
	* config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
	* config/aarch64/aarch64.c (is_mem_p): New function.
	(is_memory_op): Likewise.
	(aarch64_prev_real_insn): Likewise.
	(is_madd_op): Likewise.
	(dep_between_memop_and_curr): Likewise.
	(aarch64_madd_needs_nop): Likewise.
	(aarch64_final_prescan_insn): Likewise.
	* doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
	and -mno-fix-cortex-a53-835769 options.

2014-10-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/63464
	* tree-switch-conversion.c (struct case_bit_test): Remove
	hi and lo fields, add wide_int mask field.
	(emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
	hi/lo fields into wide_int mask operations, optimize by pretending
	minval to be 0 if maxval is small enough.
	(process_switch): Adjust caller.

2014-10-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63379
	* tree-vect-slp.c (vect_get_constant_vectors): Do not compute
	a neutral operand for min/max when it is not a reduction chain.

2014-10-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63476
	* tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
	(BB_LIVE_VOP_ON_EXIT): New define.
	(create_expression_by_pieces): Assign VUSEs to stmts.
	(compute_avail): Track BB_LIVE_VOP_ON_EXIT.
	(pass_pre::execute): Assert virtual SSA form is up-to-date
	after insertion.

2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>

	* lra-assigns.c (assign_by_spills): Error out on spill failure.

2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* pa-polymorphic-call.c (check_stmt_for_type_change): Move
	assertion.

2014-10-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63380
	* tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
	may trap.

2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/avr/avr.opt (mmcu=): Change to have a string value.
	(mn-flash=, mskip-bug, march=, mrmw): New options.
	(HeaderInclude): New.
	(mmcu=): Remove Var / Init clauses.
	* config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
	-specs option.
	(SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
	(ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
	(SYMBOL_FLAG_IO_LOW): Define.
	(avr_device_to_as, avr_device_to_ld): Don't declare.
	(avr_device_to_data_start, avr_device_to_startfiles): Likewise.
	(avr_device_to_devicelib, avr_device_to_sp8): Likewise.
	(EXTRA_SPEC_FUNCTIONS): Don't define.
	(ASM_SPEC): Translate -arch= option to -mmcu= option.
	(LINK_SPEC): Translate -arch= option to -m= option.
	Don't use device_to_ld / device_to_data_start.
	(STARTFILE_SPEC): Now empty.
	(ASM_SPEC): Add -%{mrelax: --mlink-relax}.
	* config/avr/gen-avr-mmcu-specs.c: New file.
	* config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
	(s-device-specs): Likewise.
	(GCC_PASSES): Add s-device-specs.
	(install-driver): Depend on install-device-specs.
	(install-device-specs): New rule.
	* config/avr/avr.c (avr_option_override): Look up mcu arch by
	avr_arch_index and provide fallback initialization for avr_n_flash.
	(varasm.h): #include.
	(avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
	(avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
	(avr_attribute_table): Add "io", "address" and "io_low".
	(avr_asm_output_aligned_decl_common): Change type of decl to tree.
	Add special handling for symbols with "io" and/or "address" attributes.
	(avr_asm_asm_output_aligned_bss): New function.
	(avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
	as appropriate.  Handle io_low attribute.
	(avr_out_sbxx_branch): Handle symbolic io addresses.
	(avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
	avr_n_flash instead of avr_current_device->n_flash.
	(avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
	(avr_emit_movmemhi): Likewise.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
	Use TARGET_RMW instead of avr_current_device->dev_attributes.
	Don't define avr_current_device->macro (that's the specfile's job).
	Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
	* config/avr/avr.c (avr_2word_insn_p): Likewise.
	* config/avr/avr.md (*cpse.ne): Likewise.
	(mov<mode>): Use avr_eval_addr_attrib.
	(cbi): Change constraint for low_io_address_operand operand to "i".
	(sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
	* config/avr/predicates.md (io_address_operand):
	Allow SYMBOL_REF with SYMBOL_FLAG_IO.
	(low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
	* config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
	Update prototype.
	(avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
	* config/avr/genmultilib.awk: Use -march=.
	Remove Multilib matches processing.
	* config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
	* config/avr/avr-arch.h: Add double include guard.
	(avr_mcu_t) <library_name>: Update comment.
	* config/avr/driver-avr.c (avr_device_to_as): Delete.
	(avr_device_to_ld, avr_device_to_data_start): Likewise.
	(avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
	(avr_device_to_sp8): Likewise.
	* config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.

	* doc/extend.texi (io, address): Document new AVR variable attributes.
	(io_low): Likewise.

2014-10-09  Marek Polacek  <polacek@redhat.com>

	* doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.

2014-10-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61969
	* tree-nrv.c (pass_nrv::execute): Properly test for automatic
	variables.

2014-10-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63445
	* tree-vrp.c (simplify_cond_using_ranges): Only warn about
	overflow for non-equality compares.

2014-10-09  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/57003
	* regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
	also check CALL_INSN_FUNCTION_USAGE for clobbers again after
	killing regs_invalidated_by_call.

2014-10-08  Teresa Johnson  <tejohnson@google.com>

	PR bootstrap/63432.
	* tree-ssa-threadupdate.c (estimated_freqs_path): New function.
	(ssa_fix_duplicate_block_edges): Invoke it.
	(mark_threaded_blocks): Make two passes to avoid ordering dependences.

2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/52941
	* config/sh/sync.md (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): Add missing set of T_REG.

2014-10-08  Rong Xu  <xur@google.com>

	* gcov-tool.c (profile_overlap): New driver function
	to compute profile overlap.
	(print_overlap_usage_message): New.
	(overlap_usage): New.
	(do_overlap): New.
	(print_usage): Add calls to overlap function.
	(main): Ditto.
	* doc/gcov-tool.texi: Add documentation.

2014-10-08  Steve Ellcey  <sellcey@mips.com>

	* config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
	LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS

2014-10-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
	pattern matching of MEM_REF.
	(check_stmt_for_type_change): Update.

2014-10-08  Steve Ellcey  <sellcey@mips.com>

	* config/mips/linux64.h: Remove.
	* config/mips/gnu-user64.h: Remove.
	* gcc.config (mips*-*-*): Remove references to linux64.h and
	gnu-user64.h
	* config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
	with modified version from gnu-user64.h.
	(LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
	(LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
	* config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
	linux64.h.
	(GNU_USER_LINK_EMULATION64): Ditto.
	(GNU_USER_LINK_EMULATIONN32): Ditto.
	(GLIBC_DYNAMIC_LINKER32): Ditto.
	(GLIBC_DYNAMIC_LINKER64): Ditto.
	(GLIBC_DYNAMIC_LINKERN32): Ditto.
	(UCLIBC_DYNAMIC_LINKER32): Ditto.
	(UCLIBC_DYNAMIC_LINKER64): Ditto.
	(UCLIBC_DYNAMIC_LINKERN32): Ditto.
	(BIONIC_DYNAMIC_LINKERN32): Ditto.
	(GNU_USER_DYNAMIC_LINKERN32): Ditto.
	(GLIBC_DYNAMIC_LINKER): Delete.
	(UCLIBC_DYNAMIC_LINKER): Delete.

2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
	    Richard Biener  <rguenther@suse.de>

	* cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
	Get address space from operand 0 (BASE).

2014-10-07  Iain Sandoe  <iain@codesourcery.com>

	PR target/61387
	* config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.

2014-10-07  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c: Remove current_function_has_inlines.
	(gen_subprogram_die): Same.
	(gen_inlined_subroutine_die): Same.

2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/adxintrin.h (_subborrow_u64): Use long long for param
	type.
	(_addcarry_u64): Ditto.
	(_addcarryx_u64): Ditto.

2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>

	* cgraph.h (cgraph_node::get_fun): Declare.
	* cgraph.c (cgraph_node::get_fun): New method.
	* ipa-inline.c (can_inline_edge_p): Use it.

2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
	and -ftrapping-math.
	* lto-wrapper.c (merge_and_complain): Likewise.
	(run_gcc): Likewise.

2014-10-06  Rong Xu  <xur@google.com>

	* params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
	* tree-profile.c: (params.h): New include.
	(init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
	and __gcov_indirect_call_topn_counters for
	indirect_call_topn_profile.
	(gimple_init_edge_profiler): New decls for
	__gcov_indirect_call_topn_profiler.
	(gimple_gen_ic_profiler): Generate the correct profiler call.
	(gimple_gen_ic_func_profiler): Fix format.
	* value-prof.c (params.h): New include.
	(dump_histogram_value): Hanlde indirect_call_topn counters.
	(stream_in_histogram_value): Ditto.
	(gimple_indirect_call_to_profile): Use indirect_call_topn
	profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
	(gimple_find_values_to_profile): Hanlde indirect_call_topn
	counters.
	* value-prof.h (enum hist_type): Histrogram type for
	indirect_call_topn counters.
	* profile.c (instrument_values): Instrument
	indirect_call_topn counters.

2014-10-06  Rong Xu  <xur@google.com>

	* Makefile.in: Fix dependence.
	* gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
	indirect call topn profiler.
	* gcov-io.h: Ditto.

2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	* calls.c (expand_call): Do not use the target as the return slot if
	it is not sufficiently aligned.

2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (analyze_swaps commentary): Add
	discussion of permutes and why we don't handle them.

2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/predicates.md (int_register_operand): Delete.

2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.

2014-10-06  Jakub Jelinek  <jakub@redhat.com>

	* ubsan.h (ubsan_get_source_location): New prototype.
	* ubsan.c (ubsan_source_location_type): New variable.
	Function renamed to ...
	(ubsan_get_source_location_type): ... this.  Cache
	return value in ubsan_source_location_type variable.
	(ubsan_source_location, ubsan_create_data): Use
	ubsan_get_source_location_type instead of
	ubsan_source_location_type.
	* asan.c (asan_protect_global): Don't protect globals
	with ubsan_get_source_location_type () type.
	(asan_add_global): Provide global decl location info
	if possible.

2014-10-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
	sanity check.

2014-10-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-polymorphic-call.c (possible_placement_new): Fix condition
	on size.
	(ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
	into vptr pointer.
	(ipa_polymorphic_call_context::dump): Fix formating.
	(walk_ssa_copies): Add logic avoiding loops; update uses.
	* ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.

2014-10-02  Mark Wielaard  <mjw@redhat.com>

	PR debug/63239
	* dwarf2out.c (gen_subprogram_die): When a member function is
	explicitly deleted then add a DW_AT_GNU_deleted attribute.
	* langhooks.h (struct lang_hooks_for_decls): Add
	function_decl_deleted_p langhook.
	* langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
	(LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.

2014-10-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-polymorphic-call.c (walk_ssa_copies): Recognize
	NULL pointer checks.
	(ipa_polymorphic_call_context::get_dynamic_type): Return true
	if type doesn't change.
	* cgraph.h (cgraph_indirect_call_info): New flag.
	* cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
	(cgraph_node::dump): Dump it.
	* ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
	of context.get_dynamic_type.
	(ipa_make_edge_direct_to_target): Do not speculate
	edge that is already speuclative.
	(try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
	speculate to __builtin_unreachable
	(ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
	vptr_changed.
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.

2014-10-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
	get_dynamic_type; drop TODO.
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::get_dynamic_type): Be ready
	for otr_type to be unknown.

2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>

	* common/config/score/score-common.c: Remove.
	* config.gcc: Remove support for score-*.
	* config/score/constraints.md: Remove.
	* config/score/elf.h: Remove.
	* config/score/predicates.md: Remove.
	* config/score/score-conv.h: Remove.
	* config/score/score-generic.md: Remove.
	* config/score/score-modes.def: Remove.
	* config/score/score-protos.h: Remove.
	* config/score/score.c: Remove.
	* config/score/score.h: Remove.
	* config/score/score.md: Remove.
	* config/score/score.opt: Remove.
	* doc/md.texi: Don't document score-*.

2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>

	PR pch/63429
	* genconditions.c: Directly include ggc.h before rtl.h.

2014-10-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
	code determining speculative type.
	(ipa_polymorphic_call_context::combine_with): Fix speculation merge.

2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* altivec.md (altivec_lvsl): New define_expand.
	(altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
	(altivec_lvsr): New define_expand.
	(altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
	* rs6000.c (rs6000_expand_builtin): Change to use
	altivec_lvs[lr]_direct; remove commented-out code.

2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Issue a warning message when vec_lvsl or vec_lvsr is used with a
	little endian target.

2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree-pretty-print.c (dump_location): Make it extern. Dump also
	the column.
	* tree-pretty-print.h (dump_location): Declare.
	* gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
	(pp_gimple_stmt_1): Likewise.
	(dump_implicit_edges): Likewise.
	* gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
	LOCATION_LINE.


2014-10-03  David Malcolm  <dmalcolm@redhat.com>

	* gcc.c	(driver::global_initializations): Remove "const" so
	that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
	and decoded_options_count.

2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
	macro.
	* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
	TARGET_E500_DOUBLE case here.

2014-10-03  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54427
	PR c++/57198
	PR c++/58845
	* doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.

2014-10-03  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
	* lto-cgraph.c (lto_output_edge, input_edge): Stream
	in_polymorphic_cdtor
	* cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
	(cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
	* cgraphclones.c (cgraph_edge::clone): Likewise.
	* ipa-prop.c (update_jump_functions_after_inlining,
	try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
	to possible_dynamic_type_change.
	(decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
	(ipa_polymorphic_call_context::possible_dynamic_type_change): Add
	IN_POLY_CDOTR argument.

	* ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
	for BASE and OUTER_TYPE being NULL.
	(ipa_polymorphic_call_context::possible_dynamic_type_change): Add
	in_poly_cdtor parameter.

2014-10-03  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
	(ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
	TARGET_AVX512F.
	(expand_vec_perm_1): Likewise.

2014-10-03  Jakub Jelinek  <jakub@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/61403
	* config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
	error in comment.  Also optimize 256-bit vectors for AVX2
	or AVX (floating vectors only), provided the first permutation
	can be performed in one insn.

2014-10-03  David Malcolm  <dmalcolm@redhat.com>

	* gcc.c (class driver): New class.
	(main): Reimplement in terms of driver::main, moving most of the
	locals to be locals within individual methods of class driver.
	The remaining locals "explicit_link_files", "decoded_options" and
	"decoded_options_count" are used by multiple driver:: methods, and
	so become member data.  Doing so isolates the argc/argv reads and
	writes.  Replace "goto out" with a special exit code from
	new method driver::prepare_infiles.  Split out the old
	implementation of main into the following...
	(driver::main): New function, corresponding to the old "main"
	implementation.
	(driver::set_progname): New function, taken from the old
	"main" implementation.
	(driver::expand_at_files): Likewise.
	(driver::decode_argv): Likewise.
	(driver::global_initializations): Likewise.
	(driver::build_multilib_strings): Likewise.
	(driver::set_up_specs): Likewise.
	(driver::putenv_COLLECT_GCC): Likewise.
	(driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
	(driver::handle_unrecognized_options): Likewise.
	(driver::maybe_print_and_exit): Likewise.
	(driver::prepare_infiles): Likewise.
	(driver::do_spec_on_infiles): Likewise.
	(driver::maybe_run_linker): Likewise.
	(driver::final_actions): Likewise.
	(driver::get_exit_code): Likewise.

2014-10-03  Yury Gribov  <y.gribov@samsung.com>

	* asan.c (asan_finish_file): Disable __asan_init calls for KASan;
	don't emit empty ctors.

2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>

	* convert.c (convert_to_integer): Do not introduce useless conversions
	between integral types.

2014-10-03  David Sherwood  <david.sherwood@arm.com>

	* ira-int.h (ira_allocno): Mark hard_regno as signed.

2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>

	* lra-constraints.c (inherit_in_ebb): Handle calls with
	multiple return values.
	* caller-save.c (save_call_clobbered_regs): Likewise.

2014-10-03  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-data-refs.c (vect_permute_load_chain,
	vect_shift_permute_load_chain): Fix a typo in temporary var names,
	suffle3 to shuffle3.

	PR libgomp/61200
	* omp-low.c (taskreg_contexts): New variable.
	(scan_omp_parallel): Push newly created context into taskreg_contexts
	vector and move record layout code to finish_taskreg_scan.
	(scan_omp_task): Likewise.
	(finish_taskreg_scan): New function.
	(execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
	vector elements and release it.

	PR target/62128
	* config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
	of palignr arguments can't be used due to min 0 or max - min
	too high, try also op0, op1 order of palignr arguments.

2014-10-02  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (ipa_polymorphic_call_context):
	Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
	private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
	past end of dynamic types.
	(ipa_polymorphic_call_context::stream_out,
	speculative_outer_type): Stream dynamic flag.
	(ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
	(ipa_polymorphic_call_context::ipa_polymorphic_call_context):
	Clear DYNAMIC.
	(ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
	set it.
	(ipa_polymorphic_call_context::combine_with): Propagate dynamic.
	* ipa-prop.c (update_jump_functions_after_inlining,
	try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.

2014-10-02  Teresa Johnson  <tejohnson@google.com>

	* tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
	up when synthesizing counts to avoid rounding errors.

2014-10-02  Teresa Johnson  <tejohnson@google.com>

	PR middle-end/63422
	* tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
	asserts to handle incoming insanities.

2014-10-02  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/63375
	* tree-sra.c (build_access_from_expr_1): Disqualify volatile
	references.

2014-10-02  Olivier Hainque  <hainque@adacore.com>

	* Makefile.in (CROSS): Define, to @CROSS.

2014-10-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/62128
	* config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
	if it expands to a single insn only.
	(expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
	fail unless in_order is true.  Add forward declaration.
	(expand_vec_perm_vperm2f128): Fix up comment about which permutation
	is useful for one_operand_p.
	(ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.

2014-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* cgraphclones.c (build_function_type_skip_args): Do not make new
	type variant of old.

2014-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
	when speculation is added.
	(ipa_edge_args): Add polymorphic_call_contexts.
	(ipa_get_ith_polymorhic_call_context): New accesor.
	(ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
	(ipa_compute_jump_functions_for_edge): Compute contexts.
	(update_jump_functions_after_inlining): Update contexts.
	(ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
	update dumping; add speculative edge creation.
	(try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
	context updating.
	(update_indirect_edges_after_inlining): Pass down context.
	(ipa_edge_duplication_hook): Duplicate contexts.
	(ipa_write_node_info): Stream out contexts.
	(ipa_read_node_info): Stream in contexts.
	* ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
	types.
	(try_speculative_devirtualization): New function.
	* ipa-utils.h (try_speculative_devirtualization): Declare.

2014-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (walk_polymorphic_call_targets): Avoid ICE when
	dumping during WPA.

2014-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (ipa_modify_formal_parameters): Do not merge
	type variants.

2014-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::restrict_to_inner_class):
	Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
	use speculation_consistent_p to do so; Add CONSDER_BASES
	and CONSIDER_PLACEMENT_NEW parameters.
	(contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
	short circuit obvious cases.
	(ipa_polymorphic_call_context::dump): Improve formatting.
	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
	combine_speculation_with to record speculations; Do not ICE when
	object is located in pointer type decl; do not ICE for methods
	of UNION_TYPE; do not record nonpolymorphic types.
	(ipa_polymorphic_call_context::speculation_consistent_p): New method.
	(ipa_polymorphic_call_context::combine_speculation_with): New method.
	(ipa_polymorphic_call_context::combine_with): New method.
	(ipa_polymorphic_call_context::make_speculative): Move here; use
	combine speculation.
	* cgraph.h (ipa_polymorphic_call_context): Update
	restrict_to_inner_class prototype; add offset_by, make_speculative,
	combine_with, useless_p, combine_speculation_with and
	speculation_consistent_p methods.
	(ipa_polymorphic_call_context::offset_by): New method.
	(ipa_polymorphic_call_context::useless_p): New method.

2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/62151
	* combine.c (can_combine_p): Allow the destination register of INSN
	to be clobbered in I3.
	(subst): Do not substitute into clobbers of registers.

2014-10-01  Jakub Jelinek  <jakub@redhat.com>

	PR debug/63342
	* dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
	offset, TARGET_MEM_REF and SSA_NAME.

	* config/i386/i386.c (expand_vec_perm_palignr): Handle
	256-bit vectors for TARGET_AVX2.

	* config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
	dfirst permutation.

	PR target/63428
	* config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
	argument to avx2_permv2ti.

2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.

2014-09-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
	(fmod<mode>3): Ditto.
	(fpremxf4_i387): Ditto.
	(reminderxf3): Ditto.
	(reminder<mode>3): Ditto.
	(fprem1xf4_i387): Ditto.

2014-09-30  Teresa Johnson  <tejohnson@google.com>

	* tree-ssa-threadupdate.c (struct ssa_local_info_t): New
	duplicate_blocks bitmap.
	(remove_ctrl_stmt_and_useless_edges): Ditto.
	(create_block_for_threading): Ditto.
	(compute_path_counts): New function.
	(update_profile): Ditto.
	(recompute_probabilities): Ditto.
	(update_joiner_offpath_counts): Ditto.
	(freqs_to_counts_path): Ditto.
	(clear_counts_path): Ditto.
	(ssa_fix_duplicate_block_edges): Update profile info.
	(ssa_create_duplicates): Pass new parameter.
	(ssa_redirect_edges): Remove old profile update.
	(thread_block_1): New duplicate_blocks bitmap,
	remove old profile update.
	(thread_single_edge): Pass new parameter.

2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>

	PR middle-end/62120
	* varasm.c (decode_reg_name_and_count): Check availability for
	registers from ADDITIONAL_REGISTER_NAMES.

2014-09-30  David Malcolm  <dmalcolm@redhat.com>

	PR plugins/63410
	* Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
	(PLUGIN_HEADERS): Add pass-instances.def.

2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
	iterator.
	* config/aarch64/aarch64-simd.md
	(aarch64_sqdmull_laneq<mode>): Expand iterator.
	* config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
	(vqdmulls_lane_s32): Fix return type.
	(vqdmulls_laneq_s32): New.

2014-09-30  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/63282
	* ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
	or invert_jump_1 if jump isn't any_condjump_p.

2014-09-30  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm-cores.def (cortex-m7): New core name.
	* config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
	(fpv5-d16): Ditto.
	* config/arm/arm-tables.opt: Regenerated.
	* config/arm/arm-tune.md: Regenerated.
	* config/arm/arm.h (TARGET_VFP5): New macro.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
	* config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
	smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
	* doc/invoke.texi: Document new cpu and fpu names.

2014-09-30  Jiong Wang  <jiong.wang@arm.com>

	* shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
	before sinking insn.

2014-09-30  David Sherwood  <david.sherwood@arm.com>

	* ira-int.h (ira_allocno): Add "wmode" field.
	* ira-build.c (create_insn_allocnos): Add new "parent" function
	parameter.
	* ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
	that cannot be accessed in wmode.

2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* data-streamer.c (bp_unpack_var_len_int): Avoid signed
	integer overflow.

2014-09-29  Andi Kleen  <ak@linux.intel.com>

	* opts.c (print_filtered_help): Print --param min/max/default
	with -Q.

2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".

2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-vrp.c (get_single_symbol): New function.
	(build_symbolic_expr): Likewise.
	(symbolic_range_based_on_p): New predicate.
	(extract_range_from_binary_expr_1): Deal with single-symbolic ranges
	for PLUS and MINUS.  Do not drop symbolic ranges at the end.
	(extract_range_from_binary_expr): Try harder for PLUS and MINUS if
	operand is symbolic and based on the other operand.

2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>

	* config/microblaze/microblaze.md (call_internal1): Use VOID
	instead of SI to fix "((void (*)(void)) 0)()" issue

2014-09-29  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.c (msp430_expand_prologue): Return a
	CLOBBER rtx for naked functions.
	(msp430_expand_epilogue): Likewise.
	(msp430_use_f5_series_hwmult): Cache result.
	(use_32bit_hwmult): Cache result.
	(msp430_no_hwmult): New function.
	(msp430_output_labelref): Use it.

2014-09-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/63247
	* omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
	of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
	use the alignment of avar rather than ovar.

2014-09-28  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_function_epilogue): Only update
	last_address when a nonnote insn is found.

2014-09-26  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60665
	* ipa-devirt.c (possible_polymorphic_call_targets): Silence
	clang warning.

2014-09-26  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/62121
	* ipa-polymorphic-call.c
	(ipa_polymorphic_call_context::restrict_to_inner_class): Fix pasto
	in checking array size.

2014-09-26  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/35545
	* passes.def (pass_tracer): Move before last dominator pass.

2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>

	* gcc.c (try_generate_repro): Remove argument "prog".  Change all
	users.
	(run_attempt): Handle errors of "pex_run" invocation.

2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
	(CC1_SPEC): Define.
	* config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
	(TARGET_ASAN_SHADOW_OFFSET): Define.

2014-09-26  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_node::release_body): New argument keep_arguments
	introduced.
	* cgraph.h: Likewise.
	* cgraphunit.c (cgraph_node::create_wrapper): Usage of new
	argument introduced.
	* ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos
	created by Java.
	* tree-ssa-alias.c (ao_ref_base_alias_set): Static function
	transformed to global.
	* tree-ssa-alias.h: Likewise.

2014-09-26  Jakub Jelinek  <jakub@redhat.com>
	    Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* common.opt: New option.
	* doc/invoke.texi: Describe new option.
	* gcc.c (execute): Don't free first string early, but at the end
	of the function.  Call retry_ice if compiler exited with
	ICE_EXIT_CODE.
	(main): Factor out common code.
	(print_configuration): New function.
	(files_equal_p): Likewise.
	(check_repro): Likewise.
	(run_attempt): Likewise.
	(do_report_bug): Likewise.
	(append_text): Likewise.
	(try_generate_repro): Likewise

2014-09-25  Andi Kleen  <ak@linux.intel.com>

	* config/i386/i386.c (x86_print_call_or_nop): New function.
	(x86_function_profiler): Support -mnop-mcount and
	-mrecord-mcount.
	* config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
	* doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.

2014-09-25  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
	* ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
	* tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
	Remove.

2014-09-25  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.h (subbinfo_with_vtable_at_offset,
	type_all_derivations_known_p, type_known_to_have_no_deriavations_p,
	types_must_be_same_for_odr, types_odr_comparable): Declare.
	(polymorphic_type_binfo_p): Move here from ipa-devirt.c
	* ipa-polymorphic-call.c: New file.
	(contains_polymorphic_type_p, possible_placement_new,
	ipa_polymorphic_call_context::restrict_to_inner_class,
	contains_type_p, decl_maybe_in_construction_p,
	ipa_polymorphic_call_context::stream_out,
	ipa_polymorphic_call_context::debug,
	ipa_polymorphic_call_context::stream_in,
	ipa_polymorphic_call_context::set_by_decl,
	ipa_polymorphic_call_context::set_by_invariant,
	walk_ssa_copies,
	ipa_polymorphic_call_context::ipa_polymorphic_call_context,
	type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
	extr_type_from_vtbl_ptr_store, record_known_type
	check_stmt_for_type_change,
	ipa_polymorphic_call_context::get_dynamic_type): Move here from
	ipa-devirt.c
	* ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
	and streamer-hooks.h
	(contains_polymorphic_type_p, possible_placement_new,
	ipa_polymorphic_call_context::restrict_to_inner_class,
	contains_type_p, decl_maybe_in_construction_p,
	ipa_polymorphic_call_context::stream_out,
	ipa_polymorphic_call_context::debug,
	ipa_polymorphic_call_context::stream_in,
	ipa_polymorphic_call_context::set_by_decl,
	ipa_polymorphic_call_context::set_by_invariant,
	walk_ssa_copies,
	ipa_polymorphic_call_context::ipa_polymorphic_call_context,
	type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
	extr_type_from_vtbl_ptr_store, record_known_type
	check_stmt_for_type_change,
	ipa_polymorphic_call_context::get_dynamic_type): Move to
	ipa-polymorphic-call.c
	(type_all_derivations_known_p, types_odr_comparable,
	types_must_be_same_for_odr): Export.
	(type_known_to_have_no_deriavations_p): New function.
	* Makefile.in: Add ipa-polymorphic-call.c

2014-09-25  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
	for better storage.
	(polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
	(possible_polymorphic_call_targets): Instead of computing both
	speculative and non-speculative answers, do just one at a time.
	Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
	(dump_targets): Break out from ...
	(dump_possible_polymorphic_call_targets): ... here; dump both
	speculative and non-speculative lists.
	(ipa_devirt): Update for new possible_polymorphic_call_targets API.
	* ipa-utils.h (possible_polymorphic_call_targets): Update.

2014-09-25  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/63348
	* emit-rtl.c (try_split): Do not emit extra barrier.

2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
	* config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
	new predicates.
	(aarch64_<sur>shll2_n<mode>): Likewise.
	(aarch64_<sur>shr_n<mode>): Likewise.
	(aarch64_<sur>sra_n<mode>: Likewise.
	(aarch64_<sur>s<lr>i_n<mode>): Likewise.
	(aarch64_<sur>qshl<u>_n<mode>): Likewise.
	* config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
	* config/aarch64/iterators.md (ve_mode): New.
	(offsetlr): Remap to infix text for use in new predicates.
	* config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
	(aarch64_simd_shift_imm_hi): Likewise.
	(aarch64_simd_shift_imm_si): Likewise.
	(aarch64_simd_shift_imm_di): Likewise.
	(aarch64_simd_shift_imm_offset_qi): Likewise.
	(aarch64_simd_shift_imm_offset_hi): Likewise.
	(aarch64_simd_shift_imm_offset_si): Likewise.
	(aarch64_simd_shift_imm_offset_di): Likewise.
	(aarch64_simd_shift_imm_bitsize_qi): Likewise.
	(aarch64_simd_shift_imm_bitsize_hi): Likewise.
	(aarch64_simd_shift_imm_bitsize_si): Likewise.
	(aarch64_simd_shift_imm_bitsize_di): Likewise.

2014-09-25  Jiong Wang  <jiong.wang@arm.com>

	* shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
	new created BB as the intersection of live-in from "old_dest" and
	live-out from "bb".

2014-09-25  Felix Yang  <felix.yang@huawei.com>

	* lra.c (lra_set_insn_recog_data): Fix typo in comment.
	* genautomata.c (merge_states): Ditto.

2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/62218
	* config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
	in instruction sequence.

2014-09-25  Nick Clifton  <nickc@redhat.com>

	PR target/62218
	* config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
	in instruction sequence.

2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/63335
	* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
	Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.

2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
	(define_expand "<avx2_avx512>_perm<mode>"): ... this.
	(define_expand "avx512f_perm<mode>_mask"): Rename to ...
	(define_expand "<avx512>_perm<mode>_mask"): ... this.
	Use VI8F_256_512 mode iterator.
	(define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
	(define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.

2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "avx_movshdup256<mask_name>"): Add masking.
	(define_insn "sse3_movshdup<mask_name>"): Ditto.
	(define_insn "avx_movsldup256<mask_name>"): Ditto.
	(define_insn "sse3_movsldup<mask_name>"): Ditto.
	(define_insn "vec_dupv2df<mask_name>"): Ditto.
	(define_insn "*vec_concatv2df"): Add EVEX version.

2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "vec_set<mode>_0"): Add EVEX version.

2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn
	"<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
	New.
	(define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
	(define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
	(define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
	"nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
	(define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
	(define_expand "sse2_cvtpd2ps_mask): New.
	(define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
	(define_insn "sse2_cvtps2pd<mask_name>"): Add masking.

2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
	(ufix_notruncv8dfv8si2_mask_round): ... this.
	* config/i386/sse.md
	(define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
	(define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
	(define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
	(define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
	(define_expand "sse2_cvtpd2dq"): Delete.
	(define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
	make 2nd operand const0 vector.
	(define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
	Delete.
	(define_mode_attr pd2udqsuff): New.
	(define_insn
	"ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
	(define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
	(define_insn "*avx_cvttpd2dq256_2"): Delete.
	(define_expand "sse2_cvttpd2dq"): Ditto.
	(define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
	make 2nd operand const0 vector.

2014-09-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/63341
	* tree-vectorizer.h (vect_create_data_ref_ptr,
	vect_create_addr_base_for_vector_ref): Add another tree argument
	defaulting to NULL_TREE.
	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
	argument, pass it down to vect_create_addr_base_for_vector_ref.
	(vect_create_addr_base_for_vector_ref): Add byte_offset argument,
	add that to base_offset too if non-NULL.
	* tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
	for dr_explicit_realign_optimized set it to vector byte size
	- 1 instead of setting offset, pass byte_offset down to
	vect_create_data_ref_ptr.

2014-09-24  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (possible_polymorphic_call_targets): Remove
	forgotten debug output; canonicalize querries more wtih LTO.

2014-09-24  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (class ipa_polymorphic_call_context): Move here from
	ipa-utils.h; add stream_int and stream_out methods.
	(cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
	OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
	MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
	add CONTEXT.
	(ipa_polymorphic_call_context::ipa_polymorphic_call_context,
	ipa_polymorphic_call_context::ipa_polymorphic_call_context,
	ipa_polymorphic_call_context::clear_speculation,
	ipa_polymorphic_call_context::clear_outer_type): Move here from
	ipa-utils.h
	* ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
	(ipa_polymorphic_call_context::ipa_polymorphic_call_context,
	ipa_polymorphic_call_context::ipa_polymorphic_call_context,
	ipa_polymorphic_call_context::clear_speculation,
	ipa_polymorphic_call_context::clear_outer_type): Likewise.
	* ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
	streamer-hooks.h
	(ipa_polymorphic_call_context::stream_out): New method.
	(ipa_polymorphic_call_context::stream_in): New method.
	(noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
	* ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
	OUTER_TYPE.
	(ipa_analyze_call_uses): Simplify.
	(update_indirect_edges_after_inlining): Do not care about outer_type.
	(ipa_write_indirect_edge_info): Update.
	(ipa_write_indirect_edge_info): Likewise.
	* cgraph.c (cgraph_node::create_indirect_edge): Simplify.
	(dump_edge_flags): Break out from ...
	(cgraph_node::dump): ... here; dump indirect edges.

2014-09-24  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.h (polymorphic_call_context): Add
	metdhos dump, debug and clear_outer_type.
	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
	(ipa_polymorphic_call_context::clear_outer_type): New method.
	* ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
	* ipa-devirt.c (types_odr_comparable): New function.
	(types_must_be_same_for_odr): New function.
	(odr_subtypes_equivalent_p): Simplify.
	(possible_placement_new): Break out from ...
	(ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
	be more cuatious about returning false in cases the context may be
	valid in derived type or via placement new.
	(contains_type_p): Clear maybe_derived_type
	(ipa_polymorphic_call_context::dump): New method.
	(ipa_polymorphic_call_context::debug): New method.
	(ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
	(ipa_polymorphic_call_context::set_by_invariant): Simplify.
	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
	(possible_polymorphic_call_targets): Trust
	context.restrict_to_inner_class to suceed on all valid cases;
	remove confused sanity check.
	(dump_possible_polymorphic_call_targets): Simplify.

2014-09-24  Aldy Hernandez  <aldyh@redhat.com>

	* cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
	lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
	tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
	varpool.c: Rename all instances of DECL_ABSTRACT to
	DECL_ABSTRACT_P.

2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
	special handling for stores whose SET_SRC is an UNSPEC (such as
	UNSPEC_STVE).

2014-09-24  Jiong Wang  <jiong.wang@arm.com>

	* shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
	!REG_P (src) to release more instruction sink opportunities.

2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
	move costs for 128-bit types.

2014-09-24  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
	when duplicating a PASS_THROUGH jump function when creating a
	speculative edge.

2014-09-24  Marek Polacek  <polacek@redhat.com>

	PR c/61405
	PR c/53874
	* asan.c (maybe_instrument_call): Add default case.
	* ipa-pure-const.c (special_builtin_state): Likewise.
	* predict.c (expr_expected_value_1): Likewise.
	* lto-streamer-out.c (write_symbol): Initialize variable.

2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
	the lane.
	(vmuld_laneq_f64): Likewise.
	(vmuls_lane_f32): Likewise.
	(vmuls_laneq_f32): Likewise.

2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>

	PR bootstrap/63235
	* varpool.c (varpool_node::add): Pass decl attributes
	to lookup_attribute.

2014-09-24  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/63316
	* asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.

2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/63266
	* tree-ssa-math-opts.c (struct symbolic_number): Add comment about
	marker for unknown byte value.
	(MARKER_MASK): New macro.
	(MARKER_BYTE_UNKNOWN): New macro.
	(HEAD_MARKER): New macro.
	(do_shift_rotate): Mark bytes with unknown values due to sign
	extension when doing an arithmetic right shift. Replace hardcoded
	mask for marker by new MARKER_MASK macro.
	(find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
	numbers accordingly.

2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn
	"<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
	Add masking.
	(define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
	(define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.

2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
	(define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
	(define_expand "avx512vl_pshuflwv3_mask"): Ditto.
	(define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
	(define_expand "avx512vl_pshuflw_mask"): New.
	(define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
	(define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
	(define_expand "avx512vl_pshufhwv3_mask"): Ditto.
	(define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
	(define_expand "avx512vl_pshufhw_mask"): New.
	(define_insn "sse2_pshufhw_1<mask_name>"): Add masking.

2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
	CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
	CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
	CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
	CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
	* config/i386/sse.md
	(define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
	(define_insn
	"<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
	(define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
	(define_insn
	"<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
	(define_expand "avx512vl_pshufdv3_mask"): Ditto.
	(define_insn "avx2_pshufd_1<mask_name>"): Add masking.
	(define_expand "avx512vl_pshufd_mask"): New.
	(define_insn "sse2_pshufd_1<mask_name>"): Add masking.

2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(CODE_FOR_avx2_extracti128): Rename to ...
	(CODE_FOR_avx_vextractf128v4di): this.
	(CODE_FOR_avx2_inserti128): Rename to ...
	(CODE_FOR_avx_vinsertf128v4di): this.
	(ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
	CODE_FOR_avx_vextractf128v4di.
	(ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
	CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
	CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
	CODE_FOR_avx512vl_vinsertv8si.
	* config/i386/sse.md
	(define_expand
	"<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
	AVX512_VEC mode iterator.
	(define_insn
	"<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
	Ditto.
	(define_expand
	"<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
	AVX512_VEC_2 mode iterator.
	(define_insn "vec_set_lo_<mode><mask_name>"): New.
	(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
	(define_expand "avx512vl_vinsert<mode>"): Ditto.
	(define_insn "avx2_vec_set_lo_v4di"): Delete.
	(define_insn "avx2_vec_set_hi_v4di"): Ditto.
	(define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
	(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
	(define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
	(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
	(define_expand "avx2_extracti128"): Delete.
	(define_expand "avx2_inserti128"): Ditto.

2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
	(define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
	(define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
	(define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
	(define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
	(define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
	(define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
	(define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
	(define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
	(define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
	(define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
	(define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
	(define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.

2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	PR rtl-optimization/63210
	* ira-color.c (assign_hard_reg): Ignore conflict cost if the
	HARD_REGNO is not available for CONFLICT_A.

2014-09-23  Andi Kleen  <ak@linux.intel.com>

	* cgraph.h (symtab_node): Add no_reorder attribute.
	(symbol_table::output_asm_statements): Remove.
	* cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
	(cgraph_node::create_version_clone): Dito.
	(symbol_table::output_asm_statements): Remove.
	* trans-mem.c (ipa_tm_create_version_alias): Dito.
	* cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
	(output_in_order): Add no_reorder flag. Only handle no_reorder
	nodes when set.
	(symbol_table::compile): Add separate pass for no_reorder nodes.
	(process_common_attributes): Set no_reorder flag in symtab node.
	Add node argument.
	(process_function_and_variable_attributes): Pass symtab nodes to
	process_common_attributes.
	* doc/extend.texi (no_reorder): Document no_reorder attribute.
	* lto-cgraph.c (lto_output_node): Serialize no_reorder.
	(lto_output_varpool_node): Dito.
	(input_overwrite_node): Dito.
	(input_varpool_node): Dito.
	* varpool.c (varpool_node::add): Set no_reorder attribute.
	(symbol_table::remove_unreferenced_decls): Handle no_reorder.
	(symbol_table::output_variables): Dito.
	* symtab.c (symtab_node::dump_base): Print no_reorder.

2014-09-23  Jiong Wang  <jiong.wang@arm.com>

	* shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM
	not be INVALID_REGNUM.

2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>

	* configure: Regenerate.

2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>

	* combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
	when result_mode == shift_mode.

2014-09-23  Kostya Serebryany  <kcc@google.com>

	Update to match the changed asan API.
	* asan.c (asan_global_struct): Update the __asan_global definition
	to match the new API.
	(asan_add_global): Ditto.
	* sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
	to __asan_init_v4.

2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (f32_vsx): New mode attributes to
	refine the constraints used on 32/64-bit floating point moves.
	(f32_av): Likewise.
	(f64_vsx): Likewise.
	(f64_dm): Likewise.
	(f64_av): Likewise.
	(BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
	(BOOL_REGS_OP1): Likewise.
	(BOOL_REGS_OP2): Likewise.
	(BOOL_REGS_UNARY): Likewise.
	(mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
	32/64-bit floating point moves.  Do not use wa, instead use ww/ws
	for moves involving VSX registers.  Do not use constraints that
	target VSX registers for decimal types.
	(mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
	(mov<mode>_hardfloat64, DFmode/DDmode): Likewise.

2014-09-23  Jan Hubicka  <hubicka@ucw.cz>

	* tree.h (int_bit_position): Turn into inline function;
	implement using wide int.
	* tree.c (int_bit_position): Remove.

2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>

	PR bootstrap/63280
	* target-globals.c (target_globals::~target_globals): Fix location
	of ira_int destruction.

2014-09-23  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64.md (return): New.
	(simple_return): Likewise.
	* config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
	* config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.

2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>

	* common/config/aarch64/aarch64-common.c:
	(default_options aarch_option_optimization_table):
	Default to -fsched-pressure.

2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>

	* cfgcleanup.c (try_optimize_cfg): Do not remove label
	with LABEL_PRESERVE_P flag set.

2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
	(define_insn "avx_shufpd256_1<mask_name>"): Ditto.
	(define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
	(define_insn "sse2_shufpd_v2df_mask"): New.

2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
	(define_insn "avx_shufps256_1<mask_name>"): Ditto.
	(define_expand "sse_shufps<mask_expand4_name>"): Ditto.
	(define_insn "sse_shufps_v4sf_mask"): New.

2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "avx_unpckhps256<mask_name>"): Add masking.
	(define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
	(define_insn "avx_unpcklps256<mask_name>"): Ditto.
	(define_insn "unpcklps128_mask"): New.

2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "avx_unpckhpd256<mask_name>"): Add masking.
	(define_insn "avx512vl_unpckhpd128_mask"): New.
	(define_expand "avx_movddup256<mask_name>"): Add masking.
	(define_expand "avx_unpcklpd256<mask_name>"): Ditto.
	(define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
	(define_insn "avx512vl_unpcklpd128_mask"): New.

2014-09-22  Joseph Myers  <joseph@codesourcery.com>

	* doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* doc/tm.texi: Regenerate.
	* system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
	* config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
	Remove.
	* config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
	Remove.
	* config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
	* config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
	Remove.

2014-09-22  Jan Hubicka  <hubicka@ucw.cz>

	* tree-ssa-ccp.c (prop_value_d): Rename to ...
	(ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
	* ipa-prop.c (struct type_change_info): Rename to ...
	(prop_type_change_info): ... this; update uses.
	* ggc-page.c (globals): Rename to ...
	(static struct ggc_globals): ... this; update uses.
	* tree-ssa-loop-im.c (mem_ref): Rename to ...
	(im_mem_ref): ... this; update uses.
	* ggc-common.c (loc_descriptor): Rename to ...
	(ggc_loc_descriptor): ... this; update uses.
	* lra-eliminations.c (elim_table): Rename to ...
	(lra_elim_table): ... this; update uses.
	* bitmap.c (output_info): Rename to ...
	(bitmap_output_info): ... this; update uses.
	* gcse.c (expr): Rename to ...
	(gcse_expr) ... this; update uses.
	(occr): Rename to ...
	(gcse_occr): .. this; update uses.
	* tree-ssa-copy.c (prop_value_d): Rename to ...
	(prop_value_t): ... this.
	* predict.c (block_info_def): Rename to ...
	(block_info): ... this; update uses.
	(edge_info_def): Rename to ...
	(edge_info): ... this; update uses.
	* profile.c (bb_info): Rename to ...
	(bb_profile_info): ... this; update uses.
	* alloc-pool.c (output_info): Rename to ...
	(pool_output_info): ... this; update uses.
	* ipa-cp.c (topo_info): Rename to ..
	(ipa_topo_info): ... this; update uses.
	* tree-nrv.c (nrv_data): Rename to ...
	(nrv_data_t): ... this; update uses.
	* ipa-split.c (bb_info): Rename to ...
	(split_bb_info): ... this one.
	* profile.h (edge_info): Rename to ...
	(edge_profile_info): ... this one; update uses.
	* dse.c (bb_info): Rename to ...
	(dse_bb_info): ... this one; update uses.
	* cprop.c (occr): Rename to ...
	(cprop_occr): ... this one; update uses.
	(expr): Rename to ...
	(cprop_expr): ... this one; update uses.

2014-09-22  Jason Merrill  <jason@redhat.com>

	* Makefile.in (check-parallel-%): Add @.

2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/geniterators.sh: New.
	* config/aarch64/iterators.md (VDQF_DF): New.
	* config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
	* config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.

2014-09-22  Peter A. Bigot  <pab@pabigot.com>

	* config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
	-lnosys when -msim absent.

2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>

	* fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.

2014-09-22  Richard Biener  <rguenther@suse.de>

	* gimplify.c (gimplify_init_constructor): Do not leave
	non-GIMPLE vector constructors around.
	* tree-cfg.c (verify_gimple_assign_single): Verify that
	CONSTRUCTORs have gimple elements.

2014-09-22  Jakub Jelinek  <jakub@redhat.com>

	PR debug/63328
	* omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
	insert a debug source bind stmt setting DEBUG_EXPR_DECL
	instead of a normal gimple assignment stmt.

2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/bfin/bfin.md: Fix use of constraints in define_split.

2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>

	* config/i386/i386.c (ix86_cannot_change_mode_class): Remove
	GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.

2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>

	* hard-reg-set.h: Include hash-table.h.
	(target_hard_regs): Add a finalize method and a x_simplifiable_subregs
	field.
	* target-globals.c (target_globals::~target_globals): Call
	hard_regs->finalize.
	* rtl.h (subreg_shape): New structure.
	(shape_of_subreg): New function.
	(simplifiable_subregs): Declare.
	* reginfo.c (simplifiable_subreg): New structure.
	(simplifiable_subregs_hasher): Likewise.
	(simplifiable_subregs): New function.
	(invalid_mode_changes): Delete.
	(alid_mode_changes, valid_mode_changes_obstack): New variables.
	(record_subregs_of_mode): Remove subregs_of_mode parameter.
	Record valid mode changes in valid_mode_changes.
	(find_subregs_of_mode): Remove subregs_of_mode parameter.
	Update calls to record_subregs_of_mode.
	(init_subregs_of_mode): Remove invalid_mode_changes and bitmap
	handling.  Initialize new variables.  Update call to
	find_subregs_of_mode.
	(invalid_mode_change_p): Check new variables instead of
	invalid_mode_changes.
	(finish_subregs_of_mode): Finalize new variables instead of
	invalid_mode_changes.
	(target_hard_regs::finalize): New function.
	* ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
	even when CLASS_CANNOT_CHANGE_MODE is undefined.

2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>

	* combine.c (subst): Use simplify_subreg_regno rather than
	REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.

2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (subreg_info): Expand commentary
	* rtlanal.c (subreg_get_info): Likewise.

2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>

	* hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
	(AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
	(IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.

2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* config/arm/arm.c: #include "tm-constrs.h"
	(thumb1_size_rtx_costs): Adjust rtx costs.

2014-09-22  Hans-Peter Nilsson  <hp@axis.com>

	* configure.ac (target_header_dir): Move block defining
	this to before the block setting inhibit_libc.
	(inhibit_libc): When considering $with_headers, just
	check it it's explicitly "no".  If not, also check if
	$target_header_dir/stdio.h is present.  If not, set
	inhibit_libc=true.
	* configure: Regenerate.

2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>

	* config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.

2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
	insn for divides by integer powers of two.
	(div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
	(mod<mode>3): Fix formatting.
	(three anonymous define_insn and two define_split): Delete.

2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
	*ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
	(floatdisf2_internal2): Ditto.
	(ashrdi3_no_power): Ditto.  Fix formatting.

2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
	popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
	Tidy.

2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
	constant, use addsi3 directly.
	(three anonymous define_insn, two define_split): Delete.
	(sub<mode>3): Move.  Do not allow constant second operand.
	Generate different insn for constant first operand.
	(*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
	(subf<mode>3_imm): New.
	(ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
	(*plus_ltu<mode>): Only handle registers.
	(*plus_ltu<mode>_1): New.  Handle integer third operand.
	(*plus_gtu<mode>): Only handle registers.
	(*plus_gtu<mode>_1): New.  Handle integer third operand.

2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (iorxor): New code_iterator.
	(iorxor): New code_attr.
	(IORXOR): New code_attr.
	(*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
	(ior<mode>3, xor<mode>3): Delete.
	(<iorxor><mode>3): New.
	(splitter for "big" integer ior, xor): New.
	(*bool<mode>3): Move.  Also handle AND.
	(*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
	(splitter for "big" integer ior, xor): Delete.

2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
	(two anonymous define_insn and two define_split): Delete.
	(*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.

2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
	(two anonymous define_insn and two define_split): Delete.
	(*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.

2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.

2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/predicates.md (ca_operand): Allow subregs.
	(input_operand): Do not allow ca_operand.
	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
	carry bit, allow SImode and Pmode.
	(rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.

2014-09-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
	clobbered registers using clobber_reg.  Remove UNSPEC decoration.
	* config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
	(*call_rex64_ms_sysv): Remove.
	(*call_value_rex64_ms_sysv): Ditto.
	* config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.

2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
	operand 3 to "CnL".

2014-09-20  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.md: Remove constraints from define_split
	patterns.

2014-09-19  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.h (ipa_polymorphic_call_context): Turn into class;
	add ctors.
	(possible_polymorphic_call_targets,
	dump_possible_polymorphic_call_targets,
	possible_polymorphic_call_target_p,
	possible_polymorphic_call_target_p): Simplify.
	(get_dynamic_type): Remove.
	* ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
	(clear_speculation): Bring to ipa-deivrt.h
	(get_class_context): Rename to ...
	(ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
	(contains_type_p): Update.
	(get_dynamic_type): Rename to ...
	ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
	(possible_polymorphic_call_targets): UPdate.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
	* ipa-prop.c (ipa_analyze_call_uses): Update.

2014-09-19  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (varpool_node::externally_visible_p): Do not
	privatize dynamic TLS variables.

2014-09-19  Jan Hubicka  <hubicka@ucw.cz>

	* diagnostic.c (warning_n): New function.
	* diagnostic-core.h (warning_n): Declare.
	* ipa-devirt.c (ipa_devirt): Handle singulars correctly;
	output dynamic counts when available.

2014-09-19  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/63255
	* ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
	issue in setting body_removed flag.

2014-09-19  Jan Hubicka  <hubicka@ucw.cz>

	PR c++/61825
	* c-family/c-common.c (handle_alias_ifunc_attribute): Check
	that visibility change is possible
	(handle_weakref_attribute): Likewise.
	* cgraph.h (symtab_node): Add method get_create and
	field refuse_visibility_changes.
	(symtab_node::get_create): New method.
	* fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
	* varasm.c (mark_weak): Verify that visibility change is possible.

2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
	for base_reg_operand to be common between LO_SUM and PLUS.
	(fusion_gpr_mem_combo): New predicate to match a fused address
	that combines the addis and memory offset address.

	* config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
	calling signature.
	(emit_fusion_gpr_load): Likewise.

	* config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
	signature to pass each argument separately, rather than
	using an operands array.  Rewrite the insns found by peephole2 to
	be a single insn, rather than hoping the insns will still be
	together when the peephole pass is done.  Drop being called via a
	normal peephole.
	(emit_fusion_gpr_load): Change calling signature to be called from
	the fusion_gpr_load_<mode> insns with a combined memory address
	instead of the peephole pass passing the addis and offset
	separately.

	* config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
	fusion.
	(power8 fusion peephole): Drop support for doing power8 via a
	normal peephole that was created by the peephole2 pass.
	(power8 fusion peephole2): Create a new insn with the fused
	address, so that the fused operation is kept together after
	register allocation is done.
	(fusion_gpr_load_<mode>): Likewise.

2014-09-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/63286
	* tree.c (need_assembler_name_p): Do not mangle variadic types.

2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>

	* recog.c (scratch_operand): Do not simply allow all hard registers:
	only allow those that are allocatable.

2014-09-19  Felix Yang  <felix.yang@huawei.com>

	* cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
	comments and fix spacing to conform to coding style.

2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>

	* genrecog.c (validate_pattern): Allow empty constraints in
	a match_scratch.

2014-09-19  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c (decl_ultimate_origin): Update comment.
	* tree.c (block_ultimate_origin): Same.

2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
	Update GCC version name to GCC 5.
	(rs6000_function_arg_boundary): Likewise.
	(rs6000_function_arg): Likewise.

2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/sh/sh.md: Fix use of constraints in define_split.

2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR ipa/61998
	* ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.

2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/md.texi (Modifiers): Consistently use "read/write"
	nomenclature rather than "input/output".
	* genrecog.c (constraints_supported_in_insn_p): New.
	(validate_pattern): If needed, also check constraints on
	MATCH_SCRATCH operands.
	* genoutput.c (validate_insn_alternatives): Catch earlyclobber
	operands with no '=' or '+' modifier.

2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
	scratch register as written.

2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_emit_epilogue): Remove bogus
	assignment.

2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
	expanders.

2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/62662
	* config/s390/s390.c (s390_emit_epilogue): When doing the return
	address load optimization force s390_optimize_prologue to leave it
	that way.  Only do the optimization if we already decided to push
	r14 into a stack slot.

2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>

	* asan.c (build_check_stmt): Alignment arg was added.
	(asan_expand_check_ifn): Optimization for alignment >= 8.

2014-09-19  Olivier Hainque  <hainque@adacore.com>

	* config/i386/vxworksae.h: Remove obsolete definitions.
	(STACK_CHECK_PROTECT): Define.
	* config/i386/vx-common.h: Remove.  Merge contents within
	config/i386/vxworks.h.
	* config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
	i386/vx-common.h.

2014-09-19  Olivier Hainque  <hainque@adacore.com>

	* config.gcc (powerpc-wrs-vxworksmils): New configuration.
	* config/rs6000/t-vxworksmils: New file.
	* config/rs6000/vxworksmils.h: New file.

2014-09-19  Olivier Hainque  <hainque@adacore.com>

	* varasm.c (default_section_type_flags): Flag .persistent.bss
	sections as SECTION_BSS.

2014-09-19  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
	pop'ed registers so that DCE does not eliminate them.

2014-09-18  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/63298
	* ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.

2014-09-18  Joseph Myers  <joseph@codesourcery.com>

	* system.h (LIBGCC2_TF_CEXT): Poison.
	* config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
	* config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
	* config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
	* config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
	* config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
	* config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
	* config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
	* config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
	* config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.

2014-09-19  Kito Cheng  <kito@0xlab.org>

	* except.h: Fix header guard.
	* addresses.h: Add missing header guard.
	* cfghooks.h: Likewise.
	* collect-utils.h: Likewise.
	* collect2-aix.h: Likewise.
	* conditions.h: Likewise.
	* cselib.h: Likewise.
	* dwarf2asm.h: Likewise.
	* graphds.h: Likewise.
	* graphite-scop-detection.h: Likewise.
	* gsyms.h: Likewise.
	* hw-doloop.h: Likewise.
	* incpath.h: Likewise.
	* ipa-inline.h: Likewise.
	* ipa-ref.h: Likewise.
	* ira-int.h: Likewise.
	* ira.h: Likewise.
	* lra-int.h: Likewise.
	* lra.h: Likewise.
	* lto-section-names.h: Likewise.
	* read-md.h: Likewise.
	* reload.h: Likewise.
	* rtl-error.h: Likewise.
	* sdbout.h: Likewise.
	* targhooks.h: Likewise.
	* tree-affine.h: Likewise.
	* xcoff.h: Likewise.
	* xcoffout.h: Likewise.

2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR debug/63285
	* haifa-sched.c (schedule_block): Advance cycle at the end of BB
	if advance != 0.

2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/61360
	* lra.c (lra): Call recog_init.

2014-09-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/62017
	* asan.c (transform_statements): Don't instrument clobber statements.

2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
	to neon_load1_1reg<q>.

2014-09-17  Jakub Jelinek  <jakub@redhat.com>

	PR debug/63284
	* tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
	if there are only debug stmts after the noreturn call, instead
	remove the debug stmts.

2014-09-17  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (type_pair, default_hashset_traits): New types.
	(odr_types_equivalent_p): Use pair hash.
	(odr_subtypes_equivalent_p): Likewise, do structural compare
	on ODR types that may be mismatched.
	(warn_odr): Support warning when only one field is given.
	(odr_types_equivalent_p): Strenghten comparsions made;
	support VOIDtype.
	(add_type_duplicate): Update VISITED hash set.

2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config.gcc (*-*-rtems*): Default to 'rtems' thread model.
	Enable selection of 'posix' or no thread model.

2014-09-17  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (arm_option_override): Reject -mfpu=neon
	when architecture is older than ARMv7.

2014-09-16  John David Anglin  <danglin@gcc.gnu.org>

	PR target/61853
	* config/pa/pa.c (pa_function_value): Directly handle aggregates
	that fit exactly in a word or double word.

2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
	zmm/k regs support.

2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_expand_vector_extract): Handle V32HI and V64QI modes.
	* config/i386/sse.md
	(define_mode_iterator VI48F_256): New.
	(define_mode_attr extract_type): Ditto.
	(define_mode_attr extract_suf): Ditto.
	(define_mode_iterator AVX512_VEC): Ditto.
	(define_expand
	"<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
	AVX512_VEC.
	(define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
	(define_insn
	"<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
	Ditto.
	(define_mode_attr extract_type_2): Ditto.
	(define_mode_attr extract_suf_2): Ditto.
	(define_mode_iterator AVX512_VEC_2): Ditto.
	(define_expand
	"<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
	AVX512_VEC_2 mode iterator.
	(define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
	(define_expand "avx512vl_vextractf128<mode>"): Ditto.
	(define_insn_and_split "vec_extract_lo_<mode>"): Delete.
	(define_insn "vec_extract_lo_<mode><mask_name>"): New.
	(define_split for V16FI mode): Ditto.
	(define_insn_and_split "vec_extract_lo_<mode>"): Delete.
	(define_insn "vec_extract_lo_<mode><mask_name>"): New.
	(define_split for VI8F_256 mode): Ditto.
	(define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
	(define_insn_and_split "vec_extract_lo_<mode>"): Delete.
	(define_insn "vec_extract_lo_<mode><mask_name>"): New.
	(define_split for VI4F_256 mode): Ditto.
	(define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
	(define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
	(define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
	(define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
	(define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
	(define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
	(define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
	Update `type' attribute, remove explicit `memory' attribute calculation.

2014-09-16  Kito Cheng  <kito@0xlab.org>

	* ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
	ira_spilled_reg_stack_slots_num if using lra.
	(do_reload): Remove release ira_spilled_reg_stack_slots part.
	* ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
	make sure not using lra.
	(ira_reuse_stack_slot): Likewise.
	(ira_mark_new_stack_slot): Likewise.

2014-09-15  Andi Kleen  <ak@linux.intel.com>

	* function.c (allocate_struct_function): Force
	DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
	profiling is disabled.

2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>

	* cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
	config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
	emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
	reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
	macro with statically checked member functions.
	* rtl.h (rtx_insn::deleted): New method.
	(rtx_insn::set_deleted): Likewise.
	(rtx_insn::set_undeleted): Likewise.
	(INSN_DELETED_P): Remove.

2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>

	* config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
	result of emit_jump_insn_before to a new variable.
	* jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
	(mark_jump_label_1): Likewise.
	(mark_jump_label_asm): Likewise.
	* reload1.c (gen_reload): Change type of tem to rtx_insn *.
	* rtl.h (mark_jump_label): Adjust.

2014-09-15  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (dg_target_exps): Remove.
	(check_gcc_parallelize): Change to just an upper bound number.
	(check-%-subtargets): Always print the non-parallelized goals.
	(check_p_vars, check_p_comma, check_p_subwork): Remove.
	(check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
	check_p_numbers3, check_p_numbers4, check_p_numbers5,
	check_p_numbers6): New variables.
	(check_p_numbers): Set to sequence from 1 to 9999.
	(check_p_subdirs): Set to sequence from 1 to minimum of
	$(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
	or 128.
	(check-%, check-parallel-%): Rewritten so that for parallelized
	testing each job runs all the *.exp files, with
	GCC_RUNTEST_PARALLELIZE_DIR set in environment.

2014-09-15  David Malcolm  <dmalcolm@redhat.com>

	* config/arc/arc-protos.h (arc_attr_type): Strengthen param from
	rtx to rtx_insn *.
	(arc_sets_cc_p): Likewise.
	* config/arc/arc.c (arc_print_operand): Use methods of
	"final_sequence" for clarity, and to enable strengthening of
	locals "jump" and "delay" from rtx to rtx_insn *.
	(arc_adjust_insn_length): Strengthen local "prev" from rtx to
	rtx_insn *; use method of rtx_sequence for typesafety.
	(arc_get_insn_variants): Use insn method of rtx_sequence for
	typesafety.
	(arc_pad_return): Likewise.
	(arc_attr_type): Strengthen param from rtx to rtx_insn *.
	(arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
	dyn_cast to rtx_sequence *, using insn method for typesafety.
	* config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
	rtx_sequence * and use insn method when invoking get_attr_length.
	* config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
	to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
	rtx_sequence *, introducing a local "seq", using its insn method
	from typesafety and clarity.
	(add_sched_insns_for_speculation): Strengthen local "next" from
	rtx to rtx_insn *.
	* config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
	(predicate_insn): Likewise.
	* config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
	second param.
	* config/cris/cris.c (cris_notice_update_cc): Likewise.
	* config/epiphany/epiphany-protos.h
	(extern void epiphany_insert_mode_switch_use): Likewise for param
	"insn".
	(get_attr_sched_use_fpu): Likewise for param.
	* config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
	Likewise for param "insn".
	* config/epiphany/mode-switch-use.c (insert_uses): Likewise for
	param "insn" of "target_insert_mode_switch_use" callback.
	* config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
	(frv_issues_to_branch_unit_p): Likewise.
	(frv_pack_insn_p): Likewise.
	(frv_compare_insns): Strengthen locals "insn1" and "insn2" from
	const rtx * (i.e. mutable rtx_def * const *) to
	rtx_insn * const *.
	* config/i386/i386-protos.h (standard_sse_constant_opcode):
	Strengthen first param from rtx to rtx_insn *.
	(output_fix_trunc): Likewise.
	* config/i386/i386.c (standard_sse_constant_opcode): Likewise.
	(output_fix_trunc): Likewise.
	(core2i7_first_cycle_multipass_filter_ready_try): Likewise for
	local "insn".
	(min_insn_size): Likewise for param "insn".
	(get_mem_group): Likewise.
	(is_cmp): Likewise.
	(get_insn_path): Likewise.
	(get_insn_group): Likewise.
	(count_num_restricted): Likewise.
	(fits_dispatch_window): Likewise.
	(add_insn_window): Likewise.
	(add_to_dispatch_window): Likewise.
	(debug_insn_dispatch_info_file): Likewise.
	* config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
	first param.
	* config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
	"cmp" and local "prev".
	(m32c_output_compare): Likewise for param "insn".
	* config/m32r/predicates.md (define_predicate "small_insn_p"): Add
	a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
	(define_predicate "large_insn_p"): Likewise.
	* config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
	param from rtx to rtx_insn *.
	(attr_op_mem m68k_sched_attr_op_mem): Likewise.
	* config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
	(m68k_sched_attr_size): Likewise.
	(sched_get_opxy_mem_type): Likewise for param "insn".
	(m68k_sched_attr_op_mem): Likewise.
	(sched_mem_operand_p): Likewise.
	* config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
	* config/mep/mep.c (mep_multi_slot): Likewise.
	* config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
	first param.
	(mips_sync_loop_insns): Likewise.
	* config/mips/mips.c (mips_print_operand_punctuation): Use insn
	method of "final_sequence" for typesafety.
	(mips_process_sync_loop): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mips_output_sync_loop): Likewise.
	(mips_sync_loop_insns): Likewise.
	(mips_74k_agen_init): Likewise.
	(mips_sched_init): Use NULL rather than NULL_RTX when working with
	insns.
	* config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
	Strengthen param "insn" from rtx to rtx_insn *.
	* config/nds32/nds32.c (nds32_target_alignment): Likewise for
	local "insn".
	* config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for param.
	* config/pa/pa.c (pa_output_function_epilogue): Likewise for local
	"insn".  Use method of rtx_sequence for typesafety.
	(branch_to_delay_slot_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(branch_needs_nop_p): Likewise.
	(use_skip_p): Likewise.
	(pa_insn_refs_are_delayed): Likewise.
	* config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
	for locals "insn", "ninsn".
	* config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
	"insn".
	(is_cracked_insn): Likewise.
	(is_branch_slot_insn): Likewise.
	(is_nonpipeline_insn): Likewise.
	(insn_terminates_group_p): Likewise.
	(insn_must_be_first_in_group): Likewise.
	(insn_must_be_last_in_group): Likewise.
	(force_new_group): Likewise for param "next_insn".
	* config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
	"insn".
	(s390_sched_score): Likewise.
	* config/sh/sh-protos.h (output_branch): Likewise for param 2.
	(rtx sfunc_uses_reg): Likewise for sole param.
	* config/sh/sh.c (sh_print_operand): Use insn method of
	final_sequence for typesafety.
	(output_branch): Strengthen param "insn" from rtx to rtx_insn *.
	Use insn method of final_sequence for typesafety.
	(sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
	* config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
	for param.
	(eligible_for_return_delay): Likewise.
	(eligible_for_sibcall_delay): Likewise.
	* config/sparc/sparc.c (eligible_for_call_delay): Likewise.
	(eligible_for_return_delay): Likewise.
	(eligible_for_sibcall_delay): Likewise.
	* config/stormy16/stormy16-protos.h
	(xstormy16_output_cbranch_hi): Likewise for final param.
	(xstormy16_output_cbranch_si): Likewise.
	* config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
	(xstormy16_output_cbranch_si): Likewise.
	* config/v850/v850-protos.h (notice_update_cc): Likewise.
	* config/v850/v850.c (notice_update_cc): Likewise.

	* final.c (get_attr_length_1): Strengthen param "insn" and param
	of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
	(get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
	(get_attr_min_length): Likewise.
	(shorten_branches): Likewise for signature of locals "length_fun"
	and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
	from a checked cast and use its methods for clarity and to enable
	strengthening local "inner_insn" from rtx to rtx_insn *.
	* genattr.c (gen_attr): When writing out the prototypes of the
	various generated "get_attr_" functions, strengthen the params of
	the non-const functions from rtx to rtx_insn *.
	Similarly, strengthen the params of insn_default_length,
	insn_min_length, insn_variable_length_p, insn_current_length.
	(main): Similarly, strengthen the param of num_delay_slots,
	internal_dfa_insn_code, insn_default_latency, bypass_p,
	insn_latency, min_issue_delay, print_reservation,
	insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
	"insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
	to hook_int_rtx_insn_unreachable.
	* genattrtab.c (write_attr_get): When writing out the generated
	"get_attr_" functions, strengthen the param "insn" from rtx to
	rtx_insn *, eliminating a checked cast.
	(make_automaton_attrs): When writing out prototypes of
	"internal_dfa_insn_code_", "insn_default_latency_" functions
	and the "internal_dfa_insn_code" and "insn_default_latency"
	callbacks, strengthen their params from rtx to rtx_insn *
	* genautomata.c (output_internal_insn_code_evaluation): When
	writing out code, add a checked cast from rtx to rtx_insn * when
	invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
	(output_dfa_insn_code_func): Strengthen param of generated
	function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
	(output_trans_func): Likewise for generated function
	"state_transition".
	(output_internal_insn_latency_func): When writing out generated
	function "internal_insn_latency", rename params from "insn" and
	"insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
	locals "insn" and "insn2" as rtx_insn * with checked casts once
	we've proven that we're not dealing with const0_rtx.
	(output_insn_latency_func):  Strengthen param of generated
	function "insn_latency" from rtx to rtx_insn *.
	(output_print_reservation_func): Likewise for generated function
	"print_reservation".
	(output_insn_has_dfa_reservation_p): Likewise for generated
	function "insn_has_dfa_reservation_p".
	* hooks.c (hook_int_rtx_unreachable): Rename to...
	(hook_int_rtx_insn_unreachable): ...this, and strengthen param
	from rtx to rtx_insn *.
	* hooks.h (hook_int_rtx_unreachable): Likewise.
	(extern int hook_int_rtx_insn_unreachable): Likewise.
	* output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
	(get_attr_min_length): Likewise.
	* recog.c (get_enabled_alternatives): Likewise.
	* recog.h (alternative_mask get_enabled_alternatives): Likewise.
	* reorg.c (find_end_label): Introduce local rtx "pat" and
	strengthen local "insn" from rtx to rtx_insn *.
	(redundant_insn): Use insn method of "seq" rather than element for
	typesafety; strengthen local "control" from rtx to rtx_insn *.
	* resource.c (mark_referenced_resources): Add checked cast to
	rtx_insn * within INSN/JUMP_INSN case.
	(mark_set_resources): Likewise.
	* sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
	rtx to rtx_insn *.

2014-09-15  David Malcolm  <dmalcolm@redhat.com>

	* config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
	param "label" from rtx to rtx_insn *.
	* config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
	and local "op".
	* doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
	(TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
	(TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
	(TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
	* final.c (default_label_align_after_barrier_max_skip): Strengthen
	param from rtx to rtx_insn *.
	(default_loop_align_max_skip): Likewise.
	(default_label_align_max_skip): Likewise.
	(default_jump_align_max_skip): Likewise.
	* target.def (label_align_after_barrier_max_skip): Likewise.
	(loop_align_max_skip): Likewise.
	(label_align_max_skip): Likewise.
	(jump_align_max_skip): Likewise.
	* targhooks.h (default_label_align_after_barrier_max_skip): Likewise.
	(default_loop_align_max_skip): Likewise.
	(default_label_align_max_skip): Likewise.
	(default_jump_align_max_skip): Likewise.

2014-09-15  David Malcolm  <dmalcolm@redhat.com>

	* config/arc/arc.c (arc_can_follow_jump): Strengthen both params
	from const_rtx to const rtx_insn *.  Update union members from rtx
	to rtx_insn *.
	* doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
	* hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
	(hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
	strengthen both params from const_rtx to const rtx_insn *.
	* hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
	(hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
	* reorg.c (follow_jumps): Strengthen param "jump" from rtx to
	rtx_insn *.
	* target.def (can_follow_jump): Strengthen both params from
	const_rtx to const rtx_insn *, and update default implementation
	from hook_bool_const_rtx_const_rtx_true to
	hook_bool_const_rtx_insn_const_rtx_insn_true.

2014-09-15  David Malcolm  <dmalcolm@redhat.com>

	* sched-deps.c (deps_start_bb): Strengthen param "head" and local
	"insn" from rtx to rtx_insn *.
	* sched-int.h (deps_start_bb): Likewise for 2nd param.

2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "vcvtph2ps<mask_name>"): Add masking.
	(define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
	(define_insn "vcvtph2ps256<mask_name>"): Ditto.
	(define_expand "vcvtps2ph_mask"): New.
	(define_insn "*vcvtps2ph<mask_name>"): Add masking.
	(define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
	(define_insn "vcvtps2ph256<mask_name>"): Ditto.

2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
	New.
	(define_mode_iterator VI24_AVX512BW_1): Ditto.
	(define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
	(define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
	(define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
	also for TARGET_AVX512VL.
	(define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.

2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* doc/install.texi (Options specification): add
	--disable-libsanitizer item.

2014-09-14  James Clarke  <jrtc27@jrtc27.com>
	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/61407
	* config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
	and above.
	* config/darwin-driver.c (darwin_find_version_from_kernel): Removed
	kernel version check to avoid incrementing it after every major OS X
	release.
	(darwin_default_min_version): Avoid static memory buffer.

2014-09-13  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (need_assembler_name_p): Store C++ type mangling only
	for aggregates.

2014-09-13  Marek Polacek  <polacek@redhat.com>

	* tree.c (protected_set_expr_location): Don't check whether T is
	non-null here.

2014-09-12  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
	(extend_and_shift1_hipsi2): Likewise.
	(extend_and_shift2_hipsi2): Likewise.

2014-09-12  David Malcolm  <dmalcolm@redhat.com>

	* config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
	with NULL when dealing with an insn.
	* config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
	from rtx to rtx_insn *.
	* rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
	const_rtx to const rtx_insn *.
	* rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.

2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
	assert.

2014-09-12  Joseph Myers  <joseph@codesourcery.com>

	* target.def (libgcc_floating_mode_supported_p): New hook.
	* targhooks.c (default_libgcc_floating_mode_supported_p): New
	function.
	* targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
	* doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
	(LIBGCC2_HAS_TF_MODE): Remove.
	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
	* doc/tm.texi: Regenerate.
	* genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
	machine mode.
	* system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
	(LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
	* config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
	* config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
	function.
	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
	* config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
	* config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
	* config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
	* config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
	Remove.
	* config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
	New macro.
	(ia64_libgcc_floating_mode_supported_p): New function.
	* config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
	(IA64_NO_LIBGCC_TFMODE): Define.
	* config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
	* config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
	(pdp11_scalar_mode_supported_p): New function.
	* config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
	* config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.

2014-09-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/63237
	* gimple-fold.c (get_maxval_strlen): Gimplify string length.

2014-09-12  Marc Glisse  <marc.glisse@inria.fr>

	* tree.c (integer_each_onep): New function.
	* tree.h (integer_each_onep): Declare it.
	* fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
	-A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
	(X & 1) == 0 for vector and complex.

2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
	for A57.
	(cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
	cost to spilling from integer to FP registers.

2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
	move handling.
	(generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
	are now handled correctly.

2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
	handling of CALLER_SAVE_REGS and POINTER_REGS.

2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
	the number of hard registers.

2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI48_AVX512VL): New.
	(define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
	"avx512f_vternlog<mode>_maskz" and update mode iterator.
	(define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
	from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
	(define_insn "<avx512>_vternlog<mode>_mask"): Rename from
	"avx512f_vternlog<mode>_mask" and update mode iterator.
	(define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
	from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
	iterator.
	(define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
	"avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
	(define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
	"avx512f_<rotate><mode><mask_name>" and update mode iterator.
	(define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
	(define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.

2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md (VI128_256): Delete.
	(define_mode_iterator VI124_256): New.
	(define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
	(define_expand "<code><mode>3<mask_name><round_name>"): Delete.
	(define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
	(define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
	"*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
	(define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
	(define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
	(define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
	iterator.
	(define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
	in presence of AVX-512.

2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_expand "<avx512>_gathersi<mode>"): Rename from
	"avx512f_gathersi<mode>".
	(define_insn "*avx512f_gathersi<mode>"): Use VI48F.
	(define_insn "*avx512f_gathersi<mode>_2"): Ditto.
	(define_expand "<avx512>_gatherdi<mode>"): Rename from
	"avx512f_gatherdi<mode>".
	(define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
	(define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
	wide versions.
	(define_expand "<avx512>_scattersi<mode>"): Rename from
	"avx512f_scattersi<mode>".
	(define_insn "*avx512f_scattersi<mode>"): Use VI48F.
	(define_expand "<avx512>_scatterdi<mode>"): Rename from
	"avx512f_scatterdi<mode>".
	(define_insn "*avx512f_scatterdi<mode>"): Use VI48F.

2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>

	* ira.h (ira_finish_once): Delete.
	* ira-int.h (target_ira_int::~target_ira_int): Declare.
	(target_ira_int::free_ira_costs): Likewise.
	(target_ira_int::free_register_move_costs): Likewise.
	(ira_finish_costs_once): Delete.
	* ira.c (free_register_move_costs): Replace with...
	(target_ira_int::free_register_move_costs): ...this new function.
	(target_ira_int::~target_ira_int): Define.
	(ira_init): Call free_register_move_costs as a member function rather
	than a global function.
	(ira_finish_once): Delete.
	* ira-costs.c (free_ira_costs): Replace with...
	(target_ira_int::free_ira_costs): ...this new function.
	(ira_init_costs): Call free_ira_costs as a member function rather
	than a global function.
	(ira_finish_costs_once): Delete.
	* target-globals.c (target_globals::~target_globals): Call the
	target_ira_int destructor.
	* toplev.c: Include lra.h.
	(finalize): Call lra_finish_once rather than ira_finish_once.

2014-09-11  Jan Hubicka  <hubicka@ucw.cz>

	* common.opt (flto-odr-type-merging): New flag.
	* ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
	(types_same_for_odr): Likewise.
	(odr_subtypes_equivalent_p): Likewise.
	(add_type_duplicate): Do not walk type variants.
	(register_odr_type): New function.
	* ipa-utils.h (register_odr_type): Declare.
	(odr_type_p): New function.
	* langhooks.c (lhd_set_decl_assembler_name): Do not compute
	TYPE_DECLs
	* doc/invoke.texi (-flto-odr-type-merging): Document.
	* tree.c (need_assembler_name_p): Compute ODR names when asked
	for it.
	* tree.h (DECL_ASSEMBLER_NAME): Update comment.

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

	PR target/63228
	* config/i386/i386.c (ix86_option_override_internal): Also turn
	off OPTION_MASK_ABI_X32 for -m16.

2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
	GPR instead of P.

2014-09-11  Marc Glisse  <marc.glisse@inria.fr>

	PR target/58757
	* ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
	Directly forward to __*_DENORM_MIN__.

2014-09-11  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (LABEL_REF_LABEL): New macro.

	* alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
	of XEXP (, 0), where we know that we have a LABEL_REF.
	* cfgbuild.c (make_edges): Likewise.
	(purge_dead_tablejump_edges): Likewise.
	* cfgexpand.c (convert_debug_memory_address): Likewise.
	* cfgrtl.c (patch_jump_insn): Likewise.
	* combine.c (distribute_notes): Likewise.
	* cse.c (hash_rtx_cb): Likewise.
	(exp_equiv_p): Likewise.
	(fold_rtx): Likewise.
	(check_for_label_ref): Likewise.
	* cselib.c (rtx_equal_for_cselib_1): Likewise.
	(cselib_hash_rtx): Likewise.
	* emit-rtl.c (mark_label_nuses): Likewise.
	* explow.c (convert_memory_address_addr_space): Likewise.
	* final.c (output_asm_label): Likewise.
	(output_addr_const): Likewise.
	* gcse.c (add_label_notes): Likewise.
	* genconfig.c (walk_insn_part): Likewise.
	* genrecog.c (validate_pattern): Likewise.
	* ifcvt.c (cond_exec_get_condition): Likewise.
	(noce_emit_store_flag): Likewise.
	(noce_get_alt_condition): Likewise.
	(noce_get_condition): Likewise.
	* jump.c (maybe_propagate_label_ref): Likewise.
	(mark_jump_label_1): Likewise.
	(redirect_exp_1): Likewise.
	(rtx_renumbered_equal_p): Likewise.
	* lra-constraints.c (operands_match_p): Likewise.
	* reload.c (operands_match_p): Likewise.
	(find_reloads): Likewise.
	* reload1.c (set_label_offsets): Likewise.
	* reorg.c (get_branch_condition): Likewise.
	* rtl.c (rtx_equal_p_cb): Likewise.
	(rtx_equal_p): Likewise.
	* rtlanal.c (reg_mentioned_p): Likewise.
	(rtx_referenced_p): Likewise.
	(get_condition): Likewise.
	* sched-vis.c (print_value): Likewise.
	* varasm.c (const_hash_1): Likewise.
	(compare_constant): Likewise.
	(const_rtx_hash_1): Likewise.
	(output_constant_pool_1): Likewise.

2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
	tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
	instead of minus.
	* config/rs6000/vector.md (cr6_test_for_zero_reverse,
	cr6_test_for_lt_reverse): Ditto.

2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/61489
	* doc/invoke.texi ([-Wmissing-field-initializers]): Update.

2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
	TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
	aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
	aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
	Delete.

	(aarch64_fold_builtin): Remove all reinterpret cases.

	* config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.

	* config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.

	* config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
	aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
	aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
	aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
	aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
	aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
	aarch64_reinterpretv2df<mode>): Delete.

	* config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.

	* config/aarch64/arm_neon.h (vreinterpret_p8_f64,
	vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
	vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
	vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
	vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
	vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
	vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
	vreinterpret_u32_f64): Use cast.

	* config/aarch64/iterators.md (VD_RE): Delete.

2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
	(vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
	vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
	vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
	vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
	vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
	vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
	Replace inline assembler with __aarch64_vset_lane_any.

2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
	types.
	(vmull_high_lane_s32): Likewise.
	(vmull_high_lane_u16): Likewise.
	(vmull_high_lane_u32): Likewise.

2014-09-11  Jason Merrill  <jason@redhat.com>

	PR c++/58678
	* ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.

2014-09-11  Georg-Johann Lay  <avr@gjlay.de>

	PR target/63223
	* config/avr/avr.md (*tablejump.3byte-pc): New insn.
	(*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
	(casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.

2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
	"avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
	(define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
	New.
	(define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
	from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
	iterator.
	(define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
	New.
	(define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
	"avx512f_vpermi2var<mode>3_mask" and update mode iterator.
	(define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
	(define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
	"avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
	(define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
	(define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
	from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
	iterator.
	(define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
	New.
	(define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
	"avx512f_vpermt2var<mode>3_mask" and update mode iterator.
	(define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.

2014-09-10  Jan Hubicka  <hubicka@ucw.cz>

	* varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
	to access removed nodes.

2014-09-10  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/63186
	* ipa-split.c (test_nonssa_use): Skip nonforced labels.
	(mark_nonssa_use): Likewise.
	(verify_non_ssa_vars): Verify all header blocks for label
	definitions.

2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
	(define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
	(define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
	"<avx2_avx512f>_permvar<mode><mask_name>".
	(define_insn "<avx512>_permvar<mode><mask_name>"): New.
	(define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
	Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
	(define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
	Ditto.
	(define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
	Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
	(define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
	Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".

2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
	V2DF, V4SF, DF, and DI modes.
	(vsx_fmav2df2): Likewise.
	(vsx_float_fix_<mode>2): Likewise.
	(vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.

2014-09-10  Xinliang David Li  <davidxl@google.com>

	PR target/63209
	* config/arm/arm.md (movcond_addsi): Handle case where source
	and target operands are the same.

2014-09-10  David Malcolm  <dmalcolm@redhat.com>

	* final.c (this_is_asm_operands): Strengthen this variable from
	rtx to const rtx_insn *.
	* output.h (this_is_asm_operands): Likewise.
	* rtl-error.c (location_for_asm): Strengthen param "insn" from
	const_rtx to const rtx_insn *.
	(diagnostic_for_asm): Likewise.
	* rtl-error.h (error_for_asm): Likewise.
	(warning_for_asm): Likewise.

2014-09-10  David Malcolm  <dmalcolm@redhat.com>

	* genextract.c (print_header): When writing out insn_extract to
	insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
	* recog.h (insn_extract): Strengthen the param from rtx to
	rtx_insn *.

2014-09-10  Mike Stump  <mikestump@comcast.net>

	* doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
	8.6.1.

2014-09-10  Martin Jambor  <mjambor@suse.cz>

	* cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
	(analyze): Do not set analyze flag if expand_thunk returns false;.
	(create_wrapper): Likewise.
	* cgraphclones.c (duplicate_thunk_for_node): Likewise.

2014-09-10  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61654
	* cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
	new decl properly.  Analyze the new thunk if it is expanded.

2014-09-10  Andreas Schwab  <schwab@suse.de>

	* coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
	[USED_FOR_TARGET]: Define.

2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.c (mips_secondary_reload_class): Handle
	regno < 0 case.

2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>

	* lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
	assignment.

2014-09-10  Jakub Jelinek  <jakub@redhat.com>

	* flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
	and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
	* opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
	SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
	flag_delete_null_pointer_checks for them.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
	BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
	BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
	BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
	* ubsan.c (instrument_bool_enum_load): Set *gsi back to
	stmt's iterator.
	(instrument_nonnull_arg, instrument_nonnull_return): New functions.
	(pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
	or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
	(pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
	* doc/invoke.texi (-fsanitize=nonnull-attribute,
	-fsanitize=returns-nonnull-attribute): Document.

	* ubsan.h (struct ubsan_mismatch_data): Removed.
	(ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
	* ubsan.c (ubsan_source_location): For unknown locations,
	pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
	(ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
	Allow more than one location and arbitrary extra arguments passed
	in ... instead of through MISMATCH pointer.
	(ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
	ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
	instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
	callers.

2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI48F): New.
	(define_insn "<avx512>_compress<mode>_mask"): Rename from
	"avx512f_compress<mode>_mask" and update mode iterator.
	(define_insn "<avx512>_compressstore<mode>_mask"): Rename from
	"avx512f_compressstore<mode>_mask" and update mode iterator.
	(define_expand "<avx512>_expand<mode>_maskz"): Rename from
	"avx512f_expand<mode>_maskz" and update mode iterator.
	(define_insn "<avx512>_expand<mode>_mask"): Rename from
	"avx512f_expand<mode>_mask" and update mode iterator.

2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
	avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
	avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
	avx512dq_rangepv4sf_mask.
	* config/i386/sse.md
	(define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
	UNSPEC_RANGE.
	(define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
	(define_insn "reduces<mode>"): Ditto.
	(define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
	Ditto.
	(define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
	(define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
	(define_insn "avx512dq_vmfpclass<mode>"): Ditto..

2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
	(avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
	(ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
	avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
	avx512vl_getmantv2df_mask.
	(ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
	avx512f_vgetmantv4sf_round.
	* config/i386/sse.md
	(define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
	Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
	mode iterator.
	(define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
	(define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
	(define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
	from "avx512f_scalef<mode><mask_name><round_name>" and update mode
	iterator..
	(define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
	Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
	update mode iterator.
	(define_expand
	"<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
	"avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
	mode iterator.
	(define_insn
	"<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
	from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
	update mode iterator.
	(define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
	from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
	iterator..
	(define_insn
	"<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
	"avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
	mode iterator..
	(define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
	Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
	update mode iterator.
	(define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
	"avx512f_getmant<mode><round_saeonly_name>".

2014-09-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/63166
	* ipa-prop.c (compute_known_type_jump_func): Fix conditional.

2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
	(define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
	(define_mode_iterator FMAMODE_AVX512): New.
	(define_mode_iterator FMAMODE): Remove conditions.
	(define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
	(define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
	from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
	mode iterator.
	(define_mode_iterator FMAMODE_NOVF512): Remove.
	(define_insn "*fma_fmadd_<mode>"): Rename from
	"<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
	FMAMODE mode iterator.
	(define_mode_iterator VF_SF_AVX512VL): New.
	(define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
	Use VF_SF_AVX512VL mode iterator.
	(define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
	"avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
	"avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "*fma_fmsub_<mode>"): Rename from
	"<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
	FMAMODE mode iterator.
	(define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
	Use VF_SF_AVX512VL mode iterator.
	(define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
	"avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
	"avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "*fma_fnmadd_<mode>"): Rename from
	"<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
	use FMAMODE mode iterator.
	(define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
	Use VF_SF_AVX512VL mode iterator.
	(define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
	"avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
	"avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "*fma_fnmsub_<mode>"): Rename from
	"<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
	FMAMODE mode iterator.
	(define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
	Use VF_SF_AVX512VL mode iterator.
	(define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
	"avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
	"avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
	Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
	use VF_AVX512VL mode iterator.
	(define_insn "*fma_fmaddsub_<mode>"): Rename from
	"<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
	remove subst usage.
	(define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
	Use VF_SF_AVX512VL mode iterator.
	(define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
	"avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
	"avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "*fma_fmsubadd_<mode>"): Rename from
	"<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
	remove usage of subst.
	(define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
	Use VF_SF_AVX512VL mode iterator.
	(define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
	"avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
	iterator.
	(define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
	"avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
	iterator.

2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>

	Revert r213751:
	* calls.c (precompute_arguments): Check
	 promoted_for_signed_and_unsigned_p and set the promoted mode.
	(promoted_for_signed_and_unsigned_p): New function.
	(expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
	and set the promoted mode.
	* expr.h (promoted_for_signed_and_unsigned_p): New function definition.
	* cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
	SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* opth-gen.awk: Generate mapping from cpp message reasons to the
	options that enable them.
	* doc/options.texi (CppReason): Document.

2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Wnormalized=): Update.

2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/63195
	* config/rs6000/rs6000.md (*bool<mode>3): Allow only register
	operands.  Split off the constant operand alternative to ...
	(*bool<mode>3_imm): New.

2014-09-09  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (single_set_2): Strengthen first param from const_rtx to
	const rtx_insn *, and move prototype to above...
	(single_set): ...this.  Convert this from a macro to an inline
	function, enforcing the requirement that the param is a const
	rtx_insn *.
	(find_args_size_adjust): Strengthen param from rtx to rtx_insn *.

	* config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
	Strengthen both params from rtx to rtx_insn *.
	* config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
	Likewise; introduce locals "producer_set", "consumer_set", using
	them in place of "producer" and "consumer" when dealing with SET
	rather than insn.
	* config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
	when invoking single_set in region guarded by INSN_P.
	(avr_out_bitop): Likewise.
	(_reg_unused_after): Introduce local rtx_sequence * "seq" in
	region guarded by GET_CODE check, using methods to strengthen
	local "this_insn" from rtx to rtx_insn *, and for clarity.
	* config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
	Strengthen local "insn" from rtx to rtx_insn *.
	(define_insn_and_split "xload<mode>_A"): Likewise.
	* config/bfin/bfin.c (trapping_loads_p): Likewise for param
	"insn".
	(find_load): Likewise for return type.
	(workaround_speculation): Likewise for both locals named
	"load_insn".
	* config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
	local "cc0_user".
	* config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
	for local "prev".
	* config/h8300/h8300-protos.h (notice_update_cc): Likewise for
	param 2.
	* config/h8300/h8300.c (notice_update_cc): Likewise.
	* config/i386/i386.c (ix86_flags_dependent): Likewise for params
	"insn" and "dep_insn".
	(exact_store_load_dependency): Likewise for both params.
	(ix86_macro_fusion_pair_p): Eliminate local named "single_set"
	since this now clashes with inline function.  Instead, delay
	calling single_set until the point where its needed, and then
	assign the result to "compare_set" and rework the conditional that
	follows.
	* config/ia64/ia64.md (define_expand "tablejump"): Strengthen
	local "last" from rtx to rtx_insn *.
	* config/mips/mips-protos.h (mips_load_store_insns): Likewise for
	second param.
	(mips_store_data_bypass_p): Likewise for both params.
	* config/mips/mips.c (mips_load_store_insns): Likewise for second
	param.
	(mips_store_data_bypass_p): Likewise for both params.
	(mips_orphaned_high_part_p): Likewise for param "insn".
	* config/mn10300/mn10300.c (extract_bundle): Likewise.
	(mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
	Introduce local rtx "insn2_pat".
	* config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
	"ninsn".
	(rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
	Introduce local rtx "set", using it in place of "insn" for the
	result of single_set.  This appears to fix a bug, since the call
	to find_regno_note on a SET does nothing.
	* config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
	params from rtx to rtx_insn *.
	(set_to_load_agen): Likewise.
	* config/s390/s390.c (s390_label_align): Likewise for local
	"prev_insn".  Introduce new rtx locals "set" and "src", using
	them in place of "prev_insn" for the results of single_set
	and SET_SRC respectively.
	(s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
	Introduce new rtx local "set" using in place of "jump" for the
	result of single_set.  Use SET_SRC (set) rather than plain
	XEXP (set, 1).
	* config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
	rtx to rtx_insn *.
	(noncall_uses_reg): Likewise.
	(reg_unused_after): Introduce local rtx_sequence * "seq" in region
	guarded by GET_CODE check, using its methods for clarity, and to
	enable strengthening local "this_insn" from rtx to rtx_insn *.
	* config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
	"insn" from rtx to rtx_insn *.
	(define_expand "umulhisi3"): Likewise.
	(define_expand "smulsi3_highpart"): Likewise.
	(define_expand "umulsi3_highpart"): Likewise.
	* config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
	local "after".  Replace GET_CODE check with a dyn_cast,
	introducing new local rtx_sequence * "seq", using insn method for
	typesafety.

	* dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
	from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
	place of "insn" once we're dealing with patterns rather than the
	input insn.
	(scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
	(scan_trace): Likewise for local "elt", updating lookups within
	sequence to use insn method rather than element method.
	* expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
	to rtx_insn *.
	* gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
	* ifcvt.c (noce_try_abs): Likewise for local "insn".
	* ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
	invoking single_set.
	* lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
	"insn" from rtx to rtx_insn *.
	(skip_usage_debug_insns): Likewise for return type, adding a
	checked cast.
	(check_secondary_memory_needed_p): Likewise for local "insn".
	(inherit_reload_reg): Likewise.
	* modulo-sched.c (sms_schedule): Likewise for local "count_init".
	* recog.c (peep2_attempt): Likewise for local "old_insn", adding
	checked casts.
	(store_data_bypass_p): Likewise for both params.
	(if_test_bypass_p): Likewise.
	* recog.h (store_data_bypass_p): Likewise for both params.
	(if_test_bypass_p): Likewise.
	* reload.c (find_equiv_reg): Likewise for local "where".
	* reorg.c (delete_jump): Likewise for param "insn".
	* rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
	to const rtx_insn *.
	* store-motion.c (replace_store_insn): Likewise for param "del".
	(delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
	and use its methods for clarity, and to strengthen local "del"
	from rtx to rtx_insn *.
	(build_store_vectors): Use insn method of "st" when calling
	replace_store_insn for typesafety and clarity.

2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rtx_is_swappable_p): Add
	UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
	on how to make it legal in future.

2014-09-09  David Malcolm  <dmalcolm@redhat.com>

	* caller-save.c (rtx saveinsn): Strengthen this variable from rtx
	to rtx_insn *.
	(restinsn): Likewise.
	* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
	Likewise for param.
	* config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
	Likewise.
	* config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
	first param.
	(arc_hazard): Likewise for both params.
	* config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
	checked casts to rtx_sequence * and uses of the insn method for
	type-safety.
	(arc_hazard): Strengthen both params from rtx to rtx_insn *.
	(arc_adjust_insn_length): Likewise for param "insn".
	(struct insn_length_parameters_s): Likewise for first param of
	"get_variants" callback field.
	(arc_get_insn_variants): Likewise for first param and local
	"inner".  Replace a check of GET_CODE with a dyn_cast to
	rtx_sequence *, using methods for type-safety and clarity.
	* config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
	rtx_sequence * and uses of the insn method for type-safety when
	invoking arc_adjust_insn_length.
	* config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
	for param.
	(arm_address_offset_is_imm): Likewise.
	(struct tune_params): Likewise for params 1 and 3 of the
	"sched_adjust_cost" callback field.
	* config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
	params 1 and 3 ("insn" and "dep").
	(xscale_sched_adjust_cost): Likewise.
	(fa726te_sched_adjust_cost): Likewise.
	(cortexa7_older_only): Likewise for param "insn".
	(cortexa7_younger): Likewise.
	(arm_attr_length_move_neon): Likewise.
	(arm_address_offset_is_imm): Likewise.
	* config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
	* config/avr/avr.c (avr_notice_update_cc): Likewise.
	* config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
	(workaround_speculation): Likewise for local "last_condjump".
	* config/c6x/c6x.c (shadow_p): Likewise for param "insn".
	(shadow_or_blockage_p): Likewise.
	(get_unit_reqs): Likewise.
	(get_unit_operand_masks): Likewise.
	(c6x_registers_update): Likewise.
	(returning_call_p): Likewise.
	(can_use_callp): Likewise.
	(convert_to_callp): Likewise.
	(find_last_same_clock): Likwise for local "t".
	(reorg_split_calls): Likewise for local "shadow".
	(hwloop_pattern_reg): Likewise for param "insn".
	* config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
	* config/frv/frv.c (frv_final_prescan_insn): Likewise.
	(frv_extract_membar): Likewise.
	(frv_optimize_membar_local): Strengthen param "last_membar" from
	rtx * to rtx_insn **.
	(frv_optimize_membar_global): Strengthen param "membar" from rtx
	to rtx_insn *.
	(frv_optimize_membar): Strengthen local "last_membar" from rtx *
	to rtx_insn **.
	* config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
	both params from rtx to rtx_insn *.
	(ia64_ld_address_bypass_p): Likewise.
	* config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
	"insn".
	(ia64_safe_type): Likewise.
	(group_barrier_needed): Likewise.
	(safe_group_barrier_needed): Likewise.
	(ia64_single_set): Likewise.
	(is_load_p): Likewise.
	(record_memory_reference): Likewise.
	(get_mode_no_for_insn): Likewise.
	(important_for_bundling_p): Likewise.
	(unknown_for_bundling_p): Likewise.
	(ia64_st_address_bypass_p): Likewise for both params.
	(ia64_ld_address_bypass_p): Likewise.
	(expand_vselect): Introduce new local rtx_insn * "insn", using it
	in place of rtx "x" after the emit_insn call.
	* config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
	Strengthen param from rtx to rtx_insn *.
	(ix86_agi_dependent): Likewise for both params.
	(ix86_attr_length_immediate_default): Likewise for param 1.
	(ix86_attr_length_address_default): Likewise for param.
	(ix86_attr_length_vex_default): Likewise for param 1.
	* config/i386/i386.c (ix86_attr_length_immediate_default):
	Likewise for param "insn".
	(ix86_attr_length_address_default): Likewise.
	(ix86_attr_length_vex_default): Likewise.
	(ix86_agi_dependent): Likewise for both params.
	(x86_extended_QIreg_mentioned_p): Likewise for param "insn".
	(vselect_insn): Likewise for this variable.
	* config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
	for param 1.
	(m68k_sched_attr_opy_type): Likewise.
	* config/m68k/m68k.c (sched_get_operand): Likewise.
	(sched_attr_op_type): Likewise.
	(m68k_sched_attr_opx_type): Likewise.
	(m68k_sched_attr_opy_type): Likewise.
	(sched_get_reg_operand): Likewise.
	(sched_get_mem_operand): Likewise.
	(m68k_sched_address_bypass_p): Likewise for both params.
	(sched_get_indexed_address_scale): Likewise.
	(m68k_sched_indexed_address_bypass_p): Likewise.
	* config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
	(m68k_sched_indexed_address_bypass_p): Likewise.
	* config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
	"label", "ret" from rtx to rtx_insn *, adding a checked cast and
	removing another.
	* config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
	params from rtx to rtx_insn *.
	(mips_fmadd_bypass): Likewise.
	* config/mips/mips.c (mips_fmadd_bypass): Likewise.
	(mips_linked_madd_p): Likewise.
	(mips_macc_chains_last_hilo): Likewise for this variable.
	(mips_macc_chains_record): Likewise for param.
	(vr4130_last_insn): Likewise for this variable.
	(vr4130_swap_insns_p): Likewise for both params.
	(mips_ls2_variable_issue): Likewise for param.
	(mips_need_noat_wrapper_p): Likewise for param "insn".
	(mips_expand_vselect): Add a new local rtx_insn * "insn", using it
	in place of "x" after the emit_insn.
	* config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
	params from rtx to rtx_insn *.
	* config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
	(pa_combine_instructions): Introduce local "par" for result of
	gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
	to make_insn_raw.
	(pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
	* config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
	(rl78_alloc_physical_registers_op1): Likewise.
	(rl78_alloc_physical_registers_op2): Likewise.
	(rl78_alloc_physical_registers_ro1): Likewise.
	(rl78_alloc_physical_registers_cmp): Likewise.
	(rl78_alloc_physical_registers_umul): Likewise.
	(rl78_alloc_address_registers_macax): Likewise.
	(rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
	* config/s390/predicates.md (execute_operation): Likewise for
	local "insn".
	* config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
	params.
	* config/s390/s390.c (s390_safe_attr_type): Likewise for param.
	(addr_generation_dependency_p): Likewise for param "insn".
	(s390_agen_dep_p): Likewise for both params.
	(s390_fpload_toreg): Likewise for param "insn".
	* config/sh/sh-protos.h (sh_loop_align): Likewise for param.
	* config/sh/sh.c (sh_loop_align): Likewise for param and local
	"next".
	* config/sh/sh.md (define_peephole2): Likewise for local "insn2".
	* config/sh/sh_treg_combine.cc
	(sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
	and local "i".
	(sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
	* config/stormy16/stormy16.c (combine_bnp): Likewise for locals
	"and_insn", "load", "shift".
	* config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
	"insn".
	* final.c (final_scan_insn): Introduce local rtx_insn * "other"
	for XEXP (note, 0) of the REG_CC_SETTER note.
	(cleanup_subreg_operands): Strengthen param "insn" from rtx to
	rtx_insn *, eliminating a checked cast made redundant by this.
	* gcse.c (process_insert_insn): Strengthen local "insn" from rtx
	to rtx_insn *.
	* genattr.c (main): When writing out the prototype to
	const_num_delay_slots, strengthen the param from rtx to
	rtx_insn *.
	* genattrtab.c (write_const_num_delay_slots): Likewise when
	writing out the implementation of const_num_delay_slots.
	* hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
	"insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
	* ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
	favor of new rtx locals "src" and "set" and new local rtx_insn *
	"insn" and "seq".
	(noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
	to rtx_insn *.
	(noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
	locals "cond", "if_then_else", "set" and new rtx_insn * locals
	"insn" and "seq".
	(noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
	"last" from rtx to rtx_insn *.  Likewise for a local "tmp",
	renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
	the top-level scope, replacing with new more tightly-scoped rtx
	locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
	"new_insn", "copy_of_insn_b", and make local rtx "set" more
	tightly-scoped.
	* ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
	rtx_insn *.
	* ira.c (setup_prohibited_mode_move_regs): Likewise for local
	"move_insn".
	(ira_setup_alts): Likewise for param "insn".
	* lra-constraints.c (emit_inc): Likewise for local "add_insn".
	* lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
	and an rtx_insn *.
	(lra_emit_add): Eliminate top-level local rtx "insn" in favor of
	new more-tightly scoped rtx locals "add3_insn", "insn",
	"add2_insn" and rtx_insn * "move_insn".
	* postreload-gcse.c (eliminate_partially_redundant_load): Add
	checked cast on result of gen_move_insn when invoking
	extract_insn.
	* recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(verify_changes): Add a checked cast on "object" when invoking
	insn_invalid_p.
	(extract_insn_cached): Strengthen param "insn" from rtx to
	rtx_insn *.
	(extract_constrain_insn_cached): Likewise.
	(extract_insn): Likewise.
	* recog.h (insn_invalid_p): Likewise for param 1.
	(recog_memoized): Likewise for param.
	(extract_insn): Likewise.
	(extract_constrain_insn_cached): Likewise.
	(extract_insn_cached): Likewise.
	* reload.c (can_reload_into): Likewise for local "test_insn".
	* reload.h (cleanup_subreg_operands): Likewise for param.
	* reload1.c (emit_insn_if_valid_for_reload): Rename param from
	"insn" to "pat", reintroducing "insn" as an rtx_insn * on the
	result of emit_insn.  Remove a checked cast made redundant by this
	change.
	* sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
	rtx to rtx_insn *.
	* sel-sched.c (get_reg_class): Likewise.

2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
	* config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
	Define.
	(ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.

2014-09-09  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
	const rtx_insn *, and from rtx to rtx_insn * for the other
	overloaded variant.
	(RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
	INSN_LOCATION, since we know INSN_P holds.
	(insn_line): Strengthen param from const_rtx to const rtx_insn *.
	(insn_file): Likewise.
	(insn_scope): Likewise.
	(insn_location): Likewise.

	* config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
	"insn" from rtx to rtx_insn *, introducing a new local rtx "set"
	for the result of gen_load_const_gp.
	* config/rs6000/rs6000-protos.h (output_call): Strengthen first
	param from rtx to rtx_insn *.
	* config/rs6000/rs6000.c (output_call): Likewise.
	* dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
	introducing a checked cast to rtx_sequence * and use of the insn
	method.
	* emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
	from rtx to rtx_insn *.
	(insn_scope): Strengthen param from const_rtx to const rtx_insn *.
	(insn_line): Likewise.
	(insn_file): Likewise.
	(insn_location): Likewise.
	* emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
	from rtx to rtx_insn *.
	* print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
	cast, using it for calls to INSN_HAS_LOCATION and insn_location.
	* recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
	via a checked cast.
	* reorg.c (relax_delay_slots): Strengthen locals named "after"
	from rtx to rtx_insn *; use methods of "pat" for type-safety.

2014-09-09  David Malcolm  <dmalcolm@redhat.com>

	* combine.c (try_combine): Eliminate checked cast on result of
	gen_rtx_INSN.
	* emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
	autogenerated one by strengthening the return type and params 2 and 3
	from rtx to rtx_insn *, and by naming the params.
	* gengenrtl.c (special_rtx): Add INSN to those that are
	special-cased.
	* rtl.h (gen_rtx_INSN): New prototype.

2014-09-09  David Malcolm  <dmalcolm@redhat.com>

	* ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
	than NULL_RTX.
	(no_equiv): Likewise.
	(update_equiv_regs): Likewise.
	(setup_reg_equiv): Likewise.  Strengthen locals "elem",
	"prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
	from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
	clarity.
	* ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
	from rtx to rtx_insn_list *.
	* lra-assigns.c (spill_for): Strengthen local "x" from rtx to
	rtx_insn_list * and use methods for clarity and typesafety.
	* lra-constraints.c (contains_deleted_insn_p): Likewise for param
	"list".
	(init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
	redundant check on INSN_P (insns): this cannot hold, as "insns" is
	an INSN_LIST, not an insn.
	(reverse_equiv_p): Strengthen local "insns" from rtx to
	rtx_insn_list * and use methods for clarity and typesafety.
	(contains_reloaded_insn_p): Likewise for local "list".

2014-09-09  Jiong Wang  <jiong.wang@arm.com>

	* config/arm/arm.c (NEON_COPYSIGNF): New enum.
	(arm_init_neon_builtins): Support NEON_COPYSIGNF.
	(arm_builtin_vectorized_function): Likewise.
	* config/arm/arm_neon_builtins.def: New macro for copysignf.
	* config/arm/neon.md (neon_copysignf<mode>): New pattern for
	vector copysignf.

2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>

	* bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
	* builtins.h (default_target_builtins): Likewise.
	* gcse.h (default_target_gcse): Likewise.
	* target-globals.h (target_globals): Add a destructor.  Convert
	void-pointer fields back to their real type and change from
	GTY((atomic)) to GTY((skip)).
	(restore_target_globals): Remove casts accordingly.
	* target-globals.c (save_target_globals): Use XCNEW rather than
	ggc_internal_cleared_alloc to allocate non-GC structures.
	Use ggc_cleared_alloc to allocate the target_globals structure
	itself.
	(target_globals::~target_globals): Define.

2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
	mnemonic instead of fldmfdd.
	* config/arm/arm.c (vfp_output_fstmd): Rename to...
	(vfp_output_vstmd): ... This.  Convert output to UAL syntax.
	Output vpush when address register is SP.
	* config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
	(vfp_output_vstmd): ... This.
	* config/arm/vfp.md (push_multi_vfp): Update call to
	vfp_output_vstmd.

2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/vfp.md (*movcc_vfp): Use UAL syntax.

2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
	(*sqrtdf2_vfp): Likewise.
	(*cmpsf_vfp): Likewise.
	(*cmpsf_trap_vfp): Likewise.
	(*cmpdf_vfp): Likewise.
	(*cmpdf_trap_vfp): Likewise.

2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
	(*truncdfsf2_vfp): Likewise.
	(*truncsisf2_vfp): Likewise.
	(*truncsidf2_vfp): Likewise.
	(fixuns_truncsfsi2): Likewise.
	(fixuns_truncdfsi2): Likewise.
	(*floatsisf2_vfp): Likewise.
	(*floatsidf2_vfp): Likewise.
	(floatunssisf2): Likewise.
	(floatunssidf2): Likewise.

2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
	(*muldf3_vfp): Likewise.
	(*mulsf3negsf_vfp): Likewise.
	(*muldf3negdf_vfp): Likewise.
	(*mulsf3addsf_vfp): Likewise.
	(*muldf3adddf_vfp): Likewise.
	(*mulsf3subsf_vfp): Likewise.
	(*muldf3subdf_vfp): Likewise.
	(*mulsf3negsfaddsf_vfp): Likewise.
	(*fmuldf3negdfadddf_vfp): Likewise.
	(*mulsf3negsfsubsf_vfp): Likewise.
	(*muldf3negdfsubdf_vfp): Likewise.

2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
	(*absdf2_vfp): Likewise.
	(*negsf2_vfp): Likewise.
	(*negdf2_vfp): Likewise.
	(*addsf3_vfp): Likewise.
	(*adddf3_vfp): Likewise.
	(*subsf3_vfp): Likewise.
	(*subdf3_vfp): Likewise.
	(*divsf3_vfp): Likewise.
	(*divdf3_vfp): Likewise.

2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
	multiple.
	(arm_print_operand): Don't convert real values to decimal
	representation in default case.
	(fp_immediate_constant): Delete.
	* config/arm/arm-protos.h (fp_immediate_constant): Likewise.
	* config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
	syntax.
	(*thumb2_movsi_vfp): Likewise.
	(*movdi_vfp): Likewise.
	(*movdi_vfp_cortexa8): Likewise.
	(*movhf_vfp_neon): Likewise.
	(*movhf_vfp): Likewise.
	(*movsf_vfp): Likewise.
	(*thumb2_movsf_vfp): Likewise.
	(*movdf_vfp): Likewise.
	(*thumb2_movdf_vfp): Likewise.
	(*movsfcc_vfp): Likewise.
	(*thumb2_movsfcc_vfp): Likewise.
	(*movdfcc_vfp): Likewise.
	(*thumb2_movdfcc_vfp): Likewise.

2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
	(-mtune): Likewise.
	(-mcpu): Likewise.

2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/61749
	* config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
	Use qualifier_immediate for last operand.  Rename to...
	(aarch64_types_ternop_lane_qualifiers): ... This.
	(TYPES_QUADOP): Rename to...
	(TYPES_TERNOP_LANE): ... This.
	(aarch64_simd_expand_args): Return const0_rtx when encountering user
	error.  Change return of 0 to return of NULL_RTX.
	(aarch64_crc32_expand_builtin): Likewise.
	(aarch64_expand_builtin): Return NULL_RTX instead of 0.
	ICE when expanding unknown builtin.
	* config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
	TERNOP_LANE qualifiers.
	(sqdmlsl_lane): Likewise.
	(sqdmlal_laneq): Likewise.
	(sqdmlsl_laneq): Likewise.
	(sqdmlal2_lane): Likewise.
	(sqdmlsl2_lane): Likewise.
	(sqdmlal2_laneq): Likewise.
	(sqdmlsl2_laneq): Likewise.

2014-09-09  Nick Clifton  <nickc@redhat.com>

	* doc/invoke.texi (Optimization Options): Add missing @gol to the
	end of a line.
	(S/390 and zSeries Options): Remove superfluous word from the
	description of the -mhotpatch option.

2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
	* ira.c: #include "shrink-wrap.h"
	(split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
	* ifcvt.c: #include "shrink-wrap.h"
	(dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.

2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>

	* common/config/picochip/picochip-common.c: Remove.
	* config.gcc: Remove support for picochip.
	* config/picochip/constraints.md: Remove.
	* config/picochip/dfa_space.md: Remove.
	* config/picochip/dfa_speed.md: Remove.
	* config/picochip/picochip-protos.h: Remove.
	* config/picochip/picochip.c: Remove.
	* config/picochip/picochip.h: Remove.
	* config/picochip/picochip.md: Remove.
	* config/picochip/picochip.opt: Remove.
	* config/picochip/predicates.md: Remove.
	* config/picochip/t-picochip: Remove.
	* doc/md.texi: Don't document picochi.

2014-09-08  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (control_flow_insn_p): Strengthen param from
	const_rtx to const rtx_insn *.
	* cfgbuild.c (control_flow_insn_p): Likewise.

2014-09-08  David Malcolm  <dmalcolm@redhat.com>

	* gcse.c (modify_mem_list): Strengthen this variable from
	vec<rtx> * to vec<rtx_insn *> *.
	(vec_rtx_heap): Strengthen this typedef from vec<rtx> to
	vec<rtx_insn *>.
	(load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
	vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
	(record_last_mem_set_info): Strengthen param "insn" from rtx to
	rtx_insn *.
	(record_last_set_info): Likewise for local "last_set_insn".

2014-09-08  DJ Delorie  <dj@redhat.com>

	* doc/invoke.texi (MSP430 Options): Add -minrt.

2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
	(rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
	statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
	handling SH_SPLAT.
	(adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
	of extracted lane.
	(adjust_splat): New function.
	(handle_special_swappables): Call adjust_splat for SH_SPLAT.
	(dump_swap_insn_table): Add case for SH_SPLAT.

2014-09-08  Richard Biener  <rguenther@suse.de>

	PR ipa/63196
	* tree-inline.c (copy_loops): The source loop header should
	always be non-NULL.
	(tree_function_versioning): If loops need fixup after removing
	unreachable blocks fix them.
	* omp-low.c (simd_clone_adjust): Do not add incr block to
	loop under construction.

2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.

2014-09-08  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/cygming.h (TF_SIZE): Remove.
	* config/i386/darwin.h (TF_SIZE): Remove.
	* config/i386/dragonfly.h (TF_SIZE): Remove.
	* config/i386/freebsd.h (TF_SIZE): Remove.
	* config/i386/gnu-user-common.h (TF_SIZE): Remove.
	* config/i386/openbsdelf.h (TF_SIZE): Remove.
	* config/i386/sol2.h (TF_SIZE): Remove.
	* config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
	* config/ia64/linux.h (TF_SIZE): Remove.
	* doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
	* doc/tm.texi: Regenerate.
	* system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.

2014-09-08  Joseph Myers  <joseph@codesourcery.com>

	* defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
	Remove.
	* doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
	Remove.
	* doc/tm.texi: Regenerate.
	* system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
	Poison.
	* config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
	* config/cris/cris.h (__make_dp): Remove.

2014-09-08  Richard Biener  <rguenther@suse.de>

	PR bootstrap/63204
	* cfgloop.c (mark_loop_for_removal): Track former header
	unconditionally.
	* cfgloop.h (struct loop): Add former_header member unconditionally.
	* loop-init.c (fix_loop_structure): Enable bogus loop removal
	diagnostic unconditionally.

2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>

	PR target/63190
	* config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
	constraint for operand0 and remove write only modifier from operand3.

2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/62208
	* simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
	rather than const0_rtx in eq/ne-xor simplifications.

2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
	(arc_output_mi_thunk): Likewise.

	* config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
	arguments to silence bogus warning.

2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/63171
	* rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.

2014-09-06  Tom de Vries  <tom@codesourcery.com>

	* ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
	IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
	ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.

2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>

	PR target/63188
	* config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
	* config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.

2014-09-05  Easwaran Raman  <eraman@google.com>

	PR rtl-optimization/62146
	* ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
	hoisted instruction unconditional.

2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/63187
	* config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
	Do not allow any_mask_operand for operands[2].
	(*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* config/arc/arc.c (arc_print_operand): Use insn method of
	final_sequence for type-safety.
	* config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
	"insn" from rtx to rtx_insn *.
	* config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
	* config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
	Likewise for locals "branch", "label".
	* config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
	locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
	(same_cmp_following_p): Likewise for locals "i2", "i3".
	* config/sh/sh_optimize_sett_clrt.cc
	(sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
	param "cbranch_insn".
	* function.c (convert_jumps_to_returns): Likewis for local "jump".
	* ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
	* jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(condjump_p): Likewise.
	(condjump_in_parallel_p): Likewise.
	(pc_set): Likewise.
	(any_uncondjump_p): Likewise.
	(any_condjump_p): Likewise.
	(condjump_label): Likewise.
	(returnjump_p): Strengthen param "insn" from rtx to
	const rtx_insn *.
	(onlyjump_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(jump_to_label_p): Likewise.
	(invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
	(invert_jump): Likewise.
	* reorg.c (simplejump_or_return_p): Add checked cast when calling
	simplejump_p.
	(get_jump_flags): Strengthen param "insn" from rtx to
	const rtx_insn *.
	(get_branch_condition): Likewise.
	(condition_dominates_p): Likewise.
	(make_return_insns): Move declaration of local "pat" earlier, to
	after we've handled NONJUMP_INSN_P and non-sequences, using its
	methods to simplify the code and for type-safety.
	* rtl.h (find_constant_src): Strengthen param from const_rtx to
	const rtx_insn *.
	(jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
	(condjump_p): Strengthen param from const_rtx to
	const rtx_insn *.
	(any_condjump_p): Likewise.
	(any_uncondjump_p): Likewise.
	(pc_set): Likewise.
	(condjump_label): Likewise.
	(simplejump_p): Likewise.
	(returnjump_p): Likewise.
	(onlyjump_p): Likewise.
	(invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
	(invert_jump): Likewise.
	(condjump_in_parallel_p): Strengthen param from const_rtx to
	const rtx_insn *.
	* rtlanal.c (find_constant_src): Strengthen param from const_rtx
	to const rtx_insn *.
	* sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
	to const rtx_insn *.
	* sel-sched-ir.h (fallthru_bb_of_jump): Likewise.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* reorg.c (relax_delay_slots): Move declaration of "trial_seq"
	above the conditional, and convert the check on GET_CODE to a
	dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
	the conditional.  Simplify the conditional by using methods of
	"trial_seq".

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* haifa-sched.c (check_clobbered_conditions): Strengthen local
	"link" from rtx to rtx_insn_list *, and use its methods for
	clarity and type-safety.
	(toggle_cancelled_flags): Likewise.
	(restore_last_backtrack_point): Likewise.
	(queue_to_ready): Use insn method of "link" in one place.
	(schedule_block): Strengthen local "link" from rtx to
	rtx_insn_list *, and use its methods for clarity and type-safety.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
	param "insn" from const_rtx to const rtx_insn *.
	(sched_get_reverse_condition_uncached): Likewise.
	(sched_get_condition_with_rev): Likewise.
	(sched_has_condition_p): Likewise.
	(sched_insns_conditions_mutex_p): Likewise for both params.
	(sched_insn_is_legitimate_for_speculation_p): Likewise for param
	"insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
	(setup_insn_reg_uses): Move local "list" to be more tightly
	scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
	its methods for clarity and type-safety.
	(sched_analyze_1): Strengthen local "pending" from rtx to
	rtx_insn_list *, and local "pending_mem" from rtx to
	rtx_expr_list *.  Use methods of each for clarity and type-safety.
	(sched_analyze_2): Likewise.
	(sched_analyze_insn): Likewise.

	* sched-int.h (sched_get_reverse_condition_uncached): Strengthen
	param from const_rtx to const rtx_insn *.
	(sched_insns_conditions_mutex_p): Likewise for both params.
	(sched_insn_is_legitimate_for_speculation_p): Likewise for first
	param.

	* system.h (CONST_CAST_RTX_INSN): New macro.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* recog.c (peep2_attempt): Strengthen return type from rtx to
	rtx_insn *.
	(peep2_update_life): Likewise for params "last", "prev", removing
	a checked cast made redundant by this.
	(peephole2_optimize): Likewise for local "last".

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (set_block_for_insn): Eliminate this macro in
	favor of...
	* rtl.h (set_block_for_insn): New inline function, imposing the
	requirement that the "insn" param is an rtx_insn *.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* caller-save.c (setup_save_areas): Strengthen local "insn" from
	rtx to rtx_insn *.
	* final.c (get_call_reg_set_usage): Likewise for first param,
	eliminating a checked cast.
	* regs.h (get_call_reg_set_usage): Likewise for first param.
	* resource.c (mark_set_resources): Introduce local rtx_call_insn *
	"call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
	cast, replacing references to "x" with "call_insn" where
	appropriate.
	(mark_target_live_regs): Strengthen local "real_insn" from rtx to
	rtx_insn *, adding a checked cast.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* output.h (final_scan_insn): Strengthen first param from rtx to
	rtx_insn *.

	* final.c (final_scan_insn): Likewise, renaming it back from
	"uncast_insn" to "insn", eliminating the checked cast.

	* config/h8300/h8300.md (define_insn "jump"): Replace local rtx
	"vec" with an rtx_sequence * "seq", taking a copy of
	"final_sequence", and using methods of "seq" for clarity, and for
	type-safety in the calls to final_scan_insn.
	* config/mips/mips.c (mips_output_conditional_branch): Use methods
	of "final_sequence" for clarity, and for type-safety in the call to
	final_scan_insn.
	* config/sh/sh.c (print_slot): Strengthen param from rtx to
	rtx_sequence * and rename from "insn" to "seq".

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* jump.c (delete_related_insns): Introduce a new local "table" by
	replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
	get_labels method of "table" to simplify access to the labels in
	the jump table.

2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
	f_minmaxs, f_minmaxd types.

2014-09-05  Richard Biener  <rguenther@suse.de>

	* cfgloop.c (mark_loop_for_removal): Record former header
	when ENABLE_CHECKING.
	* cfgloop.h (strut loop): Add former_header member when
	ENABLE_CHECKING.
	* loop-init.c (fix_loop_structure): Sanity check loops
	marked for removal if they re-appeared.

2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
	uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.

	(vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
	vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
	vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
	vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
	vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
	vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
	vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
	vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
	vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
	vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
	vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
	vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
	vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
	vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
	vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
	vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
	vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
	vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
	vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
	vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
	with int{32,16,8}_t.

2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (__GET_HIGH): New macro.
	(vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
	vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
	vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
	Remove temporary __asm__ and reimplement.

2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
	handling cmge, cmgt, cmeq, cmtst.

	* config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
	cmlt, cmgeu, cmgtu, cmtst): Remove.

	* config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
	vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
	vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
	vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.

2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
	TYPES_TST): Define.
	(aarch64_fold_builtin): Update pattern for cmtst.

	* config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
	Declare.

	* config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.

	* config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
	Switch operands, separate out more cases, refactor.

	(aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).

	* config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
	argument; rename old version to...
	(aarch64_const_vec_all_same_in_range_p): ...this.
	(aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.

	* config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.

2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
	Remove qualifier_const_pointer, update comment.

2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.

2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
	varargs with pointer parameter.
	(aarch64_simd_expand_builtin): pass pointer into previous.

2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
	alus_ext.

2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
	* config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
	* config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
	Replace temporary asm with call to builtin.
	(vrbit_p8, vrbitq_p8): New functions.

2014-09-05  Richard Biener  <rguenther@suse.de>

	* cfgloop.c (mark_loop_for_removal): New function.
	* cfgloop.h (mark_loop_for_removal): Declare.
	* cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
	(merge_blocks): Likewise.
	(duplicate_block): Likewise.
	* except.c (sjlj_emit_dispatch_table): Likewise.
	* tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
	* tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
	(thread_through_loop_header): Likewise.

2014-09-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/63148
	* fold-const.c (try_move_mult_to_index): Remove.
	(fold_binary_loc): Do not call it.
	* tree-data-ref.c (dr_analyze_indices): Strip conversions
	from the base object again.

2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
	DImode.

2014-09-05  Bin Cheng  <bin.cheng@arm.com>

	PR target/55701
	* config/arm/arm.md (setmem): New pattern.
	* config/arm/arm-protos.h (struct tune_params): New fields.
	(arm_gen_setmem): New prototype.
	* config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
	(arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
	(arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
	(arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
	(arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
	(arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
	(arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
	(arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
	(arm_const_inline_cost): New function.
	(arm_block_set_max_insns): New function.
	(arm_block_set_non_vect_profit_p): New function.
	(arm_block_set_vect_profit_p): New function.
	(arm_block_set_unaligned_vect): New function.
	(arm_block_set_aligned_vect): New function.
	(arm_block_set_unaligned_non_vect): New function.
	(arm_block_set_aligned_non_vect): New function.
	(arm_block_set_vect, arm_gen_setmem): New functions.

2014-09-05  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.

2014-09-05  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/arm.c (output_move_neon): Handle REG explicitly.

2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>

	* valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
	an rtx.
	* valtrack.h: Adjust.

2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>

	* emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
	an rtx.
	(emit_jump_insn_before_noloc): Likewise.
	(emit_call_insn_before_noloc): Likewise.
	(emit_label_before): Likewise.
	(emit_label_after): Likewise.
	(emit_insn_before_setloc): Likewise.
	(emit_jump_insn_before_setloc): Likewise.
	(emit_call_insn_before_setloc): Likewise.
	(emit_call_insn_before): Likewise.
	* rtl.h: Adjust.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
	rtx_insn *, eliminating a checked cast.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (modified_between_p): Strengthen params 2 and 3 from
	const_rtx to const rtx_insn *.
	* rtlanal.c (modified_between_p): Likewise, eliminating a checked
	cast.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
	fixup_args_size_notes.
	* expr.c (fixup_args_size_notes): Strengthen first two params from
	rtx to rtx_insn *, eliminating a checked cast.
	* rtl.h (fixup_args_size_notes): Strengthen first two params from
	rtx to rtx_insn *.

2014-09-05  David Malcolm  <dmalcolm@redhat.com>

	* haifa-sched.c (get_ready_element): Strengthen return type from
	rtx to rtx_insn *.
	* sched-int.h (get_ready_element): Likewise.

2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/63165
	* config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
	indexed_or_indirect_operand instead of memory_operand.
	(floatsi<mode>2_lfiwzx_mem): Ditto.

2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>

	* config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
	config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
	ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.

2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>

	* emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
	rtx.
	(get_last_nonnote_insn): Likewise.
	(next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
	* resource.c (find_basic_block): Likewise.
	* rtl.h: Adjust.
	* rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
	const_rtx.

2014-09-04  David Malcolm  <dmalcolm@redhat.com>

	* genattr.c (main): Within the prototype of insn_latency written
	out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
	* genautomata.c (output_internal_maximal_insn_latency_func):
	Within the implementation of insn_latency written out to
	insn-automata.c, strengthen both params from rtx to rtx_insn *,
	eliminating a pair of checked casts.

2014-09-04  David Malcolm  <dmalcolm@redhat.com>

	* jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
	rtx_insn *.

	* rtl.h (eh_returnjump_p): Likewise.

2014-09-04  Aldy Hernandez  <aldyh@redhat.com>

	* Makefile.in (TAGS): Handle constructs in timevar.def.

2014-09-04  Guozhi Wei  <carrot@google.com>

	PR target/62040
	* config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
	* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
	it into two patterns.
	(move_lo_quad_internal_be_<mode>): Likewise.

2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/options.texi: Document that Var and Init are required if CPP
	is given.
	* optc-gen.awk: Require Var and Init if CPP is given.
	* common.opt (Wpedantic): Use Init.

2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (special_handling_values): Add
	SH_EXTRACT.
	(rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
	wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
	as swappable with special handling SH_EXTRACT.  Remove
	UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
	optimization.
	(adjust_extract): New function.
	(handle_special_swappables): Add default to case statement; add
	case for SH_EXTRACT that calls adjust_extract.
	(dump_swap_insn_table): Handle SH_EXTRACT.

2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
	selection of 0th memory doubleword, regardless of endianness.

2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.

2014-09-04  Alan Modra  <amodra@gmail.com>

	PR debug/60655
	* dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
	can't be output.

2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>

	* target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
	* targhooks.c (default_dwarf_frame_reg_mode): New function.
	* targhooks.h (default_dwarf_frame_reg_mode): New prototype.
	* doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
	* doc/tm.texi: Regenerate.
	* dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
	selection logic to default_dwarf_frame_reg_mode.

2014-09-03  Marek Polacek  <polacek@redhat.com>

	* doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
	by -Wall.

2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
	the automodified register.

2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>

	* output.h (get_some_local_dynamic_name): Declare.
	* final.c (some_local_dynamic_name): New variable.
	(get_some_local_dynamic_name): New function.
	(final_end_function): Clear some_local_dynamic_name.
	* config/alpha/alpha.c (machine_function): Remove some_ld_name.
	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
	(print_operand): Report an error if '%&' is used inappropriately.
	* config/i386/i386.c (get_some_local_dynamic_name): Delete.
	(get_some_local_dynamic_name_1): Delete.
	* config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
	(rs6000_get_some_local_dynamic_name): Delete.
	(rs6000_get_some_local_dynamic_name_1): Delete.
	(print_operand): Report an error if '%&' is used inappropriately.
	* config/s390/s390.c (machine_function): Remove some_ld_name.
	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
	(print_operand): Assert that get_some_local_dynamic_name is nonnull.
	* config/sparc/sparc.c: Include rtl-iter.h.
	(machine_function): Remove some_ld_name.
	(sparc_print_operand): Report an error if '%&' is used inappropriately.
	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.

2014-09-03  Richard Henderson  <rth@redhat.com>

	* config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
	(aarch64_popwb_pair_reg): Remove.
	(aarch64_set_frame_expr): Remove.
	(aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
	the restore ops performed by the insns generated.
	(aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
	insn.  Perform the calls_eh_return addition later; do not attempt to
	preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
	(aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
	special markup at all.  Load cfun->machine->frame.hard_fp_offset
	into a local variable.
	(aarch64_frame_pointer_required): Don't check calls_alloca.

2014-09-03  Richard Biener  <rguenther@suse.de>

	* opts.c (default_options_optimization): Adjust
	max-combine-insns to 2 for -Og.

2014-09-03  Martin Jambor  <mjambor@suse.cz>

	PR ipa/62015
	* ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
	pass-trough jump functions correctly.

2014-09-03  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61986
	* ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
	created replacements in ascending order of offsets.
	(known_aggs_to_agg_replacement_list): Likewise.

2014-09-03  Martin Liska  <mliska@suse.cz>

	* tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
	is set to set uninitialized value for vnresult.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
	for TARGET_MUST_PASS_IN_STACK.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
	for TARGET_ARG_PARTIAL_BYTES.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
	instructions for varargs implementation.
	(nds32_expand_epilogue): Emit stack adjustment instructions for
	varargs implementation.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
	optimization detection.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_function_arg): Deal with nameless
	arguments.
	(nds32_function_arg_advance): Deal with nameless arguments.
	* config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
	(NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
	(NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.

2014-09-03  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
	(struct bb_bitmap_sets): Remove deferred member.
	(BB_DEFERRED): Remove.
	(defer_or_phi_translate_block): Remove.
	(compute_antic_aux): Remove deferring of blocks, assert
	proper iteration order.
	(compute_antic): Do not set BB_DEFERRED.
	(eliminate): Allocate el_avail of proper size initially.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
	according to the value of crtl->args.pretend_args_size.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
	varargs information.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_setup_incoming_varargs): New
	implementation for TARGET_SETUP_INCOMING_VARARGS.
	(nds32_strict_argument_naming): Refine comment.
	* config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
	Define for future implementation.

2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/adxintrin.h (_subborrow_u32): New.
	(_addcarry_u32): Ditto.
	(_subborrow_u64): Ditto.
	(_addcarry_u64): Ditto.
	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
	IX86_BUILTIN_SBB64.
	(ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
	__builtin_ia32_sbb_u64

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_function_arg): Define and rename some
	GPR-specific stuff.
	(nds32_function_arg_advance): Likewise.
	(nds32_init_cumulative_args): Likewise.
	* config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
	(NDS32_FIRST_GPR_REGNUM): Define.
	(NDS32_LAST_GPR_REGNUM): Define.
	(NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
	(NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
	(FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
	(machine_function): Use GRP-specific stuff.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
	(nds32_expand_epilogue): Likewise.
	(nds32_expand_prologue_v3push): Likewise.
	(nds32_expand_epilogue_v3pop): Likewise.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
	v3push/v3pop for variadic function.
	* config/nds32/nds32.md (prologue, epilogue): Likewise.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
	Check rtx for varargs implementation.
	(nds32_output_stack_pop): Likewise.
	* config/nds32/nds32-protos.h: Have a rtx argument for
	nds32_output_stack_push and nds32_output_stack_pop.
	* config/nds32/nds32.md: Likewise.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
	to check if FUNC is an interrupt service routine.
	* config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (machine_function): Add some fields for variadic
	arguments implementation.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32-predicates.c
	(nds32_valid_stack_push_pop): Rename to ...
	(nds32_valid_stack_push_pop_p): ... this.
	* config/nds32/nds32-protos.h: Likewise.
	* config/nds32/predicates.md: Likewise.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
	(nds32_emit_stack_v3push): ... this.
	(nds32_gen_stack_v3pop): Rename to ...
	(nds32_emit_stack_v3pop): ... this and consider CFA restore
	information.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
	(nds32_emit_stack_push_multiple): ... this.
	(nds32_gen_stack_pop_multiple): Rename to ...
	(nds32_emit_stack_pop_multiple): ... this and consider CFA restore
	information.

2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/61078
	* config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
	and add a second splitter to handle the remaining cases.

2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.

2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>

	* cfgexpand.c (label_rtx_for_bb): Change type to
	hash_map<basic_block, rtx_code_label *> *.
	(expand_gimple_basic_block): Adjust.
	(pass_expand::execute): Likewise.

2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>

	* asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
	config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
	config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
	config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
	config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
	config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
	stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
	of rtx.

2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>

	* alloc-pool.c: Include coretypes.h.
	* cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
	function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
	hash_set instead of htab.
	* ggc-page.c (in_gc): New variable.
	(ggc_free): Do nothing if a collection is taking place.
	(ggc_collect): Set in_gc appropriately.
	* ggc.h (gt_ggc_mx(const char *)): New function.
	(gt_pch_nx(const char *)): Likewise.
	(gt_ggc_mx(int)): Likewise.
	(gt_pch_nx(int)): Likewise.
	* hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
	(hash_map::hash_entry::pch_nx): Likewise.
	(hash_map::hash_entry::pch_nx_helper): Likewise.
	(hash_map::hash_map): Adjust.
	(hash_map::create_ggc): New function.
	(gt_ggc_mx): Likewise.
	(gt_pch_nx): Likewise.
	* hash-set.h (default_hashset_traits::ggc_mx): Likewise.
	(default_hashset_traits::pch_nx): Likewise.
	(hash_set::hash_entry::ggc_mx): Likewise.
	(hash_set::hash_entry::pch_nx): Likewise.
	(hash_set::hash_entry::pch_nx_helper): Likewise.
	(hash_set::hash_set): Adjust.
	(hash_set::create_ggc): New function.
	(hash_set::elements): Likewise.
	(gt_ggc_mx): Likewise.
	(gt_pch_nx): Likewise.
	* hash-table.h (hash_table::hash_table): Adjust.
	(hash_table::m_ggc): New member.
	(hash_table::~hash_table): Adjust.
	(hash_table::expand): Likewise.
	(hash_table::empty): Likewise.
	(gt_ggc_mx): New function.
	(hashtab_entry_note_pointers): Likewise.
	(gt_pch_nx): Likewise.

2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
	built-in definition.
	(XVCVUXDDP_SCALE): Likewise.
	(XVCVDPSXDS_SCALE): Likewise.
	(XVCVDPUXDS_SCALE): Likewise.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
	entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
	VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
	VSX_BUILTIN_XVCVDPUXDS_SCALE.
	* config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
	prototype.
	* config/rs6000/rs6000.c (real.h): New include.
	(rs6000_scale_v2df): New function.
	* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
	(UNSPEC_VSX_XVCVUXDDP): Likewise.
	(UNSPEC_VSX_XVCVDPSXDS): Likewise.
	(UNSPEC_VSX_XVCVDPUXDS): Likewise.
	(vsx_xvcvsxddp_scale): New define_expand.
	(vsx_xvcvsxddp): New define_insn.
	(vsx_xvcvuxddp_scale): New define_expand.
	(vsx_xvcvuxddp): New define_insn.
	(vsx_xvcvdpsxds_scale): New define_expand.
	(vsx_xvcvdpsxds): New define_insn.
	(vsx_xvcvdpuxds_scale): New define_expand.
	(vsx_xvcvdpuxds): New define_insn.
	* doc/extend.texi (vec_ctf): Add new prototypes.
	(vec_cts): Likewise.
	(vec_ctu): Likewise.
	(vec_splat): Likewise.
	(vec_div): Likewise.
	(vec_mul): Likewise.

2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/62275
	* config/arm/neon.md
	(neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
	<v_cmp_result>): New pattern.
	* config/arm/iterators.md (NEON_VCVT): New int iterator.
	* config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
	vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
	vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
	* config/arm/arm.c (arm_builtin_vectorized_function): Handle
	BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.

2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/62275
	* config/arm/iterators.md (FIXUORS): New code iterator.
	(VCVT): New int iterator.
	(su_optab): New code attribute.
	(su): Likewise.
	* config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.

2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/predicates.md (aarch64_comparison_operation):
	New special predicate.
	* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
	aarch64_comparison_operation instead of matching an operator.
	Update operand numbers.
	(csinc3<mode>_insn): Likewise.
	(*csinv3<mode>_insn): Likewise.
	(*csneg3<mode>_insn): Likewise.
	(ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
	* config/aarch64/aarch64.c (aarch64_get_condition_code):
	Return -1 instead of aborting on invalid condition codes.
	(aarch64_print_operand): Update aarch64_get_condition_code callsites
	to assert that the returned condition code is valid.
	* config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.

2014-09-02  Aldy Hernandez  <aldyh@redhat.com>

	* Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
	tree.def, and gimple.def

2014-09-02  Jakub Jelinek  <jakub@redhat.com>
	    Balaji V. Iyer  <balaji.v.iyer@intel.com>
	    Igor Zamyatin  <igor.zamyatin@intel.com>

	* cilk-builtins.def (__cilkrts_cilk_for_32): New.
	(__cilkrts_cilk_for_64): Likewise.
	* cilk-common.c (declare_cilk_for_builtin): New function.
	(cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
	__cilkrts_cilk_for_64 bultins.
	* cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
	CILK_TI_F_LOOP_64.
	(cilk_for_32_fndecl): New define.
	(cilk_for_64_fndecl): Likewise.
	* gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
	GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
	* gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
	GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
	GF_OMP_FOR_COMBINED_INTO.
	* gimplify.c (gimplify_scan_omp_clauses): Added
	OMP_CLAUSE__CILK_FOR_COUNT_ case.
	(gimplify_adjust_omp_clauses): Ditto.
	(gimplify_omp_for): Added CILK_FOR case.
	(gimplify_expr): Ditto.
	* omp-low.c: Include cilk.h.
	(extract_omp_for_data): Set appropriate kind for
	GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
	(scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
	(create_omp_child_function_name): Added second argument to handle
	cilk_for case.
	(cilk_for_check_loop_diff_type): New function.
	(expand_cilk_for_call): Likewise.
	(expand_cilk_for): Likewise.
	(create_omp_child_function): Set cilk_for_count; handle the cases when
	it is true; call create_omp_child_function_name with second argument.
	(expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
	(expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
	* tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
	* tree-nested.c (convert_nonlocal_omp_clauses): Added
	OMP_CLAUSE__CILK_FOR_COUNT_ case.
	(convert_local_omp_clauses): Ditto.
	* tree-pretty-print.c (dump_omp_clause): Added
	OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
	(dump_generic_node): Added CILK_FOR case.
	* tree.c (omp_clause_num_ops): New element
	OMP_CLAUSE__CILK_FOR_COUNT_ (1).
	(omp_clause_code_name): New element _Cilk_for_count_.
	(walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
	* tree.def: Add tree code for CILK_FOR.

2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
	(ppc403-compare): Add "exts with dot" case.
	* config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
	* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
	* config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
	* config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
	* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
	* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
	* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
	* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
	cell-cmp-microcoded): Similarly.
	* config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
	* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
	* config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
	* config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
	* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
	* config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
	* config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
	* config/rs6000/power6.md (power6-exts): Add "no dot" condition.
	(power6-compare): Add "exts with dot" case.
	* config/rs6000/power7.md (power7-integer, power7-compare): As before.
	* config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
	* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.

	* config/rs6000/predicates.md (lwa_operand): Don't allow memory
	if avoiding Cell microcode.
	* config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
	(is_cracked_insn): Ditto.
	(insn_must_be_first_in_group): Ditto.
	* config/rs6000/rs6000.md (dot): Adjust comment.
	(cell_micro): Handle exts+dot.
	(extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
	*extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
	extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
	(extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
	extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
	*extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
	*extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.

2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (QHSI): Delete.
	(EXTQI, EXTHI, EXTSI): New mode iterators.
	(zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
	*zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
	*zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
	9 anonymous instructions, and 8 splitters): Delete.
	(zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
	*zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
	*zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
	zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
	*zero_extendsi<mode>2_dot2): New.

2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (any_extend): New code iterator.
	(u, su): New code attributes.
	(dmode, DMODE): New mode attributes.
	(<su>mul<mode>3_highpart): New.
	(*<su>mul<mode>3_highpart): New.
	(<su>mulsi3_highpart_le): New.
	(<su>muldi3_highpart_le): New.
	(<su>mulsi3_highpart_64): New.
	(<u>mul<mode><dmode>3): New.
	(mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
	splitters): Delete.
	(mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
	splitters): Delete.

2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
	*mulsi3_internal2, and two splitters): Delete.
	(muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
	Delete.
	(mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.

2014-09-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62695
	* tree-ssa-structalias.c (find_func_clobbers): Add missing
	vector truncate.

2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/62312
	* config/sh/sh.md (*cmp_div0s_0): Add missing constraints.

2014-09-01  Andi Kleen  <ak@linux.intel.com>

	* file-find.c (add_prefix_begin): Add.
	(do_add_prefix): Rename from add_prefix with first argument.
	(add_prefix): Add new wrapper.
	* file-find.h (add_prefix_begin): Add.
	* gcc-ar.c (main): Support -B option.

2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* genemit.c: Include dumpfile.h.
	(gen_split): Print name of splitter function to dump file.

2014-09-01  Richard Biener  <rguenther@suse.de>

	* tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
	Use stack auto_vecs for constraint expressions.
	(find_func_aliases_for_call): Likewise.
	(find_func_aliases): Likewise.
	(find_func_clobbers): Likewise.

2014-09-01  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
	operands vector in most cases.  Remove redundant code.

2014-09-01  Olivier Hainque  <hainque@adacore.com>

	* config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
	$WIND_BASE instead of designating a harcoded arbitrary home dir.
	(VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.

2014-09-01  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.h (copy_reference_ops_from_ref,
	copy_reference_ops_from_call, vn_nary_op_compute_hash,
	vn_reference_compute_hash, vn_reference_insert): Remove.
	(vn_reference_lookup_call): New function.
	* tree-ssa-sccvn.c (vn_reference_compute_hash,
	copy_reference_ops_from_ref, copy_reference_ops_from_call,
	vn_reference_insert, vn_nary_op_compute_hash): Make static.
	(create_reference_ops_from_call): Remove.
	(vn_reference_lookup_3): Properly update shared_lookup_references.
	(vn_reference_lookup_pieces): Assert that we updated
	shared_lookup_references properly.
	(vn_reference_lookup): Likewise.
	(vn_reference_lookup_call): New function.
	(visit_reference_op_call): Use it.  Avoid re-building the
	reference ops.
	(visit_reference_op_load): Remove redundant lookup.
	(visit_reference_op_store): Perform special tail-merging work
	only when possibly doing tail-merging.
	(visit_use): Likewise.
	* tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.

2014-09-01  Jakub Jelinek  <jakub@redhat.com>

	PR target/62025
	* sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
	returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
	(find_inc): Revert 2014-08-13 change.

2014-09-01  Marek Polacek  <polacek@redhat.com>

	PR middle-end/61903
	* expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
	Change the type of V to unsigned HOST_WIDE_INT.

2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
	the size of byte markers.
	(do_shift_rotate): Fix confusion between host, target and marker byte
	size.
	(verify_symbolic_number_p): Likewise.
	(find_bswap_or_nop_1): Likewise.
	(find_bswap_or_nop): Likewise.

2014-09-01  Olivier Hainque  <hainque@adacore.com>

	* Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
	INSTALL_SCRIPT and INSTALL_PROGRAM as well.

2014-09-01  Jakub Jelinek  <jakub@redhat.com>

	* config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
	* gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
	(SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.

2014-09-01  Yury Gribov  <y.gribov@samsung.com>

	PR sanitizer/61897
	PR sanitizer/62140
	* asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
	(build_check_stmt): Likewise.
	(instrument_strlen_call): Likewise.
	(asan_expand_check_ifn): Likewise and fix types.
	(maybe_cast_to_ptrmode): New function.

2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/mcore/mcore.c (try_constant_tricks): Fix declaration.

2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/generic.texi (Deficiencies): Add note on exemplary mistakes.

2014-08-30  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
	prefix to function labels when generating fast indirect calls.

2014-08-30  David Malcolm  <dmalcolm@redhat.com>

	PR bootstrap/62304

	* gcc/reorg.c (skip_consecutive_labels): Convert return type and
	param back from rtx_insn * to rtx.  Rename param from "label" to
	"label_or_return", reintroducing "label" as an rtx_insn * after
	we've ensured it's not a RETURN.
	(first_active_target_insn): Likewise for return type and param;
	add a checked cast to rtx_insn * once we've ensured "insn" is not
	a RETURN.
	(steal_delay_list_from_target): Convert param "pnew_thread" back
	from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
	with JUMP_LABEL.
	(own_thread_p): Convert param "thread" back from an rtx_insn * to
	an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
	cast once we've established we're not dealing with a RETURN,
	renaming subsequent uses of "thread" to "thread_insn".
	(fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
	to JUMP_LABEL.
	(follow_jumps): Convert return type and param "label" from
	rtx_insn * back to rtx.  Move initialization of "value" to after
	the handling for ANY_RETURN_P, adding a checked cast there to
	rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
	rename to "this_label_or_return", reintroducing "this_label" as
	an rtx_insn * once we've handled the case where it could be an
	ANY_RETURN_P.
	(fill_slots_from_thread): Rename param "thread" to
	"thread_or_return", converting from an rtx_insn * back to an rtx.
	Reintroduce name "thread" as an rtx_insn * local with a checked
	cast once we've handled the case of it being an ANY_RETURN_P.
	Convert local "new_thread" from an rtx_insn * back to an rtx.
	Add a checked cast when assigning to "trial" from "new_thread".
	Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
	checked cast to rtx_insn * from "new_thread" when invoking
	get_label_before.
	(fill_eager_delay_slots): Convert locals "target_label",
	"insn_at_target" from rtx_insn * back to rtx.
	Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
	(relax_delay_slots): Convert locals "trial", "target_label" from
	rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
	to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
	invoking update_block.
	(dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
	JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.

	* resource.h (mark_target_live_regs): Undo erroneous conversion
	of second param of r214693, converting it back from rtx_insn * to
	rtx, since it could be a RETURN.

	* resource.c (find_dead_or_set_registers): Similarly, convert
	param "jump_target" back from an rtx_insn ** to an rtx *, as we
	could be writing back a RETURN.  Rename local rtx_insn * "next" to
	"next_insn", and introduce "lab_or_return" as a local rtx,
	handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
	(mark_target_live_regs): Undo erroneous conversion
	of second param of r214693, converting it back from rtx_insn * to
	rtx, since it could be a RETURN.  Rename it from "target" to
	"target_maybe_return", reintroducing the name "target" as a local
	rtx_insn * with a checked cast, after we've handled the case of
	ANY_RETURN_P.

2014-08-29  DJ Delorie  <dj@redhat.com>

	* cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
	pointer size up to a power of two.
	* defaults.h (DWARF2_ADDR_SIZE): Round up.
	(POINTER_SIZE_UNITS): New, rounded up value.
	* dwarf2asm.c (size_of_encoded_value): Use it.
	(dw2_output_indirect_constant_1): Likewise.
	* expmed.c (init_expmed_one_conv): We now know the sizes of
	partial int modes.
	* loop-iv.c (iv_number_of_iterations): Use precision, not size.
	* optabs.c (expand_float): Use precision, not size.
	(expand_fix): Likewise.
	* simplify-rtx (simplify_unary_operation_1): Likewise.
	* tree-dfa.c (get_ref_base_and_extent): Likewise.
	* varasm.c (assemble_addr_to_section): Round up pointer sizes.
	(default_assemble_integer) Likewise.
	(dump_tm_clone_pairs): Likewise.
	* dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
	* var-tracking.c (adjust_mems): Allow partial-int modes also.
	(prepare_call_arguments): Likewise.
	* stor-layout.c (finalize_type_size): Preserve precision.
	(layout_type): Use precision, not size.

	* expr.c (convert_move): If the target has an explicit converter,
	use it.

2014-08-29  David Malcolm  <dmalcolm@redhat.com>

	* gdbinit.in: Skip various inline functions in rtl.h when
	stepping.

2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>

	PR bootstrap/62301
	* rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.

2014-08-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62291
	* tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
	exactly the vector size needed and use quick_push.
	(phi_translate_1): Adjust comment.
	(valid_in_sets): Remove block argument and remove pointless
	checking of NAMEs.
	(dependent_clean): Adjust for removal of block argument.
	(clean): Likewise.
	(compute_antic_aux): Likewise.
	(compute_partial_antic_aux): Likewise.

2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
	(define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
	(define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
	(define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.

2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
	* config/i386/sse.md
	(define_mode_iterator VI4_128_8_256): New.
	(define_mode_iterator VI2_128_4_256): Ditto.
	(define_mode_iterator PMOV_DST_MODE): Rename into
	(define_mode_iterator PMOV_DST_MODE_1): this.
	(define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
	Use PMOV_DST_MODE_1 mode iterator.
	(define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
	Ditto.
	(define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
	Ditto.
	(define_insn "*avx512bw_<code>v32hiv32qi2"): New.
	(define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
	(define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
	(define_mode_iterator PMOV_DST_MODE_2): New.
	(define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
	(define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
	(define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
	Ditto.
	(define_mode_iterator PMOV_SRC_MODE_3): Ditto.
	(define_mode_attr pmov_dst_3): Ditto.
	(define_mode_attr pmov_dst_zeroed_3): Ditto.
	(define_mode_attr pmov_suff_3): Ditto.
	(define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
	(define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
	(define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
	(define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
	(define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
	(define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
	(define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
	(define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
	(define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
	(define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
	(define_mode_iterator PMOV_SRC_MODE_4): Ditto.
	(define_mode_attr pmov_dst_4): Ditto.
	(define_mode_attr pmov_dst_zeroed_4): Ditto.
	(define_mode_attr pmov_suff_4): Ditto.
	(define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
	(define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
	(define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
	(define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
	(define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
	(define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
	(define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
	(define_insn "*avx512vl_<code>v2div2si2"): Ditto.
	(define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
	(define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
	(define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.

2014-08-29  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_unary): Do not allow
	NON_LVALUE_EXPR in gimple.

2014-08-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/62292
	* gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
	from previous refactoring.
	(gimple_fold_builtin_strncpy): Likewise.

2014-08-29  David Malcolm  <dmalcolm@redhat.com>

	PR bootstrap/62300
	* function.c (assign_parm_setup_reg): Remove erroneous checked
	cast to rtx_insn * on result of gen_extend_insn in favor of
	introducing a new local rtx "pat".

2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
	to silence warning.
	* config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
	(next_insn): Likewise.
	* emit-rtl.c (next_insn): Likewise.
	(previous_insn): Likewise.
	* config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
	"insn" and "next" from rtx to rtx_insn *.
	* config/picochip/picochip.c (picochip_reorg): Likewise for locals
	"insn", "insn1", "vliw_start",  "prologue_end_note",
	"last_insn_in_packet".

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* shrink-wrap.h (active_insn_between): Strengthen both params from
	rtx to rtx_insn *.
	* function.c (active_insn_between): Likewise.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* genattr.c (main): When writing out insn-attr.h, strengthen param
	of dfa_clear_single_insn_cache from rtx to rtx_insn *.
	* genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
	writing out the definition of dfa_clear_single_insn_cache to the
	generated insn-automata.c

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* resource.h (clear_hashed_info_for_insn): Strengthen param from
	rtx to rtx_insn *.
	(incr_ticks_for_insn): Likewise.
	(init_resource_info): Likewise.

	* resource.c (init_resource_info): Likewise.
	(clear_hashed_info_for_insn): Likewise.
	(incr_ticks_for_insn): Likewise.

	* reorg.c (delete_scheduled_jump): Strengthen param "insn" from
	rtx to rtx_insn *.
	(steal_delay_list_from_target): Use methods of "seq".
	(try_merge_delay_insns): Use methods of "merged_insns".
	(update_block): Strengthen param "insn" from rtx to rtx_insn *.
	(reorg_redirect_jump): Likewise for param "jump".

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* insn-addr.h (insn_addresses_new): Strengthen param "insn" from
	rtx to rtx_insn *.
	* config/s390/s390.c (s390_split_branches): Eliminate top-level
	local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
	"set_insn".
	(s390_mainpool_finish): In three places, split out a local rtx
	"insn" into a local rtx - "set" or "pat" - and a rtx_insn *
	"insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
	and split another local rtx "insn" out into rtx "pat" and
	rtx_insn * "insn".
	* config/sh/sh.c (output_branchy_insn): Rather than working
	directly on operands[9], introduce local rtx_code_label *
	variables named "lab" in two places, working on them, and then
	assigning them to operands[9], so that the intervening operations
	are known by the type system to be on insns.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
	const rtx_insn *.

	* print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
	in invocation of INSN_HAS_LOCATION.

2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.h (vec_xl): New #define.
	(vec_xst): Likewise.
	* config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
	(XXSPLTD_V2DI): Likewise.
	(DIV_V2DI): Likewise.
	(UDIV_V2DI): Likewise.
	(MUL_V2DI): Likewise.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
	VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
	VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
	* config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
	(UNSPEC_VSX_DIVSD): Likewise.
	(UNSPEC_VSX_DIVUD): Likewise.
	(UNSPEC_VSX_MULSD): Likewise.
	(vsx_mul_v2di): New insn-and-split.
	(vsx_div_v2di): Likewise.
	(vsx_udiv_v2di): Likewise.
	(vsx_xxspltd_<mode>): New insn.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
	NEXT_INSN.
	(PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
	(NEXT_INSN): Likewise.
	(JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
	(reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
	const rtx_insn *.
	(no_labels_between_p): Likewise for both params.

	* config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
	cast when using NEXT_INSN on operands[2].
	* config/alpha/alpha.c (alpha_set_memflags): Strengthen local
	"insn" from rtx to rtx_insn *, adding a checked cast.
	(alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
	rtx_insn *.
	* config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
	for third param.
	(arc_text_label): Likewise for param "insn".
	* config/arc/arc.c (arc_expand_epilogue): Likewise for local
	"insn".
	(arc_ccfsm_record_condition): Likewise for param "jump".
	(arc_text_label): Likewise for local "label".
	* config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
	Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
	a method for typesafety.  Add a checked cast.
	* config/arc/constraints.md (Clb): Add a checked cast when getting
	the CODE_LABEL from a LABEL_REF.
	* config/arm/arm.c (require_pic_register): Strengthen locals
	"seq", "insn" from rtx to rtx_insn *.
	(create_fix_barrier): Likewise for locals "selected", "next".
	(thumb1_reorg): Likewise for locals "prev", "insn".
	(arm_expand_prologue): Likewise for local "last".
	(thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
	operands[0].
	(thumb2_output_casesi): Likewise for operands[2].
	* config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
	strengthen local "insn" from rtx to rtx_insn *.
	* config/bfin/bfin.c (find_next_insn_start): Likewise for return
	type and param "insn".
	(find_prev_insn_start): Likewise.
	(hwloop_optimize): Likewise for locals "insn", "last_insn",
	"prev".
	(gen_one_bundle): Likewise for loal "t".
	(find_load): Likewise for param "insn".
	(workaround_speculation): Likewise for locals "insn", "next",
	"target", "next_tgt".
	* config/c6x/c6x.c (assign_reservations): Likewise for both params
	and for locals "insn", "within", "last".
	(count_unit_reqs): Likewise for params "head", "tail" and local
	"insn".
	(try_rename_operands): Likewise for params "head", "tail".
	(reshuffle_units): Likewise for locals "head", "tail", "insn".
	(struct c6x_sched_context): Likewise for fields
	"last_scheduled_insn", "last_scheduled_iter0".
	(init_sched_state): Replace NULL_RTX with NULL.
	(reorg_split_calls): Strengthen local "new_cycle_first" from rtx
	to rtx_insn *.
	(undo_split_delayed_nonbranch): Likewise for param and for local
	"prev".
	(conditionalize_after_sched): Likewise for local "insn".
	(bb_earliest_end_cycle): Likewise.
	(filter_insns_above): Likewise for locals "insn", "next".
	(hwloop_optimize): Remove redundant checked cast.
	(hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
	* config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
	NULL_RTX with NULL.
	(cris_simple_epilogue): Likewise.
	(cris_expand_prologue): Likewise.
	(cris_expand_epilogue): Likewise.
	* config/frv/frv.c (frv_function_contains_far_jump): Strengthen
	local "insn" from rtx to rtx_insn *.
	(frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
	(struct frv_packet_group): Likewise for the elements within array
	fields "insns", "sorted", and for field "nop".
	(frv_packet): Likewise for the elements within array field
	"insns".
	(frv_add_insn_to_packet): Likewise for param "insn".
	(frv_insert_nop_in_packet): Likewise for param "insn" and local
	"last".
	(frv_for_each_packet): Likewise for locals "insn", "next_insn".
	(frv_sort_insn_group_1): Likewise for local "insn".
	(frv_optimize_membar_local): Likewise.
	(frv_align_label): Likewise for locals "x", "last", "barrier",
	"label".
	* config/ia64/ia64.c (last_scheduled_insn): Likewise for this
	local.
	(ia64_sched_init): Likewise for local "insn".
	(scheduled_good_insn): Likewise for param "last".
	(struct _ia64_sched_context): Likewise for field
	"last_scheduled_insn".
	(ia64_init_sched_context): Replace NULL_RTX with NULL.
	(struct bundle_state): Likewise for field "insn".
	(issue_nops_and_insn): Likewise for param "insn".
	(get_next_important_insn): Likewise for return type and both
	params.
	(ia64_add_bundle_selector_before): Likewise for param "insn".
	(bundling): Likewise for params "prev_head_insn", "tail" and
	locals "insn", "next_insn", "b".  Eliminate top-level local rtx
	"nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
	* config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
	Strengthen final param from rtx to rtx_insn *.
	(iq2000_move_1word): Likewise for second param.
	* config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
	param "cur_insn" and local "next_insn".
	(iq2000_move_1word): Likewise for param "insn".
	* config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
	casts when using NEXT_INSN on operands[1].
	* config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
	"insn" from rtx to rtx_insn *.
	* config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
	"x", introducing local rtx_insn * "insn" for when working with the
	CODE_LABEL of the LABEL_REF.
	(m68k_sched_md_init_global): Strengthen local "insn" from rtx to
	rtx_insn *.
	* config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
	param.
	* config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
	type.
	(conditionalize_block): Likewise for return type and param.
	(mcore_is_dead): Likewise for param "first" and local "insn".
	(emit_new_cond_insn): Likewise for return type.
	(conditionalize_block): Likewise for return type, param, and
	locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
	"newinsn".
	(conditionalize_optimization): Likewise for local "insn".
	* config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
	using NEXT_INSN.
	* config/microblaze/microblaze.md: Add checked casts when using
	NEXT_INSN.
	* config/mips/mips.c (mips_expand_prologue): Eliminate top-level
	rtx "insn" in favor of various more tightly-scoped rtx "insn" and
	and rtx_insn * "insn".
	* config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
	checked cast when using NEXT_INSN on operands[2].
	* config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
	local "insn" from rtx to rtx_insn *.
	* config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
	Likewise.
	* config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
	Add a checked cast when using NEXT_INSN on operands[1].
	* config/pa/pa-protos.h (pa_following_call): Strengthen param from
	rtx to rtx_insn *.
	(pa_output_cbranch): Likewise for final param.
	(pa_output_lbranch): Likewise for second param.
	(pa_output_bb): Likewise for third param.
	(pa_output_bvb): Likewise.
	(pa_output_dbra): Likewise for second param.
	(pa_output_movb): Likewise.
	(pa_output_parallel_movb): Likewise.
	(pa_output_parallel_addb): Likewise.
	(pa_output_millicode_call): Likewise for first param.
	(pa_output_mul_insn): Likewise for second param.
	(pa_output_div_insn): Likewise for third param.
	(pa_output_mod_insn): Likewise for second param.
	(pa_jump_in_call_delay): Likewise for param.
	* config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
	(pa_output_div_insn): Likewise.
	(pa_output_mod_insn): Likewise.
	(pa_output_cbranch): Likewise.
	(pa_output_lbranch): Likewise.
	(pa_output_bb): Likewise.
	(pa_output_bvb): Likewise.
	(pa_output_dbra): Likewise.
	(pa_output_movb): Likewise.
	(pa_output_millicode_call): Likewise; use method of rtx_sequence *
	to simplify and for typesafety.
	(pa_output_call): Use method of rtx_sequence *.
	(forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
	(pa_jump_in_call_delay): Likewise.
	(pa_output_parallel_movb): Likewise.
	(pa_output_parallel_addb): Likewise.
	(pa_following_call): Likewise.
	(pa_combine_instructions): Likewise for locals "anchor",
	"floater".
	(pa_can_combine_p): Likewise for params "anchor", "floater" and
	locals "start", "end".
	* config/picochip/picochip.c (picochip_reset_vliw): Likewise for
	param "insn" and local "local_insn".
	(picochip_final_prescan_insn): Likewise for local "local_insn".
	* config/rs6000/rs6000.c (compute_save_world_info): Likewise for
	local "insn".
	(uses_TOC): Likewise.
	* config/s390/s390.c (get_some_local_dynamic_name): Likewise.
	(s390_mainpool_finish): Eliminate top-level local rtx "insn",
	splitting out to more tightly-scoped locals, 3 as rtx and one as
	rtx_insn *.
	(s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
	to rtx_insn *.
	(s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
	where needed.
	* config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
	to rtx_insn *.
	(fixup_addr_diff_vecs): Likewise.
	(reg_unused_after): Likewise for param 2.
	(sh_can_redirect_branch): Likewise for both params.
	(check_use_sfunc_addr): Likewise for param 1.
	* config/sh/sh.c (fixup_mova): Likewise for local "worker".
	(find_barrier): Likewise for local "last_got".
	(gen_block_redirect): Likewise for return type, param "jump" and
	locals "prev", "scan", "next", "insn".
	(struct far_branch): Likewise for fields "near_label",
	"insert_place", "far_label".
	(gen_far_branch): Likewise for local "jump".
	(fixup_addr_diff_vecs): Likewise for param "first" and locals
	"insn", "prev".
	(barrier_align): Likewise for param and for locals "prev", "x".
	Introduce local rtx_sequence * "prev_seq" and use insn method for
	typesafety and clarity.
	(sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
	(get_dest_uid): Likewise for local "dest".
	(split_branches): Likewise for locals "next", "beyond", "label",
	"block", "far_label".  Add checked casts when assigning to
	bp->far_label and "far_label".
	(reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
	(sequence_insn_p): Likewise.
	(mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
	more loop-scoped rtx "insn" when walking LABEL_REFS.
	(sh_can_redirect_branch): Strengthen both params from rtx to
	rtx_insn *.
	(check_use_sfunc_addr): Likewise for param "insn".  Introduce a
	new local rtx_sequence * "seq" via a dyn_cast, and use a method
	for clarity and typesafety.
	* config/sh/sh.md (define_expand "epilogue"): Strengthen local
	"insn" from rtx to rtx_insn *.
	(define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
	when using NEXT_INSN on the CODE_LABEL in operands[2].
	(define_insn "casesi_worker_2"): Likewise.
	(define_insn "casesi_shift_media"): Likewise.
	(define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
	operands[3].
	* config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
	Strengthen field "insn" from rtx to rtx_insn *.
	(sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
	(sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
	param "start_insn" and local "start_insn".
	* config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
	field "insn".
	(find_set_of_reg_bb): Likewise for param "insn".
	(trace_reg_uses_1): Likewise for param "start_insn" and local "i".
	(trace_reg_uses): Likewise for param "start_insn".
	(sh_treg_combine::cbranch_trace): Likewise for field
	"cbranch_insn".
	(sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
	param "insn".
	(sh_treg_combine::record_set_of_reg): Likewise for param
	"start_insn" and local "i".
	(sh_treg_combine::can_remove_cstore): Likewise for local
	"prev_insn".
	(sh_treg_combine::try_optimize_cbranch): Likewise for param
	"insn".
	(sh_treg_combine::execute): Likewise for local "i".
	* config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
	param.
	(sparc_check_64): Likewise for second param.
	* config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
	locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
	dyn_cast, using its insn method for typesafety and clarity.
	(empty_delay_slot): Strengthen param "insn" from rtx to
	rtx_insn *.
	(set_extends): Likewise.
	(sparc_check_64): Likewise.
	* config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
	for locals "seq", "last_insn".
	(combine_bnp): Likewise for param "insn".
	(xstormy16_reorg): Likewise for local "insn".
	* config/v850/v850.c (substitute_ep_register): Likewise for params
	"first_insn", "last_insn" and local "insn".
	(v850_reorg): Likewise for fields "first_insn", "last_insn" within
	elements of "regs" array, and local "insn".
	* except.c (emit_note_eh_region_end): Likewise for param "insn".
	* final.c (final_sequence): Strengthen this global from rtx to
	rtx_sequence *.
	(shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
	rtx_insn *.
	(final_scan_insn): Update assignment to "final_sequence" to be
	from "seq", the cast version of "body", for type-safety.
	* function.c (assign_parm_setup_reg): Strengthen locals "insn",
	"insns" from rtx to rtx_insn *.
	(thread_prologue_and_epilogue_insns): Likewise for local "seq".
	* genattr.c (main): When writing out generated insn-attr.h,
	strengthen params 1 and 3 of eligible_for_delay,
	eligible_for_annul_true, eligible_for_annul_false from rtx to
	rtx_insn *.
	* genattrtab.c (write_eligible_delay): Likewise when writing out
	generated insn-attrtab.c; also local "insn" the generated
	functions.
	* hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
	to rtx_insn *.
	* hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
	"start_label" from rtx to rtx_insn *.
	* ira.c (decrease_live_ranges_number): Likewise for local "p".
	(ira_update_equiv_info_by_shuffle_insn): Likewise for param
	"insns" and local "insn".
	(validate_equiv_mem): Likewise for param "start" and local "insn".
	(memref_used_between_p): Likewise for params "start", "end" and
	local "insn".
	* ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
	final param.
	* loop-doloop.c (doloop_optimize): Within region guarded by
	INSN_P (doloop_pat), introduce a new local rtx_insn *
	"doloop_insn" via a checked cast, and use it for typesafety,
	eventually writing the value back into doloop_pat.
	* output.h (final_sequence): Strengthen this global from rtx to
	rtx_sequence *.
	* recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
	reintroducing "insn" as an rtx_insn * via a checked cast.
	Strengthen param "attempt" and local "new_insn"from rtx to
	rtx_insn *.
	(peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
	to rtx_insn *.
	* ree.c (emit_note_eh_region_end): Likewise for local "insn".
	* reload1.c (reload_as_needed): Eliminate top-level locals "x" and
	"p" in favor of more tightly-scoped replacements, sometimes rtx
	and sometimes rtx_insn *, as appropriate.
	(delete_output_reload): Eliminate top-level rtx "i1", splitting
	into two loop-scoped locals, one an rtx, the other an rtx_insn *.
	* reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
	local "trial" from rtx to rtx_insn *.
	(redirect_with_delay_slots_safe_p): Strengthen param "jump" from
	rtx to rtx_insn *.  Strenghten local "pat" from rtx to
	rtx_sequence * and use methods for clarity and typesafety.
	(redirect_with_delay_list_safe_p): Strengthen param "jump" from
	rtx to rtx_insn *.  Strenghten local "li" from rtx to
	rtx_insn_list * and use its methods for clarity and typesafety.
	(steal_delay_list_from_target): Strengthen param "insn" from rtx
	to rtx_insn *.
	(steal_delay_list_from_fallthrough): Likewise.
	(try_merge_delay_insns): Likewise for param "thread" and locals
	"trial", "next_trial", "delay_insn".
	(redundant_insn): Likewise for param "target" and local "trial".
	(own_thread_p): Likewise for param "thread" and locals
	"active_insn", "insn".
	(get_label_before): Likewise for param "insn".
	(fill_simple_delay_slots): Likewise for local "new_label"; use
	JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
	(label_before_next_insn): Strengthen return type and local "insn"
	from rtx to rtx_insn *.
	(relax_delay_slots): Likewise for locals "other", "tmp".
	(make_return_insns): Likewise for param "first" and locals "insn",
	"jump_insn", "prev".  Move declaration of "pat" to its assignment
	and strengthen from rtx to rtx_sequence *.  Use its methods for
	clarity and typesafety.
	* rtlanal.c (no_labels_between_p): Strengthen params from
	const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
	rtx_insn *.
	(reg_used_between_p): Strengthen params "from_insn", "to_insn"
	from const_rtx to const rtx_insn *.
	(reg_set_between_p): Rename param "from_insn" to
	"uncast_from_insn", and reintroduce "from_insn" as a
	const rtx_insn * via a checked cast.
	(modified_between_p): Likewise for param "start" as "uncast_start".
	(tablejump_p): Add a cast when invoking NEXT_INSN on "label".
	* sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
	"tmp", head" from rtx to rtx_insn *.
	(recompute_rev_top_order): Likewise for local "insn".
	* sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
	* store-motion.c (build_store_vectors): Likewise for local "insn".
	Strengthen local "st" from rtx to rtx_insn_list * and use methods
	for clarity and typesafety.
	* tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
	rtx to rtx_insn *.
	(computation_cost): Likewise for local "seq".
	(get_address_cost): Likewise.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (tablejump_p): Strengthen first param from const_rtx to
	const rtx_insn *.
	(label_is_jump_target_p): Likewise for second param.

	* rtlanal.c (tablejump_p): Likewise for param "insn".
	(label_is_jump_target_p): Likewise for param "jump_insn".

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (find_first_parameter_load): Strengthen return type and
	both params from rtx to rtx_insn *.
	* rtlanal.c (find_first_parameter_load): Strengthen return type,
	both params and locals "before", "first_set" from rtx to
	rtx_insn *.  Remove now-redundant cast.
	* except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (find_last_value): Delete.
	* rtlanal.c (find_last_value): Delete.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* cfgexpand.c (pass_expand::execute): Strengthen local "after"
	from rtx to rtx_insn *.
	* cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
	rtx "note" with new local rtx_insn * "new_head" when calculating
	head insn of new basic block.
	* combine.c (combine_split_insns): Strengthen return type and local
	"ret" from rtx to rtx_insn *.
	(likely_spilled_retval_p): Likewise for locals "use" and "p".
	(try_combine): Eliminate local "m_split", splitting into new
	locals "m_split_insn" and "m_split_pat".
	(find_split_point): Strengthen local "seq" from rtx into
	rtx_insn *.
	* config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
	locals "label", "branch".
	* config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
	for local "insn".
	(define_expand "umulsi3_highpart"): Likewise for local "insn".
	* dse.c (note_add_store_info): Likewise for fields "first",
	"current".
	(note_add_store): Likewise for local "insn".
	(emit_inc_dec_insn_before): Likewise for locals "insn",
	"new_insn", "cur".
	(find_shift_sequence): Likewise for locals "shift_seq", "insn".
	(replace_read): Likewise for locals "insns", "this_insn".
	* dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
	(notice_eh_throw): Likewise for param "insn".
	(before_next_cfi_note): Likewise for return type, param, and local
	"prev".
	(connect_traces): Likewise for local "note".
	* emit-rtl.c (reset_all_used_flags): Likewise for local "p".
	(verify_rtl_sharing): Likewise.
	(unshare_all_rtl_in_chain): Likewise for param "insn".
	(get_first_nonnote_insn): Likewise for local "insn".
	(get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
	"seq" and use its methods to clarify things.
	(next_insn): Strengthen return type from rtx to rtx_insn *.
	Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
	local rtx_insn * using a checked cast, dropping a checked cast
	made redundant by this change.  Use a cast to and method of
	rtx_sequence to clarify the code.
	(previous_insn): Rename param "insn" to "uncast_insn" and
	reintroduce "insn" as a local rtx_insn * using a checked cast,
	dropping a checked cast made redundant by this change.  Use a cast
	to and method of rtx_sequence to clarify the code.
	(next_nonnote_insn): Rename param "insn" to "uncast_insn" and
	reintroduce "insn" as a local rtx_insn * using a checked cast,
	dropping a checked cast made redundant by this change.
	(next_nonnote_insn_bb): Likewise.
	(prev_nonnote_insn): Likewise.
	(prev_nonnote_insn_bb): Likewise.
	(next_nondebug_insn): Likewise.
	(prev_nondebug_insn): Likewise.
	(next_nonnote_nondebug_insn): Likewise.
	(prev_nonnote_nondebug_insn): Likewise.
	(next_real_insn): Likewise.
	(prev_real_insn): Likewise.
	(next_active_insn): Likewise.
	(prev_active_insn): Likewise.
	(next_cc0_user): Likewise.  Use rtx_sequence and a method for
	clarity.
	(prev_cc0_setter): Likewise.
	(try_split): Rename param "trial" to "uncast_trial" and
	reintroduce "insn" as a local rtx_insn * using a checked cast,
	dropping checked casts made redundant by this change.
	Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
	rtx to rtx_insn *.
	(remove_insn): Rename param "insn" to "uncast_insn" and
	reintroduce "insn" as a local rtx_insn * using a checked cast.
	(emit_pattern_after_setloc): Likewise for param "after", as
	"uncast_after".
	(emit_pattern_after): Likewise.  Strengthen local "prev" from
	rtx to rtx_insn *.
	(emit_pattern_before_setloc): Rename param "before" to
	"uncast_before" and reintroduce "before" as a local rtx_insn *
	using a checked cast.  Strengthen locals "first", "last" from
	rtx to rtx_insn *.
	(emit_pattern_before): Likewise rename/cast param "before" to
	"uncast_before". Strengthen local "next" from rtx to rtx_insn *.
	* except.c (copy_reg_eh_region_note_forward): Strengthen param
	"first" and local "insn" from rtx to rtx_insn *.
	(copy_reg_eh_region_note_backward): Likewise for param "last"
	and local "insn".
	* expr.c (fixup_args_size_notes): Rename param "last" to
	"uncast_last" and reintroduce "last" as a local rtx_insn *
	using a checked cast.  Strengthen local "insn" from rtx to
	rtx_insn *.
	* function.c (set_insn_locations): Strengthen param "insn" from
	rtx to rtx_insn *.
	(record_insns): Likewise for param "insns" and local "tmp".
	(active_insn_between): Rename param "tail" to
	"uncast_tail" and reintroduce "tail" as a local rtx_insn *
	using a checked cast.
	(thread_prologue_and_epilogue_insns): Split out top-level local
	rtx "seq" into three different rtx_insn * locals.  Strengthen
	local "prologue_seq" from rtx to rtx_insn *.
	* gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
	from rtx to rtx_insn *.
	* haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
	(priority): Likewise for locals "prev_first", "twin".
	(setup_insn_max_reg_pressure): Likewise for param "after".
	(sched_setup_bb_reg_pressure_info): Likewise.
	(no_real_insns_p): Strengthen params from const_rtx to
	const rtx_insn *.
	(schedule_block): Strengthen local "next_tail" from rtx to
	rtx_insn *.
	* ifcvt.c (find_active_insn_before): Strengthen return type and
	param "insn" from rtx to rtx_insn *.
	(find_active_insn_after): Likewise.
	(cond_exec_process_insns): Likewise for param "start" and local "insn".
	(cond_exec_process_if_block): Likewise for locals "then_start",
	"then_end", "else_start", "else_end", "insn", "start", "end", "from".
	(noce_process_if_block): Likewise for local "jump".
	(merge_if_block): Likewise for two locals named "end".
	(cond_exec_find_if_block): Likewise for local "last_insn".
	* jump.c (delete_related_insns): Rename param "insn" to
	"uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
	checked cast.  Strengthen local "p" from rtx to rtx_insn *.
	* lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
	NULL.
	(split_reg): Likewise.
	* lra.c (lra_process_new_insns): Likewise.
	* modulo-sched.c (permute_partial_schedule): Strengthen param
	"last" from rtx to rtx_insn *.
	* optabs.c (add_equal_note): Likewise for param "insns" and local
	"last_insn".
	(expand_binop_directly): Add checked casts to rtx_insn * within
	NEXT_INSN (pat) uses.
	(expand_unop_direct): Likewise.
	(maybe_emit_unop_insn): Likewise.
	* recog.c (peep2_attempt): Strengthen locals "last",
	"before_try", "x" from rtx to rtx_insn *.
	* reorg.c (optimize_skip): Strengthen return type and local
	"delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
	and locals "trial", "next_trial" from rtx to rtx_insn *.
	* resource.c (next_insn_no_annul): Strengthen return type and
	param "insn" from rtx to rtx_insn *.  Use a cast to and method of
	rtx_sequence to clarify the code.
	(mark_referenced_resources): Add a checked cast to rtx_insn *
	within PREV_INSN (x).
	(find_dead_or_set_registers): Strengthen return type, param
	"target", locals "insn", "next", "jump_insn", "this_jump_insn"
	from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
	to rtx_insn **.
	(mark_target_live_regs): Strengthen params "insns" and "target",
	locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
	to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
	the code.
	* resource.h (mark_target_live_regs): Strengthen params 1 and 2
	from rtx to rtx_insn *.
	* rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
	from rtx to rtx_insn *.
	(copy_reg_eh_region_note_backward): Likewise.
	(unshare_all_rtl_in_chain): Likewise for sole param.
	(dump_rtl_slim): Strengthen second and third params from const_rtx
	to const rtx_insn *.
	* sched-deps.c (sched_free_deps): Strengthen params "head" and
	"tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
	* sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
	"next_tail" from rtx to rtx_insn *.
	(begin_move_insn): Likewise for local "next".
	* sched-int.h (sched_free_deps): Likewise for first and second
	params.
	(no_real_insns_p): Strengthen both params from const_rtx to
	const rtx_insn *.
	(sched_setup_bb_reg_pressure_info): Strengthen second params from
	rtx to rtx_insn *.
	* sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
	"next_tail".
	* sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
	and locals "insn", "tail" from const_rtx to const rtx_insn *.
	(rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
	rtx_insn *.
	(debug_rtl_slim): Strengthen params "first" and "last" from
	const_rtx to const rtx_insn *.
	* shrink-wrap.c (try_shrink_wrapping): Strengthen param
	"prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
	(convert_to_simple_return): Likewise for param "returnjump".
	* shrink-wrap.h (try_shrink_wrapping): Likewise for param
	"prologue_seq".
	(convert_to_simple_return): Likewise for param "returnjump".
	* valtrack.c (propagate_for_debug): Likewise for params
	"insn", "last".
	* valtrack.h (propagate_for_debug): Likewise for second param.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* output.h (insn_current_reference_address): Strengthen param
	from rtx to rtx_insn *.
	* final.c (insn_current_reference_address): Likewise.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (inside_basic_block_p): Strengthen param from
	const_rtx to const rtx_insn *.
	* cfgbuild.c (inside_basic_block_p): Likewise.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
	rtx_insn *.
	(get_trace_info): Likewise for param "insn".
	(save_point_p): Likewise.
	(maybe_record_trace_start): Likewise for both params.
	(maybe_record_trace_start_abnormal): Likewise.
	(create_trace_edges): Likewise for sole param and for three of the
	locals named "lab".
	(scan_trace): Strengthen local "prev", "insn", "control" from rtx
	to rtx_insn *, and update a call to pat->element to pat->insn.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* function.h (struct expr_status): Convert field "x_forced_labels"
	from rtx_expr_list * to rtx_insn_list *.

	* cfgbuild.c (make_edges): Convert local "x" from an
	rtx_expr_list * to an rtx_insn_list *, replacing use of
	"element" method with "insn" method.
	* dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
	* except.c (sjlj_emit_dispatch_table): Replace use of
	gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
	forced_labels.
	* jump.c (rebuild_jump_labels_1): Convert local "insn" from an
	rtx_expr_list * to an rtx_insn_list *, replacing use of
	"element" method with "insn" method.
	* reload1.c (set_initial_label_offsets): Likewise for local "x".
	* stmt.c (label_rtx): Strengthen local "ref" from rtx to
	rtx_insn *, adding a checked cast.  Replace use of
	gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
	forced_labels.
	(expand_label): Likewise for local "label_r".

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* function.h (struct rtl_data): Convert field
	"x_nonlocal_goto_handler_labels" from rtx_expr_list * to
	rtx_insn_list *.
	* rtl.h (remove_node_from_insn_list): New prototype.

	* builtins.c (expand_builtin): When prepending to
	nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
	gen_rtx_EXPR_LIST.
	* cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
	to rtx_insn_list *, and use its "insn" method rather than
	"element" method.
	* cfgrtl.c (delete_insn): Use new function
	remove_node_from_insn_list rather than
	remove_node_from_expr_list.
	(cfg_layout_initialize): Convert local "x" from rtx_expr_list *
	to rtx_insn_list *, and use its "insn" method rather than
	"element" method.
	* dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
	* reload1.c (set_initial_label_offsets): Likewise for local "x".
	* rtlanal.c (remove_node_from_insn_list): New function, adapted
	from remove_node_from_expr_list.
	* stmt.c (expand_label): When prepending to
	nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
	gen_rtx_EXPR_LIST.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* function.h (struct rtl_data): Strengthen fields "x_return_label"
	and "x_naked_return_label" from rtx to rtx_code_label *.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
	(SET_NEXT_INSN): Likewise.
	(gen_rtvec_v): Add an overload for param types (int, rtx_insn **).

	* config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
	rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
	to split out the SEQUENCE from local "bundle", strengthening the
	latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
	Strengthen locals "t" and "insn" from rtx to rtx_insn *.
	(c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
	and the type of the elements of the "slot" array from rtx to
	rtx_insn *.
	(reorg_split_calls): Likewise for locals "insn" and "next", and
	the type of the elements of the "slot" array.

	* config/frv/frv.c (frv_nops): Likewise for the elements of this
	array.
	(frv_function_prologue): Likewise for locals "insn", "next",
	"last_call".
	(frv_register_nop): Introduce a local "nop_insn" to be the
	rtx_insn * containing rtx "nop".

	* config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
	used as an insn and sometimes as a pattern, so rename it to
	"core_insn_or_pat", and introduce local rtx_insn * "core_insn",
	using it where dealing with the core insn.

	* config/picochip/picochip.c (reorder_var_tracking_notes):
	Strengthen locals "insn", "next", "last_insn", "queue",
	"next_queue", "prev" from rtx to rtx_insn *.

	* emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
	the second param is an rtx_insn ** rather than an rtx **.
	(link_insn_into_chain): Strengthen locals "seq" and "sequence"
	from rtx to rtx_sequence *, and introduce local named "sequence",
	using methods of rtx_sequence to clarify the code.
	(remove_insn): Introduce local rtx_sequence * named "sequence" and
	use its methods.
	(emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
	Rename param "after" to "uncast_after", reintroducing "after" as a
	local rtx_insn * with a checked cast.
	(emit_pattern_after_noloc): Rename param "after" to "uncast_after",
	reintroducing "after" as a local rtx_insn * with a checked cast.
	Strengthen local "last" from rtx to rtx_insn * and remove the
	now-redundant checked casts.
	(copy_delay_slot_insn): Strengthen return type and param from rtx
	to rtx_insn *.

	* haifa-sched.c (reemit_notes): Strengthen params "insn" and
	"last" from rtx to rtx_insn *.

2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
	param from rtx to rtx_insn *.

	* emit-rtl.c (copy_delay_slot_insn): Likewise.

	* reorg.c (skip_consecutive_labels): Strengthen return type, param
	and local "insn" from rtx to rtx_insn *.
	(unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
	(unfilled_slots_next): Likewise.
	(function_return_label): Strengthen from rtx to rtx_code_label *.
	(function_simple_return_label): Likewise.
	(first_active_target_insn): Strengthen return type and param from
	rtx to rtx_insn *.
	(find_end_label): Strengthen return type from rtx to
	rtx_code_label *; strengthen locals as appropriate.
	(emit_delay_sequence): Strengthen return type, param "insn" and
	local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
	and local "li" from rtx to rtx_insn_list *, using methods of
	rtx_insn_list for clarity and typesafety.
	(add_to_delay_list): Strengthen return type and param "insn" from
	rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
	rtx_insn_list * and use methods of rtx_insn_list.
	(delete_from_delay_slot): Strengthen return type, param "insn",
	locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
	Strengthen local "seq" from rtx to rtx_sequence *, and local
	"delay_list" from rtx to rtx_insn_list *, using methods of
	rtx_sequence for clarity and type-safety.
	(delete_scheduled_jump): Add checked cast when invoking
	delete_from_delay_slot.  Strengthen local "trial" from rtx to
	rtx_insn *.
	(optimize_skip): Strengthen return type and local "delay_list"
	from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
	rtx_insn *.
	(steal_delay_list_from_target): Strengthen return type, param
	"delay_list" and local "new_delay_list" from rtx to
	rtx_insn_list *.  Strengthen param "seq" from rtx to
	rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
	rtx_insn **.
	Split out local "temp" into multiple more-tightly scoped locals:
	sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
	of rtx_insn_list and rtx_sequence for clarity and typesafety.
	Strengthen locals named "trial" from rtx to rtx_insn *.
	(steal_delay_list_from_fallthrough): Strengthen return type and
	param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
	"seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
	Strengthen local "trial" from rtx to rtx_insn *.
	(try_merge_delay_insns): Strength local "merged_insns" from rtx
	to rtx_insn_list * and use its methods.  Strengthen local "pat"
	from rtx to rtx_sequence * and use its methods.  Strengthen locals
	"dtrial" and "new_rtx" from rtx to rtx_insn *.
	(get_label_before): Strengthen return type and local "label" from
	rtx to rtx_insn *.
	(fill_simple_delay_slots): Likewise for locals "insn", "trial",
	"next_trial", "next", prev".  Strengthen local "delay_list" from
	rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
	rtx_insn **.
	(follow_jumps): Strengthen return type, param "label" and locals
	"insn", "next", "value", "this_label" from rtx to rtx_insn *.
	(fill_slots_from_thread): Strengthen return type, param
	"delay_list" from rtx to rtx_insn_list *.  Strengthen params
	"insn", "thread", "opposite_thread" and locals "new_thread",
	"trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
	"sequence" from a checked cast to rtx_sequence so that we can call
	steal_delay_list_from_target and steal_delay_list_from_fallthrough
	with an rtx_sequence *.
	(fill_eager_delay_slots): Strengthen locals "insn", "target_label",
	"insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
	Strengthen local "delay_list" from rtx to rtx_insn_list *.
	(relax_delay_slots): Strengthen param "first" and locals "insn",
	"next", "trial", "delay_insn", "target_label" from rtx to
	rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
	Introduce a local "trial_seq" for PATTERN (trial) of type
	rtx_sequence *, in both cases using methods of rtx_sequence.
	(dbr_schedule): Strengthen param "first" and locals "insn",
	"next", "epilogue_insn" from rtx to rtx_insn *.

2014-08-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62283
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Do not peel loops for alignment where the vector loop likely
	doesn't run at least VF times.

2014-08-28  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
	important_candidates.  Consider all important candidates if
	IVS doesn't give any result.  Remove check on ivs->upto.
	(try_add_cand_for): Call iv_ca_add_use only once.

2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	(define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
	(define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
	masking.
	(define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
	(define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
	(define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
	(define_insn "*mul<mode>3"): Add EVEX version.

2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
	(define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
	(define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
	(define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
	(define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
	(define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
	(define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
	(define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
	(define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
	(define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
	(define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
	(define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
	(define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
	(define_insn "vec_interleave_highv16qi<mask_name>"): New.
	(define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
	(define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"):
	Ditto.

2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VIMAX_AVX2): Add V4TI mode.
	(define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
	(define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.

2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI128_256): New.
	(define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.

2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI8_256_512): New.
	(define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
	Ditto.
	(define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
	(define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
	Ditto.
	(define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
	pointer to the cumulative reloc value and return the value for
	this reloc instead.
	(compute_reloc_for_rtx): Take a const_rtx.  Call
	compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
	avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
	for_each_rtx for the CONST case.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* varasm.c (mark_constant): Replace this for_each_rtx callback with...
	(mark_constants_in_pattern): ...this new function to iterate over
	all the subrtxes.
	(mark_constants): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* varasm.c: Include rtl-iter.h.
	(const_rtx_hash_1): Take a const_rtx rather than an rtx *.
	Remove the pointer to the cumulative hashval_t and just return
	the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
	(const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
	Accumulate the hashval_ts here instead of const_rtx_hash_1.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* var-tracking.c (add_uses): Take an rtx rather than an rtx *.
	Give real type of data parameter.  Remove return value.
	(add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
	to iterate over subrtxes.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* var-tracking.c (use_narrower_mode_test): Turn from being a
	for_each_rtx callback to being a function that examines each
	subrtx itself.
	(adjust_mems): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
	callback to being a function that examines each subrtx itself.
	Remove handling of null rtxes.
	(add_uses): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* var-tracking.c: Include rtl-iter.h.
	(rtx_debug_expr_p): Turn from being a for_each_rtx callback
	to being a function that examines each subrtx itself.
	(use_type): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* store-motion.c: Include rtl-iter.h.
	(extract_mentioned_regs_1): Delete.
	(extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
	for_each_rtx to iterate over subrtxes.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* sel-sched.c: Include rtl-iter.h
	(count_occurrences_1): Delete.
	(count_occurrences_equiv): Turn rtxes into const_rtxes.
	Use FOR_EACH_SUBRTX rather than for_each_rtx.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
	* rtlanal.c (tls_referenced_p_1): Delete.
	(tls_referenced_p): Take a const_rtx rather than an rtx.
	Use FOR_EACH_SUBRTX rather than for_each_rtx.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (for_each_inc_dec_fn): Remove special case for -1.
	(for_each_inc_dec): Take an rtx rather than an rtx *.
	* cselib.c (cselib_record_autoinc_cb): Update accordingly.
	(cselib_record_sets): Likewise.
	* dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
	(check_for_inc_dec): Likewise.
	* rtlanal.c (for_each_inc_dec_ops): Delete.
	(for_each_inc_dec_find_inc_dec): Take the MEM as argument,
	rather than a pointer to the memory address.  Replace
	for_each_inc_dec_ops argument with separate function and data
	arguments.  Abort on non-autoinc addresses.
	(for_each_inc_dec_find_mem): Delete.
	(for_each_inc_dec): Take an rtx rather than an rtx *.  Use
	FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (find_all_hard_regs): Declare.
	* rtlanal.c (find_all_hard_regs): New function.
	(record_hard_reg_uses_1): Delete.
	(record_hard_reg_uses): Use find_all_hard_regs.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (replace_label_data): Delete.
	(replace_label): Take the old label, new label and update-nuses flag
	as direct arguments.  Return void.
	* cfgcleanup.c (outgoing_edges_match): Update accordingly.
	* rtlanal.c (replace_label): Update interface as above.  Handle
	JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
	iterator.  Use FOR_EACH_SUBRTX_PTR.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
	with const_rtx parameters.
	* varasm.c (get_pool_constant): Likewise.
	* rtlanal.c (rtx_referenced_p_1): Delete.
	(rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
	Assert that the rtx we're looking for is nonnull.  Allow searches
	for constant pool SYMBOL_REFs.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* reload1.c: Include rtl-iter.h.
	(note_reg_elim_costly): Turn from being a for_each_rtx callback
	to being a function that examines each subrtx itself.
	(eliminate_regs_1, elimination_costs_in_insn): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* regcprop.c (cprop_find_used_regs_1): Delete.
	(cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* regcprop.c: Include rtl-iter.h.
	(kill_value): Take a const_rtx.
	(kill_autoinc_value): Turn from being a for_each_rtx callback
	to being a function that examines each subrtx itself.
	(copyprop_hardreg_forward_1): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* reg-stack.c: Include rtl-iter.h.
	(subst_stack_regs_in_debug_insn): Delete.
	(subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
	instead of for_each_rtx.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* lower-subreg.c (find_decomposable_subregs): Turn from being
	a for_each_rtx callback to being a function that examines each
	subrtx itself.  Remove handling of null rtxes.
	(decompose_multiword_subregs): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* lower-subreg.c (adjust_decomposed_uses): Delete.
	(resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
	Remove handling of null rtxes.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* lower-subreg.c: Include rtl-iter.h.
	(resolve_subreg_use): Turn from being a for_each_rtx callback
	to being a function that examines each subrtx itself.  Remove
	handling of null rtxes.
	(resolve_reg_notes, resolve_simple_move): Update accordingly.
	(decompose_multiword_subregs): Likewise.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
	to being a function that examines each subrtx itself.
	(simplify_using_condition, simplify_using_initial_values): Update
	accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* loop-iv.c: Include rtl-iter.h.
	(find_single_def_src): New function.
	(replace_single_def_regs): Turn from being a for_each_rtx callback
	to being a function that examines each subrtx itself.
	(replace_in_expr, simplify_using_initial_values): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* jump.c (eh_returnjump_p_1): Delete.
	(eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
	Remove handling of null rtxes.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* jump.c: Include rtl-iter.h.
	(returnjump_p_1): Delete.
	(returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
	Remove handling of null rtxes.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.c: Include rtl-iter.h.
	(set_paradoxical_subreg): Turn from being a for_each_rtx callback
	to being a function that examines each subrtx itself.  Remove
	handling of null rtxes.
	(update_equiv_regs): Update call accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* fwprop.c: Include rtl-iter.h.
	(varying_mem_p): Turn from being a for_each_rtx callback to being
	a function that examines each subrtx itself.
	(propagate_rtx): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* function.c: Include rtl-iter.h
	(instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
	callback to being a function that examines each subrtx itself.
	Return the changed flag.
	(instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
	(instantiate_virtual_regs): Update calls accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* final.c: Include rtl-iter.h.
	(mark_symbol_ref_as_used): Delete.
	(mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
	for_each_rtx.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* emit-rtl.c: Include rtl-iter.h.
	(find_auto_inc): Turn from being a for_each_rtx callback to being
	a function that examines each subrtx itself.  Assume the first operand
	to an RTX_AUTOINC is the automodified register.
	(try_split): Update call accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* dwarf2out.c (resolve_one_addr): Remove unused data parameter.
	Return a bool, inverting the result so that 0/false means "not ok".
	Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
	subrtxes of a CONST.
	(mem_loc_descriptor, add_const_value_attribute)
	(resolve_addr_in_expr): Update calls accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* dwarf2out.c: Include rtl-iter.h.
	(const_ok_for_output_1): Take the rtx instead of a pointer to it.
	Remove unused data parameter.  Return a bool, inverting the result
	so that 0/false means "not ok".
	(const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
	instead of for_each_rtx.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* dse.c: Include rtl-iter.h.
	(check_mem_read_rtx): Change void * parameter to real type.
	Remove return value.
	(check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
	for_each_rtx.  Don't handle null rtxes.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* df-problems.c: Include rtl-iter.h.
	(find_memory): Turn from being a for_each_rtx callback to being
	a function that examines each subrtx itself.  Continue to look for
	volatile references even after a nonvolatile one has been found.
	(can_move_insns_across): Update calls accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* ddg.c (walk_mems_2, walk_mems_1): Delete.
	(insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
	to iterate over subrtxes.  Return a bool rather than an int.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* ddg.c: Include rtl-iter.h.
	(mark_mem_use_1): Rename to...
	(mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
	instead of for_each_rtx.
	(mem_read_insn_p): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* cse.c (change_cc_mode_args): Delete.
	(cse_change_cc_mode): Turn from being a for_each_rtx callback to being
	a function that examines each subrtx itself.  Take the fields of
	change_cc_mode_args as argument and return void.
	(cse_change_cc_mode_insn): Update calls accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* cse.c (is_dead_reg): Change argument to const_rtx.
	(dead_debug_insn_data): Delete.
	(is_dead_debug_insn): Expand commentary.  Turn from being a
	for_each_rtx callback to being a function that examines
	each subrtx itself.  Take the fields of dead_debug_insn_data
	as argument.
	(delete_trivially_dead_insns): Update call accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* cse.c (check_for_label_ref): Move earlier in file.  Turn from
	being a for_each_rtx callback to being a function that examines
	each subrtx itself.
	(cse_extended_basic_block): Update call accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* cse.c (check_dependence_data): Delete.
	(check_dependence): Change from being a for_each_rtx callback to being
	a function that examines all subrtxes itself.  Don't handle null rtxes.
	(invalidate): Update call accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* cse.c: Include rtl-iter.h.
	(approx_reg_cost_1): Delete.
	(approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
	Don't handle null rtxes.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* cfgcleanup.c: Include rtl-iter.h.
	(mentions_nonequal_regs): Turn from being a for_each_rtx callback
	to being a function that examines each subrtx itself.
	(thread_jump): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine-stack-adj.c: Include rtl-iter.h.
	(record_stack_refs_data): Delete.
	(record_stack_refs): Turn from being a for_each_rtx callback
	to being a function that examines each subrtx itself.
	Take a pointer to the reflist.  Invert sense of return value
	so that true means success and false means failure.  Don't
	handle null rtxes.
	(combine_stack_adjustments_for_block): Update accordingly.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine.c (record_truncated_value): Turn from being a for_each_rtx
	callback to a function that takes an rtx and returns a bool
	(record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
	for_each_rtx.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine.c: Include rtl-iter.h.
	(unmentioned_reg_p_1): Delete.
	(unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
	Don't handle null rtxes.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* calls.c: Include rtl-iter.h.
	(internal_arg_pointer_based_exp_1): Delete.
	(internal_arg_pointer_based_exp): Take a const_rtx.
	Use FOR_EACH_SUBRTX to iterate over subrtxes.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* caller-save.c: Include rtl-iter.h.
	(add_used_regs_1): Delete.
	(add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
	to iterate over subrtxes.  Assert that any remaining pseudos
	have been spilled.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* bt-load.c: Include rtl-iter.h.
	(btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
	(find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
	to iterate over subrtxes.
	(insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
	find_btr_use rather than btr_referenced_p.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* alias.c: Include rtl-iter.h.
	(refs_newer_value_cb): Delete.
	(refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.

2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl-iter.h: New file.
	* rtlanal.c: Include it.
	(rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
	(generic_subrtx_iterator <T>::add_single_to_queue)
	(generic_subrtx_iterator <T>::add_subrtxes_to_queue)
	(generic_subrtx_iterator <T>::free_array): New functions.
	(generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
	(generic_subrtx_iterator <const_rtx_accessor>)
	(generic_subrtx_iterator <rtx_var_accessor>
	(generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
	(setup_reg_subrtx_bounds): New function.
	(init_rtlanal): Call it.

2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/62261
	* config/sh/sh.md (ashlsi3): Handle negative shift count for
	TARGET_SHMEDIA.
	(ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.

2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* emit-rtl.c (set_unique_reg_note): Discard notes with side effects.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (JUMP_LABEL_AS_INSN): New.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
	rtx_expr_list **.
	(alloc_EXPR_LIST): Strengthen return type from rtx to
	rtx_expr_list *.
	(remove_free_EXPR_LIST_node): Likewise for param.
	* reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
	from rtx to rtx_expr_list *.
	* sched-int.h (struct deps_desc): Strengthen fields
	"pending_read_mems" and "pending_write_mems" from rtx to
	rtx_expr_list *.

	* dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
	rtx to rtx_expr_list *.
	* lists.c (alloc_INSN_LIST): Likewise, also for local "r".
	(free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
	rtx_expr_list **.
	(remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
	from rtx to rtx_expr_list *.
	* loop-iv.c (simplify_using_initial_values): Strengthen local
	"cond_list" from rtx to rtx_expr_list *, and locals "pnode",
	"pnote_next" from rtx * to rtx_expr_list **.
	* sched-deps.c (remove_from_both_dependence_lists):  Strengthen
	param "exprp" from rtx * to rtx_expr_list **.
	(add_insn_mem_dependence): Strengthen local "mem_list" from
	rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
	to rtx_expr_list *.
	* sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
	and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
	param "old_mems_p" from rtx * to rtx_expr_list **.
	* var-tracking.c (struct adjust_mem_data): Strengthen field
	"side_effects" from rtx to rtx_expr_list *.
	(adjust_insn): Replace NULL_RTX with NULL when assigning to
	rtx_expr_list *.
	(prepare_call_arguments): Likewise.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* function.h (struct rtl_data): Strengthen field
	"x_stack_slot_list" from rtx to rtx_expr_list *.

	* emit-rtl.c (unshare_all_rtl_1): Add a checked cast
	when assigning to stack_slot_list.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* function.h (struct rtl_data): Strengthen field
	x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
	* rtl.h (remove_node_from_expr_list): Strengthen second param from
	rtx * to rtx_expr_list **.

	* cfgbuild.c (make_edges): In loop over
	nonlocal_goto_handler_labels, strengthen local "x" from rtx to
	rtx_expr_list *, and use methods of the latter class to clarify
	the code.
	* cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
	rtx_expr_list *, and use methods of the latter class to clarify
	the code.
	* dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
	* reload1.c (set_initial_label_offsets): Likewise for local "x".
	* rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
	from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
	to rtx_expr_list *.  Use methods of the latter class to clarify
	the code.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* function.h (struct expr_status): Strengthen field
	"x_forced_labels" from rtx to rtx_expr_list *.

	* cfgbuild.c (make_edges): Split local "x" into two locals,
	strengthening one from rtx to rtx_expr_list *, and using methods
	of said class.
	* dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
	loop over forced_labels, introduce strengthen it from rtx to
	rtx_expr_list *, using methods to clarify the code.
	* jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
	to rtx_expr_list *, using methods of said class to clarify the
	code.
	* reload1.c (set_initial_label_offsets): Split local "x" into two
	per-loop variables, strengthening the first from rtx to
	rtx_expr_list * and using methods.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* coretypes.h (class rtx_expr_list): Add forward declaration.
	* emit-rtl.c (gen_rtx_EXPR_LIST): New.
	* gengenrtl.c (special_rtx): Add EXPR_LIST.
	* rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
	invariant: GET_CODE (X) == EXPR_LIST.
	(is_a_helper <rtx_expr_list *>::test): New.
	(rtx_expr_list::next): New.
	(rtx_expr_list::element): New.
	(gen_rtx_EXPR_LIST): New.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* varasm.c (mark_constants): Convert a GET_CODE check into a
	dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
	Use methods of rtx_sequence to clarify the code.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
	local "seq" via a checked cast, and use methods of rtx_sequence
	to simplify the code.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* resource.c (mark_referenced_resources): Strengthen local
	"sequence" from rtx to rtx_sequence *, adding a checked cast, and
	using methods of rtx_sequence to clarify the code.
	(find_dead_or_set_registers): Within the switch statement, convert
	a GET_CODE check to a dyn_cast, introducing local "seq".  Within
	the JUMP_P handling, introduce another local "seq", adding a
	checked cast to rtx_sequence *.  In both cases, use methods of
	rtx_sequence to clarify the code.
	(mark_set_resources): Within SEQUENCE case, introduce local "seq"
	via a checked cast, and use methods of rtx_sequence to simplify
	the code.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* reorg.c (redundant_insn): In two places in the function, replace
	a check of GET_CODE with a dyn_cast, introducing local "seq", and
	usings methods of rtx_sequence to clarify the code.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
	local "seq" with a checked cast, and use methods of rtx_sequence
	to clarify the code.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* function.c (contains): Introduce local "seq" for PATTERN (insn),
	with a checked cast, in the region for where we know it's a
	SEQUENCE.  Use methods of rtx_sequence.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* final.c (get_attr_length_1): Replace GET_CODE check with a
	dyn_cast, introducing local "seq" and the use of methods of
	rtx_sequence.
	(shorten_branches): Likewise, introducing local "body_seq".
	Strengthen local "inner_insn" from rtx to rtx_insn *.
	(reemit_insn_block_notes): Replace GET_CODE check with a
	dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
	Use methods of rtx_sequence.
	(final_scan_insn): Likewise, introducing local "seq" for when
	"body" is known to be a SEQUENCE, using its methods.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* except.c (can_throw_external): Strengthen local "seq" from rtx
	to rtx_sequence *.  Use methods of rtx_sequence.
	(insn_nothrow_p): Likewise.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
	dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
	Use methods of rtx_sequence.
	(scan_trace): Likewise for local "pat".

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* coretypes.h (class rtx_sequence): Add forward declaration.
	* rtl.h (class rtx_sequence): New subclass of rtx_def, adding
	invariant: GET_CODE (X) == SEQUENCE.
	(is_a_helper <rtx_sequence *>::test): New.
	(is_a_helper <const rtx_sequence *>::test): New.
	(rtx_sequence::len): New.
	(rtx_sequence::element): New.
	(rtx_sequence::insn): New.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
	rtx_insn_list **.
	(alloc_INSN_LIST): Strengthen return type from rtx to
	rtx_insn_list *.
	(copy_INSN_LIST): Likewise for return type and param.
	(concat_INSN_LIST): Likewise for both params and return type.
	(remove_free_INSN_LIST_elem): Strenghten first param from rtx to
	rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
	(remove_free_INSN_LIST_node): Strenghten return type from rtx to
	rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.

	* sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
	"implicit_sets", "control_uses", "clobbers" from rtx to
	rtx_insn_list *.
	(struct deps_desc): Likewise for fields "pending_read_insns",
	"pending_write_insns", "pending_jump_insns",
	"last_pending_memory_flush", "last_function_call",
	"last_function_call_may_noreturn", "sched_before_next_call",
	"sched_before_next_jump".
	(struct _haifa_deps_insn_data): Likewise for field "cond_deps".
	(remove_from_deps): Strengthen second param from rtx to rtx_insn *.

	* gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
	from rtx to rtx_insn_list *.
	(ldst_entry): Replace use of NULL_RTX with NULL when dealing with
	rtx_insn_list *.

	* haifa-sched.c (insn_queue): Strengthen this variable from rtx *
	to rtx_insn_list **.
	(dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
	rtx_insn_list *.
	(queue_insn): Likewise for local "link".
	(struct haifa_saved_data): Strengthen field "insn_queue" from
	rtx * to rtx_insn_list **.
	(save_backtrack_point): Update allocation of save->insn_queue to
	reflect the strengthening of elements from rtx to rtx_insn_list *.
	(queue_to_ready): Strengthen local "link" from rtx to
	rtx_insn_list *; use methods "next" and "insn" when traversing the
	list.
	(early_queue_to_ready): Likewise for locals "link", "next_link",
	"prev_link".
	(schedule_block): Update allocation of insn_queue to reflect the
	strengthening of elements from rtx to rtx_insn_list *.  Strengthen
	local "link" from rtx to rtx_insn_list *, and use methods when
	working it.
	(add_to_speculative_block): Strengthen locals "twins" and
	"next_node" from rtx to rtx_insn_list *, and use methods when
	working with them.  Strengthen local "twin" from rtx to
	rtx_insn *, eliminating a checked cast.
	(fix_recovery_deps): Strengthen locals "ready_list" and "link"
	from rtx to rtx_insn_list *, and use methods when working with
	them.

	* lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
	from rtx to rtx_insn_list *, adding a checked cast.
	(free_INSN_LIST_list): Strengthen param "listp" from rtx * to
	rtx_insn_list **.
	(copy_INSN_LIST): Strengthen return type and locals "new_queue",
	"newlink" from rtx to rtx_insn_list *.  Strengthen local
	"pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
	from rtx to rtx_insn *.
	(concat_INSN_LIST): Strengthen return type and local "new_rtx",
	from rtx to rtx_insn_list *.  Use methods of the latter class.
	(remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
	rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
	(remove_free_INSN_LIST_node): Strengthen return type and local
	"elem" from rtx to rtx_insn *.  Strenghten param "listp" from
	rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
	rtx_insn_list *, using "insn" method.

	* sched-deps.c (add_dependence_list):  Strengthen param "list"
	from rtx to rtx_insn_list *, and use methods when working with it.
	(add_dependence_list_and_free):  Strengthen param "listp" from
	rtx * to rtx_insn_list **.
	(remove_from_dependence_list): Strenghten param "listp" from rtx *
	to rtx_insn_list **, and use methods when working with *listp.
	(remove_from_both_dependence_lists): Strengthen param "listp" from
	rtx * to rtx_insn_list **
	(add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
	to rtx_insn_list **.  Eliminate local "link", in favor of two new
	locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
	respectively.
	(deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
	by introducing local "cond_deps".
	(remove_from_deps): Strengthen param "insn" from rtx to
	rtx_insn *.

	* sched-rgn.c (concat_insn_mem_list): Strengthen param
	"copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
	Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
	Use methods of rtx_insn_list.

	* store-motion.c (struct st_expr): Strengthen fields
	"antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
	(st_expr_entry): Replace NULL_RTX with NULL when dealing with
	rtx_insn_list *.
	(find_moveable_store): Split out "tmp" into multiple more-tightly
	scoped locals.  Use methods of rtx_insn_list *.
	(compute_store_table): Strengthen local "tmp" from rtx to
	rtx_insn *.  Use methods of rtx_insn_list *.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* coretypes.h (class rtx_insn_list): Add forward declaration.
	* rtl.h (class rtx_insn_list): New subclass of rtx_def
	(is_a_helper <rtx_insn_list *>::test): New.
	(rtx_insn_list::next): New.
	(rtx_insn_list::insn): New.
	(gen_rtx_INSN_LIST): Add prototype.
	* emit-rtl.c (gen_rtx_INSN_LIST): New.
	* gengenrtl.c (special_rtx): Add INSN_LIST.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
	"prev" from rtx to rtx_insn *.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (INSN_UID): Convert from a macro to a pair of inline
	functions.  Require merely an rtx for now, not an rtx_insn *.
	(BLOCK_FOR_INSN): Likewise.
	(INSN_LOCATION): Likewise.
	(INSN_HAS_LOCATION): Convert from a macro to an inline function.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (PATTERN): Convert this macro into a pair of inline
	functions, for now, requiring const_rtx and rtx.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* target.def (unwind_emit): Strengthen param "insn" from rtx to
	rtx_insn *.
	(final_postscan_insn): Likewise.
	(adjust_cost): Likewise.
	(adjust_priority): Likewise.
	(variable_issue): Likewise.
	(macro_fusion_pair_p): Likewise.
	(dfa_post_cycle_insn): Likewise.
	(first_cycle_multipass_dfa_lookahead_guard): Likewise.
	(first_cycle_multipass_issue): Likewise.
	(dfa_new_cycle): Likewise.
	(adjust_cost_2): Likewise for params "insn" and "dep_insn".
	(speculate_insn): Likewise for param "insn".
	(gen_spec_check): Likewise for params "insn" and "label".
	(get_insn_spec_ds): Likewise for param "insn".
	(get_insn_checked_ds): Likewise.
	(dispatch_do): Likewise.
	(dispatch): Likewise.
	(cannot_copy_insn_p): Likewise.
	(invalid_within_doloop): Likewise.
	(legitimate_combined_insn): Likewise.
	(needed): Likewise.
	(after): Likewise.

	* doc/tm.texi: Automatically updated to reflect changes to
	target.def.

	* haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
	working with insn.
	(schedule_block): Likewise.
	(sched_init): Likewise.
	(sched_speculate_insn): Strengthen param "insn" from rtx to
	rtx_insn *.
	(ready_remove_first_dispatch): Convert NULL_RTX to NULL when
	working with insn.
	* hooks.c (hook_bool_rtx_true): Rename to...
	hook_bool_rtx_insn_true): ...this, and strengthen first param from
	rtx to rtx_insn *.
	(hook_constcharptr_const_rtx_null): Rename to...
	(hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
	first param from const_rtx to const rtx_insn *.
	(hook_bool_rtx_int_false): Rename to...
	(hook_bool_rtx_insn_int_false): ...this, and strengthen first
	param from rtx to rtx_insn *.
	(hook_void_rtx_int): Rename to...
	(hook_void_rtx_insn_int): ...this, and strengthen first param from
	rtx to rtx_insn *.

	* hooks.h (hook_bool_rtx_true): Rename to...
	(hook_bool_rtx_insn_true): ...this, and strengthen first param from
	rtx to rtx_insn *.
	(hook_bool_rtx_int_false): Rename to...
	(hook_bool_rtx_insn_int_false): ...this, and strengthen first
	param from rtx to rtx_insn *.
	(hook_void_rtx_int): Rename to...
	(hook_void_rtx_insn_int): ...this, and strengthen first param from
	rtx to rtx_insn *.
	(hook_constcharptr_const_rtx_null): Rename to...
	(hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
	first param from const_rtx to const rtx_insn *.

	* sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
	and local "prev" from rtx to rtx_insn *.

	* sched-int.h (sched_speculate_insn): Strengthen first param from
	rtx to rtx_insn *.

	* sel-sched.c (create_speculation_check): Likewise for local "label".
	* targhooks.c (default_invalid_within_doloop): Strengthen param
	"insn" from const_rtx to const rtx_insn *.
	* targhooks.h (default_invalid_within_doloop): Strengthen param
	from const_rtx to const rtx_insn *.

	* config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
	(alpha_adjust_cost): Likewise for params "insn", "dep_insn".

	* config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
	"insn".
	(arc_invalid_within_doloop): Likewise, with const.

	* config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
	(arm_cannot_copy_insn_p): Likewise for param "insn".
	(arm_unwind_emit): Likewise.

	* config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
	"dep_insn".

	* config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
	(c6x_variable_issue): Likewise.  Removed now-redundant checked
	cast.
	(c6x_adjust_cost): Likewise for params "insn", "dep_insn".

	* config/epiphany/epiphany-protos.h (epiphany_mode_needed):
	Likewise for param "insn".
	(epiphany_mode_after): Likewise.
	* config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
	params "insn", "dep_insn".
	(epiphany_mode_needed): Likewise for param "insn".
	(epiphany_mode_after): Likewise.

	* config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
	(ix86_avx_u128_mode_needed): Likewise.
	(ix86_i387_mode_needed): Likewise.
	(ix86_mode_needed): Likewise.
	(ix86_avx_u128_mode_after): Likewise.
	(ix86_mode_after): Likewise.
	(ix86_adjust_cost): Likewise for params "insn", "dep_insn".
	(ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
	(ix86_adjust_priority): Likewise for param "insn".
	(core2i7_first_cycle_multipass_issue): Likewise for param "insn".
	(do_dispatch): Likewise.
	(has_dispatch): Likewise.
	* config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.

	* config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
	reflect renaming of default hook implementation from
	hook_constcharptr_const_rtx_null to
	hook_constcharptr_const_rtx_insn_null.
	(ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
	rtx to rtx_insn *.
	(ia64_variable_issue): Likewise for param "insn".
	(ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
	(ia64_dfa_new_cycle): Likewise.
	(ia64_get_insn_spec_ds): Likewise.
	(ia64_get_insn_checked_ds): Likewise.
	(ia64_speculate_insn): Likewise.
	(ia64_gen_spec_check): Likewise for params "insn", "label".
	(ia64_asm_unwind_emit): Likewise for param "insn".

	* config/m32r/m32r.c (m32r_adjust_priority): Likewise.

	* config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
	"insn", "def_insn".
	(m68k_sched_variable_issue): Likewise for param "insn".

	* config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
	"def_insn".

	* config/microblaze/microblaze.c (microblaze_adjust_cost):
	Likewise for params "insn", "dep".

	* config/mips/mips.c (mips_adjust_cost): Likewise.
	(mips_variable_issue): Likewise for param "insn".
	(mips_final_postscan_insn): Likewise.

	* config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
	for params "insn", "dep".

	* config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
	"dep_insn".
	(pa_adjust_priority): Likewise for param "insn".

	* config/picochip/picochip.c (picochip_sched_adjust_cost):
	Likewise for params "insn", "dep_insn".

	* config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
	param "insn".
	(rs6000_variable_issue): Likewise.
	(rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
	(rs6000_debug_adjust_cost): Likewise.
	(rs6000_adjust_priority): Likewise for param "insn".
	(rs6000_use_sched_lookahead_guard): Likewise.
	(get_next_active_insn): Likewise for return type and both params.
	(redefine_groups): Likewise for params "prev_head_insn", "tail"
	and locals "insn", "next_insn".
	(pad_groups): Likewise.

	* config/s390/s390.c (s390_adjust_priority): Likewise for param
	"insn".
	(s390_cannot_copy_insn_p): Likewise.
	(s390_sched_variable_issue): Likewise for third param, eliminating
	checked cast.
	(TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
	default hook implementation from hook_constcharptr_const_rtx_null
	to hook_constcharptr_const_rtx_insn_null.

	* config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
	from rtx to rtx_insn *.
	(sh_adjust_cost): Likewise for params "insn", "dep_insn".
	(sh_variable_issue): Likewise for param "insn".
	(sh_dfa_new_cycle): Likewise.
	(sh_mode_needed): Likewise.
	(sh_mode_after): Likewise.

	* config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
	params "insn", "dep_insn".
	(hypersparc_adjust_cost): Likewise.
	(sparc_adjust_cost): Likewise.

	* config/spu/spu.c (spu_sched_variable_issue): Likewise for third
	param, eliminated checked cast.
	(spu_sched_adjust_cost): Likewise for first and third params.

	* config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
	params "insn" and "dep_insn" from rtx to rtx_insn *.

	* config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.

2014-08-27  David Malcolm  <dmalcolm@redhat.com>

	* gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
	(set_is_load_p): ...this, updating to work on a SET pattern rather
	than an insn.
	(is_store_insn): Rename to...
	(set_is_store_p): ...this, updating to work on a SET pattern
	rather than an insn.
	(mn10300_adjust_sched_cost): Move call to get_attr_timings from
	top of function to where it is needed.  Rewrite the bogus
	condition that checks for "insn" and "dep" being PARALLEL to
	instead use single_set, introducing locals "insn_set" and
	"dep_set".  Given that we only ever returned "cost" for a non-pair
	of SETs, bail out early if we don't have a pair of SET.
	Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
	use the new locals "insn_set" and "dep_set", and update calls to
	is_load_insn and is_store_insn to be calls to set_is_load_p and
	set_is_store_p.

2014-08-27  Guozhi Wei  <carrot@google.com>

	PR target/62262
	* config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
	amount before using it.

2014-08-27  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (get_maxval_strlen): Add overload wrapping
	get_maxval_strlen inside a more useful API.
	(gimple_fold_builtin_with_strlen): Remove and fold into ...
	(gimple_fold_builtin): ... caller.
	(gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
	gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
	gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
	gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
	gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
	gimple_fold_builtin_sprintf): Adjust to compute maxval
	themselves.

2014-08-27  Yvan Roux  <yvan.roux@linaro.org>

	PR other/62248
	* config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.

2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
	Use `concat_tg_mode' attribute to determine asm register size.

2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI48_AVX512VL): New.
	(define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
	(define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
	(define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
	(define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
	with VI1): Change mode iterator.
	(define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
	with VI_ULOADSTORE_BW_AVX512VL): New.
	(define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
	with VI_ULOADSTORE_F_AVX512VL): Ditto.
	(define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
	with VI1): Change mode iterator.
	(define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
	with VI_ULOADSTORE_BW_AVX512VL): New.
	(define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
	with VI_ULOADSTORE_F_AVX512VL): Ditto.
	(define_insn "<sse2_avx_avx512f>_storedqu<mode>
	with VI1): Change mode iterator.
	(define_insn "<sse2_avx_avx512f>_storedqu<mode>
	with VI_ULOADSTORE_BW_AVX512VL): New.
	(define_insn "<sse2_avx_avx512f>_storedqu<mode>
	with VI_ULOADSTORE_BW_AVX512VL): Ditto.
	(define_insn "avx512f_storedqu<mode>_mask"): Delete.
	(define_insn "<avx512>_storedqu<mode>_mask" with
	VI48_AVX512VL): New.
	(define_insn "<avx512>_storedqu<mode>_mask" with
	VI12_AVX512VL): Ditto.

2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
	(define_mode_iterator VI48_AVX512BW): New.
	(define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
	(define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
	with VI48_AVX2_48_AVX512F): New.
	(define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
	with VI2_AVX512VL): Ditto.

2014-08-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/62239
	* builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
	(fold_builtin_3): Do not fold strcat_chk here.
	* gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
	from builtins.c.
	(gimple_fold_builtin): Fold strcat_chk here.

2014-08-26  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.h (dwarf2out_decl): Remove prototype.
	* dwarf2out.c (dwarf2out_decl): Make static.

2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>

	* doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
	from rtx to rtx_insn *.
	(cselib_lookup_from_insn): Likewise for final param.
	(cselib_subst_to_values_from_insn): Likewise.
	(cselib_add_permanent_equiv): Likewise.

	* cselib.c (cselib_current_insn): Likewise for this variable.
	(cselib_subst_to_values_from_insn): Likewise for param "insn".
	(cselib_lookup_from_insn): Likewise.
	(cselib_add_permanent_equiv): Likewise for param "insn" and local
	"save_cselib_current_insn".
	(cselib_process_insn): Replace use of NULL_RTX with NULL.

	* sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
	from rtx to rtx_insn *.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* dse.c (dse_step6): Strengthen local "rinsn" from rtx to
	rtx_insn *.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* df.h (df_dump_insn_problem_function): Strengthen first param of
	this callback from const_rtx to const rtx_insn *.
	(struct df_insn_info): Strengthen field "insn" from rtx to
	rtx_insn *.
	(DF_REF_INSN): Eliminate this function, reinstating the older
	macro definition.
	(df_find_def): Strengthen param 1 from rtx to rtx_insn *.
	(df_reg_defined): Likewise.
	(df_find_use): Likewise.
	(df_reg_used): Likewise.
	(df_dump_insn_top): Strengthen param 1 from const_rtx to
	const rtx_insn *.
	(df_dump_insn_bottom): Likewise.
	(df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
	(df_insn_debug_regno): Likewise.
	(debug_df_insn): Likewise.
	(df_rd_simulate_one_insn): Likewise for param 2.
	(df_word_lr_simulate_defs): Likewise for param 1.
	(df_word_lr_simulate_uses): Likewise.
	(df_md_simulate_one_insn): Likewise for param 2.
	(df_simulate_find_noclobber_defs): Likewise for param 1.
	(df_simulate_find_defs): Likewise.
	(df_simulate_defs): Likewise.
	(df_simulate_uses): Likewise.
	(df_simulate_one_insn_backwards): Likewise for param 2.
	(df_simulate_one_insn_forwards): Likewise.
	(df_uses_create): Likewise for param 2.
	(df_insn_create_insn_record): Likewise for param 1.
	(df_insn_delete): Likewise.
	(df_insn_rescan): Likewise.
	(df_insn_rescan_debug_internal): Likewise.
	(df_insn_change_bb): Likewise.
	(df_notes_rescan): Likewise.
	* rtl.h (remove_death): Likewise for param 2.
	(print_rtl_with_bb): Strengthen param 2 from const_rtx to
	const rtx_insn *.
	* sched-int.h (reemit_notes): Strengthen param from rtx to
	rtx_insn *.
	* valtrack.h (propagate_for_debug): Likewise for param 1.

	* cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
	local "tmp_rtx" from const_rtx to const rtx_insn *.
	* combine.c (remove_death): Strengthen param "insn" from rtx to
	rtx_insn *.
	(move_deaths): Likewise for local "where_dead".
	* cse.c (delete_trivially_dead_insns): Introduce local
	"bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
	* df-core.c (df_find_def): Strengthen param "insn" from rtx to
	rtx_insn *.
	(df_reg_defined): Likewise.
	(df_find_use): Likewise.
	(df_reg_used): Likewise.
	(df_dump_insn_problem_data): Strengthen param "insn" from
	const_rtx to const rtx_insn *.
	(df_dump_insn_top): Likewise.
	(df_dump_insn_bottom): Likewise.
	(df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
	(df_insn_debug_regno): Likewise.
	(debug_df_insn): Likewise.
	(DF_REF_INSN): Delete.
	* df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
	from rtx to rtx_insn *.
	(df_chain_insn_top_dump): Strengthen param "insn" from
	const_rtx to const rtx_insn *.
	(df_chain_insn_bottom_dump): Likewise.
	(df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
	rtx_insn *.
	(df_word_lr_simulate_uses): Likewise.
	(df_print_note): Likewise.
	(df_remove_dead_and_unused_notes): Likewise.
	(df_set_unused_notes_for_mw): Likewise.
	(df_set_dead_notes_for_mw): Likewise.
	(df_create_unused_note): Likewise.
	(df_simulate_find_defs): Likewise.
	(df_simulate_find_uses): Likewise.
	(df_simulate_find_noclobber_defs): Likewise.
	(df_simulate_defs): Likewise.
	(df_simulate_uses): Likewise.
	(df_simulate_one_insn_backwards): Likewise.
	(df_simulate_one_insn_forwards): Likewise.
	(df_md_simulate_one_insn): Likewise.
	* df-scan.c (df_uses_create): Likewise.
	(df_insn_create_insn_record): Likewise.
	(df_insn_delete): Likewise.
	(df_insn_rescan): Likewise.
	(df_insn_rescan_debug_internal): Likewise.
	(df_insn_change_bb): Likewise.
	(df_notes_rescan): Likewise.
	(df_refs_add_to_chains): Likewise.
	(df_insn_refs_verify): Likewise.
	* emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
	when invoking df_insn_delete.
	(reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
	(set_unique_reg_note): Add checked cast.
	* final.c (cleanup_subreg_operands): Likewise.
	* gcse.c (update_ld_motion_stores): Likewise, strengthening local
	"insn" from rtx to rtx_insn *.
	* haifa-sched.c (reemit_notes): Strengthen param "insn" and local
	"last" from rtx to rtx_insn *.
	* ira-emit.c (change_regs_in_insn): New function.
	(change_loop): Strengthen local "insn" from rtx to rtx_insn *.
	Invoke change_regs_in_insn rather than change_regs.
	* ira.c (update_equiv_regs): Strengthen locals "insn",
	"init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
	for_each_rtx_in_insn rather than for_each_rtx.
	* recog.c (confirm_change_group): Add checked casts.
	(peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
	Add checked cast.
	(peep2_fill_buffer): Add checked cast.
	* rtlanal.c (remove_note): Likewise.
	* valtrack.c (propagate_for_debug): Strengthen param "insn" and
	locals "next" "end" from rtx to rtx_insn *.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
	to rtx_insn *.
	(struct reg_use_data): Likewise for field "insn".
	(insn_cost): Likewise for param.
	(real_insn_for_shadow): Likewise for return type and param.
	(increase_insn_priority): Likewise for param 1.
	(debug_dependencies): Likewise for both params.

	* haifa-sched.c (insn_delay): Likewise for param "insn".
	(real_insn_for_shadow): Likewise for return type and param "insn".
	(update_insn_after_change): Likewise for param "insn".
	(recompute_todo_spec): Likewise for param "next" and locals "pro",
	"other".
	(insn_cost): Likewise for param "insn".
	(increase_insn_priority): Likewise.
	(calculate_reg_deaths): Likewise.
	(setup_insn_reg_pressure_info): Likewise.
	(model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
	(model_index): Strengthen param "insn" from rtx to rtx_insn *.
	(model_recompute): Likewise.
	(must_restore_pattern_p): Likewise for param "next".
	(model_excess_cost): Likewise for param "insn".
	(queue_remove): Likewise.
	(adjust_priority): Likewise for param "prev".
	(update_register_pressure): Likewise for param "insn".
	(setup_insn_max_reg_pressure): Likewise for local "insn".
	(update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
	(model_add_to_schedule): Likewise.
	(model_reset_queue_indices): Likewise for local "insn".
	(unschedule_insns_until): Strengthen local "recompute_vec" from
	auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
	"con" from rtx to rtx_insn *.
	(restore_last_backtrack_point): Likewise for both locals "x". Add
	checked casts.
	(estimate_insn_tick): Likewise for param "insn".
	(commit_schedule): Likewise for params "prev_head", "tail" and
	local "x".
	(verify_shadows): Likewise for locals "i1", "i2".
	(dump_insn_stream): Likewise for params "head", "tail" and locals
	"next_tail", "insn".
	(schedule_block): Likewise for locals "insn", "x".  Add a checked
	cast.
	(fix_inter_tick): Likewise for params "head", "tail".
	(create_check_block_twin): Likewise for local "jump".
	(haifa_change_pattern): Likewise for param "insn".
	(haifa_speculate_insn): Likewise.
	(dump_new_block_header): Likewise for params "head", "tail".
	(fix_jump_move): Likewise for param "jump".
	(move_block_after_check): Likewise.
	(sched_init_insn_luid): Likewise for param "insn".
	(sched_init_luids): Likewise for local "insn".
	(insn_luid): Likewise for param "insn".
	(init_h_i_d): Likewise.
	(haifa_init_h_i_d): Likewise for local "insn".
	(haifa_init_insn): Likewise for param "insn".
	* sched-deps.c (add_dependence): Likewise for local "real_pro",
	"other".
	(create_insn_reg_use): Likewise for param "insn".
	(setup_insn_reg_uses): Likewise.  Add a checked cast.
	* sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
	"tail" from rtx to rtx_insn *.
	* sched-rgn.c (void debug_dependencies): Likewise, also for locals
	"insn", "next_tail".

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* haifa-sched.c (struct model_insn_info): Strengthen field "insn"
	from rtx to rtx_insn *.
	(model_add_to_schedule): Likewise for locals "start", "end",
	"iter".

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
	rtx_insn *.
	* cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
	"to" and locals "insn", "next", "copy".  Remove now-redundant
	checked cast.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
	rtx_insn * and param 4 from rtx * to rtx_insn **.
	(get_condition): Strengthen param 1 from rtx to rtx_insn * and
	param 2 from rtx * to rtx_insn **.

	* df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
	rtx_insn * and final param from rtx * to rtx_insn **.

	* cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
	from rtx to rtx_insn *.
	(try_head_merge_bb): Likewise for both locals named "move_upto".
	* df-problems.c (can_move_insns_across): Likewise for params
	"from", "to", "across_from", "across_to" and locals "insn",
	"next", "max_to".  Strengthen param "pmove_upto" from rtx * to
	rtx_insn **.
	* ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
	from rtx to rtx_insn *.
	(noce_get_alt_condition): Strengthen param "earliest" from rtx *
	to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
	(noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
	rtx_insn *.
	(noce_try_abs): Likewise.
	(noce_get_condition): Likewise for param "jump".  Strengthen param
	"earliest" from rtx * to rtx_insn **.
	(noce_find_if_block): Strengthen local "cond_earliest" from rtx to
	rtx_insn *.
	(find_cond_trap): Likewise.
	(dead_or_predicable): Likewise for local "earliest".
	* loop-iv.c (check_simple_exit): Likewise for local "at".  Add
	checked cast.
	* rtlanal.c (canonicalize_condition): Likewise for param "insn"
	and local "prev".  Strengthen param "earliest" from rtx * to
	rtx_insn **.
	(get_condition): Strengthen param "jump" from rtx to rtx_insn *
	Strengthen param "earliest" from rtx * to rtx_insn **.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* fwprop.c (local_ref_killed_between_p): Strengthen params "from",
	"to" and local "insn" from rtx to rtx_insn *.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
	from rtx to rtx_insn *.
	(need_nop_to_preserve_insn_bb): Likewise for param "insn".
	(code_motion_path_driver): Likewise for local "last_insn".
	(simplify_changed_insns): Likewise for local "insn".

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (push_to_sequence): Strengthen param from rtx to
	rtx_insn *.
	(push_to_sequence2): Likewise for both params.
	(delete_insns_since): Likewise for param.
	(reorder_insns_nobb): Likewise for all three params.
	(set_new_first_and_last_insn): Likewise for both params.

	* emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
	rtx_insn *.  Remove now-redundant cast.
	(set_last_insn): Likewise.

	* builtins.c (expand_builtin_return): Strengthen local
	"call_fusage" from rtx to rtx_insn *.
	* cfgrtl.c (create_basic_block_structure): Likewise for local
	"after".
	* emit-rtl.c (set_new_first_and_last_insn): Likewise for params
	"first", "last" and local "insn".
	(delete_insns_since): Likewise for param "from".
	(reorder_insns_nobb): Likewise for params "from", "to", "after"
	and local "x".
	(push_to_sequence): Likewise for param "first" and local "last".
	(push_to_sequence2): Likewise for params "first" and "last".
	* lra.c (emit_add3_insn): Likewise for local "last".
	(lra_emit_add): Likewise.
	* lra-constraints.c (base_to_reg): Likewise for locals "insn",
	"last_insn".
	(process_address_1): Likewise for locals "insn", last".
	* modulo-sched.c (ps_first_note): Likewise for return type.
	* optabs.c (expand_binop_directly): Likewise for param "last".

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
	to rtx_insn*.
	* emit-rtl.c (get_last_insn_anywhere): Likewise.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* function.h (struct sequence_stack): Strengthen fields "first"
	and "last" from rtx to rtx_insn *.
	(struct emit_status): Likewise for fields "x_first_insn" and
	"x_last_insn".

	* emit-rtl.h (get_insns): Remove now-redundant checked cast.
	(set_first_insn): Add checked cast.
	(get_last_insn): Remove now-redundant checked cast.
	(set_last_insn): Add checked cast.

	* config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
	"saved_first" and "saved_last" from rtx to rtx_insn *.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
	(unlink_insn_chain): Strengthen both params from rtx to
	rtx_insn *.

	* cfgrtl.c (cfg_layout_function_header): Likewise for this
	variable.
	(unlink_insn_chain): Likewise for params "first" and "last".
	Remove now-redundant checked cast.
	(record_effective_endpoints): Replace use of NULL_RTX with NULL.
	(fixup_reorder_chain): Strengthen local "insn" from rtx to
	rtx_insn *.
	* emit-rtl.c (link_insn_into_chain): Likewise for all three
	params.
	(add_insn): Likewise for param "insn" and local "prev".
	(add_insn_after_nobb): Likewise for both params and local "next".
	(add_insn_before_nobb): Likewise for both params and local "prev".
	(add_insn_after): Rename param "after" to "uncast_after",
	introducing local "after" with another checked cast.
	(add_insn_before): Rename params "insn" and "before", giving them
	"uncast_" prefixes, adding the old names back using checked casts.
	(emit_note_after): Likewise for param "after".
	(emit_note_before): Likewise for param "before".
	(emit_label): Add a checked cast.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* cselib.h (cselib_record_sets_hook):  Strengthen initial param
	"insn" from rtx to rtx_insn *.

	* cselib.c (cselib_record_sets_hook): Likewise.

	* var-tracking.c (add_with_sets): Likewise, renaming back from
	"uncast_insn" to "insn" and eliminating the checked cast from rtx
	to rtx_insn *.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
	and "header_" from rtx to rtx_insn *.
	(struct basic_block_d): Likewise for field "head_" within "x"
	field of union basic_block_il_dependent.
	(BB_HEAD): Drop function...
	(SET_BB_HEAD): ...and this function in favor of...
	(BB_HEAD): ...reinstate macro.
	(BB_END): Drop function...
	(SET_BB_END): ...and this function in favor of...
	(BB_END): ...reinstate macro.
	(BB_HEADER): Drop function...
	(SET_BB_HEADER): ...and this function in favor of...
	(BB_HEADER): ...reinstate macro.

	* bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
	(fix_crossing_unconditional_branches): Likewise.
	* caller-save.c (save_call_clobbered_regs): Likewise.
	(insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
	* cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
	* cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
	(merge_blocks_move_successor_nojumps): Likewise.
	(outgoing_edges_match): Update use of for_each_rtx to
	for_each_rtx_in_insn.
	* cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
	(expand_gimple_cond): Likewise.
	(expand_gimple_tailcall): Likewise.
	(expand_gimple_basic_block): Drop use of SET_BB_HEAD and
	SET_BB_END.
	(construct_exit_block): Drop use of SET_BB_END.
	* cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
	rtx_insn *.
	(delete_insn): Rename param "insn" to "uncast_insn", introducing
	a new local "insn" with a checked cast to rtx_insn *.  Drop use of
	SET_BB_HEAD and SET_BB_END.
	(create_basic_block_structure): Drop use of SET_BB_HEAD and
	SET_BB_END.
	(rtl_delete_block): Drop use of SET_BB_HEAD.
	(rtl_split_block): Drop use of SET_BB_END.
	(emit_nop_for_unique_locus_between): Likewise.
	(rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
	(block_label): Drop use of SET_BB_HEAD.
	(fixup_abnormal_edges): Drop use of SET_BB_END.
	(record_effective_endpoints): Drop use of SET_BB_HEADER.
	(relink_block_chain): Likewise.
	(fixup_reorder_chain): Drop use of SET_BB_END.
	(cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
	(cfg_layout_delete_block): Strengthen local "to" from rtx * to
	rtx_insn **.  Drop use of SET_BB_HEADER.
	(cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
	SET_BB_HEAD.
	(BB_HEAD): Delete this function.
	(SET_BB_HEAD): Likewise.
	(BB_END): Likewise.
	(SET_BB_END): Likewise.
	(BB_HEADER): Likewise.
	(SET_BB_HEADER): Likewise.
	* emit-rtl.c (add_insn_after):  Rename param "insn" to
	"uncast_insn", adding a new local "insn" and a checked cast to
	rtx_insn *.  Drop use of SET_BB_END.
	(remove_insn): Strengthen locals "next" and "prev" from rtx to
	rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
	(reorder_insns): Drop use of SET_BB_END.
	(emit_insn_after_1): Strengthen param "first" and locals "last",
	"after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
	(emit_pattern_after_noloc): Add checked cast.
	* haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
	(restore_other_notes): Likewise.
	(move_insn): Likewise.
	(sched_extend_bb): Likewise.
	(fix_jump_move): Likewise.
	* ifcvt.c (noce_process_if_block): Likewise.
	(dead_or_predicable): Likewise.
	* ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
	* reg-stack.c (change_stack): Drop use of SET_BB_END.
	* sel-sched-ir.c (sel_move_insn): Likewise.
	* sel-sched.c (move_nop_to_previous_block): Likewise.

	* config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
	SET_BB_END.
	* config/ia64/ia64.c (emit_predicate_relation_info): Likewise.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (create_basic_block_structure): Strengthen params
	1 "head" and 2 "end" from rtx to rtx_insn *.
	* cfgrtl.c (create_basic_block_structure): Likewise.
	(rtl_create_basic_block): Update casts from void * to rtx to
	rtx_insn *, so that we can pass them as rtx_insn * to
	create_basic_block_structure.
	* sel-sched-ir.c (sel_create_basic_block): Likewise.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
	rtx_insn **.
	(check_for_inc_dec): Strengthen param "insn" from rtx to
	rtx_insn *.

	* cselib.h (cselib_process_insn): Likewise.

	* cselib.c (cselib_record_sets): Likewise.
	(cselib_process_insn): Likewise.

	* dse.c (struct insn_info): Likewise for field "insn".
	(check_for_inc_dec_1): Likewise for local "insn".
	(check_for_inc_dec): Likewise for param "insn".
	(scan_insn): Likewise.
	(dse_step1): Likewise for local "insn".

	* rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
	rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* sched-int.h (struct _dep): Strengthen fields "pro" and "con"
	from rtx to rtx_insn *.
	(DEP_PRO): Delete this function and...
	(SET_DEP_PRO): ...this function in favor of...
	(DEP_PRO): ...reinstate this macro.
	(DEP_CON): Delete this function and...
	(SET_DEP_CON): ...this function in favor of...
	(DEP_CON): ...reinstate this old macro.
	(init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
	(init_dep): Likewise.
	(set_priorities): Likewise for both params.
	(sd_copy_back_deps): Likewise for params 1 and 2.

	* haifa-sched.c (priority): Likewise for param "insn" and local
	"next".
	(set_priorities): Likewise for params "head" and "tail" and local
	"insn".
	(process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
	local "consumer".
	(add_to_speculative_block): Add a checked cast.
	(create_check_block_twin): Drop use of SET_DEP_CON.
	(add_jump_dependencies): Strengthen params "insn" and "jump" from
	rtx to rtx_insn *.

	* sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
	Drop use of SET_DEP_PRO
	(init_dep): Strengthen params "pro" and "con" from rtx to
	rtx_insn *.
	(sd_copy_back_deps): Likewise for params "to" and "from".  Drop
	use of SET_DEP_CON.
	(DEP_PRO): Delete.
	(DEP_CON): Delete.
	(SET_DEP_PRO): Delete.
	(SET_DEP_CON): Delete.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
	from rtx to rtx_insn *.
	(VINSN_INSN_RTX): Eliminate rvalue function and...
	(SET_VINSN_INSN): ...lvalue function in favor of...
	(VINSN_INSN_RTX): reinstate this old macro.

	* sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
	in favor of VINSN_INSN_RTX.
	(VINSN_INSN_RTX): Delete this function.
	(SET_VINSN_INSN_RTX): Likewise.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
	(BND_TO): Delete this function and...
	(SET_BND_TO): ...this functions in favor of...
	(BND_TO): ...reinstating this macro.
	(struct _fence): Strengthen field "executing_insns" from
	vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
	"last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
	(_succ_iter_cond): Update param "succp" from rtx * to insn_t *
	and param "insn" from rtx to insn_t.
	(create_vinsn_from_insn_rtx): Strengthen first param from rtx to
	rtx_insn *.

	* sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
	vec<rtx_insn *> .
	(rtx_vec_t): Likewise.
	(struct sched_deps_info_def): Strengthen param of "start_insn"
	callback from rtx to rtx_insn *.  Likewise for param "insn2" of
	"note_mem_dep" callback and first param of "note_dep" callback.

	* haifa-sched.c (add_to_speculative_block): Strengthen param
	"insn" from rtx to rtx_insn *.
	(clear_priorities): Likewise.
	(calc_priorities): Likewise for local "insn".

	* sched-deps.c (haifa_start_insn): Likewise for param "insn".
	Remove redundant checked cast.
	(haifa_note_mem_dep): Likewise for param "pending_insn".
	(haifa_note_dep): Likewise for param "elem".
	(note_mem_dep): Likewise for param "e".
	(sched_analyze_1): Add checked casts.
	(sched_analyze_2): Likewise.

	* sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
	from rtx to rtx_insn *.
	(debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
	from vec<rtx> * to vec<rtx_insn *> *.

	* sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
	scaffolding.
	(flist_add): Strengthen param "executing_insns" from
	vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
	(advance_deps_context): Remove now-redundant checked cast.
	(init_fences): Replace uses of NULL_RTX with NULL.
	(merge_fences): Strengthen params "last_scheduled_insn" and
	"sched_next" from rtx to rtx_insn * and "executing_insns" from
	vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
	(add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
	(get_nop_from_pool): Add local "nop_pat" so that "nop" can be
	an instruction, rather than doing double-duty as a pattern.
	(return_nop_to_pool): Update for change of insn_t.
	(deps_init_id): Remove now-redundant checked cast.
	(struct sched_scan_info_def): Strengthen param of "init_insn"
	callback from rtx to insn_t.
	(sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
	(init_global_and_expr_for_insn): Replace uses of NULL_RTX with
	NULL.
	(get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
	"end" from rtx to rtx_insn *.
	(create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
	(rtx insn_rtx, bool force_unique_p)
	(BND_TO): Delete function.
	(SET_BND_TO): Delete function.

	* sel-sched.c (advance_one_cycle): Strengthen local "insn" from
	rtx to rtx_insn *.
	(extract_new_fences_from): Replace uses of NULL_RTX with NULL.
	(replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
	rtx to rtx_insn *.
	(undo_transformations): Likewise for param "insn".
	(update_liveness_on_insn): Likewise.
	(compute_live_below_insn): Likewise for param "insn" and local
	"succ".
	(update_data_sets): Likewise for param "insn".
	(fill_vec_av_set): Replace uses of NULL_RTX with NULL.
	(convert_vec_av_set_to_ready): Drop now-redundant checked cast.
	(invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
	rtx_insn *.
	(move_cond_jump): Likewise for param "insn".
	(move_cond_jump): Drop use of SET_BND_TO.
	(compute_av_set_on_boundaries): Likewise.
	(update_fence_and_insn): Replace uses of NULL_RTX with NULL.
	(update_and_record_unavailable_insns): Strengthen local "bb_end"
	from rtx to rtx_insn *.
	(maybe_emit_renaming_copy): Likewise for param "insn".
	(maybe_emit_speculative_check): Likewise.
	(handle_emitting_transformations): Likewise.
	(remove_insn_from_stream): Likewise.
	(code_motion_process_successors): Strengthen local "succ" from rtx
	to insn_t.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
	ilist_t, not _xlist_t;
	(ILIST_INSN): Define in terms of new union field "insn".
	(ILIST_NEXT): Define in terms of _LIST_NEXT rather than
	_XLIST_NEXT.
	(struct _list_node): Add new field "insn" to the union, of type
	insn_t.
	(ilist_add): Replace macro with an inline function, requiring an
	insn_t.
	(ilist_remove): Define this macro directly in terms of
	_list_remove, rather than indirectly via _xlist_remove.
	(ilist_clear): Likewise, in terms of _list_clear rather than
	_xlist_clear.
	(ilist_is_in_p): Replace macro with an inline function, requiring
	an insn_t.
	(_list_iter_cond_insn): New function.
	(ilist_iter_remove): Define this macro directly in terms of
	_list_iter_remove, rather than indirectly via _xlist_iter_remove.
	(ilist_iterator): Define directly in terms of _list_iterator
	rather than indirectly through _xlist_iterator.
	(FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
	than in terms of _FOR_EACH_X.
	(FOR_EACH_INSN_1): Likewise.

2014-08-26  Joseph Myers  <joseph@codesourcery.com>

	PR target/60606
	PR target/61330
	* varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
	DECL_HARD_REGISTER and return for invalid register specifications.
	* cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
	DECL_HARD_REGISTER, call expand_one_error_var.
	* config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
	CC_REGNUM with non-MODE_CC modes.
	(arm_regno_class): Return NO_REGS for PC_REGNUM.

2014-08-26  Marek Polacek  <polacek@redhat.com>

	PR c/61271
	* sel-sched-ir.c (make_regions_from_the_rest): Fix condition.

2014-08-26  Evandro Menezes <e.menezes@samsung.com>

	* config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
	qi cost; add di cost.
	(cortexa57_addrcost_table): Likewise.

2014-08-26  Marek Polacek  <polacek@redhat.com>

	PR c/61271
	* expr.c (is_aligning_offset): Remove logical not.

2014-08-26  Marek Polacek  <polacek@redhat.com>

	PR c/61271
	* tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
	LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.

2014-08-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62175
	* tree-ssa-loop-niter.c (expand_simple_operations): Do not
	expand possibly trapping operations.

2014-08-26  David Malcolm  <dmalcolm@redhat.com>

	* config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
	"insn" from rtx to rtx_insn *.
	(permute_load): Likewise for param "insn".
	(permute_store): Likewise.
	(handle_special_swappables): Likewise for local "insn".
	(replace_swap_with_copy): Likewise for locals "insn" and
	"new_insn".
	(rs6000_analyze_swaps): Likewise for local "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* regrename.h (struct du_chain): Strengthen field "insn" from rtx
	to rtx_insn *.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
	"note_list" from rtx to rtx_insn *.
	(BB_NOTE_LIST): Replace this function and...
	(SET_BB_NOTE_LIST): ...this function with...
	(BB_NOTE_LIST): ...the former macro implementation.

	* sched-int.h (concat_note_lists): Strengthen param "from_end" and
	local "from_start" from rtx to rtx_insn *.  Strengthen param
	"to_endp" from rtx * to rtx_insn **.

	* haifa-sched.c (concat_note_lists): Likewise.
	* sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
	BB_NOTE_LIST.
	(sel_restore_notes): Likewise.
	(move_bb_info): Likewise.
	(BB_NOTE_LIST): Delete this function.
	(SET_BB_NOTE_LIST): Delete this function.
	* sel-sched.c (create_block_for_bookkeeping): Eliminate
	SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* target.def (reorder): Strengthen param "ready" of this DEFHOOK
	from rtx * to rtx_insn **.
	(reorder2): Likewise.
	(dependencies_evaluation_hook): Strengthen params "head", "tail"
	from rtx to rtx_insn *.

	* doc/tm.texi: Update mechanically for above change to target.def.

	* sched-int.h (note_list): Strengthen this variable from rtx to
	rtx_insn *.
	(remove_notes): Likewise for both params.
	(restore_other_notes): Likewise for return type and first param.
	(struct ready_list): Strengthen field "vec" from rtx * to
	rtx_insn **.
	(struct dep_replacement): Strenghten field "insn" from rtx to
	rtx_insn *.
	(struct deps_desc): Likewise for fields "last_debug_insn",
	"last_args_size".
	(struct haifa_sched_info): Likewise for callback field
	"can_schedule_ready_p"'s param, for first param of "new_ready"
	callback field, for both params of "rank" callback field, for
	first field of "print_insn" callback field (with a const), for
	both params of "contributes_to_priority" callback, for param
	of "insn_finishes_block_p" callback, for fields "prev_head",
	"next_tail", "head", "tail", for first param of "add_remove_insn"
	callback, for first param of "begin_schedule_ready" callback, for
	both params of "begin_move_insn" callback, and for second param
	of "advance_target_bb" callback.
	(add_dependence): Likewise for params 1 and 2.
	(sched_analyze): Likewise for params 2 and 3.
	(deps_analyze_insn): Likewise for param 2.
	(ready_element): Likewise for return type.
	(ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
	(try_ready): Strenghten param from rtx to rtx_insn *.
	(sched_emit_insn): Likewise for return type.
	(record_delay_slot_pair): Likewise for params 1 and 2.
	(add_delay_dependencies): Likewise for param.
	(contributes_to_priority): Likewise for both params.
	(find_modifiable_mems): Likewise.

	* config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
	"ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
	"first_older_only_insn" from rtx to rtx_insn *.
	(arm_sched_reorder):  Strengthen param "ready"  from rtx * to
	rtx_insn **.

	* config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
	"last_scheduled_iter0" from rtx to rtx_insn *.
	(init_sched_state): Replace use of NULL_RTX with NULL for insn.
	(c6x_sched_reorder_1): Strengthen param "ready" and locals
	"e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
	"insn" from rtx to rtx_insn *.
	(c6x_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(c6x_sched_reorder2): Strengthen param "ready" and locals
	"e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
	"insn" from rtx to rtx_insn *.
	(c6x_variable_issue):  Add a checked cast when assigning from insn
	to ss.last_scheduled_iter0.
	(split_delayed_branch): Strengthen param "insn" and local "i1"
	from rtx to rtx_insn *.
	(split_delayed_nonbranch): Likewise.
	(undo_split_delayed_nonbranch): Likewise for local "insn".
	(hwloop_optimize): Likewise for locals "seq", "insn", "prev",
	"entry_after", "end_packet", "head_insn", "tail_insn",
	"new_insns", "last_insn", "this_iter", "prev_stage_insn".
	Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
	to rtx_insn **.  Remove now-redundant checked cast on last_insn,
	but add a checked cast on loop->start_label.  Consolidate calls to
	avoid assigning result of gen_spkernel to "insn", now an
	rtx_insn *.

	* config/i386/i386.c (do_reorder_for_imul): Strengthen param
	"ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
	rtx to rtx_insn *.
	(swap_top_of_ready_list): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen locals "top", "next" from rtx to
	rtx_insn *.
	(ix86_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
	(add_parameter_dependencies): Strengthen params "call", "head" and
	locals "insn", "last", "first_arg" from rtx to rtx_insn *.
	(avoid_func_arg_motion): Likewise for params "first_arg", "insn".
	(add_dependee_for_func_arg): Likewise for param "arg" and local
	"insn".
	(ix86_dependencies_evaluation_hook): Likewise for params "head",
	"tail" and locals "insn", "first_arg".

	* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
	for params "head", "tail" and locals "insn", "next", "next_tail".
	(ia64_dfa_sched_reorder): Strengthen param "ready" and locals
	"e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
	"insn", "lowest", "highest" from rtx to rtx_insn *.
	(ia64_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(ia64_sched_reorder2): Likewise.

	* config/mep/mep.c (mep_find_ready_insn): Strengthen return type
	and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
	from rtx * to rtx_insn **.
	(mep_move_ready_insn): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(mep_print_sched_insn): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mep_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
	to rtx_insn *.

	* config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
	from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
	to rtx_insn *.
	(mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
	(mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(vr4130_reorder): Likewise.
	(mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
	rtx to rtx_insn *.
	(mips_sched_reorder_1): Strengthen param "ready" from rtx * to
	rtx_insn **.
	(mips_sched_reorder): Likewise.
	(mips_sched_reorder2): Likewise.

	* config/picochip/picochip.c (picochip_sched_reorder): Likewise.

	* config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
	Strengthen local "tmp" from rtx to rtx_insn *.
	(rs6000_sched_reorder2): Likewise.

	* config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
	Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
	(s390_sched_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.

	* config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
	"tmp2" from rtx to rtx_insn *.
	(swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
	Strengthen local "insn" from rtx to rtx_insn *.
	(ready_reorder): Strengthen param "ready" from rtx * to
	rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
	(sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
	(sh_reorder2): Likewise.

	* config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
	local "insn" from rtx to rtx_insn *.

	* haifa-sched.c (note_list): Strengthen this variable from rtx to
	rtx_insn *.
	(scheduled_insns): Strengthen this variable from vec<rtx> to
	vec<rtx_insn *>.
	(set_modulo_params): Likewise for locals "i1", "i2".
	(record_delay_slot_pair): Likewise for params "i1", "i2".
	(add_delay_dependencies): Likewise for param "insn".
	(cond_clobbered_p): Likewise.
	(recompute_todo_spec): Likewise for local "prev".
	(last_scheduled_insn): Likewise for this variable.
	(nonscheduled_insns_begin): Likewise.
	(model_set_excess_costs): Strengthen param "insns" from rtx * to
	rtx_insn **.
	(rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
	rtx_insn *.
	(swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
	Strengthen local "insn" from rtx to rtx_insn *.
	(queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
	(ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
	(ready_add): Strengthen param "insn" from rtx to rtx_insn *.
	(ready_remove_first): Likewise for return type and local "t".
	(ready_element): Likewise for return type.
	(ready_remove): Likewise for return type and local "t".
	(ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
	(check_clobbered_conditions): Strengthen local "x" from rtx to
	rtx_insn *, adding a checked cast.
	(schedule_insn): Likewise for param "insn".
	(remove_notes): Likewise for params "head", "tail" and locals
	"next_tail", "insn", "next".
	(struct haifa_saved_data): Likewise for fields
	"last_scheduled_insn", "nonscheduled_insns_begin".
	(save_backtrack_point): Update for change to field "vec" of
	struct ready_list.
	(toggle_cancelled_flags): Strengthen local "first" from rtx * to
	rtx_insn **.
	(restore_last_backtrack_point): Likewise.  Strengthen local "insn"
	from rtx to rtx_insn *
	(resolve_dependencies): Strengthen param "insn" from rtx to
	rtx_insn *
	(restore_other_notes): Likewise for return type, for param "head"
	and local "note_head".
	(undo_all_replacements): Likewise for local "insn".
	(first_nonscheduled_insn): Likewise for return type and local "insn".
	(queue_to_ready): Likewise for local "insn", adding checked casts.
	(early_queue_to_ready): Likewise for local "insn".
	(debug_ready_list_1): Strengthen local "p" from rtx * to
	rtx_insn **.
	(move_insn): Strengthen param "insn" and local "note" from rtx to
	rtx_insn *
	(insn_finishes_cycle_p): Likewise for param "insn".
	(max_issue): Likewise for local "insn".
	(choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
	to rtx_insn **.
	(commit_schedule): Strengthen param "prev_head" and local "insn"
	from rtx to rtx_insn *
	(prune_ready_list): Likewise for local "insn".
	(schedule_block): Likewise for locals "prev_head", "head", "tail",
	"skip_insn", "insn", "failed_insn", "x", adding a checked cast.
	(set_priorities): Likewise for local "prev_head".
	(try_ready): Likewise for param "next".
	(fix_tick_ready): Likewise.
	(change_queue_index): Likewise.
	(sched_extend_ready_list): Update for change to field "vec" of
	struct ready_list.
	(generate_recovery_code): Strengthen param "insn" from rtx to
	rtx_insn *.
	(begin_speculative_block): Likewise.
	(create_check_block_twin): Likewise for param "insn" and locals
	"label", "check", "twin".  Introduce local "check_pat" to avoid
	"check" being used as a plain rtx before being used as an insn.
	(fix_recovery_deps): Add a checked cast to rtx_insn * when
	extracting elements from ready_list.
	(sched_remove_insn): Strengthen param "insn" from rtx to
	rtx_insn *.
	(sched_emit_insn): Likewise for return type.
	(ready_remove_first_dispatch): Likewise for return type and local
	"insn".

	* hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.

	* modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
	const rtx_insn *.

	* sched-deps.c (add_dependence): Strengthen params "con", "pro"
	from rtx to rtx_insn *.
	(add_dependence_list): Likewise for param "insn".  Add a checked
	cast.
	(add_dependence_list_and_free): Strengthen param "insn" from rtx
	to rtx_insn *.  Strengthen param "list_p" from rtx * to
	rtx_insn **.
	(chain_to_prev_insn): Strengthen param "insn" and locals
	"prec_nonnote", "i" from rtx to rtx_insn *.
	(flush_pending_lists): Likewise for param "insn".
	(cur_insn): Likewise for this variable.
	(haifa_start_insn): Add a checked cast.
	(note_dep): Strengthen param "e" from rtx to rtx_insn *.
	(sched_analyze_reg): Likewise for param "insn".
	(sched_analyze_1): Likewise.
	(sched_analyze_2): Likewise.  Add checked casts.
	(sched_analyze_insn): Likewise.  Also for local "prev".
	(deps_analyze_insn): Likewise for param "insn".
	(sched_analyze): Likewise for params "head", "tail" and local "insn".
	(add_dependence_1): Likewise for params "insn", "elem".
	(struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
	(parse_add_or_inc): Likewise for param "insn".
	(find_inc): Likewise for local "inc_cand".
	(find_modifiable_mems): Likewise for params "head", "tail" and
	locals "insn", "next_tail".

	* sched-ebb.c (init_ready_list): Likewise for local "insn".
	(begin_schedule_ready): Likewise for param "insn".
	(begin_move_insn): Likewise for params "insn" and "last".
	(ebb_print_insn): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
	(ebb_contributes_to_priority): Likewise for params "next", "insn".
	(ebb_add_remove_insn): Likewise for param "insn".
	(advance_target_bb): Likewise.

	* sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
	"insn".
	(check_live): Likewise for param "insn".
	(init_ready_list): Likewise for local "insn".
	(can_schedule_ready_p): Likewise for param "insn".
	(begin_schedule_ready): Likewise.
	(new_ready): Likewise for param "next".
	(rgn_print_insn): Likewise for param "insn".
	(rgn_rank): Likewise for params "insn1", "insn2".
	(contributes_to_priority): Likewise for params "next", "insn".
	(rgn_insn_finishes_block_p): Likewise for param "insn".
	(add_branch_dependences): Likewise for params "head", "tail" and
	locals "insn", "last".
	(rgn_add_remove_insn): Likewise for param "insn".
	(advance_target_bb): Likewise.

	* sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
	const_rtx to const rtx_insn *.

	* sel-sched-dump.h (sel_print_insn): Likewise.

	* sel-sched-ir.c (advance_deps_context): Add a checked cast.
	(deps_init_id): Likewise.

	* sel-sched.c (convert_vec_av_set_to_ready): Likewise.
	(invoke_reorder_hooks): Strengthen local "arr" from rtx * to
	rtx_insn **.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* output.h (final_start_function): Strengthen param 1 from rtx to
	rtx_insn *.

	* final.c (final_start_function): Likewise, renaming back from
	"uncast_first" to "first", and dropping the checked cast from rtx
	to rtx_insn *.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* output.h (final): Strengthen param 1 from rtx to rtx_insn *.
	* final.c (final): Likewise.  Rename param back from
	"uncast_first" to "first" and eliminate the checked cast from rtx
	to rtx_insn *.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* output.h (shorten_branches): Strengthen param from rtx to
	rtx_insn *.

	* final.c (shorten_branches): Likewise, renaming param back from
	"uncast_first" to "first", and dropping the checked cast from rtx
	to rtx_insn *.

	* genattr.c (gen_attr): Likewise when writing out the prototype of
	shorten_branches.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* sched-int.h (struct haifa_sched_info): Strengthen fields
	"prev_head" and "next_tail" from rtx to rtx_insn *.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (rtx_jump_table_data::get_labels): New method.
	* cfgbuild.c (make_edges): Replace hand-coded lookup of labels
	with use of the new rtx_jump_table_data::get_labels method.
	(purge_dead_tablejump_edges): Strengthen param "table" from rtx
	to rtx_jump_table_data *.  Simplify by using get_labels method.
	* cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
	a dyn_cast, introducing local "table", using it to replace
	label-lookup logic with a get_labels method call.
	(patch_jump_insn): Simplify using get_labels method.
	* dwarf2cfi.c (create_trace_edges): Likewise.
	* rtlanal.c (label_is_jump_target_p): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
	to rtx_insn *.

	* emit-rtl.c (unshare_all_rtl_1): Likewise.
	(unshare_all_rtl_again): Likewise, also for local "p".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
	to rtx_insn *.
	* cfgrtl.c (delete_insn_and_edges): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (reorder_insns): Strengthen params "from", "to", "after"
	from rtx to rtx_insn *.

	* emit-rtl.c (reorder_insns): Likewise, also for local "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* function.c (thread_prologue_and_epilogue_insns): Likewise for
	locals "returnjump", "epilogue_end", "insn", "next".

	* shrink-wrap.h (get_unconverted_simple_return): Strengthen param
	"returnjump" from rtx * to rtx_insn **.
	* shrink-wrap.c (get_unconverted_simple_return): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (struct edge_def). Strengthen "r" within
	union edge_def_insns from rtx to rtx_insn *.

	* cfgexpand.c (pass_expand::execute): Remove now-redundant cast
	from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
	rtx_insn *.
	* cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
	from rtx to rtx_insn *.
	* cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
	rtx_insn *.
	* postreload-gcse.c (reg_killed_on_edge): Likewise.
	(reg_used_on_edge): Likewise.
	* tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
	(gt_pch_nx): New overload for rtx_insn *&.
	* tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
	from rtx to rtx_insn *.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
	from rtx to rtx_insn *.
	(BB_FOOTER): Replace function with access macro.
	(SET_BB_FOOTER): Delete.

	* cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
	with BB_FOOTER.
	* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
	(emit_barrier_after_bb): Likewise.
	(record_effective_endpoints): Likewise.
	(relink_block_chain): Likewise.
	(fixup_fallthru_exit_predecessor): Likewise.
	(cfg_layout_duplicate_bb): Likewise.
	(cfg_layout_split_block): Likewise.
	(cfg_layout_delete_block): Likewise.
	(cfg_layout_merge_blocks): Likewise.
	(BB_FOOTER): Delete function.
	(SET_BB_FOOTER): Delete function.
	* combine.c (update_cfg_for_uncondjump): Replace uses of
	SET_BB_FOOTER with BB_FOOTER.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* except.h (struct eh_landing_pad_d): Strengthen field
	"landing_pad" from rtx to rtx_code_label *.

	* except.c (sjlj_emit_dispatch_table): Likewise for param
	"dispatch_label"
	(sjlj_build_landing_pads): Likewise for local "dispatch_label".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
	first param from rtx to rtx_insn *.
	* config/xtensa/xtensa.c (struct machine_function): Likewise for
	field "set_frame_ptr_insn".
	(xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
	"csend" from rtx to rtx_code_label *.
	(xtensa_expand_atomic): Likewise for local "csloop".
	(xtensa_emit_loop_end): Strengthen param "insn" from rtx to
	rtx_insn *.
	(xtensa_call_tls_desc): Likewise for return type and locals
	"call_insn", "insns".
	(xtensa_legitimize_tls_address): Likewise for local "insns".
	(xtensa_expand_prologue): Likewise for locals "insn", "first".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
	first param from rtx to rtx_insn *.
	* config/v850/v850.c (v850_adjust_insn_length): Likewise for param
	"insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
	Strengthen param 1 from rtx to rtx_insn *.
	(tilepro_output_cbranch): Likewise.
	(tilepro_adjust_insn_length): Likewise.
	(tilepro_final_prescan_insn): Likewise for sole param.

	* config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
	Likewise for local "last".
	(cbranch_predicted_p): Likewise for param "insn".
	(tilepro_output_simple_cbranch_with_opcode): Likewise.
	(tilepro_output_cbranch_with_opcode): Likewise.
	(tilepro_output_cbranch): Likewise.
	(frame_emit_load): Likewise for return type and locals "seq",
	"insn".
	(emit_sp_adjust): Likewise for return type and local "insn".
	(tilepro_expand_epilogue): Likewise for locals "last_insn",
	"insn".
	(tilepro_adjust_insn_length): Likewise for param "insn".
	(next_insn_to_bundle): Likewise for return type and params
	"r", "end".
	(tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
	(replace_pc_relative_symbol_ref): Likewise for param "insn" and
	local "new_insns".
	(match_addli_pcrel): Likewise for param "insn".
	(replace_addli_pcrel): Likewise.
	(match_auli_pcrel): Likewise.
	(replace_auli_pcrel): Likewise.
	(tilepro_fixup_pcrel_references): Likewise for locals "insn",
	"next_insn".
	(reorder_var_tracking_notes): Likewise for locals "insn", "next",
	"queue", "next_queue", "prev".
	(tilepro_asm_output_mi_thunk): Likewise for local "insn".
	(tilepro_final_prescan_insn): Likewise for param "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
	Strengthen param 1 from rtx to rtx_insn *.
	(tilegx_output_cbranch): Likewise.
	(tilegx_adjust_insn_length): Likewise.
	(tilegx_final_prescan_insn): Likewise for sole param.

	* config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
	or local "last".
	(cbranch_predicted_p): Likewise for param "insn".
	(tilegx_output_simple_cbranch_with_opcode): Likewise.
	(tilegx_output_cbranch_with_opcode): Likewise.
	(tilegx_output_cbranch): Likewise.
	(frame_emit_load): Likewise for return type.
	(set_frame_related_p): Likewise for locals "seq", "insn".
	(emit_sp_adjust): Likewise for return type, and for local "insn".
	Introduce local "pat" for use in place of "insn" where the latter
	isn't an instruction.
	(tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
	from rtx to rtx_insn *.
	(tilegx_adjust_insn_length): Likewise for param "insn".
	(next_insn_to_bundle): Likewise for return type and params "r" and
	"end".
	(tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
	"end".
	(replace_insns): Likewise for params "old_insn", "new_insns".
	(replace_mov_pcrel_step1): Likewise for param "insn" and local
	"new_insns".
	(replace_mov_pcrel_step2): Likewise.
	(replace_mov_pcrel_step3): Likewise.
	(tilegx_fixup_pcrel_references): Likewise for locals "insn",
	"next_insn".
	(reorder_var_tracking_notes): Likewise for locals "insn", "next",
	"queue", "next_queue", "prev".
	(tilegx_output_mi_thunk): Likewise for local "insn".
	(tilegx_final_prescan_insn): Likewise for param "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/spu/spu.c (frame_emit_store): Strengthen return type from
	rtx to rtx_insn *.
	(frame_emit_load): Likewise.
	(frame_emit_add_imm): Likewise, also for local "insn".
	(spu_expand_prologue): Likewise for local "insn".
	(struct spu_bb_info): Likewise for field "prop_jump".
	(emit_nop_for_insn): Likewise for param "insn" and local
	"new_insn".
	(pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
	"hbr_insn".
	(spu_emit_branch_hint): Likewise for params "before", "branch" and
	locals "hint", "insn".
	(get_branch_target): Likewise for param "branch".
	(insn_clobbers_hbr): Likewise for param "insn".
	(insert_hbrp_for_ilb_runout): Likewise for param "first" and
	locals "insn", "before_4", "before_16".
	(insert_hbrp): Likewise for local "insn".
	(spu_machine_dependent_reorg): Likewise for locals "branch",
	"insn", "next", "bbend".
	(uses_ls_unit): Likewise for param "insn".
	(get_pipe): Likewise.
	(spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
	introducing a checked cast.
	(spu_sched_adjust_cost): Likewise for params "insn" and
	"dep_insn".
	(ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
	(spu_sms_res_mii): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
	from rtx to rtx_insn *.
	(output_cbranch): Likewise for param 6.
	(output_return): Likewise for param 1.
	(output_sibcall): Likewise.
	(output_v8plus_shift): Likewise.
	(output_v8plus_mult): Likewise.
	(output_v9branch): Likewise for param 7.
	(output_cbcond):  Likewise for param 3.

	* config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
	for local "insn".
	(sparc_legitimize_pic_address): Likewise.
	(sparc_emit_call_insn): Likewise.
	(emit_save_or_restore_regs): Likewise.
	(emit_window_save): Likewise for return type and local "insn".
	(sparc_expand_prologue): Likewise for local "insn".
	(sparc_flat_expand_prologue): Likewise.
	(output_return): Likewise for param "insn".
	(output_sibcall): Likewise for param "insn" and local "delay".
	(output_ubranch): Likewise for param "insn".
	(output_cbranch): Likewise.
	(output_cbcond): Likewise.
	(output_v9branch): Likewise.
	(output_v8plus_shift): Likewise.
	(sparc_output_mi_thunk): Likewise for local "insn".
	(get_some_local_dynamic_name): Likewise.
	(output_v8plus_mult): Likewise for param "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
	from rtx to rtx_insn *.
	(output_branchy_insn): Likewise for param 3.
	(output_far_jump): Likewise for param 1.
	(final_prescan_insn): Likewise.
	(sh_insn_length_adjustment): Likewise for sole param.

	* config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
	(expand_cbranchdi4): Strengthen local "skip_label" from rtx to
	rtx_code_label *.
	(sh_emit_compare_and_set): Likewise for local "lab".
	(output_far_jump): Strengthen param "insn" and local "prev" from
	rtx to rtx_insn *.
	(output_branchy_insn): Likewise for param "insn" and local
	"next_insn".
	(output_ieee_ccmpeq): Likewise for param "insn".
	(struct label_ref_list_d): Strengthen field "label" from rtx to
	rtx_code_label *.
	(pool_node): Likewise.
	(pool_window_label): Likewise for this global.
	(add_constant): Likewise for return type and locals "lab", "new_rtx".
	(dump_table): Strengthen params "start", "barrier" and local
	"scan" from rtx to rtx_insn *.
	(broken_move): Likewise for param "insn".
	(untangle_mova): Likewise for params "first_mova" and "new_mova".
	Strengthen param "first_mova" from rtx * to rtx_insn **.
	(mova_p): Likewise for param "insn".
	(fixup_mova): Likewise for param "mova".
	(find_barrier): Likewise for return type, params "mova" and
	"from", and locals "barrier_before_mova", "found_barrier",
	"good_barrier", "orig", "last_symoff", "next".  Strengthen local
	"label" from rtx to rtx_code_label *.
	(sh_loop_align): Strengthen locals "first", "insn", "mova" from
	rtx to rtx_insn *.
	(sh_reorg): Likewise for locals "link", "scan", "barrier".
	(split_branches): Likewise for param "first" and local "insn".
	(final_prescan_insn): Likewise for param "insn".
	(sequence_insn_p): Likewise for locals "prev", "next".
	(sh_insn_length_adjustment): Likewise for param "insn".
	(sh_can_redirect_branch): Likewise for local "insn".
	(find_r0_life_regions): Likewise for locals "end", "insn".
	(sh_output_mi_thunk): Likewise for local "insns".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/score/score.c (score_output_mi_thunk): Strengthen local
	"insn" from rtx to rtx_insn *.
	(score_prologue): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
	1 from rtx to rtx_insn *.
	(s390_emit_jump): Likewise for return type.
	(s390_emit_call): Likewise.
	(s390_load_got): Likewise.

	* config/s390/s390.c (last_scheduled_insn): Likewise for this
	variable.
	(s390_match_ccmode): Likewise for param "insn".
	(s390_emit_jump): Likewise for return type.
	(s390_split_branches): Likewise for local "label".
	(struct constant): Strengthen field "label" from rtx to
	rtx_code_label *.
	(struct constant_pool): Likewise for field "label".  Strengthen
	fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
	rtx_insn *.
	(s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
	insns.
	(s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
	(s390_end_pool): Likewise.
	(s390_dump_pool): Likewise for local "insn".
	(s390_mainpool_start): Likewise.
	(s390_chunkify_start): Likewise.
	(s390_chunkify_start): Replace NULL_RTX with NULL when dealing
	with insns.  Strengthen locals "label", "jump", "barrier", "next",
	"prev", "vec_insn", "insn" from rtx to rtx_insn *.
	(s390_chunkify_finish): Strengthen local "insn" from rtx to
	rtx_insn *.
	(s390_chunkify_cancel): Likewise for locals "insn", "barrier",
	"jump", "label", "next_insn".
	(s390_regs_ever_clobbered): Likewise for local "cur_insn".
	(s390_optimize_nonescaping_tx): Likewise for locals "insn",
	"tbegin_insn".
	(s390_load_got): Likewise for return type and local "insns".
	(s390_save_gprs_to_fprs): Likewise for local "insn".
	(s390_restore_gprs_from_fprs): Likewise.
	(pass_s390_early_mach::execute): Likewise.
	(s390_emit_prologue): Likewise for local "insns".
	(s390_expand_tbegin): Strengthen local "leave_label" from rtx to
	rtx_code_label *.
	(s390_emit_call): Strengthen return type and local "insn" from
	rtx to rtx_insn *.
	(s390_emit_tpf_eh_return): Likewise for local "insn".
	(s390_optimize_prologue): Likewise for locals "insn", "new_insn",
	"next_insn", introducing locals "s_pat", "rpat" to allow this.
	(s390_fix_long_loop_prediction): Likewise for param "insn" and
	local "cur_insn".
	(s390_non_addr_reg_read_p): Likewise for param "insn".
	(find_cond_jump): Likewise for return type and param "insn".
	(s390_swap_cmp): Likewise for param "insn".
	(s390_z10_optimize_cmp): Likewise for param "insn" and locals
	"prev_insn", "next_insn".
	(s390_reorg): Likewise for locals "insn", "target".
	(s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
	(s390_sched_variable_issue): For now, rename param "insn" to
	"uncast_insn", introducing a checked cast.
	(s390_sched_init): Replace NULL_RTX with NULL when dealing with
	insn.
	(s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
	rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
	param from rtx to rtx_insn *.
	* config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
	4 from rtx to rtx_insn *.
	(rs6000_final_prescan_insn): Likewise for first param.
	* config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
	local "insn".
	(rs6000_get_some_local_dynamic_name): Likewise.
	(output_cbranch): Likewise for param "insn".
	(spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
	(rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
	(rs6000_emit_allocate_stack): Likewise for local "insn".
	(load_cr_save): Likewise.
	(restore_saved_cr): Likewise.
	(restore_saved_lr): Likewise.
	(emit_cfa_restores): Likewise.
	(rs6000_output_function_epilogue): Likewise for locals "insn" and
	"deleted_debug_label".
	(rs6000_output_mi_thunk): Likewise for local "insn".
	(rs6000_final_prescan_insn): Likewise for param "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/picochip/picochip-protos.h (picochip_final_prescan_insn):
	Strengthen param "insn" from rtx to rtx_insn *.
	* config/picochip/picochip.c (picochip_current_prescan_insn):
	Likewise for this variable.
	(picochip_final_prescan_insn): Likewise for param "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/pa/pa-protos.h (pa_output_call): Strengthen first param
	from rtx to rtx_insn *.
	(pa_output_indirect_call): Likewise.
	(pa_adjust_insn_length): Likewise.
	(pa_attr_length_millicode_call): Likewise.
	(pa_attr_length_call): Likewise.
	(pa_attr_length_indirect_call): Likewise.

	* config/pa/pa.c (pa_adjust_insn_length): Likewise for param
	"insn".
	(pa_attr_length_millicode_call): Likewise.
	(pa_attr_length_call): Likewise.
	(pa_output_call): Likewise.
	(pa_attr_length_indirect_call): Likewise.
	(pa_output_indirect_call): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/nds32/nds32-protos.h (nds32_adjust_insn_length):
	Strengthen first param from rtx to rtx_insn *.
	* config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
	param "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/mips/mips-protos.h (mips_emit_move): Strengthen return
	type from rtx to rtx_insn *.
	(mips_expand_call): Likewise.
	(mips_adjust_insn_length): Likewise for first param.
	(mips_output_conditional_branch): Likewise.
	(mips_output_order_conditional_branch): Likewise.
	(mips_final_prescan_insn): Likewise.

	* config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
	rtx_insn * for the SEQUENCE case.
	(SEQ_END): Likewise.
	(mips_emit_move): Strengthen return type from rtx to rtx_insn *.
	(mips_emit_call_insn): Likewise, also for local "insn".
	(mips16_gp_pseudo_reg): Likewise for local "scan".
	(mips16_build_call_stub): Likewise for return type and for local
	"insn".  Introduce a new local "pattern" so that "insn" can indeed
	be an insn.
	(mips_expand_call): Strengthen return type and local "insn" from
	rtx to rtx_insn *.
	(mips_block_move_loop): Strengthen local "label" from rtx to
	rtx_code_label *.
	(mips_expand_synci_loop): Likewise for locals "label",
	"end_label".
	(mips_set_frame_expr): Strengthen local "insn" from rtx to
	rtx_insn *.
	(mips16e_collect_argument_saves): Likewise for locals "insn",
	"next".
	(mips_find_gp_ref): Likewise for param of callback for "pred"
	param, and for local "insn".
	(mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
	(mips_insn_has_flexible_gp_ref_p): Likewise.
	(mips_epilogue_emit_cfa_restores): Likewise for return type and
	local "insn".
	(mips_epilogue_set_cfa): Likewise for local "insn".
	(mips_expand_epilogue): Likewise.
	(mips_adjust_insn_length): Likewise for param "insn".
	(mips_output_conditional_branch): Likewise.
	(mips_output_order_conditional_branch): Likewise.
	(struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
	"alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
	"falu2_turn_enabled_insn".
	(mips_builtin_branch_and_move): Strengthen locals "true_label",
	"done_label" from rtx to rtx_code_label *.
	(struct mips16_constant): Likewise for field "label".
	(mips16_add_constant): Likewise for return type.
	(mips16_emit_constants_1): Strengthen return type and param "insn"
	from rtx to rtx_insn *.
	(mips16_emit_constants): Likewise for param "insn".
	(mips16_insn_length): Likewise.
	(mips16_rewrite_pool_constant): Strengthen local "label" from rtx
	to rtx_code_label *.
	(struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
	from rtx to rtx_insn *.
	(mips16_lay_out_constants): Likewise for locals "insn", "barrier",
	"jump".  Strengthen local "label" from rtx to rtx_code_label *.
	(r10k_simplify_address): Strengthen param "insn" and local
	"def_insn" from rtx to rtx_insn *.
	(r10k_safe_address_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(r10k_needs_protection_p_1): Update target type of cast of data
	from to rtx to rtx_insn *.
	(r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
	rtx * to rtx_insn **.
	(r10k_needs_protection_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(r10k_insert_cache_barriers): Likewise for locals "insn", "end".
	(mips_call_expr_from_insn): Likewise for param "insn".
	(mips_pic_call_symbol_from_set): Likewise for local "def_insn".
	(mips_find_pic_call_symbol): Likewise for param "insn".
	(mips_annotate_pic_calls): Likewise for local "insn".
	(mips_sim_insn): Likewise for this variable.
	(struct mips_sim): Likewise for field "insn" within elements of
	last_set array.
	(mips_sim_wait_reg): Likewise for param "insn".
	(mips_sim_wait_regs): Likewise.
	(mips_sim_wait_units): Likewise.
	(mips_sim_wait_insn): Likewise.
	(mips_sim_issue_insn): Likewise.
	(mips_sim_finish_insn): Likewise.
	(mips_seq_time): Likewise for param "seq" and local "insn".
	(vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
	locals "first", "second".
	(vr4130_align_insns): Likewise for locals "insn", "subinsn",
	"last", "last2", "next".
	(mips_avoid_hazard): Likewise for params "after", "insn".
	(mips_reorg_process_insns): Likewise for locals "insn",
	"last_insn", "subinsn", "next_insn".
	(mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
	(mips16_split_long_branches): Likewise for locals "insn" "jump",
	"jump_sequence".
	(mips_output_mi_thunk): Likewise for local "insn".
	(mips_final_prescan_insn): Likewise for param "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
	Strengthen return type and local "insns" from rtx to rtx_insn *.
	(microblaze_legitimize_tls_address): Likewise for local "insns".
	(microblaze_block_move_loop): Strengthen local "label" from rtx
	to rtx_code_label *.
	(microblaze_expand_prologue): Strengthen two locals named "insn"
	from rtx to rtx_insn *.
	(microblaze_asm_output_mi_thunk): Likewise for local "insn".
	(microblaze_expand_divide): Likewise for locals "jump", "cjump",
	"insn".  Strengthen locals "div_label", "div_end_label" from rtx
	to rtx_code_label *.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/mep/mep-protos.h (mep_mulr_source): Strengthen first
	param from rtx to rtx_insn *.
	(mep_reuse_lo): Likewise for third param.
	(mep_use_post_modify_p): Likewise for first param.
	(mep_core_address_length): Likewise.
	(mep_cop_address_length): Likewise.
	(mep_final_prescan_insn): Likewise.
	(mep_store_data_bypass_p): Likewise for both params.
	(mep_mul_hilo_bypass_p): Likewise.
	(mep_ipipe_ldc_p): Likewise for param.

	* config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
	(mep_rewrite_mult): Likewise.
	(mep_rewrite_mulsi3): Likewise.
	(mep_rewrite_maddsi3): Likewise.
	(mep_reuse_lo_p_1): Likewise.
	(mep_reuse_lo_p): Likewise.
	(mep_frame_expr): Likewise.
	(mep_make_parallel): Likewise for both params.
	(mep_use_post_modify_p_1): Likewise for param "set_insn" and
	local "insn".
	(mep_use_post_modify_p): Likewise for param "insn".
	(mep_core_address_length): Likewise.
	(mep_cop_address_length): Likewise.
	(mep_reg_set_in_function): Likewise for local "insn".
	(mep_asm_without_operands_p): Likewise.
	(F): Likewise for return type and param "x".
	(add_constant): Likewise for local "insn".
	(maybe_dead_move): Likewise for return type and local "insn".
	(mep_expand_prologue): Likewise for local "insn".
	(mep_final_prescan_insn): Likewise for param "insn".
	(mep_reorg_regmove): Likewise for param "insns" and locals "insn",
	"next", "follow", "x".
	(mep_insert_repeat_label_last): Likewise for return type, param
	"last_insn", and locals "next", "prev".  Strengthen param "label"
	from rtx to rtx_code_label *.
	(struct mep_doloop_begin): Strengthen field "insn" from rtx to
	rtx_insn *.
	(struct mep_doloop_end): Likewise for fields "insn" and
	"fallthrough".
	(mep_reorg_repeat): Likewise for param "insns" and local "insn".
	Strengthen local "repeat_label" from rtx to rtx_code_label *.
	(mep_invertable_branch_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mep_invert_branch): Likewise for params "insn" and "after".
	(mep_reorg_erepeat): Likewise for param "insns" and locals
	"insn", "prev", "new_last", "barrier", "user".  Strengthen local
	"l" from rtx to rtx_code_label *.
	(mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
	from rtx to rtx_insn *.
	(mep_reorg_addcombine): Likewise for param "insns" and locals
	"i", "n".
	(add_sp_insn_p): Likewise for param "insn".
	(mep_reorg_noframe): Likewise for param "insns" and locals
	"start_frame_insn", "end_frame_insn", "next".
	(mep_reorg): Likewise for local "insns".
	(mep_store_data_bypass_1): Likewise for param "prev".  Add checked
	cast.
	(mep_store_data_bypass_p): Likewise for params "prev", "insn".
	(mep_mul_hilo_bypass_p): Likewise.
	(mep_ipipe_ldc_p): Likewise for param "insn".
	(mep_make_bundle): Likewise for return type, param "cop" and local
	"insn", splitting out the latter into a new local "seq" for when it
	is a SEQUENCE rather than an insn.
	(core_insn_p): Likewise for param "insn".
	(mep_bundle_insns): Likewise for param "insns" and locals "insn",
	"last", "first", "note", "prev", "core_insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
	rtx to rtx_insn *.
	(strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
	(m68k_final_prescan_insn): Likewise for first param.

	* config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
	(m68k_set_frame_related): Likewise for param "insn".
	(output_btst): Likewise for param "insn".
	(m68k_final_prescan_insn): Likewise.
	(m68k_move_to_reg): Likewise for local "insn".
	(m68k_call_tls_get_addr): Likewise for local "insns".
	(m68k_call_m68k_read_tp): Likewise.
	(strict_low_part_peephole_ok): Likewise for param "first_insn".
	(m68k_output_mi_thunk): Likewise for local "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
	first param from rtx to rtx_insn *.
	(iq2000_adjust_insn_length): Likewise.
	(iq2000_output_conditional_branch): Likewise.
	* config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
	"insn" and local "nop_insn".
	(iq2000_annotate_frame_insn): Likewise for param "insn".
	(iq2000_expand_prologue): Likewise for both locals "insn".
	(iq2000_adjust_insn_length): Likewise for param "insn".
	(iq2000_output_conditional_branch): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
	"insns" from rtx to rtx_insn *.
	(ia64_emit_cond_move): Likewise for locals "insn", "first".
	(struct spill_fill_data): Likewise for field "init_after" and for
	elements of array field "prev_insn".
	(spill_restore_mem): Likewise for locals "insn", "first".
	(do_spill): Likewise for local "insn".
	(do_restore): Likewise.
	(ia64_expand_prologue): Likewise.
	(ia64_expand_epilogue): Likewise.
	(emit_insn_group_barriers): Likewise for locals "insn",
	"last_label".
	(emit_all_insn_group_barriers): Likewise for locals "insn",
	"last".
	(dfa_stop_insn): Likewise for this global.
	(dfa_pre_cycle_insn): Likewise.
	(ia64_nop): Likewise.
	(final_emit_insn_group_barriers): Likewise for locals "insn",
	"last".
	(emit_predicate_relation_info): Likewise for locals "head", "n",
	"insn", "b", "a".
	(ia64_reorg): Likewise for local "insn".
	(ia64_output_mi_thunk): Likewise.
	(expand_vec_perm_interleave_2): Likewise for local "seq".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
	param 1 "insn" from rtx to rtx_insn *.
	(ix86_use_lea_for_mov): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(ix86_split_lea_for_addr): Likewise.
	(ix86_lea_for_add_ok): Likewise.
	(ix86_output_call_insn): Likewise.

	* config/i386/i386.c (ix86_va_start): Likewise for local "seq".
	(ix86_get_drap_rtx): Likewise for locals "seq", "insn".
	(ix86_output_function_epilogue): Likewise for locals "insn",
	"deleted_debug_label".
	(legitimize_tls_address): Likewise for local "insn".
	(get_some_local_dynamic_name): Likewise.
	(increase_distance): Likewise for params "prev", "next".
	(distance_non_agu_define_in_bb): Likewise for params "insn",
	"start" and locals "prev", "next".
	(distance_non_agu_define): Likewise for param "insn".
	(distance_agu_use_in_bb): Likewise for params "insn", "start" and
	locals "next", "prev".
	(distance_agu_use): Likewise for param "insn".
	(ix86_lea_outperforms): Likewise.
	(ix86_ok_to_clobber_flags): Likewise.
	(ix86_avoid_lea_for_add): Likewise.
	(ix86_use_lea_for_mov): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(find_nearest_reg_def): Likewise, also for locals "prev", "start".
	(ix86_split_lea_for_addr): Likewise for param "insn".
	(ix86_lea_for_add_ok): Likewise for param "insn".
	(ix86_expand_carry_flag_compare): Likewise for local
	"compare_seq".
	(ix86_expand_int_movcc): Likewise.
	(ix86_output_call_insn): Likewise for param "insn".
	(ix86_output_call_insn): Likewise for local "i".
	(x86_output_mi_thunk): Introduce local "insn", using it in place
	of "tmp" when dealing with insns.
	(ix86_avoid_jump_mispredicts): Likewise for locals "insn",
	"start".
	(ix86_pad_returns): Likewise for locals "ret", "prev".
	(ix86_count_insn_bb): Likewise for local "insn".
	(ix86_pad_short_function): Likewise for locals "ret", "insn".
	(ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
	(ix86_vector_duplicate_value): Likewise for local "insn", "seq".
	(expand_vec_perm_interleave2): Likewise for local "seq".
	(expand_vec_perm_vperm2f128_vblend): Likewise.
	(ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
	call to for_each_rtx with for_each_rtx_in_insn.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
	"label" from rtx to rtx_code_label *.
	(ix86_expand_prologue): Likewise.
	(ix86_expand_split_stack_prologue): Likewise for locals "label",
	"varargs_label".
	(ix86_split_idivmod): Likewise for locals "end_label" and
	"qimode_label".
	(ix86_expand_branch): Likewise for local "label2".
	(ix86_expand_aligntest): Likewise for return type and local "label".
	(expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
	"top_label".
	(expand_movmem_epilogue): Likewise for the various locals named
	"label".
	(expand_setmem_epilogue): Likewise.
	(expand_small_movmem_or_setmem): Likewise for local "label".
	(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
	Strengthen param "done_label" from rtx * to rtx_code_label **.
	Strengthen locals "loop_label" and "label" from rtx to
	rtx_code_label *.
	(expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
	Likewise for locals "loop_label", "label".
	(ix86_expand_set_or_movmem): Likewise for locals "label",
	"jump_around_label", "hot_label".
	(ix86_expand_strlensi_unroll_1): Likewise for locals
	"align_2_label", align_3_label", "align_4_label", "end_0_label",
	"end_2_label".
	(x86_emit_floatuns): Likewise for locals "neglab", "donelab".
	(void ix86_emit_i387_log1p): Likewise for locals "label1",
	"label2", "jump_label".
	(ix86_expand_sse_compare_and_jump): Likewise for return type and
	local "label".
	(ix86_expand_lfloorceil): Likewise for local "label".
	(ix86_expand_rint): Likewise.
	(ix86_expand_floorceildf_32): Likewise.
	(ix86_expand_floorceil): Likewise.
	(ix86_expand_rounddf_32): Likewise.
	(ix86_expand_trunc): Likewise.
	(ix86_expand_truncdf_32): Likewise.
	(ix86_expand_round): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
	first param from rtx to rtx_insn *.
	(h8300_insn_length_from_table): Likewise.
	* config/h8300/h8300.c (F): Likewise for return type and param
	"x".
	(Fpa): Add a checked cast to rtx_insn *.
	(h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
	rtx_insn *.
	(final_prescan_insn): Likewise for param "insn".
	(h8300_binary_length): Likewise.
	(h8300_insn_length_from_table): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
	Strengthen first param "insn" from rtx to rtx_insn *.

	* config/epiphany/epiphany.c (epiphany_final_prescan_insn):
	Likewise.
	(frame_insn): Likewise for return type.  Introduce local "insn"
	for use in place of local "x" for use as an rtx_insn *.
	(frame_move_insn): Strengthen return type from rtx to rtx_insn *.
	(epiphany_expand_prologue): Likewise for local "insn".
	* config/epiphany/mode-switch-use.c (insert_uses): Likewise.
	* config/epiphany/resolve-sw-modes.c
	(pass_resolve_sw_modes::execute): Likewise for locals "insn" and
	"seq".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
	param from rtx to rtx_insn *.
	(c6x_final_prescan_insn): Likewise for first param.

	* config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
	(c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
	(c6x_expand_compare): Strengthen local "insns" from rtx to
	rtx_insn *.
	(c6x_get_unit_specifier): Likewise for param "insn".
	(c6x_print_unit_specifier_field): Likewise.
	(c6x_final_prescan_insn): Likewise.
	(emit_add_sp_const): Likewise for local "insn".
	(c6x_expand_prologue): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
	param 1 from rtx to rtx_insn *.
	* config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
	the various locals named "insn".
	(expand_epilogue_reg_restore): Likewise.
	(frame_related_constant_load): Likewise.
	(add_to_reg): Likewise.
	(emit_link_insn): Likewise.
	(do_link): Likewise.
	(expand_interrupt_handler_prologue): Likewise.
	(branch_dest): Likewise for param "branch".
	(asm_conditional_branch): Likewise for param "insn".
	(gen_one_bundle): Likewise for elements of param "slot" and local
	"t".
	(bfin_gen_bundles): Likewise for locals "insn", "next" and
	elements of local "slot".
	(reorder_var_tracking_notes): Likewise for locals "insn", "next",
	"queue", "next_queue", "prev".
	(workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
	(add_sched_insns_for_speculation): Likewise for local "insn".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/avr/avr-protos.h (output_movqi): Strengthen first param
	from rtx to rtx_insn *.
	(output_movhi): Likewise.
	(output_movsisf): Likewise.
	(avr_out_tstsi): Likewise.
	(avr_out_tsthi): Likewise.
	(avr_out_tstpsi): Likewise.
	(avr_out_compare): Likewise.
	(avr_out_compare64): Likewise.
	(avr_out_movpsi): Likewise.
	(ashlqi3_out): Likewise.
	(ashlhi3_out): Likewise.
	(ashlsi3_out): Likewise.
	(ashrqi3_out): Likewise.
	(ashrhi3_out): Likewise.
	(ashrsi3_out): Likewise.
	(lshrqi3_out): Likewise.
	(lshrhi3_out): Likewise.
	(lshrsi3_out): Likewise.
	(avr_out_ashlpsi3): Likewise.
	(avr_out_ashrpsi3): Likewise.
	(avr_out_lshrpsi3): Likewise.
	(avr_out_fract): Likewise.
	(avr_out_sbxx_branch): Likewise.
	(avr_out_round): Likewise.
	(avr_out_xload): Likewise.
	(avr_out_movmem): Likewise.
	(adjust_insn_length): Likewise.
	(avr_out_lpm): Likewise.
	(reg_unused_after): Likewise.
	(_reg_unused_after): Likewise.
	(avr_jump_mode): Likewise for second param.
	(jump_over_one_insn): Likewise for first param.
	(avr_final_prescan_insn): Likewise.
	(out_shift_with_cnt): Likewise for second param.

	* config/avr/avr.c (get_sequence_length): Likewise for param
	"insns" and local "insn".
	(emit_push_byte): Likewise for local "insn".
	(emit_push_sfr): Likewise.
	(avr_prologue_setup_frame): Likewise for locals "insn",
	"fp_plus_insns", "sp_plus_insns".
	(avr_expand_epilogue): Likewise for local "fp_plus_insns",
	"sp_plus_insns".
	(avr_jump_mode): Likewise for param "insn".
	(avr_final_prescan_insn): Likewise.
	(avr_find_unused_d_reg): Likewise.
	(avr_out_lpm_no_lpmx): Likewise.
	(avr_out_lpm): Likewise.
	(avr_out_xload): Likewise.
	(output_movqi): Likewise.
	(output_movhi): Likewise.
	(out_movqi_r_mr): Likewise.
	(out_movhi_r_mr): Likewise.
	(out_movsi_r_mr): Likewise.
	(out_movsi_mr_r): Likewise.
	(output_movsisf): Likewise.
	(avr_out_load_psi): Likewise.
	(avr_out_store_psi): Likewise.
	(avr_out_movpsi): Likewise.
	(out_movqi_mr_r): Likewise.
	(avr_out_movhi_mr_r_xmega): Likewise.
	(out_movhi_mr_r): Likewise.
	(compare_condition): Likewise for param "insn" and local "next".
	(compare_sign_p): Likewise for param "insn".
	(compare_diff_p): Likewise.
	(compare_eq_p): Likewise.
	(avr_out_compare): Likewise.
	(avr_out_compare64): Likewise.
	(avr_out_tsthi): Likewise.
	(avr_out_tstpsi): Likewise.
	(avr_out_tstsi): Likewise.
	(out_shift_with_cnt): Likewise.
	(ashlqi3_out): Likewise.
	(ashlhi3_out): Likewise.
	(avr_out_ashlpsi3): Likewise.
	(ashlsi3_out): Likewise.
	(ashrqi3_out): Likewise.
	(ashrhi3_out): Likewise.
	(avr_out_ashrpsi3): Likewise.
	(ashrsi3_out): Likewise.
	(lshrqi3_out): Likewise.
	(lshrhi3_out): Likewise.
	(avr_out_lshrpsi3): Likewise.
	(lshrsi3_out): Likewise.
	(avr_out_fract): Likewise.
	(avr_out_round): Likewise.
	(avr_adjust_insn_length): Likewise.
	(reg_unused_after): Likewise.
	(_reg_unused_after): Likewise.
	(avr_compare_pattern): Likewise.
	(avr_reorg_remove_redundant_compare): Likewise for param "insn1"
	and locals "branch1", "branch2", "insn2", "jump".
	(avr_reorg): Likewise for local "insn".
	(avr_2word_insn_p): Likewise for param "insn".
	(jump_over_one_insn_p): Likewise.
	(avr_out_sbxx_branch): Likewise.
	(avr_out_movmem): Likewise.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
	param from rtx to rtx_insn *.
	(thumb1_final_prescan_insn): Likewise.
	(thumb2_final_prescan_insn): Likewise.

	* config/arm/arm.c (emit_set_insn): Strengthen return type from
	rtx to rtx_insn *.
	(struct minipool_node): Likewise for field "insn".
	(dump_minipool): Likewise for param "scan".
	(create_fix_barrier): Likewise for local "from".  Strengthen local
	"label" from rtx to rtx_code_label *.
	(push_minipool_barrier): Strengthen param "insn" from rtx to
	rtx_insn *.
	(push_minipool_fix): Likewise.
	(note_invalid_constants): Likewise.
	(thumb2_reorg): Likewise for local "insn".
	(arm_reorg): Likewise.
	(thumb2_final_prescan_insn): Likewise for param
	"insn" and local "first_insn".
	(arm_final_prescan_insn): Likewise for param "insn" and locals
	"start_insn", "this_insn".
	(arm_debugger_arg_offset): Likewise for param "insn".
	(thumb1_emit_multi_reg_push): Likewise for return type and local
	"insn".
	(thumb1_final_prescan_insn): Likewise for param "insn".
	(thumb_far_jump_used_p): Likewise for local "insn".
	(thumb1_expand_prologue): Likewise.
	(arm_expand_epilogue_apcs_frame): Likewise.
	(arm_expand_epilogue): Likewise for locals "insn", "tmp".
	(arm_split_compare_and_swap): Strengthen locals "label1", "label2"
	from rtx to rtx_code_label *.
	(arm_split_atomic_op): Likewise for local "label".
	(arm_emit_coreregs_64bit_shift): Likewise for local "done_label".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
	first param from rtx to rtx_insn *.
	(arc_verify_short): Likewise.
	(arc_short_long): Likewise.
	(arc_need_delay): Likewise.

	* config/arc/arc.c (struct arc_ccfsm): Likewise for field
	"target_insn".
	(arc_ccfsm_advance): Likewise for param "insn" and locals
	"start_insn", "this_insn".
	(arc_ccfsm_record_condition): Likewise for local "seq_insn".
	(arc_ccfsm_post_advance): Likewise for param "insn".
	(arc_next_active_insn): Likewise for return type and param "insn".
	Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
	(arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
	(output_short_suffix): Likewise for local "insn".
	(arc_final_prescan_insn): Likewise for param "insn".  Remove
	now-redundant checked cast.
	(arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
	"lp_simple", "next", "mov", "scan", "link_insn" from rtx to
	rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
	for use where lc_set became an insn.
	(arc_adjust_insn_length): Strengthen locals "prev", "succ" from
	rtx to rtx_insn *.
	(arc_get_insn_variants): Likewise for local "prev".
	(arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
	"next".
	(arc_predicate_delay_insns): Likewise for local "insn".
	(arc_pad_return): Likewise for local "prev".  For now, add a
	checked cast when extracting the insn from "final_sequence".
	(arc_short_long): Likewise for param "insn".
	(arc_need_delay): Likewise for param "insn" and local "next".
	(arc_label_align): Likewise for locals "prev", "next".

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
	"insn" from rtx to rtx_insn *.
	(alpha_gp_save_rtx): Likewise for local "seq".
	(alpha_instantiate_decls): Likewise for local "top".
	(get_some_local_dynamic_name): Likewise for local "insn".
	(alpha_does_function_need_gp): Likewise.
	(set_frame_related_p): Likewise for return type and for locals
	"seq" and "insn".
	(emit_frame_store_1): Likewise for local "insn".
	(alpha_expand_prologue): Likewise for locals "insn", "seq".
	(alpha_end_function): Likewise for local "insn".
	(alpha_output_mi_thunk_osf): Likewise.
	(alphaev4_insn_pipe): Likewise for param "insn".
	(alphaev5_insn_pipe): Likewise.
	(alphaev4_next_group): Likewise for return type and param 1
	"insn".
	(alphaev5_next_group): Likewise.
	(alpha_align_insns_1): Likewise for return type and param 1 of
	callback param "next_group", and for locals "i", "next", "prev",
	"where", "where2", "insn".

2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>

	* tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
	rather than modifying the stmt.

2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
	cgraph_state conversion.

2014-08-25  David Malcolm  <dmalcolm@redhat.com>

	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
	Strengthen local "insns" from rtx to rtx_insn *.
	(aarch64_set_frame_expr): Likewise for local "insn".
	(aarch64_save_or_restore_fprs): Likewise.
	(aarch64_save_or_restore_callee_save_registers): Likewise.
	(aarch64_expand_prologue): Likewise.
	(aarch64_expand_epilogue): Likewise.
	(aarch64_output_mi_thunk): Likewise.
	(aarch64_split_compare_and_swap): Strengthen locals "label1" and
	"label2" from rtx to rtx_code_label *.
	(aarch64_split_atomic_op): Likewise for local "label".

2014-08-25  Martin Liska  <mliska@suse.cz>

	* cgraph.h (symtab_node):
	(bool needed_p (void)): created from decide_is_symbol_needed
	(bool referred_to_p (void)): created from referred_to_p
	(static cgraph_node *get_for_asmname (tree asmname)):
	created from symtab_node_for_asm
	* cgraph.h (cgraph_node):
	(void assemble_thunks_and_aliases (void)):
	created from assemble_thunks_and_aliases
	(void expand (void)): created from expand_function
	(static void finalize_function (tree, bool)):
	created from cgraph_finalize_function
	(static cgraph_local_info *local_info (tree decl)):
	created from cgraph_local_info
	(static cgraph_global_info *global_info (tree)):
	created from cgraph_global_info
	(static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
	* cgraph.h (varpool_node):
	(static void add (tree decl): created from varpool_add_new_variable
	* cgraph.h (cgraph_edge):
	void remove (void);
	(void remove_caller (void)): created from cgraph_edge_remove_caller
	(void remove_callee (void)): created from cgraph_edge_remove_callee
	(void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
	created from cgraph_set_call_stmt
	(void redirect_callee (cgraph_node *n)): created from
	cgraph_redirect_edge_callee
	(cgraph_edge *make_direct (cgraph_node *callee)): created from
	cgraph_make_edge_direct
	(cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
	gimple redirect_call_stmt_to_callee (void)): created from
	cgraph_turn_edge_to_speculative
	(void speculative_call_info (cgraph_edge *&direct,
	cgraph_edge *&indirect, ipa_ref *&reference)): created from
	cgraph_speculative_call_info
	(cgraph_edge * clone (cgraph_node *n, gimple call_stmt,
	unsigned stmt_uid, gcov_type count_scale,
	int freq_scale, bool update_original)): created from cgraph_clone_edge
	(cgraph_edge *resolve_speculation (tree callee_decl)):
	created from cgraph_resolve_speculation
	(bool cannot_lead_to_return_p (void)): created from
	cannot_lead_to_return_p
	(bool recursive_p (void)): created from cgraph_edge_recursive_p
	(bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
	(static unsigned int rebuild_edges (void)): created from
	rebuild_cgraph_edges
	(static void rebuild_references (void)): created from
	cgraph_rebuild_references
	* cgraph.h (symbol_table):
	(create_reference): renamed from add_reference
	(maybe_create_reference): renamed from maybe_add_reference
	(void register_symbol (symtab_node *node)): new function
	(void clear_asm_symbols (void)): new function
	(void unregister (symtab_node *node)): new function
	(void release_symbol (cgraph_node *node, int uid)): new function
	(cgraph_node * allocate_cgraph_symbol (void)): new function
	(void initialize (void)): created from cgraph_init
	(symtab_node *first_symbol (void)):new function
	(asm_node *first_asm_symbol (void)):new function
	(symtab_node *first_defined_symbol (void)):new function
	(varpool_node *first_variable (void)):new function
	(varpool_node *next_variable (varpool_node *node)):new function
	(varpool_node *first_static_initializer (void)):new function
	(varpool_node *next_static_initializer (varpool_node *node)):new
	function
	(varpool_node *first_defined_variable (void)):new function
	(varpool_node *next_defined_variable (varpool_node *node)):new function
	(cgraph_node *first_defined_function (void)):new function
	(cgraph_node *next_defined_function (cgraph_node *node)):new function
	(cgraph_node *first_function (void)):new function
	(cgraph_node *next_function (cgraph_node *node)):new function
	(cgraph_node *first_function_with_gimple_body (void)):new function
	(asm_node *finalize_toplevel_asm (tree asm_str)): created from
	add_asm_node
	(bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
	created from symtab_remove_unreachable_nodes
	(void remove_unreferenced_decls (void)): created from
	varpool_remove_unreferenced_decls
	(void process_new_functions (void)): created from
	cgraph_process_new_functions
	(void process_same_body_aliases (void)): created from
	cgraph_process_same_body_aliases
	(bool output_variables (void)): created from
	varpool_node::output_variables
	(void output_asm_statements (void)): created from output_asm_statements
	(void finalize_compilation_unit (void)): created from
	finalize_compilation_unit
	(void compile (void)): created from compile
	(void output_weakrefs (void)): created from output_weakrefs
	(cgraph_node *create_empty (void)): created from
	cgraph_node::create_empty
	(cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee,
	gimple call_stmt, gcov_type count, int freq,
	bool indir_unknown_callee)): created from cgraph_node::create_edge
	(void free_edge (cgraph_edge *e)): created from cgraph_free_edge
	(cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
	created from cgraph_next_function_with_gimple_body
	(void remove_edge_removal_hook (cgraph_edge_hook_list *)):
	created from cgraph_remove_edge_removal_hook
	(cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook,
	void *)): created from cgraph_add_node_removal_hook
	(void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
	created from cgraph_remove_node_removal_hook
	(varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook,
	void *)): created from varpool_add_node_removal_hook
	(void remove_varpool_removal_hook (varpool_node_hook_list *)):
	created from varpool_remove_node_removal_hook
	(cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook,
	void *)): created from cgraph_add_function_insertion_hook
	(void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
	created from cgraph_remove_function_insertion_hook
	(varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook,
	void *)): created from varpool_add_variable_insertion_hook
	(void remove_varpool_insertion_hook (varpool_node_hook_list *)):
	  created from varpool_remove_variable_insertion_hook
	(cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook,
	void *)): created from cgraph_add_edge_duplication_hook
	(void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
	created from cgraph_remove_edge_duplication_hook
	(cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook,
	void *)): created from cgraph_add_node_duplication_hook
	(void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
	created from cgraph_remove_node_duplication_hook
	(void call_edge_removal_hooks (cgraph_edge *e)):
	created from cgraph_call_edge_removal_hooks
	(void call_cgraph_insertion_hooks (cgraph_node *node)):
	created from call_function_insertion_hooks
	(void call_cgraph_removal_hooks (cgraph_node *node)):
	created from cgraph_call_node_removal_hooks
	(void call_cgraph_duplication_hooks (cgraph_node *node,
	cgraph_node *node2)): created from cgraph_node::call_duplication_hooks
	(void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
	created from cgraph_call_edge_duplication_hooks
	(void call_varpool_removal_hooks (varpool_node *node)):
	created from varpool_call_node_removal_hooks
	(void call_varpool_insertion_hooks (varpool_node *node)):
	created from varpool_call_variable_insertion_hooks
	(void insert_to_assembler_name_hash (symtab_node *node,
	bool with_clones)): created from insert_to_assembler_name_hash
	(void unlink_from_assembler_name_hash (symtab_node *node,
	bool with_clones)): created from unlink_from_assembler_name_hash
	(void symtab_prevail_in_asm_name_hash (symtab_node *node)):
	created from symtab_prevail_in_asm_name_hash
	(void symtab_initialize_asm_name_hash (void)):
	created from symtab_initialize_asm_name_hash
	(void change_decl_assembler_name (tree decl, tree name)):
	created from change_decl_assembler_name
	(void materialize_all_clones (void)): created from
	cgraph_materialize_all_clones
	(static hashval_t decl_assembler_name_hash (const_tree asmname)):
	created from decl_assembler_name_hash
	(static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
	created from decl_assembler_name_equal
	(static hashval_t hash_node_by_assembler_name (const void *p)):
	created from hash_node_by_assembler_name
	(static int eq_assembler_name (const void *p1, const void *p2)):
	created from eq_assembler_name

2014-08-25  Marek Polacek  <polacek@redhat.com>

	* config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.

2014-08-25  Petr Murzin  <petr.murzin@intel.com>

	* config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
	(*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
	SWI1248_AVX512BW mode iterator.

2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/62111
	* config/sh/predicates.md (general_extend_operand): Disable
	TRUNCATE before reload completes.

2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (Optimize Options): Fix markup in two cases.

2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/61996
	* config/sh/sh.opt (musermode): Allow negative form.
	* config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
	targets that don't support it.
	* doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
	Document -mno-usermode option.

2014-08-24  Kito Cheng  <kito@0xlab.org>

	* system.h (CALLER_SAVE_PROFITABLE): Poison.
	* regs.h (CALLER_SAVE_PROFITABLE): Remove.
	* doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
	* doc/tm.texi: Regenerate.

2014-08-24  Kito Cheng  <kito@0xlab.org>

	* ira.c: Fix typo in comment.

2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>

	* doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
	Deprecate c++1y. Change language to reflect greater confidence in C++14.

2014-08-23  John David Anglin  <danglin@gcc.gnu.org>

	PR target/62038
	* config/pa/pa.c (pa_output_function_epilogue): Don't set
	last_address when the current function is a thunk.
	(pa_asm_output_mi_thunk): When we don't have named sections or they
	are not being used, check that thunk can reach the stub table with a
	short branch.

2014-08-23  David Malcolm  <dmalcolm@redhat.com>

	* web.c (union_match_dups): Strengthen param "insn" from rtx to
	rtx_insn *.
	(pass_web::execute): Likewise for local "insn".

2014-08-23  David Malcolm  <dmalcolm@redhat.com>

	* var-tracking.c (struct micro_operation_def): Strengthen field
	"insn" from rtx to rtx_insn *.
	(struct emit_note_data_def): Likewise.
	(insn_stack_adjust_offset_pre_post): Likewise for param "insn".
	(vt_stack_adjustments): Likewise for local "insn".
	(adjust_insn): Likewise for param "insn".
	(val_store): Likewise.
	(val_resolve): Likewise.
	(struct count_use_info): Likewise for field "insn".
	(log_op_type): Likewise for param "insn".
	(reverse_op): Likewise.
	(prepare_call_arguments): Likewise.
	(add_with_sets):  The initial param takes an insn, but we can't
	yet strengthen it from rtx to rtx_insn * since it's used as a
	cselib_record_sets_hook callback.  For now rename initial param
	from "insn" to "uncast_insn", and introduce a local "insn" of
	the stronger rtx_insn * type, with a checked cast.
	(compute_bb_dataflow): Strengthen local "insn" from rtx to
	rtx_insn *.
	(emit_note_insn_var_location): Likewise.
	(emit_notes_for_changes): Likewise.
	(emit_notes_for_differences): Likewise.
	(next_non_note_insn_var_location): Likewise for return type and
	for param "insn".
	(emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
	(vt_initialize): Likewise for local "insn".
	(delete_debug_insns): Likewise for locals "insn" and "next".

2014-08-23  David Malcolm  <dmalcolm@redhat.com>

	* varasm.c (mark_constants): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mark_constant_pool): Likewise for local "insn".

2014-08-23  David Malcolm  <dmalcolm@redhat.com>

	* valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
	rtx to rtx_insn *.
	(dead_debug_promote_uses): Likewise.
	(dead_debug_insert_temp): Likewise.

2014-08-23  David Malcolm  <dmalcolm@redhat.com>

	* store-motion.c (store_killed_in_insn): Strengthen param "insn"
	from const_rtx to const rtx_insn *.
	(store_killed_after): Likewise.  Strengthen locals "last", "act"
	from rtx to rtx_insn *.
	(store_killed_before): Strengthen param "insn" from const_rtx to
	const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
	(find_moveable_store): Strengthen param "insn" from rtx to
	rtx_insn *.
	(compute_store_table): Likewise for local "insn".
	(insert_insn_start_basic_block): Likewise for param "insn" and
	locals "prev", "before", "insn".
	(insert_store): For now, add a checked cast to rtx_insn * on the
	result of gen_move_insn.
	(remove_reachable_equiv_notes): Strengthen local "insn" from rtx
	to rtx_insn *.
	(replace_store_insn): Likewise.  For now, add a checked cast to
	rtx_insn * on the result of gen_move_insn.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* stmt.c (expand_case): Strengthen local "before_case" from rtx to
	rtx_insn *.
	(expand_sjlj_dispatch_table): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
	"insn" from rtx to rtx_insn *.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
	"insn" from rtx to rtx_insn *.
	(dup_block_and_redirect): Likewise for param 3 "before".

	* shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
	from rtx to rtx_insn *.
	(move_insn_for_shrink_wrap): Likewise.
	(prepare_shrink_wrap): Likewise for locals "insn", "curr".
	(dup_block_and_redirect): Likewise for param "before" and local
	"insn".
	(try_shrink_wrapping): Likewise for locals "insn", "insert_point",
	"end".
	(convert_to_simple_return): Likewise for local "start".

	* config/i386/i386.c (ix86_finalize_stack_realign_flags):
	Strengthen local "insn" from rtx to rtx_insn *, for use when
	invoking requires_stack_frame_p.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
	rtx_insn *.
	(speculate_expr): Likewise for locals "orig_insn_rtx",
	"spec_insn_rtx".
	(eq_transformed_insns): Likewise for locals "i1", "i2".
	(check_for_new_jump): Likewise for return type and local "end".
	(find_new_jump): Likewise for return type and local "jump".
	(sel_split_edge): Likewise for local "jump".
	(sel_create_recovery_block): Likewise.
	(sel_redirect_edge_and_branch_force): Likewise.
	(sel_redirect_edge_and_branch): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched.c (substitute_reg_in_expr): Strengthen local
	"new_insn" from rtx to rtx_insn *.
	(create_insn_rtx_with_rhs): Likewise for return type and for local
	"insn_rtx".
	(create_insn_rtx_with_lhs): Likewise.
	(create_speculation_check): Likewise for local "insn_rtx".
	(implicit_clobber_conflict_p): Likewise for local "insn".
	(get_expr_cost): Likewise.
	(emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
	(move_cond_jump): Likewise for locals "next", "prev", "link",
	"head", "from", "to".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
	"next" from rtx to rtx_insn *.
	(find_conditional_protection): Likewise for local "next".
	(is_conditionally_protected): Likewise for local "insn1".
	(is_pfree): Likewise for locals "insn1", "insn2".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* sched-int.h (schedule_ebb): Strengthen params "head", "tail"
	from rtx to rtx_insn *.

	* sched-ebb.c (earliest_block_with_similiar_load): Strengthen
	locals "insn1", "insn2" from rtx to rtx_insn *.
	(add_deps_for_risky_insns): Likewise for params "head", "tail" and
	locals "insn", "prev", "last_jump", "next_tail".
	(schedule_ebb): Likewise for params "head", "tail".
	(schedule_ebbs): Likewise for locals "tail", "head".

	* config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
	to rtx_insn on "last_insn" in one of the invocations of
	schedule_ebb.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
	"elem", "insn" from rtx to rtx_insn *.
	(change_spec_dep_to_hard): Likewise.
	(get_back_and_forw_lists): Likewise for local "con".
	(sd_add_dep): Likewise for locals "elem", "insn".
	(sd_resolve_dep): Likewise for locals "pro", "con".
	(sd_unresolve_dep): Likewise.
	(sd_delete_dep): Likewise.
	(chain_to_prev_insn): Likewise for local "pro".
	(find_inc): Likewise for locals "pro", "con".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
	to rtx_insn *.
	(reg_set_between_p): Strengthen local "insn" from const_rtx to
	const rtx_insn *.
	(modified_between_p): Strengthen local "insn" from rtx to
	rtx_insn *.
	(remove_reg_equal_equiv_notes_for_regno): Likewise.
	(keep_with_call_p): Strengthen local "i2" from const_rtx to
	const rtx_insn *.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* resource.c (next_insn_no_annul): Strengthen local "next" from
	rtx to rtx_insn *.
	(mark_referenced_resources): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* reload.h (struct insn_chain): Strengthen field "insn" from rtx
	to rtx_insn *.
	(find_reloads): Likewise for param 1.
	(subst_reloads): Likewise for sole param.
	(find_equiv_reg): Likwise for param 2.
	(regno_clobbered_p): Likwise for param 2.
	(reload): Likewise for param 1.

	* caller-save.c (save_call_clobbered_regs): Strengthen local
	"insn" from rtx to rtx_insn *.
	(insert_one_insn): Likewise for local "insn".

	* reload.c (this_insn): Likewise for this global.
	(find_reloads): Likewise for param "insn".
	(find_reloads_toplev): Likewise.
	(find_reloads_address): Likewise.
	(subst_reg_equivs): Likewise.
	(update_auto_inc_notes): Likewise.
	(find_reloads_address_1): Likewise.
	(find_reloads_subreg_address): Likewise.
	(subst_reloads): Likewise.
	(find_equiv_reg): Likewise, also for local "p".
	(regno_clobbered_p): Likewise for param "insn".

	* reload1.c (reg_reloaded_insn): Likewise for the elements of this
	array.
	(spill_reg_store): Likewise for the elements of this array.
	(remove_init_insns): Likewise for local "equiv_insn".
	(will_delete_init_insn_p): Likewise for param "insn".
	(reload): Likewise for param ""first" and local "insn".
	(calculate_needs_all_insns): Strengthen local "insn" from rtx to
	rtx_insn *.
	(calculate_elim_costs_all_insns): Likewise.
	(delete_caller_save_insns): Likewise.
	(spill_failure): Likewise for param "insn".
	(delete_dead_insn): Likewise.
	(set_label_offsets): Likewise.
	(eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
	"prev_insn".
	(elimination_costs_in_insn): Likewise for param "insn".
	(set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
	when referring to an insn.
	(set_initial_label_offsets): Likewise.
	(set_offsets_for_label): Strengthen param "insn" from rtx to
	rtx_insn *.
	(init_eliminable_invariants): Likewise for param "first" and local
	"insn".
	(fixup_eh_region_note): Likewise for param "insn".
	(reload_as_needed): Likewise for locals "prev", "insn",
	"old_next", "old_prev", "next".
	(gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
	"last".
	(reload_inheritance_insn): Strengthen elements of this array from
	rtx to rtx_insn *.
	(failed_reload): Likewise for param "insn".
	(choose_reload_regs): Likewise for local "insn".  Replace use of
	NULL_RTX with NULL when referring to an insn.
	(input_reload_insns): Strengthen elements of this array from rtx
	to rtx_insn *.
	(other_input_address_reload_insns): Likewise for this global.
	(other_input_reload_insns): Likewise for this global.
	(input_address_reload_insns): Likwise for the elements of this
	array.
	(inpaddr_address_reload_insns): Likwise for the elements of this
	array.
	(output_reload_insns): Likewise for the elements of this array.
	(output_address_reload_insns): Likewise for the elements of this
	array.
	(outaddr_address_reload_insns): Likewise for the elements of this
	array.
	(operand_reload_insns): Likewise for this global.
	(other_operand_reload_insns): Likewise for this global.
	(other_output_reload_insns): Likewise for the elements of this
	array.
	(new_spill_reg_store): Likewise for the elements of this
	array.
	(emit_input_reload_insns): Likewise for locals "insn", "temp".
	Strengthen local "where" from rtx * to rtx_insn **.
	(emit_output_reload_insns): Strengthen locals "insn", "p", "next"
	from rtx to rtx_insn *.
	(do_input_reload): Likewise for local "insn".
	(do_output_reload): Likewise for local "insn".
	(emit_reload_insns): Likewise for locals "insn" and "store_insn".
	(emit_insn_if_valid_for_reload): Likewise for return type and local
	"last".  Add checked cast to rtx_insn when returning "insn" since
	this has been through emit_insn.
	(gen_reload): Strengthen return type and locals "last", "insn", "set"
	from rtx to rtx_insn *.  Add checked cast to rtx_insn when
	returning "insn" since it's been through
	emit_insn_if_valid_for_reload at this point.
	(delete_output_reload): Strengthen param "insn" and locals
	"output_reload_insn", "i2" from rtx to rtx_insn *.
	(delete_address_reloads): Likewise for params "dead_insn",
	"current_insn" and locals "prev", "next".
	(delete_address_reloads_1): Likewise for params "dead_insn",
	"current_insn" and locals "prev", "i2".
	(inc_for_reload): Likewise for locals "last", "add_insn".
	(add_auto_inc_notes): Strengthen param "insn" from rtx to
	rtx_insn *.

	* config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
	param of this duplicate of the prototype from reload.h

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
	rtx to rtx_insn *.
	(regstat_bb_compute_calls_crossed): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* regrename.c (create_new_chain): Strengthen param "insn" from rtx
	to rtx_insn *.
	(init_rename_info): Replace use of NULL_RTX with NULL when dealing
	with an insn.
	(regrename_analyze): Strengthen local "insn" from rtx to
	rtx_insn *.
	(scan_rtx_reg): Likewise for param "insn".
	(scan_rtx_address): Likewise.
	(scan_rtx): Likewise.
	(restore_operands): Likewise.
	(record_out_operands): Likewise.
	(build_def_use): Likewise for local "insn".  Replace use of
	NULL_RTX with NULL when dealing with an insn.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
	* reginfo.c (reg_scan): Likewise, also for local "insn".
	(reg_scan_mark_refs): Likewise for param "insn".
	(init_subregs_of_mode): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* regcprop.c (struct queued_debug_insn_change): Strengthen field
	"insn" from rtx to rtx_insn *.
	(replace_oldest_value_reg): Likewise for param "insn".
	(replace_oldest_value_addr): Likewise.
	(replace_oldest_value_mem): Likewise.
	(apply_debug_insn_changes): Likewise for local "last_insn".
	(copyprop_hardreg_forward_1): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* reg-stack.c (next_flags_user): Strengthen return type and param
	"insn" from rtx to rtx_insn *.
	(straighten_stack): Likewise for param "insn".
	(check_asm_stack_operands): Likewise.
	(remove_regno_note): Likewise.
	(emit_pop_insn): Likewise for return type, param "insn", local
	"pop_insn".
	(emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
	"limit" from rtx to rtx_insn *.
	(swap_to_top): Likewise for param "insn".
	(move_for_stack_reg): Likewise.
	(move_nan_for_stack_reg): Likewise.
	(swap_rtx_condition): Likewise.
	(compare_for_stack_reg): Likewise.
	(subst_all_stack_regs_in_debug_insn): Likewise.
	(subst_stack_regs_pat): Likewise, and local "insn2".
	(subst_asm_stack_regs): Strengthen param "insn" from rtx to
	rtx_insn *.
	(subst_stack_regs): Likewise.
	(change_stack): Likewise.
	(convert_regs_1): Likewise for locals "insn", "next".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* ree.c (struct ext_cand): Strengthen field "insn" from rtx to
	rtx_insn *.
	(combine_set_extension): Likewise for param "curr_insn".
	(transform_ifelse): Likewise for param "def_insn".
	(get_defs): Likewise for param "def_insn".  Strengthen param "dest"
	from vec<rtx> * to vec<rtx_insn *> *.
	(is_cond_copy_insn): Likewise for param "insn".
	(struct ext_state): Strengthen the four vec fields from vec<rtx>
	to vec<rtx_insn *>.
	(make_defs_and_copies_lists): Strengthen param "extend_insn" and
	local "def_insn" from rtx to rtx_insn *.
	(get_sub_rtx): Likewise for param "def_insn".
	(merge_def_and_ext): Likewise.
	(combine_reaching_defs): Likewise.
	(add_removable_extension): Likewise for param "insn".
	(find_removable_extensions): Likewise for local "insn".
	(find_and_remove_re): Likewise for locals "curr_insn" and
	"def_insn".  Strengthen locals "reinsn_del_list" and
	"reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* recog.c (split_insn): Strengthen param "insn" and locals
	"first", "last" from rtx to rtx_insn *.
	(split_all_insns): Likewise for locals "insn", "next".
	(split_all_insns_noflow): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
	const rtx_insn *.
	(debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
	(debug_rtx_find): Likewise for param 1 "x".

	* print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
	const_rtx to const rtx_insn *.  Likewise for local "insn".
	(debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
	(debug_rtx_find): Likewise for param 1 "x".
	(print_rtl): Likewise for local "tmp_rtx", adding a checked cast
	from const_rtx to const rtx_insn * within the appropriate cases of
	the switch statement.

	* config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
	Strengthen local "insns" from rtx to rtx_insn * since this is
	passed to a call to debug_rtx_list.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* predict.h (predict_insn_def): Strengthen param "insn" from rtx
	to rtx_insn *.

	* function.c (stack_protect_epilogue): Add checked cast to
	rtx_insn for now when invoking predict_insn_def.

	* predict.c (predict_insn): Strengthen param "insn" from rtx to
	rtx_insn *.
	(predict_insn_def): Likewise.
	(rtl_predict_edge): Likewise for local "last_insn".
	(can_predict_insn_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(combine_predictions_for_insn): Strengthen param "insn" from rtx
	to rtx_insn *.
	(bb_estimate_probability_locally): Likewise for local "last_insn".
	(expensive_function_p): Likewise for local "insn".

	* config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
	local "jmp", since this is used when invoking predict_insn_def.

2014-08-22  Marek Polacek  <polacek@redhat.com>

	PR c++/62199
	* doc/invoke.texi: Update -Wlogical-not-parentheses description.

2014-08-22  Marek Polacek  <polacek@redhat.com>

	PR c/61271
	* ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
	a comparison in parens.
	* lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
	in parens.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
	rtx_insn *.

	* cprop.c (fis_get_condition): Likewise.

	* postreload.c (reload_cse_regs): Likewise for param "first".
	(reload_cse_simplify): Likewise for param "insn".
	(reload_cse_regs_1): Likewise for local "insn".
	(reload_cse_simplify_set): Likewise for param "insn".
	(reload_cse_simplify_operands): Likewise.
	(struct reg_use): Likewise for field "insn".
	(reload_combine_purge_insn_uses): Likewise for param "insn".
	(fixup_debug_insns): Likewise for params "from", "to" and local
	"insn".
	(try_replace_in_use): Likewise for local "use_insn".
	(reload_combine_recognize_const_pattern): Likewise for param
	"insn" and locals "add_moved_after_insn", "use_insn".
	(reload_combine_recognize_pattern): Likewise for param "insn" and
	local "prev".
	(reload_combine): Likewise for locals "insn", "prev".
	(reload_combine_note_use): Likewise for param "insn".
	(move2add_use_add2_insn): Likewise.
	(move2add_use_add3_insn): Likewise.
	(reload_cse_move2add): Likewise, also for local "next".
	(move2add_note_store): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* postreload-gcse.c (struct occr): Strengthen field "insn" from
	rtx to rtx_insn *.
	(struct unoccr): Likewise.
	(struct modifies_mem): Likewise.
	(alloc_mem): Likewise for local "insn".
	(insert_expr_in_table): Likewise for param "insn".
	(dump_expr_hash_table_entry): Likewise for local "insn".
	(oprs_unchanged_p): Likewise for param "insn".
	(load_killed_in_block_p): Likewise for local "setter".
	(record_last_reg_set_info): Likewise for param "insn".
	(record_last_reg_set_info_regno): Likewise.
	(record_last_mem_set_info): Likewise.
	(record_last_set_info): Likewise for local "last_set_insn".
	(record_opr_changes): Likewise for param "insn".
	(hash_scan_set): Likewise.
	(compute_hash_table): Likewise for local "insn".
	(get_avail_load_store_reg): Likewise for param "insn".
	(eliminate_partially_redundant_load): Likewise, also for locals
	"avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
	RTX for insns.
	(eliminate_partially_redundant_loads): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* optabs.c (expand_doubleword_shift): Strengthen local "insn" from
	rtx to rtx_insn *.
	(expand_binop): Likewise for locals "entry_last", "last", "insns"
	(expand_twoval_unop): Likewise for locals entry_last", "last".
	(expand_twoval_binop): Likewise.
	(expand_twoval_binop_libfunc): Likewise for local "insns".
	(widen_leading): Likewise for local "last".
	(expand_doubleword_clz): Likewise for local "seq".  Strengthen
	locals "hi0_label", "after_label" from rtx to rtx_code_label *.
	(widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
	(expand_parity): Likewise for locals "last" and "seq".
	(expand_ffs): Likewise for local "seq".  Strengthen local
	"nonzero_label" from rtx to rtx_code_label *.
	(expand_absneg_bit): Strengthen local "insns" from rtx to
	rtx_insn *.
	(expand_unop_direct): Likewise for local "last".
	(expand_unop): Likewise for locals "last", "insns".
	(expand_abs_nojump): Likewise for local "last".
	(expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
	(expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
	rtx_insn *.
	(expand_copysign_absneg): Strengthen local "label" from rtx to
	rtx_code_label *.
	(expand_copysign_bit): Strengthen local "insns" from rtx to
	rtx_insn *.
	(struct no_conflict_data): Likewise for fields "first", "insn".
	(emit_libcall_block_1): Likewise for param "insns" and locals
	"next", "last", "insn".
	(emit_libcall_block): For now, add a checked cast to rtx_insn *
	on "insns" when invoking emit_libcall_block_1.  Ultimately we
	want to strengthen insns itself.
	(prepare_cmp_insn): Strengthen local "last" from rtx to
	rtx_insn *.
	(emit_cmp_and_jump_insn_1): Likewise for local "insn".
	(prepare_float_lib_cmp): Likewise for local "insns".
	(emit_conditional_move): Likewise for local "last".
	(emit_conditional_add): Likewise.
	(have_sub2_insn): Likewise for local "seq".
	(expand_float): Likewise for local "insns".  Strengthen locals
	"label", "neglabel" from rtx to rtx_code_label *.
	(expand_fix): Likewise for locals "last", "insn", "insns" (to
	rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
	(expand_fixed_convert): Likewise for local "insns" (to
	rtx_insn *).
	(expand_sfix_optab): Likewise for local "last".
	(expand_compare_and_swap_loop): Strengthen local "label" from rtx
	to rtx_code_label *.
	(maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
	from rtx to rtx_insn *.
	(expand_atomic_fetch_op): Likewise for local "insn".
	(maybe_legitimize_operand_same_code): Likewise for local "last".
	(maybe_legitimize_operands): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* modulo-sched.c (struct ps_reg_move_info): Strengthen field
	"insn" from rtx to rtx_insn *.
	(ps_rtl_insn): Likewise for return type.
	(doloop_register_get): Likewise for params "head", "tail" and
	locals "insn", "first_insn_not_to_check".
	(schedule_reg_move): Likewise for local "this_insn".
	(schedule_reg_moves): Add a checked cast to rtx_insn * to result
	of gen_move_insn for now.
	(reset_sched_times): Strengthen local "insn" from rtx to
	rtx_insn *.
	(permute_partial_schedule): Likewise.
	(duplicate_insns_of_cycles): Likewise for local "u_insn".
	(dump_insn_location): Likewise for param "insn".
	(loop_canon_p): Likewise for local "insn".
	(sms_schedule): Likewise.
	(print_partial_schedule): Likewise.
	(ps_has_conflicts): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
	"tailp" from rtx * to rtx_insn **.

	* ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
	from rtx to rtx_insn *.
	* haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
	"tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
	"beg_tail", "end_head", "end_tail", "note", "next", "prev" from
	rtx to rtx_insn *.
	* modulo-sched.c (const_iteration_count): Strengthen return type
	and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
	use of NULL_RTX with NULL when working with insns.
	(loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
	to rtx_insn *.
	(sms_schedule): Likewise.
	* sched-rgn.c (init_ready_list): Likewise, also for locals
	"src_head" and "src_next_tail".
	(compute_block_dependences): Likewise.
	(free_block_dependencies): Likewise.
	(debug_rgn_dependencies): Likewise.
	(free_rgn_deps): Likewise.
	(compute_priorities): Likewise.
	(schedule_region): Likewise.
	* sel-sched.c (find_ebb_boundaries): Likewise.

	* config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
	"insn", "next_tail", "head", "tail" from rtx to rtx_insn *.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
	from rtx to rtx_insn *.
	(new_seginfo): Likewise for param "insn".
	(create_pre_exit): Likewise for locals "last_insn",
	"before_return_copy", "return_copy".
	(optimize_mode_switching): Likewise for locals "insn", "ins_pos",
	"mode_set".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
	from rtx to rtx_insn *.
	(lra_push_insn): Likewise for 1st param.
	(lra_push_insn_and_update_insn_regno_info): Likewise.
	(lra_pop_insn): Likewise for return type.
	(lra_invalidate_insn_data): Likewise for 1st param.
	(lra_set_insn_deleted): Likewise.
	(lra_delete_dead_insn): Likewise.
	(lra_process_new_insns): Likewise for first 3 params.
	(lra_set_insn_recog_data): Likewise for 1st param.
	(lra_update_insn_recog_data): Likewise.
	(lra_set_used_insn_alternative): Likewise.
	(lra_invalidate_insn_regno_info): Likewise.
	(lra_update_insn_regno_info): Likewise.
	(lra_former_scratch_operand_p): Likewise.
	(lra_eliminate_regs_1): Likewise.
	(lra_get_insn_recog_data): Likewise.

	* lra-assigns.c (assign_by_spills): Strengthen local "insn" from
	rtx to rtx_insn *.

	* lra-coalesce.c (move_freq_compare_func): Likewise for locals
	"mv1" and "mv2".
	(substitute_within_insn): New.
	(lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
	rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
	Replace call to "substitute" with call to substitute_within_insn.

	* lra-constraints.c (curr_insn): Strengthen from rtx to
	rtx_insn *.
	(get_equiv_with_elimination): Likewise for param "insn".
	(match_reload): Strengthen params "before" and "after" from rtx *
	to rtx_insn **.
	(emit_spill_move): Likewise for return type.  Add a checked cast
	to rtx_insn * on result of gen_move_insn for now.
	(check_and_process_move): Likewise for local "before".  Replace
	NULL_RTX with NULL when referring to insns.
	(process_addr_reg): Strengthen params "before" and "after" from
	rtx * to rtx_insn **.
	(insert_move_for_subreg): Likewise.
	(simplify_operand_subreg): Strengthen locals "before" and "after"
	from rtx to rtx_insn *.
	(process_address_1): Strengthen params "before" and "after" from
	rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
	rtx to rtx_insn *.
	(process_address): Strengthen params "before" and "after" from
	rtx * to rtx_insn **.
	(emit_inc): Strengthen local "last" from rtx to rtx_insn *.
	(curr_insn_transform): Strengthen locals "before" and "after"
	from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
	to insns.
	(loc_equivalence_callback): Update cast of "data", changing
	resulting type from rtx to rtx_insn *.
	(substitute_pseudo_within_insn): New.
	(inherit_reload_reg): Strengthen param "insn" from rtx to
	rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
	NULL when referring to insns.  Add a checked cast to rtx_insn *
	when using usage_insn to invoke lra_update_insn_regno_info.
	(split_reg): Strengthen param "insn" from rtx to rtx_insn *;
	likewise for locals "restore", "save".  Add checked casts to
	rtx_insn * when using usage_insn to invoke
	lra_update_insn_regno_info and lra_process_new_insns.  Replace
	NULL_RTX with NULL when referring to insns.
	(split_if_necessary): Strengthen param "insn" from rtx to
	rtx_insn *.
	(update_ebb_live_info): Likewise for params "head", "tail" and local
	"prev_insn".
	(get_last_insertion_point): Likewise for return type and local "insn".
	(get_live_on_other_edges): Likewise for local "last".
	(inherit_in_ebb): Likewise for params "head", "tail" and locals
	"prev_insn", "next_insn", "restore".
	(remove_inheritance_pseudos): Likewise for local "prev_insn".
	(undo_optional_reloads): Likewise for local "insn".

	* lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
	"insn".
	(lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
	insns.
	(eliminate_regs_in_insn): Strengthen param "insn" from rtx to
	rtx_insn *.
	(spill_pseudos): Likewise for local "insn".
	(init_elimination): Likewise.
	(process_insn_for_elimination): Likewise for param "insn".

	* lra-lives.c (curr_insn): Likewise.;

	* lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
	(remove_pseudos): Likewise for param "insn".
	(spill_pseudos): Likewise for local "insn".
	(lra_final_code_change): Likewise for locals "insn", "curr".

	* lra.c (lra_invalidate_insn_data): Likewise for param "insn".
	(lra_set_insn_deleted): Likewise.
	(lra_delete_dead_insn): Likewise, and for local "prev".
	(new_insn_reg): Likewise for param "insn".
	(lra_set_insn_recog_data): Likewise.
	(lra_update_insn_recog_data): Likewise.
	(lra_set_used_insn_alternative): Likewise.
	(get_insn_freq): Likewise.
	(invalidate_insn_data_regno_info): Likewise.
	(lra_invalidate_insn_regno_info): Likewise.
	(lra_update_insn_regno_info): Likewise.
	(lra_constraint_insn_stack): Strengthen from vec<rtx> to
	vec<rtx_insn *>.
	(lra_push_insn_1): Strengthen param "insn" from rtx to
	rtx_insn *.
	(lra_push_insn): Likewise.
	(lra_push_insn_and_update_insn_regno_info): Likewise.
	(lra_pop_insn): Likewise for return type and local "insn".
	(push_insns): Likewise for params "from", "to", and local "insn".
	(setup_sp_offset): Likewise for params "from", "last" and locals
	"before", "insn".
	(lra_process_new_insns): Likewise for params "insn", "before",
	"after" and local "last".
	(struct sloc): Likewise for field "insn".
	(lra_former_scratch_operand_p): Likewise for param "insn".
	(remove_scratches): Likewise for locals "insn", "last".
	(check_rtl): Likewise for local "insn".
	(add_auto_inc_notes): Likewise for param "insn".
	(update_inc_notes): Likewise for local "insn".
	(lra): Replace NULL_RTX with NULL when referring to insn.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* lower-subreg.c (simple_move): Strengthen param "insn" from rtx
	to rtx_insn *.
	(resolve_reg_notes): Likewise.
	(resolve_simple_move): Likewise for return type, param "insn", and
	locals "insns", "minsn".
	(resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
	(resolve_use): Likewise.
	(resolve_debug): Likewise.
	(find_decomposable_shift_zext): Likewise.
	(resolve_shift_zext): Likewise for return type, param "insn", and
	locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
	(decompose_multiword_subregs): Likewise for local "insn",
	"orig_insn", "decomposed_shift", "end".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (basic_block split_edge_and_insert): Strengthen
	param "insns" from rtx to rtx_insn *.

	* loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
	rtx to rtx_insn *.
	(struct iv_to_split): Likewise.
	(loop_exit_at_end_p): Likewise for local "insn".
	(split_edge_and_insert): Likewise for param "insns".
	(compare_and_jump_seq): Likewise for return type, param "cinsn",
	and locals "seq", "jump".
	(unroll_loop_runtime_iterations): Likewise for locals "init_code",
	"branch_code"; update invocations of compare_and_jump_seq to
	eliminate NULL_RTX in favor of NULL.
	(referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
	rtx to rtx_insn *.
	(reset_debug_uses_in_loop): Likewise.
	(analyze_insn_to_expand_var): Likewise for param "insn".
	(analyze_iv_to_split_insn): Likewise.
	(analyze_insns_in_loop): Likewise for local "insn".
	(insert_base_initialization): Likewise for param
	"insn" and local "seq".
	(split_iv): Likewise for param "insn" and local "seq".
	(expand_var_during_unrolling): Likewise for param "insn".
	(insert_var_expansion_initialization): Likewise for local "seq".
	(combine_var_copies_in_loop_exit): Likewise.
	(combine_var_copies_in_loop_exit): Likewise for locals "seq" and
	"insn".
	(maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
	(apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
	"next".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
	rtx_insn *.
	(iv_analyze_result): Likewise.
	(iv_analyze_expr): Likewise.
	(biv_p): Likewise.

	* loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
	local "def_insn" from rtx to rtx_insn *.
	(get_biv_step_1): Likewise for local "insn".
	(iv_analyze_expr): Likewise for param "insn".
	(iv_analyze_def): Likewise for local "insn".
	(iv_analyze_op): Likewise for param "insn".
	(iv_analyze): Likewise.
	(iv_analyze_result): Likewise.
	(biv_p): Likewise.
	(suitable_set_for_replacement): Likewise.
	(simplify_using_initial_values): Likewise for local "insn".
	(iv_number_of_iterations): Likewise for param "insn".
	(check_simple_exit): Add checked cast to rtx_insn when invoking
	iv_number_of_iterations for now (until get_condition is
	strengthened).

	* loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
	"insn" from rtx to rtx_insn *.
	(analyze_insns_in_loop): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* loop-invariant.c (struct use): Strengthen field "insn" from rtx
	to rtx_insn *.
	(struct invariant): Likewise.
	(hash_invariant_expr_1): Likewise for param "insn".
	(invariant_expr_equal_p): Likewise for param "insn1", "insn2".
	(find_exits): Likewise for local "insn".
	(create_new_invariant): Likewise for param "insn".
	(check_dependencies): Likewise.
	(find_invariant_insn): Likewise.
	(record_uses): Likewise.
	(find_invariants_insn): Likewise.
	(find_invariants_bb): Likewise for local "insn".
	(get_pressure_class_and_nregs): Likewise for param "insn".
	(calculate_loop_reg_pressure): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
	to rtx_insn *.
	(add_test): Likewise for locals "seq", "jump".
	(doloop_modify): Likewise for locals "sequence", "jump_insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
	rtx_insn *.
	(rebuild_jump_labels_chain): Likewise for param "chain".

	* cfgexpand.c (pass_expand::execute): Add checked cast to
	rtx_insn * when calling rebuild_jump_labels_chain in region where
	we know e->insns.r is non-NULL.

	* jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
	rtx_insn *.
	(rebuild_jump_labels): Likewise.
	(rebuild_jump_labels_chain): Likewise for param "chain".
	(cleanup_barriers): Likewise for locals "insn", "next", "prev".
	(init_label_info): Likewise for param "f".
	(maybe_propagate_label_ref): Likewise for params "jump_insn",
	"prev_nonjump_insn".
	(mark_all_labels): Likewise for param "f" and locals "insn",
	"prev_nonjump_insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
	from rtx to rtx_insn *insn.
	(ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
	(ira_add_allocno_copy): Likewise.
	* ira-build.c (find_allocno_copy): Strengthen param "insn" from
	rtx to rtx_insn *.
	(ira_create_copy): Likewise.
	(ira_add_allocno_copy): Likewise.
	(create_bb_allocnos): Likewise for local "insn".
	* ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
	(process_reg_shuffles): Update NULL_RTX to NULL in invocation of
	process_regs_for_copy for rtx_insn * param.
	(add_insn_allocno_copies): Strengthen param "insn" from rtx to
	rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
	process_regs_for_copy for rtx_insn * param.
	(add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
	* ira-costs.c (record_reg_classes): Likewise for param "insn".
	(record_operand_costs): Likewise.
	(scan_one_insn): Likewise for return type, and for param "insn".
	(process_bb_for_costs): Likewise for local "insn".
	(process_bb_node_for_hard_reg_moves): Likewise.
	* ira-emit.c (struct move): Likewise for field "insn".
	(create_move): Eliminate use of NULL_RTX when dealing with an
	rtx_insn *.
	(emit_move_list): Strengthen return type and locals "result",
	"insn" from rtx to rtx_insn *insn.
	(emit_moves): Likewise for locals "insns", "tmp".
	(ira_emit): Likewise for local "insn".
	* ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
	"insn".
	(find_call_crossed_cheap_reg): Likewise.
	(process_bb_node_lives): Likewise for local "insn".
	* ira.c (decrease_live_ranges_number): Likewise.
	(compute_regs_asm_clobbered): Likewise.
	(build_insn_chain): Likewise.
	(find_moveable_pseudos): Likewise, also locals "def_insn",
	"use_insn", "x".  Also strengthen local "closest_uses" from rtx *
	to rtx_insn **.  Add a checked cast when assigning from
	"closest_use" into closest_uses array in a region where we know
	it's a non-NULL insn.
	(interesting_dest_for_shprep): Strengthen param "insn" from rtx
	to rtx_insn *.
	(split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
	"last_interesting_insn", "uin".
	(move_unallocated_pseudos): Likewise for locals "def_insn",
	"move_insn", "newinsn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* internal-fn.c (ubsan_expand_si_overflow_addsub_check):
	Strengthen locals "done_label", "do_error" from rtx to
	rtx_code_label *.
	(ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
	from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
	rtx_code_label *.
	(ubsan_expand_si_overflow_neg_check): Likewise for locals
	"done_label", "do_error" to rtx_code_label * and local  "last" to
	rtx_insn *.
	(ubsan_expand_si_overflow_mul_check): Likewise for locals
	"done_label", "do_error", "large_op0", "small_op0_large_op1",
	"one_small_one_large", "both_ops_large", "after_hipart_neg",
	"after_lopart_neg", "do_overflow", "hipart_different"  to
	rtx_code_label * and local  "last" to rtx_insn *.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* init-regs.c (initialize_uninitialized_regs): Strengthen locals
	"insn" and "move_insn" from rtx to rtx_insn *.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
	rtx_insn *.
	(cheap_bb_rtx_cost_p): Likewise.
	(first_active_insn): Likewise for return type and local "insn".
	(last_active_insn):  Likewise for return type and locals "insn",
	"head".
	(struct noce_if_info): Likewise for fields "jump", "insn_a",
	"insn_b".
	(end_ifcvt_sequence): Likewise for return type and locals "insn",
	"seq".
	(noce_try_move): Likewise for local "seq".
	(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_minmax): Likewise.
	(noce_try_abs): Likewise.
	(noce_try_sign_mask): Likewise.
	(noce_try_bitop): Likewise.
	(noce_can_store_speculate_p): Likewise for local "insn".
	(noce_process_if_block): Likewise for locals "insn_a", "insn_b",
	seq".
	(check_cond_move_block): Likewise for local "insn".
	(cond_move_convert_if_block): Likewise.
	(cond_move_process_if_block): Likewise for locals "seq",
	"loc_insn".
	(noce_find_if_block): Likewise for local "jump".
	(merge_if_block): Likewise for local "last".
	(block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
	(find_cond_trap): Likewise for locals "trap", "jump", "newjump".
	(block_has_only_trap): Likewise for return type and local "trap".
	(find_if_case_1): Likewise for local "jump".
	(dead_or_predicable): Likewise for locals "head", "end", "jump",
	"insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* hw-doloop.h (struct hwloop_info_d): Strengthen fields
	"last_insn", "loop_end" from rtx to rtx_insn *.

	* hw-doloop.c (scan_loop): Likewise for local "insn".
	(discover_loop): Likewise for param "tail_insn".
	(discover_loops): Likewise for local "tail".

	* config/bfin/bfin.c (hwloop_optimize): For now, add a checked
	cast to rtx_insn * when assigning from an rtx local to a
	hwloop_info's "last_insn" field.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
	(add_delay_dependencies): Strengthen local "pro" from rtx to
	rtx_insn *.
	(recompute_todo_spec): Likewise.
	(dep_cost_1): Likewise for locals "insn", "used".
	(schedule_insn): Likewise for local "dbg".
	(schedule_insn): Likewise for locals "pro", "next".
	(unschedule_insns_until): Likewise for local "con".
	(restore_pattern): Likewise for local "next".
	(estimate_insn_tick): Likewise for local "pro".
	(resolve_dependencies): Likewise for local "next".
	(fix_inter_tick): Likewise.
	(fix_tick_ready): Likewise for local "pro".
	(add_to_speculative_block): Likewise for locals "check", "twin",
	"pro".
	(sched_extend_bb): Likewise for locals "end", "insn".
	(init_before_recovery): Likewise for local "x".
	(sched_create_recovery_block): Likewise for local "barrier".
	(create_check_block_twin): Likewise for local "pro".
	(fix_recovery_deps): Likewise for locals "note", "insn", "jump",
	"consumer".
	(unlink_bb_notes): Update for change to type of bb_header.
	Strengthen locals "prev", "label", "note", "next" from rtx to
	rtx_insn *.
	(clear_priorities): Likewise for local "pro".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* gcse.c (struct occr): Strengthen field "insn" from rtx to
	rtx_insn *.
	(test_insn): Likewise for this global.
	(oprs_unchanged_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(oprs_anticipatable_p): Likewise.
	(oprs_available_p): Likewise.
	(insert_expr_in_table): Strengthen param "insn" from  rtx to
	rtx_insn *.
	(hash_scan_set): Likewise.
	(hash_scan_clobber): Likewise.
	(hash_scan_call): Likewise.
	(hash_scan_insn): Likewise.
	(compute_hash_table_work): Likewise for local "insn".
	(process_insert_insn): Likewise for return type and local "pat".
	(insert_insn_end_basic_block): Likewise for locals "new_insn",
	"pat", "pat_end", "maybe_cc0_setter".
	(pre_edge_insert): Likewise for local "insn".
	(pre_insert_copy_insn): Likewise for param "insn".
	(pre_insert_copies): Likewise for local "insn".
	(struct set_data): Likewise for field "insn".
	(single_set_gcse): Likewise for param "insn".
	(gcse_emit_move_after): Likewise.
	(pre_delete): Likewise for local "insn".
	(update_bb_reg_pressure): Likewise for param "from" and local
	"insn".
	(should_hoist_expr_to_dom): Likewise for param "from".
	(hoist_code): Likewise for local "insn".
	(get_pressure_class_and_nregs): Likewise for param "insn".
	(calculate_bb_reg_pressure): Likewise for local "insn".
	(compute_ld_motion_mems): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* genpeep.c (main): Rename param back from "uncast_ins1" to
	"ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
	checked cast.

	* output.h (peephole): Strengthen param from rtx to rtx_insn *.

2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/62195
	* doc/md.texi (Machine Constraints): Update PowerPC wi constraint
	documentation to state it is only for VSX operations.

	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
	constraint only active if VSX.

	* config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
	wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
	(lfiwzx): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* fwprop.c (single_def_use_dom_walker::before_dom_children):
	Strengthen local "insn" from rtx to rtx_insn *.
	(use_killed_between): Likewise for param "target_insn".
	(all_uses_available_at): Likewise for param "target_insn" and
	local "next".
	(update_df_init): Likewise for params "def_insn", "insn".
	(update_df): Likewise for param "insn".
	(try_fwprop_subst): Likewise for param "def_insn" and local
	"insn".
	(free_load_extend): Likewise for param "insn".
	(forward_propagate_subreg): Likewise for param "def_insn" and
	local "use_insn".
	(forward_propagate_asm): Likewise for param "def_insn" and local
	"use_insn".
	(forward_propagate_and_simplify): Likewise for param "def_insn"
	and local "use_insn".
	(forward_propagate_into): Likewise for locals "def_insn" and
	"use_insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* function.c (emit_initial_value_sets): Strengthen local "seq"
	from rtx to rtx_insn *.
	(instantiate_virtual_regs_in_insn): Likewise for param "insn" and
	local "seq".
	(instantiate_virtual_regs): Likewise for local "insn".
	(assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
	(reorder_blocks_1): Likewise for param "insns" and local "insn".
	(expand_function_end): Likewise for locals "insn" and "seq".
	(epilogue_done): Likewise for local "insn".
	(thread_prologue_and_epilogue_insns): Likewise for locals "prev",
	"last", "trial".
	(reposition_prologue_and_epilogue_notes): Likewise for locals
	"insn", "last", "note", "first".
	(match_asm_constraints_1): Likewise for param "insn" and local "insns".
	(pass_match_asm_constraints::execute): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* output.h (final_scan_insn): Strengthen return type from rtx to
	rtx_insn *.
	(final_forward_branch_p): Likewise for param.
	(current_output_insn): Likewise for this global.

	* final.c (rtx debug_insn): Likewise for this variable.
	(current_output_insn): Likewise.
	(get_attr_length_1): Rename param "insn" to "uncast_insn",
	adding "insn" back in as an rtx_insn * with a checked cast, so
	that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
	first param.
	(compute_alignments): Strengthen local "label" from rtx to
	rtx_insn *.
	(shorten_branches): Rename param from "first" to "uncast_first",
	introducing a new local rtx_insn * "first" using a checked cast to
	effectively strengthen "first" from rtx to rtx_insn * without
	affecting the type signature.  Strengthen locals "insn", "seq",
	"next", "label" from rtx to rtx_insn *.
	(change_scope): Strengthen param "orig_insn" and local "insn" from
	rtx to rtx_insn *.
	(final_start_function): Rename param from "first" to "uncast_first",
	introducing a new local rtx_insn * "first" using a checked cast to
	effectively strengthen "first" from rtx to rtx_insn * without
	affecting the type signature.  Strengthen local "insn" from rtx to
	rtx_insn *.
	(dump_basic_block_info): Strengthen param "insn" from rtx to
	rtx_insn *.
	(final): Rename param from "first" to "uncast_first",
	introducing a new local rtx_insn * "first" using a checked cast to
	effectively strengthen "first" from rtx to rtx_insn * without
	affecting the type signature.  Strengthen locals "insn", "next"
	from rtx to rtx_insn *.
	(output_alternate_entry_point): Strengthen param "insn" from rtx to
	rtx_insn *.
	(call_from_call_insn): Strengthen param "insn" from rtx to
	rtx_call_insn *.
	(final_scan_insn): Rename param from "insn" to "uncast_insn",
	introducing a new local rtx_insn * "insn" using a checked cast to
	effectively strengthen "insn" from rtx to rtx_insn * without
	affecting the type signature.  Strengthen return type and locals
	"next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
	now-redundant checked cast to rtx_insn * from both invocations of
	debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
	introducing a local "call_insn" for use when invoking
	call_from_call_insn.
	(notice_source_line): Strengthen param "insn" from rtx to
	rtx_insn *.
	(leaf_function_p): Likewise for local "insn".
	(final_forward_branch_p): Likewise.
	(leaf_renumber_regs): Likewise for param "first".
	(rest_of_clean_state): Likewise for locals "insn" and "next".
	(self_recursive_call_p): Likewise for param "insn".
	(collect_fn_hard_reg_usage): Likewise for local "insn".
	(get_call_fndecl): Likewise for param "insn".
	(get_call_cgraph_rtl_info): Likewise.
	(get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
	introducing a new local rtx_insn * "insn" using a checked cast to
	effectively strengthen "insn" from rtx to rtx_insn * without
	affecting the type signature.

	* config/arc/arc.c (arc_final_prescan_insn): For now, add checked
	cast when assigning from param "insn" to current_output_insn.
	(arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
	so that we can assign it back to current_output_insn.

2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>

	* config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
	atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
	atmxt540s and atmxt540sreva devices.
	* config/avr/avr-tables.opt: Regenerate.
	* config/avr/t-multilib: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* expr.c (convert_move): Strengthen local "insns" from rtx to
	rtx_insn *.
	(emit_block_move_via_loop): Strengthen locals "cmp_label" and
	"top_label" from rtx to rtx_code_label *.
	(move_block_to_reg): Strengthen local "insn", "last" from rtx to
	rtx_insn *.
	(emit_single_push_insn): Likewise for locals "prev", "last".
	(store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
	to rtx_code_label *.
	(store_constructor): Likewise for locals "loop_start", "loop_end".
	(expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
	rtx_insn *.
	(expand_expr_real_2): Likewise.
	(expand_expr_real_1): Strengthen local "label" from rtx to
	rtx_code_label *.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* expmed.c (store_bit_field_using_insv): Strengthen local "last"
	from rtx to rtx_insn *.
	(store_bit_field_1): Likewise.
	(extract_bit_field_1): Likewise.
	(expand_mult_const): Likewise for local "insns".
	(expmed_mult_highpart): Strengthen local "label" from rtx to
	rtx_code_label *.
	(expand_smod_pow2): Likewise.
	(expand_sdiv_pow2): Likewise.
	(expand_divmod): Strengthen locals "last", "insn" from rtx to
	rtx_insn *.  Strengthen locals "label", "label1", "label2",
	"label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
	(emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
	(emit_store_flag): Likewise.
	(emit_store_flag_force): Strengthen local "label" from rtx to
	rtx_code_label *.
	(do_cmp_and_jump): Likewise for param "label".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* explow.c (force_reg): Strengthen local "insn" from rtx to
	rtx_insn *.
	(adjust_stack_1): Likewise.
	(allocate_dynamic_stack_space): Likewise.  Strengthen locals
	"final_label", "available_label", "space_available" from rtx to
	rtx_code_label *.
	(probe_stack_range): Likewise for locals "loop_lab", "end_lab".
	(anti_adjust_stack_and_probe): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* except.h (sjlj_emit_function_exit_after): Strengthen param
	"after" from rtx to rtx_insn *.  This is only called with
	result of get_last_insn (in function.c) so type-change should be
	self-contained.

	* function.h (struct rtl_eh): Strengthen field "ehr_label" from
	rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
	to rtx_insn *.  These fields are only used from except.c so this
	type-change should be self-contained to this patch.

	* except.c (emit_to_new_bb_before): Strengthen param "seq" and
	local "last" from rtx to rtx_insn *.
	(dw2_build_landing_pads): Likewise for local "seq".
	(sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
	(sjlj_emit_function_enter): Strengthen param "dispatch_label" from
	rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
	rtx to rtx_insn *.
	(sjlj_emit_function_exit_after): Strengthen param "after" from rtx
	to rtx_insn *.
	(sjlj_emit_function_exit): Likewise for locals "seq", "insn".
	(sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
	(sjlj_build_landing_pads): Replace NULL_RTX with NULL when
	referring to an insn.  Strengthen local "dispatch_label" from
	rtx to rtx_code_label *.
	(set_nothrow_function_flags): Strengthen local "insn" from rtx to
	rtx_insn *.
	(expand_eh_return): Strengthen local "around_label" from
	rtx to rtx_code_label *.
	(convert_to_eh_region_ranges): Strengthen locals "iter",
	"last_action_insn", "first_no_action_insn",
	"first_no_action_insn_before_switch",
	"last_no_action_insn_before_switch", from rtx to rtx_insn *.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* dwarf2out.c (last_var_location_insn): Strengthen this variable
	from rtx to rtx_insn *.
	(cached_next_real_insn): Likewise.
	(dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
	working with insns.
	(dwarf2out_var_location): Strengthen locals "next_real",
	"next_note", "expected_next_loc_note", "last_start", "insn" from
	rtx to rtx_insn *.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
	from rtx to rtx_insn *.
	(create_pseudo_cfg): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
	from rtx to rtx_insn *.
	(df_bb_regno_last_def_find): Likewise.

	* df-problems.c (df_rd_bb_local_compute): Likewise.
	(df_lr_bb_local_compute): Likewise.
	(df_live_bb_local_compute): Likewise.
	(df_chain_remove_problem): Likewise.
	(df_chain_create_bb): Likewise.
	(df_word_lr_bb_local_compute): Likewise.
	(df_remove_dead_eq_notes): Likewise for param "insn".
	(df_note_bb_compute): Likewise for local "insn".
	(simulate_backwards_to_point): Likewise.
	(df_md_bb_local_compute): Likewise.

	* df-scan.c (df_scan_free_bb_info): Likewise.
	(df_scan_start_dump): Likewise.
	(df_scan_start_block): Likewise.
	(df_install_ref_incremental): Likewise for local "insn".
	(df_insn_rescan_all): Likewise.
	(df_reorganize_refs_by_reg_by_insn): Likewise.
	(df_reorganize_refs_by_insn_bb): Likewise.
	(df_recompute_luids): Likewise.
	(df_bb_refs_record): Likewise.
	(df_update_entry_exit_and_calls): Likewise.
	(df_bb_verify): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* ddg.h (struct ddg_node): Strengthen fields "insn" and
	"first_note" from rtx to rtx_insn *.
	(get_node_of_insn): Likewise for param 2 "insn".
	(autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".

	* ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mem_write_insn_p): Likewise.
	(mem_access_insn_p): Likewise.
	(autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
	(def_has_ccmode_p): Likewise for param "insn".
	(add_cross_iteration_register_deps): Likewise for locals
	"def_insn" and "use_insn".
	(insns_may_alias_p): Likewise for params "insn1" and "insn2".
	(build_intra_loop_deps): Likewise for local "src_insn".
	(create_ddg): Strengthen locals "insn" and "first_note" from rtx
	to rtx_insn *.
	(get_node_of_insn): Likewise for param "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
	(deletable_insn_p): Strengthen param "insn" from rtx to
	rtx_insn *.  Add checked cast to rtx_call_insn when invoking
	find_call_stack_args, since this is guarded by CALL_P (insn).
	(marked_insn_p): Strengthen param "insn" from rtx to
	rtx_insn *.
	(mark_insn): Likewise.  Add checked cast to rtx_call_insn when
	invoking find_call_stack_args, since this is guarded by
	CALL_P (insn).
	(mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
	rtx_insn *; we know this is an insn since this was called by
	mark_nonreg_stores.
	(mark_nonreg_stores_2): Likewise.
	(mark_nonreg_stores): Strengthen param "insn" from rtx to
	rtx_insn *.
	(find_call_stack_args): Strengthen param "call_insn" from rtx to
	rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
	to rtx_insn *.
	(remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
	from rtx to rtx_insn *.
	(reset_unmarked_insns_debug_uses): Likewise for locals "insn",
	"next", "ref_insn".
	(delete_unmarked_insns): Likewise for locals "insn", "next".
	(prescan_insns_for_dce): Likewise for locals "insn", "prev".
	(mark_reg_dependencies): Likewise for param "insn".
	(rest_of_handle_ud_dce): Likewise for local "insn".
	(word_dce_process_block): Likewise.
	(dce_process_block): Likewise.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* cse.c (struct qty_table_elem): Strengthen field "const_insn"
	from rtx to rtx_insn *.
	(struct change_cc_mode_args): Likewise for field "insn".
	(this_insn): Strengthen from rtx to rtx_insn *.
	(make_new_qty): Replace use of NULL_RTX with NULL when dealing
	with insn.
	(validate_canon_reg): Strengthen param "insn" from rtx to
	rtx_insn *.
	(canon_reg): Likewise.
	(fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
	dealing with insn.
	(record_jump_equiv): Strengthen param "insn" from rtx to
	rtx_insn *.
	(try_back_substitute_reg): Likewise, also for locals "prev",
	"bb_head".
	(find_sets_in_insn): Likewise for param "insn".
	(canonicalize_insn): Likewise.
	(cse_insn): Likewise.  Add a checked cast.
	(invalidate_from_clobbers): Likewise for param "insn".
	(invalidate_from_sets_and_clobbers): Likewise.
	(cse_process_notes_1): Replace use of NULL_RTX with NULL when
	dealing with insn.
	(cse_prescan_path): Strengthen local "insn" from rtx to
	rtx_insn *.
	(cse_extended_basic_block): Likewise for locals "insn" and
	"prev_insn".
	(cse_main): Likewise for param "f".
	(check_for_label_ref): Likewise for local "insn".
	(set_live_p): Likewise for second param ("insn").
	(insn_live_p): Likewise for first param ("insn") and for local
	"next".
	(cse_change_cc_mode_insn): Likewise for first param "insn".
	(cse_change_cc_mode_insns): Likewise for first and second params
	"start" and "end".
	(cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
	and "end".
	(cse_condition_code_reg): Likewise for locals "last_insn", "insn",
	"cc_src_insn".

2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
	New.
	* config/i386/sse.md
	(define_mode_iterator VI248_AVX2): Delete.
	(define_mode_iterator VI2_AVX2_AVX512BW): New.
	(define_mode_iterator VI48_AVX2): Ditto.
	(define_insn <shift_insn><mode>3): Delete.
	(define_insn "<shift_insn><mode>3<mask_name>" with
	VI2_AVX2_AVX512BW): New.
	(define_insn "<shift_insn><mode>3<mask_name>" with
	VI48_AVX2): Ditto.

2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI4F_BRCST32x2): New.
	(define_mode_attr 64x2_mode): Ditto.
	(define_mode_attr 32x2mode): Ditto.
	(define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
	with VI4F_BRCST32x2): Ditto.
	(define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
	with V16FI mode iterator): Ditto.
	(define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
	with V16FI): Ditto.
	(define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
	with VI8F_BRCST64x2): Ditto.

2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI8_AVX512VL): New.
	(define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.

2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>

	* gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
	(define_mode_iterator V48_AVX512VL): New.
	(define_mode_iterator V12_AVX512VL): Ditto.
	(define_insn <avx512>_load<mode>_mask): Split into two similar
	patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
	Refactor output template.
	(define_insn "<avx512>_store<mode>_mask"): Ditto.

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* cprop.c (struct occr): Strengthen field "insn" from rtx to
	rtx_insn *.
	(reg_available_p): Likewise for param "insn".
	(insert_set_in_table): Likewise.
	(hash_scan_set): Likewise.
	(hash_scan_insn): Likewise.
	(make_set_regs_unavailable): Likewise.
	(compute_hash_table_work): Likewise for local "insn".
	(reg_not_set_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
	(try_replace_reg): Likewise.
	(find_avail_set): Likewise.
	(cprop_jump): Likewise for params "setcc", "jump".
	(constprop_register): Likewise for param "insn".
	(cprop_insn): Likewise.
	(do_local_cprop): Likewise.
	(local_cprop_pass): Likewise for local "insn".
	(bypass_block): Likewise for params "setcc" and "jump".
	(bypass_conditional_jumps): Likewise for locals "setcc" and
	"insn".
	(one_cprop_pass): Likewise for local "insn".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* compare-elim.c (struct comparison_use): Strengthen field "insn"
	from rtx to rtx_insn *.
	(struct comparison): Likewise, also for field "prev_clobber".
	(conforming_compare): Likewise for param "insn".
	(arithmetic_flags_clobber_p): Likewise.
	(find_flags_uses_in_insn): Likewise.
	(find_comparison_dom_walker::before_dom_children): Likewise for
	locals "insn", "next", "last_clobber".
	(try_eliminate_compare): Likewise for locals "insn", "bb_head".

2014-08-22  David Malcolm  <dmalcolm@redhat.com>

	* combine-stack-adj.c (struct csa_reflist): Strengthen field
	"insn" from rtx to rtx_insn *.
	(single_set_for_csa): Likewise for param "insn".
	(record_one_stack_ref): Likewise.
	(try_apply_stack_adjustment): Likewise.
	(struct record_stack_refs_data): Likewise for field "insn".
	(maybe_move_args_size_note): Likewise for params "last" and "insn".
	(prev_active_insn_bb): Likewise for return type and param "insn".
	(next_active_insn_bb): Likewise.
	(force_move_args_size_note): Likewise for params "prev" and "last"
	and locals "test", "next_candidate", "prev_candidate".
	(combine_stack_adjustments_for_block): Strengthen locals
	"last_sp_set", "last2_sp_set", "insn", "next" from rtx to
	rtx_insn *.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
	(struct reg_stat_struct): Likewise for fields "last_death", "last_set".
	(subst_insn): Likewise for this variable.
	(added_links_insn): Likewise.
	(struct insn_link): Likewise for field "insn".
	(alloc_insn_link): Likewise for param "insn".
	(struct undobuf): Likewise for field "other_insn".
	(find_single_use): Likewise for param "insn" and local "next".
	(combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
	(delete_noop_moves): Likewise for locals "insn", "next".
	(create_log_links): Likewise for locals "insn", "use_insn".
	Strengthen local "next_use" from rtx * to rtx_insn **.
	(insn_a_feeds_b): Likewise for params "a", "b".
	(combine_instructions): Likewise for param "f" and locals "insn",
	"next", "prev", "first", "last_combined_insn", "link", "link1",
	"temp".  Replace use of NULL_RTX with NULL when referring to
	insns.
	(setup_incoming_promotions): Likewise for param "first"
	(set_nonzero_bits_and_sign_copies): Likewise for local "insn".
	(can_combine_p): Likewise for params "insn", "i3", "pred",
	"pred2", "succ", "succ2" and for local "p".
	(combinable_i3pat): Likewise for param "i3".
	(cant_combine_insn_p): Likewise for param "insn".
	(likely_spilled_retval_p): Likewise.
	(adjust_for_new_dest): Likewise.
	(update_cfg_for_uncondjump): Likewise, also for local "insn".
	(try_combine): Likewise for return type and for params "i3", "i2",
	"i1", "i0", "last_combined_insn", and for locals "insn",
	"cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
	"i0_insn".  Eliminate local "tem" in favor of new locals
	"tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
	checked cast for now to rtx_insn * on the return type of
	gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
	insns.
	(find_split_point): Strengthen param "insn" from rtx to
	rtx_insn *.
	(simplify_set): Likewise for local "other_insn".
	(recog_for_combine): Likewise for param "insn".
	(record_value_for_reg): Likewise.
	(record_dead_and_set_regs_1): Likewise for local
	"record_dead_insn".
	(record_dead_and_set_regs): Likewise for param "insn".
	(record_promoted_value): Likewise.
	(check_promoted_subreg): Likewise.
	(get_last_value_validate): Likewise.
	(reg_dead_at_p): Likewise.
	(move_deaths): Likewise for param "to_insn".
	(distribute_notes): Likewise for params "from_insn", "i3", "i2"
	and locals "place", "place2", "cc0_setter".  Eliminate local "tem
	in favor of new locals "tem_note" and "tem_insn", the latter being
	an rtx_insn *.
	(distribute_links): Strengthen locals "place", "insn" from rtx to
	rtx_insn *.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
	than a const_rtx.
	(can_delete_label_p): Require a const rtx_code_label * rather than
	a const_rtx.
	(delete_insn): Add checked cast to rtx_code_label * when we know
	we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
	rtx to rtx_insn *.
	(delete_insn_chain): Strengthen locals "prev" and "current" from
	rtx to rtx_insn *.  Add a checked cast when assigning from
	"finish" (strengthening the params will come later).  Add a
	checked cast to rtx_note * in region where we know
	NOTE_P (current).
	(rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
	rtx_insn *.
	(compute_bb_for_insn): Likewise.
	(free_bb_for_insn): Likewise for local "insn".
	(compute_bb_for_insn): Likewise.
	(update_bb_for_insn_chain): Strengthen params "begin", "end" and
	local "insn" from rtx to rtx_insn *
	(flow_active_insn_p): Require a const rtx_insn * rather than a
	const_rtx.
	(contains_no_active_insn_p): Strengthen local "insn" from rtx to
	rtx_insn *.
	(can_fallthru): Likewise for locals "insn" and "insn2".
	(bb_note): Likewise for local "note".
	(first_insn_after_basic_block_note): Likewise for local "note" and
	for return type.
	(rtl_split_block): Likewise for locals "insn" and "next".
	(unique_locus_on_edge_between_p): Likewise for locals "insn" and
	"end".
	(rtl_merge_blocks): Likewise for locals "b_head", "b_end",
	"a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
	"prev", "tmp".
	(try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
	them), "kill_from", "barrier", "new_insn".
	(patch_jump_insn): Likewise for params "insn", "old_label".
	(redirect_branch_edge): Likewise for locals "old_label", "insn".
	(force_nonfallthru_and_redirect): Likewise for locals "insn",
	"old_label", "new_label".
	(rtl_tidy_fallthru_edge): Likewise for local "q".
	(rtl_split_edge): Likewise for locals "before", "last".
	(commit_one_edge_insertion): Likewise for locals "before",
	"after", "insns", "tmp", "last", adding a checked cast where
	currently necessary.
	(commit_edge_insertions): Likewise.
	(rtl_dump_bb): Likewise for locals "insn", "last".
	(print_rtl_with_bb): Likewise for local "x".
	(rtl_verify_bb_insns): Likewise for local "x".
	(rtl_verify_bb_pointers): Likewise for local "insn".
	(rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
	"head", "end".
	(rtl_verify_fallthru): Likewise for local "insn".
	(rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
	(purge_dead_edges): Likewise for local "insn".
	(fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
	(skip_insns_after_block): Likewise for return type and for locals
	"insn", "last_insn", "next_head", "prev".
	(record_effective_endpoints): Likewise for locals "next_insn",
	"insn", "end".
	(fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
	(verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
	(cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
	(duplicate_insn_chain): For now, add checked cast from rtx to
	rtx_insn * when returning insn.
	(cfg_layout_duplicate_bb): Likewise for local "insn".
	(cfg_layout_delete_block): Likewise for locals "insn", "next",
	"prev", "remaints".
	(cfg_layout_merge_blocks): Likewise for local "insn", "last".
	(rtl_block_empty_p): Likewise.
	(rtl_split_block_before_cond_jump): Likewise for locals "insn",
	"split_point", "last".
	(rtl_block_ends_with_call_p): Likewise for local "insn".
	(need_fake_edge_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
	"split_at_insn" from rtx to rtx_insn *.
	(rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
	(rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
	to const rtx_insn *.
	(rtl_account_profile_record): Likewise.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
	rtx to rtx_insn *.
	(average_num_loop_insns): Likewise.
	(init_set_costs): Likewise for local "seq".
	(seq_cost): Likewise for param "seq", from const_rtx to const
	rtx_insn *.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
	rtx to rtx_insn *.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
	"f1" and "f2" from rtx * to rtx_insn **.
	(flow_find_head_matching_sequence): Likewise.

	* cfgcleanup.c (try_simplify_condjump): Strengthen local
	"cbranch_insn" from rtx to rtx_insn *.
	(thread_jump): Likewise for local "insn".
	(try_forward_edges): Likewise for local "last".
	(merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
	(merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
	"real_b_end".
	(can_replace_by): Likewise for params "i1", "i2".
	(old_insns_match_p): Likewise.
	(merge_notes): Likewise.
	(walk_to_nondebug_insn): Likewise for param "i1".
	(flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
	to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
	"afterlast1", "afterlast2" from rtx to rtx_insn *.
	(flow_find_head_matching_sequence): Strengthen params "f1" and
	"f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
	"last1", "last2", "beforelast1", "beforelast2" from rtx to
	rtx_insn *.
	(outgoing_edges_match): Likewise for locals "last1", "last2".
	(try_crossjump_to_edge): Likewise for local "insn".
	Replace call to for_each_rtx with for_each_rtx_in_insn.

	(try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
	(try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
	"e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
	"headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
	(try_optimize_cfg): Strengthen local "last" from rtx to
	rtx_insn *.
	(delete_dead_jumptables): Likewise for locals "insn", "next",
	"label".

	* ifcvt.c (cond_exec_process_if_block): Likewise for locals
	"rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
	"rtx else_first_tail", to reflect the basic-block.h changes above.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
	rtx_insn *.
	(purge_dead_tablejump_edges): Likewise.
	(find_bb_boundaries): Likewise for locals "insn", "end",
	"flow_transfer_insn".

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* caller-save.c (save_call_clobbered_regs): Strengthen locals
	"ins" and "prev" from rtx to rtx_insn *.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
	rtx_insn *.
	(internal_arg_pointer_exp_state): Likewise for field "scan_start".
	(internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
	"scan_start".
	(load_register_parameters): Likewise for local "before_arg".
	(check_sibcall_argument_overlap): Likewise for param "insn".
	(expand_call): Likewise for locals "normal_call_insns",
	"tail_call_insns", "insns", "before_call", "after_args",
	"before_arg", "last", "prev".  Strengthen one of the "last" from
	rtx to rtx_call_insn *.
	(fixup_tail_calls): Strengthen local "insn" from rtx to
	rtx_insn *.
	(emit_library_call_value_1): Likewise for locals "before_call" and
	"last".

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
	and "last" from rtx to rtx_insn *.
	(expand_builtin_nonlocal_goto): Likewise for local "insn".
	(expand_builtin_apply): Strengthen local "call_insn" from rtx to
	rtx_call_insn *.
	(expand_errno_check): Strengthen local "lab" from rtx to
	rtx_code_label *.
	(expand_builtin_mathfn): Strengthen local "insns" from rtx to
	rtx_insn *.
	(expand_builtin_mathfn_2): Likewise.
	(expand_builtin_mathfn_ternary): Likewise.
	(expand_builtin_mathfn_3): Likewise.
	(expand_builtin_interclass_mathfn): Likewise for local "last".
	(expand_builtin_int_roundingfn): Likewise for local "insns".
	(expand_builtin_int_roundingfn_2): Likewise.
	(expand_builtin_strlen): Likewise for local "before_strlen".
	(expand_builtin_strncmp): Likewise for local "seq".
	(expand_builtin_signbit): Likewise for local "last".
	(expand_builtin_atomic_compare_exchange): Strengthen local "label"
	from rtx to rtx_code_label *.
	(expand_stack_restore):  Strengthen local "prev" from rtx to
	rtx_insn *.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
	to rtx_insn *.
	(struct btr_def_s): Likewise.
	(insn_sets_btr_p): Strengthen param "insn" from const_rtx to
	const rtx_insn *.
	(add_btr_def): Likewise.
	(new_btr_user): Likewise.
	(compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
	rtx to rtx_insn *.
	(link_btr_uses): Likewise.
	(move_btr_def): Likewise for locals "insp", "old_insn",
	"new_insn".  Add checked cast to rtx_insn * for now on result of
	gen_move_insn.
	(can_move_up): Strengthen param "insn" from const_rtx to
	const rtx_insn *.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
	rtx_insn *.
	(get_uncond_jump_length): Likewise for locals "label", "jump".
	(fix_up_crossing_landing_pad): Likewise for locals "new_label",
	"jump", "insn".
	(add_labels_and_missing_jumps): Likewise for local "new_jump".
	(fix_up_fall_thru_edges): Likewise for local "old_jump".
	(find_jump_block): Likewise for local "insn".
	(fix_crossing_conditional_branches): Likewise for locals
	"old_jump", "new_jump".
	(fix_crossing_unconditional_branches): Likewise for locals
	"last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
	(pass_duplicate_computed_gotos::execute): Likewise for local "insn".

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
	rtx to rtx_insn *.
	(struct mem_insn): Likewise for field "insn".
	(reg_next_use): Strengthen from rtx * to rtx_insn **.
	(reg_next_inc_use): Likewise.
	(reg_next_def): Likewise.
	(move_dead_notes): Strengthen params "to_insn" and "from_insn"
	from rtx to rtx_insn *.
	(move_insn_before): Likewise for param "next_insn" and local "insns".
	(attempt_change): Likewise for local "mov_insn".
	(try_merge): Likewise for param "last_insn".
	(get_next_ref): Likewise for return type and local "insn".
	Strengthen param "next_array" from rtx * to rtx_insn **.
	(parse_add_or_inc): Strengthen param "insn" from rtx to
	rtx_insn *.
	(find_inc): Likewise for locals "insn" and "other_insn" (three of
	the latter).
	(merge_in_block): Likewise for locals "insn", "curr",
	"other_insn".
	(pass_inc_dec::execute): Update allocations of the arrays to
	reflect the stronger types.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
	and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
	from rtx to rtx_code_label *.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* alias.c (init_alias_analysis): Strengthen local "insn" from rtx
	to rtx_insn *.

2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
	generated a warning and prevented bootstrapping the compiler.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (delete_related_insns): Strengthen return type from rtx to
	rtx_insn *.

	* jump.c (delete_related_insns): Likewise, also for locals "next"
	and "prev".

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* genautomata.c (output_internal_insn_latency_func): When writing
	the function "internal_insn_latency" to insn-automata.c,
	strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
	allowing the optional guard function of (define_bypass) clauses to
	expect a pair of rtx_insn *, rather than a pair of rtx.
	(output_insn_latency_func): When writing the function
	"insn_latency", add an "uncast_" prefix to params "insn" and
	"insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
	using checked casts from the params, thus enabling the above
	change to the generated "internal_insn_latency" function.

2014-08-21  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/62091
	* ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
	handle correctly arrays.
	(extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
	inheritance binfos.
	(record_known_type): Walk into inner type.
	(ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
	condition on no type changes.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* genattrtab.c (write_attr_get): Within the generated get_attr_
	functions, rename param "insn" to "uncast_insn" and reintroduce
	"insn" as an local rtx_insn * using a checked cast, so that "insn"
	is an rtx_insn * within insn-attrtab.c

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* output.h (peephole): Strengthen return type from rtx to
	rtx_insn *.
	* rtl.h (delete_for_peephole): Likewise for both params.
	* genpeep.c (main): In generated "peephole" function, strengthen
	return type and local "insn" from rtx to rtx_insn *.  For now,
	rename param "ins1" to "uncast_ins1", adding "ins1" back as an
	rtx_insn *, with a checked cast.
	* jump.c (delete_for_peephole): Strengthen params "from", "to" and
	locals "insn", "next", "prev" from rtx to rtx_insn *.

2014-08-21  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/62112
	* gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
	* gimple-iterator.h (gsi_replace): Return bool.
	* tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
	moved from ref_may_alias_global_p.
	(ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
	New overloads.
	(ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
	(stmt_kills_ref_p_1): Rename...
	(stmt_kills_ref_p): ... to this.
	* tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
	stmt_kills_ref_p): Declare.
	* tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
	Move the self-assignment case...
	(dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.

	* emit-rtl.c (try_split): Likewise, also for locals "before" and
	"after".  For now, don't strengthen param "trial", which requires
	adding checked casts when returning it.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
	"label" from rtx to rtx_code_label *.  Strengthen param 1 of
	"var_location" hook from rtx to rtx_insn *.
	(debug_nothing_rtx): Delete in favor of...
	(debug_nothing_rtx_code_label): New prototype.
	(debug_nothing_rtx_rtx): Delete unused prototype.
	(debug_nothing_rtx_insn): New prototype.

	* final.c (final_scan_insn): Add checked cast to rtx_insn * when
	invoking debug_hooks->var_location (in two places, one in a NOTE
	case of a switch statement, the other guarded by a CALL_P
	conditional.  Add checked cast to rtx_code_label * when invoking
	debug_hooks->label (within CODE_LABEL case of switch statement).

	* dbxout.c (dbx_debug_hooks): Update "label" hook from
	debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
	"var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
	(xcoff_debug_hooks): Likewise.
	* debug.c (do_nothing_debug_hooks): Likewise.
	(debug_nothing_rtx): Delete in favor of...
	(debug_nothing_rtx_insn): New function.
	(debug_nothing_rtx_rtx): Delete unused function.
	(debug_nothing_rtx_code_label): New function.
	* dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
	debug_nothing_rtx to debug_nothing_rtx_code_label.
	(dwarf2out_var_location): Strengthen param "loc_note" from rtx
	to rtx_insn *.
	* sdbout.c (sdb_debug_hooks): Update "var_location" hook from
	debug_nothing_rtx to debug_nothing_rtx_insn.
	(sdbout_label): Strengthen param "insn" from rtx to
	rtx_code_label *.
	* vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
	debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
	"var_location" hook from debug_nothing_rtx to
	debug_nothing_rtx_insn.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* recog.h (insn_output_fn): Update this function typedef to match
	the changes below to the generated output functions, strengthening
	the 2nd param from rtx to rtx_insn *.

	* final.c (get_insn_template): Add a checked cast to rtx_insn * on
	insn when invoking an output function, to match the new signature
	of insn_output_fn with a stronger second param.

	* genconditions.c (write_header): In the generated code for
	gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
	to match the other changes in this patch.

	* genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
	the generated "gen_" functions from rtx to rtx_insn * within their
	implementations.

	* genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
	the subfunctions within the generated "recog_", "split", "peephole2"
	function trees from rtx to rtx_insn *.  For now, the top-level
	generated functions ("recog", "split", "peephole2") continue to
	take a plain rtx for "insn", to avoid introducing dependencies on
	other patches.  Rename this 2nd param from "insn" to
	"uncast_insn", and reintroduce "insn" as a local variable of type
	rtx_insn *, initialized at the top of the generated function with
	a checked cast on "uncast_insn".
	(make_insn_sequence): Strengthen the 1st param "curr_insn" of
	the generated "gen_" functions from rtx to rtx_insn * within their
	prototypes.

	* genoutput.c (process_template): Strengthen the 2nd param within
	the generated "output_" functions "insn" from rtx to rtx_insn *.

2014-08-20  Jan Hubicka  <hubicka@ucw.cz>

	* tree-profile.c (tree_profiling): Skip external functions
	when doing coverage instrumentation.
	* cgraphunit.c (compile): Do not assert that all nodes are reachable.

2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.h (vec_cpsgn): New #define.
	(vec_mergee): Likewise.
	(vec_mergeo): Likewise.
	(vec_cntlz): Likewise.
	* config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
	entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
	VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
	VMRGEW, and VMRGOW.
	* doc/extend.texi: Document various forms of vec_cpsgn,
	vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
	vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
	vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
	vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
	vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.

2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (context.h): New include.
	(tree-pass.h): Likewise.
	(make_pass_analyze_swaps): New decl.
	(rs6000_option_override): Register pass_analyze_swaps.
	(swap_web_entry): New subsclass of web_entry_base (df.h).
	(special_handling_values): New enum.
	(union_defs): New function.
	(union_uses): Likewise.
	(insn_is_load_p): Likewise.
	(insn_is_store_p): Likewise.
	(insn_is_swap_p): Likewise.
	(rtx_is_swappable_p): Likewise.
	(insn_is_swappable_p): Likewise.
	(chain_purpose): New enum.
	(chain_contains_only_swaps): New function.
	(mark_swaps_for_removal): Likewise.
	(swap_const_vector_halves): Likewise.
	(adjust_subreg_index): Likewise.
	(permute_load): Likewise.
	(permute_store): Likewise.
	(handle_special_swappables): Likewise.
	(replace_swap_with_copy): Likewise.
	(dump_swap_insn_table): Likewise.
	(rs6000_analyze_swaps): Likewise.
	(pass_data_analyze_swaps): New pass_data.
	(pass_analyze_swaps): New rtl_opt_pass.
	(make_pass_analyze_swaps): New function.
	* config/rs6000/rs6000.opt (moptimize-swaps): New option.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
	type from rtx to rtx_insn *.
	(create_copy_of_insn_rtx): Likewise.
	* sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
	(create_copy_of_insn_rtx): Likewise, also for local "res".

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (find_first_parameter_load): Strengthen return type from
	rtx to rtx_insn *.
	* rtlanal.c (find_first_parameter_load): Strengthen return type
	from rtx to rtx_insn *.  Add checked cast for now, to postpone
	strengthening the params.

2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* diagnostic.c: Set default caret.
	(diagnostic_show_locus): Use it. Tell pretty-printer that a new
	line is needed.
	* diagnostic.h (struct diagnostic_context):

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
	(sel_bb_head): Strengthen return type insn_t (currently just an
	rtx) to rtx_insn *.
	(sel_bb_end): Likewise.

	* sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
	(sel_bb_head): Strengthen return type and local "head" from
	insn_t (currently just an rtx) to rtx_insn *.
	(sel_bb_end): Likewise for return type.
	(free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
	working with insn.

2014-08-21  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (get_last_bb_insn): Strengthen return type from
	rtx to rtx_insn *.
	* cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
	end".

2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* diagnostic.c (default_diagnostic_finalizer): Move caret printing
	to here ...
	(diagnostic_report_diagnostic): ... from here.
	* toplev.c (general_init): Move code to c-family.

2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* df.h (web_entry_base): Replace existing struct web_entry with a
	new class web_entry_base with only the predecessor member.
	(unionfind_root): Remove declaration and move to class member.
	(unionfind_union): Remove declaration and move to friend
	function.
	(union_defs): Remove declaration.
	* web.c (web_entry_base::unionfind_root): Modify to be member
	function and adjust accessors.
	(unionfind_union): Modify to be friend function and adjust
	accessors.
	(web_entry): New subclass of web_entry_base containing the reg
	member.
	(union_match_dups): Modify for struct -> class changes.
	(union_defs): Likewise.
	(entry_register): Likewise.
	(pass_web::execute): Likewise.

2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
	builtin define __VEC_ELEMENT_REG_ORDER__.

2014-08-20  Martin Jambor  <mjambor@suse.cz>
	    Wei Mi  <wmi@google.com>

	PR ipa/60449
	PR middle-end/61776
	* tree-ssa-operands.c (update_stmt_operands): Remove
	MODIFIED_NORETURN_CALLS.
	* tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
	(cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
	(split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
	(cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
	* tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
	* gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
	(gimple_call_set_ctrl_altering): New func.
	(gimple_call_ctrl_altering_p): Ditto.
	* tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
	(make_blocks): Use gimple_call_initialize_ctrl_altering.
	(is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
	(execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
	remove MODIFIED_NORETURN_CALLS.

2014-08-20  Jan Hubicka  <hubicka@ucw.cz>

	* coverage.c (coverage_compute_profile_id): Return non-0;
	also handle symbols with unique name.
	(coverage_end_function): Do not skip DECL_EXTERNAL functions.

2014-08-20  Steve Ellcey  <sellcey@mips.com>

	PR middle-end/49191
	* doc/sourcebuild.texi (non_strict_align): New.

2014-08-20  Jan Hubicka  <hubicka@ucw.cz>

	* cgraphunit.c (ipa_passes, compile): Reshedule
	symtab_remove_unreachable_nodes passes; update comments.
	* ipa-inline.c (pass_data_ipa_inline): Do not schedule
	TODO_remove_functions before the pass; the functions ought to be
	already removed.
	* ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
	TODO_remove_functions.
	* passes.c (pass_data_early_local_passes): Do not schedule function
	removal.
	(execute_one_pass): Fix call of symtab_remove_unreachable_nodes.

2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/59304
	* opts-common.c (set_option): Call diagnostic_classify_diagnostic
	before setting the option.
	* diagnostic.c (diagnostic_classify_diagnostic): Record
	command-line status.

2014-08-20  Richard Biener  <rguenther@suse.de>

	PR lto/62190
	* tree.c (build_common_tree_nodes): Use make_or_reuse_type
	to build uint{16,32,64}_type_node.

2014-08-20  Terry Guo  <terry.guo@arm.com>

	* config/arm/thumb1.md (64bit splitter): Replace const_double_operand
	with immediate_operand.

2014-08-20  David Malcolm  <dmalcolm@redhat.com>

	* cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
	"insn" from an as_a to a safe_as_a, for the case when "insn" is
	NULL.

2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR preprocessor/51303
	* incpath.c (remove_duplicates): Use cpp_warning.

2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/60975
	PR c/53063
	* doc/options.texi (CPP): Document it.
	* doc/invoke.texi (Wvariadic-macros): Fix documentation.
	* optc-gen.awk: Handle CPP.
	* opth-gen.awk: Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (unlink_insn_chain): Strengthen return type from rtx to
	rtx_insn *.
	(duplicate_insn_chain): Likewise.
	* cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
	rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
	checked cast for now (until we can strengthen the params in the
	same way).
	(duplicate_insn_chain): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (next_cc0_user): Strengthen return type from rtx to
	rtx_insn *.
	(prev_cc0_setter): Likewise.

	* emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
	rtx_insn *, adding checked casts for now as necessary.
	(prev_cc0_setter): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* expr.h (emit_move_insn): Strengthen return type from rtx to
	rtx_insn *.
	(emit_move_insn_1): Likewise.
	(emit_move_complex_push): Likewise.
	(emit_move_complex_parts): Likewise.

	* expr.c (emit_move_via_integer): Strengthen return type from rtx
	to rtx_insn *.  Replace use of NULL_RTX with NULL when working
	with insns.
	(emit_move_complex_push): Strengthen return type from rtx to
	rtx_insn *.
	(emit_move_complex): Likewise, also for local "ret".
	(emit_move_ccmode): Likewise.
	(emit_move_multi_word): Likewise for return type and locals
	"last_insn", "seq".
	(emit_move_insn_1): Likewise for return type and locals "result",
	"ret".
	(emit_move_insn): Likewise for return type and local "last_insn".
	(compress_float_constant): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
	from rtx to rtx_insn *.

	* rtl.h (emit_insn_before): Likewise.
	(emit_insn_before_noloc): Likewise.
	(emit_insn_before_setloc): Likewise.
	(emit_jump_insn_before): Likewise.
	(emit_jump_insn_before_noloc): Likewise.
	(emit_jump_insn_before_setloc): Likewise.
	(emit_call_insn_before): Likewise.
	(emit_call_insn_before_noloc): Likewise.
	(emit_call_insn_before_setloc): Likewise.
	(emit_debug_insn_before): Likewise.
	(emit_debug_insn_before_noloc): Likewise.
	(emit_debug_insn_before_setloc): Likewise.
	(emit_label_before): Likewise.
	(emit_insn_after): Likewise.
	(emit_insn_after_noloc): Likewise.
	(emit_insn_after_setloc): Likewise.
	(emit_jump_insn_after): Likewise.
	(emit_jump_insn_after_noloc): Likewise.
	(emit_jump_insn_after_setloc): Likewise.
	(emit_call_insn_after): Likewise.
	(emit_call_insn_after_noloc): Likewise.
	(emit_call_insn_after_setloc): Likewise.
	(emit_debug_insn_after): Likewise.
	(emit_debug_insn_after_noloc): Likewise.
	(emit_debug_insn_after_setloc): Likewise.
	(emit_label_after): Likewise.
	(emit_insn): Likewise.
	(emit_debug_insn): Likewise.
	(emit_jump_insn): Likewise.
	(emit_call_insn): Likewise.
	(emit_label): Likewise.
	(gen_clobber): Likewise.
	(emit_clobber): Likewise.
	(gen_use): Likewise.
	(emit_use): Likewise.
	(emit): Likewise.

	(emit_barrier_before): Strengthen return type from rtx to
	rtx_barrier *.
	(emit_barrier_after): Likewise.
	(emit_barrier): Likewise.

	* emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
	from rtx to rtx_insn *.  Add checked casts for now when converting
	"last" from rtx to rtx_insn *.
	(emit_insn_before_noloc): Likewise for return type.
	(emit_jump_insn_before_noloc): Likewise.
	(emit_call_insn_before_noloc): Likewise.
	(emit_debug_insn_before_noloc): Likewise.
	(emit_barrier_before): Strengthen return type and local "insn"
	from rtx to rtx_barrier *.
	(emit_label_before): Strengthen return type from rtx to
	rtx_insn *.  Add checked cast for now when returning param
	(emit_pattern_after_noloc): Strengthen return type from rtx to
	rtx_insn *.  Add checked casts for now when converting "last" from
	rtx to rtx_insn *.
	(emit_insn_after_noloc): Strengthen return type from rtx to
	rtx_insn *.
	(emit_jump_insn_after_noloc): Likewise.
	(emit_call_insn_after_noloc): Likewise.
	(emit_debug_insn_after_noloc): Likewise.
	(emit_barrier_after): Strengthen return type from rtx to
	rtx_barrier *.
	(emit_label_after): Strengthen return type from rtx to rtx_insn *.
	Add checked cast for now when converting "label" from rtx to
	rtx_insn *.
	(emit_pattern_after_setloc): Strengthen return type from rtx to
	rtx_insn *.  Add checked casts for now when converting "last" from
	rtx to rtx_insn *.
	(emit_pattern_after): Strengthen return type from rtx to
	rtx_insn *.
	(emit_insn_after_setloc): Likewise.
	(emit_insn_after): Likewise.
	(emit_jump_insn_after_setloc): Likewise.
	(emit_jump_insn_after): Likewise.
	(emit_call_insn_after_setloc): Likewise.
	(emit_call_insn_after): Likewise.
	(emit_debug_insn_after_setloc): Likewise.
	(emit_debug_insn_after): Likewise.
	(emit_pattern_before_setloc): Likewise.  Add checked casts for now
	when converting "last" from rtx to rtx_insn *.
	(emit_pattern_before): Strengthen return type from rtx to
	rtx_insn *.
	(emit_insn_before_setloc): Likewise.
	(emit_insn_before): Likewise.
	(emit_jump_insn_before_setloc): Likewise.
	(emit_jump_insn_before): Likewise.
	(emit_call_insn_before_setloc): Likewise.
	(emit_call_insn_before): Likewise.
	(emit_debug_insn_before_setloc): Likewise.
	(emit_debug_insn_before): Likewise.
	(emit_insn): Strengthen return type and locals "last", "insn",
	"next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
	within cases where we know we have an insn.
	(emit_debug_insn): Likewise.
	(emit_jump_insn): Likewise.
	(emit_call_insn): Strengthen return type and local "insn" from rtx
	to rtx_insn *.
	(emit_label): Strengthen return type from rtx to rtx_insn *.  Add
	a checked cast to rtx_insn * for now on "label".
	(emit_barrier): Strengthen return type from rtx to rtx_barrier *.
	(emit_clobber): Strengthen return type from rtx to rtx_insn *.
	(emit_use): Likewise.
	(gen_use): Likewise, also for local "seq".
	(emit): Likewise for return type and local "insn".
	(rtx_insn): Likewise for return type and local "new_rtx".

	* cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
	from rtx to rtx_barrier *.

	* config/sh/sh.c (output_stack_adjust): Since emit_insn has
	changed return type from rtx to rtx_insn *, we must update
	"emit_fn" type, and this in turn means updating...
	(frame_insn): ...this.  Strengthen return type from rtx to
	rtx_insn *.  Introduce a new local "insn" of the appropriate type.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* emit-rtl.c (emit_jump_table_data): Strengthen return type from
	rtx to rtx_jump_table_data *.  Also for local.
	* rtl.h (emit_jump_table_data): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (create_basic_block_structure): Strengthen third
	param "bb_note" from rtx to rtx_note *.
	* rtl.h (emit_note_before): Strengthen return type from rtx to
	rtx_note *.
	(emit_note_after): Likewise.
	(emit_note): Likewise.
	(emit_note_copy): Likewise.  Also, strengthen param similarly.
	* function.h (struct rtl_data): Strengthen field
	"x_stack_check_probe_note" from rtx to rtx_note *.

	* cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
	from rtx to rtx_note *.
	* cfgrtl.c (create_basic_block_structure): Strengthen third param
	"bb_note" from rtx to rtx_note *.
	(duplicate_insn_chain): Likewise for local "last".  Add a checked cast
	when calling emit_note_copy.
	* emit-rtl.c (make_note_raw): Strengthen return type from rtx to
	rtx_note *.
	(emit_note_after): Likewise.
	(emit_note_before): Likewise.
	(emit_note_copy): Likewise.  Also, strengthen param similarly.
	(emit_note): Likewise.
	* except.c (emit_note_eh_region_end): Likewise for return type.
	Strengthen local "next" from rtx to rtx_insn *.
	(convert_to_eh_region_ranges): Strengthen local "note"
	from rtx to rtx_note *.
	* final.c (change_scope): Likewise.
	(reemit_insn_block_notes): Likewise, for both locals named "note".
	Also, strengthen local "insn" from rtx to rtx_insn *.
	* haifa-sched.c (sched_extend_bb): Strengthen local "note" from
	rtx to rtx_note *.
	* reg-stack.c (compensate_edge): Likewise for local "after". Also,
	strengthen local "seq" from rtx to rtx_insn *.
	* reload1.c (reload_as_needed): Strengthen local "marker" from rtx
	to rtx_note *.
	* sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
	vec<rtx_note *>.
	(get_bb_note_from_pool): Strengthen return type from rtx to
	rtx_note *.
	(sel_create_basic_block): Strengthen local "new_bb_note" from
	insn_t to rtx_note *.
	* var-tracking.c (emit_note_insn_var_location): Strengthen local
	"note" from rtx to rtx_note *.
	(emit_notes_in_bb): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* function.h (struct rtl_data): Strengthen field
	"x_parm_birth_insn" from rtx to rtx_insn *.
	* function.c (struct assign_parm_data_all): Strengthen fields
	"first_conversion_insn" and "last_conversion_insn" from rtx to
	rtx_insn *.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* cfgexpand.c (expand_used_vars): Strengthen return type from rtx
	to rtx_insn *; also for local "var_end_seq".
	(maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
	(maybe_cleanup_end_of_block): Likewise for param "last" and local
	"insn".
	(expand_gimple_cond): Likewise for locals "last2" and "last".
	(mark_transaction_restart_calls): Likewise for local "insn".
	(expand_gimple_stmt): Likewise for return type and locals "last"
	and "insn".
	(expand_gimple_tailcall): Likewise for locals "last2" and "last".
	(avoid_complex_debug_insns): Likewise for param "insn".
	(expand_debug_locations): Likewise for locals "insn", "last",
	"prev_insn" and "insn2".
	(expand_gimple_basic_block): Likewise for local "last".
	(construct_exit_block): Likewise for locals "head", "end",
	"orig_end".
	(pass_expand::execute): Likewise for locals "var_seq",
	"var_ret_seq", "next".

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* asan.h (asan_emit_stack_protection): Strengthen return type from
	rtx to rtx_insn *.
	* asan.c (asan_emit_stack_protection): Likewise.  Add local
	"insns" to hold the return value.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (bb_note): Strengthen return type from rtx to
	rtx_note *.
	* sched-int.h (bb_note): Likewise.
	* cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (make_insn_raw): Strengthen return type from rtx to
	rtx_insn *.

	* emit-rtl.c (make_insn_raw): Strengthen return type and local
	"insn" from rtx to rtx_insn *.
	(make_debug_insn_raw): Strengthen return type from rtx to
	rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
	(make_jump_insn_raw):  Strengthen return type from rtx to
	rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
	(make_call_insn_raw):  Strengthen return type from rtx to
	rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
	(emit_pattern_before_noloc): Strengthen return type of "make_raw"
	callback from rtx to rtx_insn *; likewise for local "insn" and
	"next", adding a checked cast to rtx_insn in the relevant cases of
	the switch statement.
	(emit_pattern_after_noloc): Strengthen return type of "make_raw"
	callback from rtx to rtx_insn *.
	(emit_pattern_after_setloc): Likewise.
	(emit_pattern_after): Likewise.
	(emit_pattern_before_setloc): Likewise.
	(emit_pattern_before): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* emit-rtl.c (last_call_insn): Strengthen return type from rtx to
	rtx_call_insn *.
	* rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
	accepting an rtx_insn *.
	(last_call_insn): Strengthen return type from rtx to
	rtx_call_insn *.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (delete_trivially_dead_insns): Strengthen initial param
	"insns" from rtx to rtx_insn *.
	* cse.c (delete_trivially_dead_insns): Likewise, also do it for
	locals "insn" and "prev".

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (tablejump_p): Strengthen third param from rtx * to
	rtx_jump_table_data **.

	* cfgbuild.c (make_edges): Introduce local "table", using it in
	place of "tmp" for jump table data.
	(find_bb_boundaries): Strengthen local "table" from rtx to
	rtx_jump_table_data *.
	* cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
	(outgoing_edges_match): Likewise for locals "table1" and "table2".
	(try_crossjump_to_edge): Likewise.
	* cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
	"table".
	(patch_jump_insn): Introduce local "table", using it in place of
	"tmp" for jump table data.
	(force_nonfallthru_and_redirect): Introduce local "table", so that
	call to tablejump_p can receive an rtx_jump_table_data **.  Update
	logic around the call to overwrite "note" appropriately if
	tablejump_p returns non-zero.
	(get_last_bb_insn): Introduce local "table", using it in place of
	"tmp" for jump table data.
	* dwarf2cfi.c (create_trace_edges): Likewise.

	* config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
	from rtx to rtx_jump_table_data *.
	(create_fix_barrier): Strengthen local "tmp" from rtx to
	rtx_jump_table_data *.
	(arm_reorg): Likewise for local "table".

	* config/s390/s390.c (s390_chunkify_start): Likewise.

	* config/spu/spu.c (spu_emit_branch_hint): Likewise.

	* jump.c (delete_related_insns): Strengthen local "lab_next" from
	rtx to rtx_jump_table_data *.

	* rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
	rtx_jump_table_data **.  Add a checked cast when writing through
	the pointer: we know there that local "table" is non-NULL and that
	JUMP_TABLE_DATA_P (table) holds.
	(label_is_jump_target_p): Introduce local "table", using it in
	place of "tmp" for jump table data.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	PR c++/62153
	* doc/invoke.texi: Document -Wbool-compare.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (entry_of_function): Strengthen return type from rtx to
	rtx_insn *.
	* cfgrtl.c (entry_of_function): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* emit-rtl.h (get_insns): Strengthen return type from rtx to
	rtx_insn *, adding a checked cast for now.
	(get_last_insn): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (gen_label_rtx): Strengthen return type from rtx to
	rtx_code_label *.

	* emit-rtl.c (gen_label_rtx): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (previous_insn): Strengthen return type from rtx to
	rtx_insn *.
	(next_insn): Likewise.
	(prev_nonnote_insn): Likewise.
	(prev_nonnote_insn_bb): Likewise.
	(next_nonnote_insn): Likewise.
	(next_nonnote_insn_bb): Likewise.
	(prev_nondebug_insn): Likewise.
	(next_nondebug_insn): Likewise.
	(prev_nonnote_nondebug_insn): Likewise.
	(next_nonnote_nondebug_insn): Likewise.
	(prev_real_insn): Likewise.
	(next_real_insn): Likewise.
	(prev_active_insn): Likewise.
	(next_active_insn): Likewise.

	* emit-rtl.c (next_insn): Strengthen return type from rtx to
	rtx_insn *, adding a checked cast.
	(previous_insn): Likewise.
	(next_nonnote_insn): Likewise.
	(next_nonnote_insn_bb): Likewise.
	(prev_nonnote_insn): Likewise.
	(prev_nonnote_insn_bb): Likewise.
	(next_nondebug_insn): Likewise.
	(prev_nondebug_insn): Likewise.
	(next_nonnote_nondebug_insn): Likewise.
	(prev_nonnote_nondebug_insn): Likewise.
	(next_real_insn): Likewise.
	(prev_real_insn): Likewise.
	(next_active_insn): Likewise.
	(prev_active_insn): Likewise.

	* config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
	param "stepfunc" so that it returns an rtx_insn * rather than an
	rtx, to track the change to prev_nonnote_insn_bb, which is the
	only function this is called with.
	* config/sh/sh.c (sh_find_set_of_reg): Likewise.

2014-08-19  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (update_visibility_by_resolution_info): Fix
	assert.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* coretypes.h (class rtx_debug_insn): Add forward declaration.
	(class rtx_nonjump_insn): Likewise.
	(class rtx_jump_insn): Likewise.
	(class rtx_call_insn): Likewise.
	(class rtx_jump_table_data): Likewise.
	(class rtx_barrier): Likewise.
	(class rtx_code_label): Likewise.
	(class rtx_note): Likewise.

	* rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
	adding the invariant DEBUG_INSN_P (X).
	(class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
	the invariant NONJUMP_INSN_P (X).
	(class rtx_jump_insn): New, a subclass of rtx_insn, adding
	the invariant JUMP_P (X).
	(class rtx_call_insn): New, a subclass of rtx_insn, adding
	the invariant CALL_P (X).
	(class rtx_jump_table): New, a subclass of rtx_insn, adding the
	invariant JUMP_TABLE_DATA_P (X).
	(class rtx_barrier): New, a subclass of rtx_insn, adding the
	invariant BARRIER_P (X).
	(class rtx_code_label): New, a subclass of rtx_insn, adding
	the invariant LABEL_P (X).
	(class rtx_note): New, a subclass of rtx_insn, adding
	the invariant NOTE_P(X).
	(is_a_helper <rtx_debug_insn *>::test): New.
	(is_a_helper <rtx_nonjump_insn *>::test): New.
	(is_a_helper <rtx_jump_insn *>::test): New.
	(is_a_helper <rtx_call_insn *>::test): New.
	(is_a_helper <rtx_jump_table_data *>::test): New functions,
	overloaded for both rtx and rtx_insn *.
	(is_a_helper <rtx_barrier *>::test): New.
	(is_a_helper <rtx_code_label *>::test): New functions, overloaded
	for both rtx and rtx_insn *.
	(is_a_helper <rtx_note *>::test): New.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	* config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
	CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
	* config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
	CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (BND_TO): insn_t will eventually be an
	rtx_insn *.  To help with transition, for now, convert from an
	access macro into a pair of functions: BND_TO, returning an
	rtx_insn *, and...
	(SET_BND_TO): New function, for use where BND_TO is used as an
	lvalue.

	* sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
	SET_BND_TO.
	(BND_TO): New function, adding a checked cast.
	(SET_BND_TO): New function.

	* sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
	SET_BND_TO.
	(compute_av_set_on_boundaries): Likewise.

2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
	destination if it is used in source.
	(*clz<mode>2_lzcnt_falsedep_1): Likewise.
	(*popcount<mode>2_falsedep_1): Likewise.

2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/62168
	* configure.ac: Set install_gold_as_default to no first.
	* configure: Regenerated.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
	"note_list" field will eventually be an rtx_insn *.  To help with
	transition, for now, convert from an access macro into a pair of
	functions: BB_NOTE_LIST, returning an rtx_insn *, and...
	(SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
	used as an lvalue.

	* sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
	of BB_NOTE_LIST to SET_BB_NOTE_LIST.

	* sel-sched-ir.c (init_bb): Likewise.
	(sel_restore_notes): Likewise.
	(move_bb_info): Likewise.
	(BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
	(SET_BB_NOTE_LIST): New function.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
	field will eventually be an rtx_insn *.  To help with transition,
	for now, convert from an access macro into a pair of functions:
	VINSN_INSN_RTX, returning an rtx_insn *, and...
	(SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
	is used as an lvalue.

	* sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
	SET_VINSN_INSN_RTX where it's used as an lvalue.
	(VINSN_INSN_RTX): New function.
	(SET_VINSN_INSN_RTX): New function.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
	eventually be rtx_insn *, but to help with transition, for now,
	convert from an access macro into a pair of functions: DEP_PRO
	returning an rtx_insn * and...
	(SET_DEP_PRO): New function, for use where DEP_PRO is used as an
	lvalue, returning an rtx&.
	(DEP_CON): Analogous changes to DEP_PRO above.
	(SET_DEP_CON): Likewise.

	* haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
	an lvalue to SET_DEP_CON.
	* sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
	(sd_copy_back_deps): Likewise for DEP_CON.
	(DEP_PRO): New function, adding a checked cast for now.
	(DEP_CON): Likewise.
	(SET_DEP_PRO): New function.
	(SET_DEP_CON): Likewise.

2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>

	* config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
	(extra_options): Add i386/cygwin.opt.
	* config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
	(CPP_SPEC): Accept -pthread.
	(LINK_SPEC): Ditto.
	(GOMP_SELF_SPECS): Update comment.
	* config/i386/cygwin.opt: New file for -pthread flag.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* df-core.c (DF_REF_INSN): New, using a checked cast for now.
	* df.h (DF_REF_INSN): Convert from a macro to a function, so
	that we can return an rtx_insn *.

2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>

	* config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
	when building executables, not DLLs.  Add --large-address-aware
	under the same conditions.
	* config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
	when building executables, not DLLs.  Add --large-address-aware
	under the same conditions when using -m32.

	* config/i386/cygwin-stdint.h: Throughout, make type
	definitions dependent on target architecture, not host.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
	the return type from rtx to rtx_insn *,  which will enable various
	conversions in followup patches.  For now this is is done by a
	checked cast.
	(NEXT_INSN): Likewise.
	(SET_PREV_INSN): Convert to an inline function.  This is intended
	for use as an lvalue, and so returns an rtx& to allow in-place
	modification.
	(SET_NEXT_INSN): Likewise.

2014-07-08  Mark Wielaard  <mjw@redhat.com>

	PR debug/59051
	* dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	PR c/61271
	* cgraphunit.c (handle_alias_pairs): Fix condition.

2014-08-19  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_gimple_assign): Properly build a
	null-pointer constant when devirtualizing addresses.

2014-07-07  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.c (decl_quals): New function.
	(modified_type_die): Take one cv_quals argument instead of two,
	one for const and one for volatile.
	(add_type_attribute): Likewise.
	(generic_parameter_die): Call add_type_attribute with one modifier
	argument.
	(base_type_for_mode): Likewise.
	(add_bounds_info): Likewise.
	(add_subscript_info): Likewise.
	(gen_array_type_die): Likewise.
	(gen_descr_array_type_die): Likewise.
	(gen_entry_point_die): Likewise.
	(gen_enumeration_type_die): Likewise.
	(gen_formal_parameter_die): Likewise.
	(gen_subprogram_die): Likewise.
	(gen_variable_die): Likewise.
	(gen_const_die): Likewise.
	(gen_field_die): Likewise.
	(gen_pointer_type_die): Likewise.
	(gen_reference_type_die): Likewise.
	(gen_ptr_to_mbr_type_die): Likewise.
	(gen_inheritance_die): Likewise.
	(gen_subroutine_type_die): Likewise.
	(gen_typedef_die): Likewise.
	(force_type_die): Likewise.

2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_comdat_group_group): Only default to no
	if unset.
	* configure: Regenerate.

2014-08-19  Richard Biener  <rguenther@suse.de>

	* lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
	DECL_EXTERNALs in BLOCKs as non-references.
	* tree-streamer-out.c (streamer_write_chain): Likewise.

2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI48_AVX512F): Delete.
	(define_mode_iterator VI48_AVX512F_AVX512VL): New.
	(define_mode_iterator VI2_AVX512VL): Ditto.
	(define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
	Delete.
	(define_insn
	("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
	New.
	(define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
	(define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
	(define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
	with VI48_AVX512F_AVX512VL): New.
	(define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
	with VI2_AVX512VL): Ditto.

2014-08-19  Marek Polacek  <polacek@redhat.com>

	* doc/invoke.texi: Document -Wc99-c11-compat.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (PREV_INSN): Split macro in two: the existing one,
	for rvalues, and...
	(SET_PREV_INSN): New macro, for use as an lvalue.
	(NEXT_INSN, SET_NEXT_INSN): Likewise.

	* caller-save.c (save_call_clobbered_regs): Convert lvalue use of
	PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
	* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
	(fixup_abnormal_edges): Likewise.
	(unlink_insn_chain): Likewise.
	(fixup_reorder_chain): Likewise.
	(cfg_layout_delete_block): Likewise.
	(cfg_layout_merge_blocks): Likewise.
	* combine.c (update_cfg_for_uncondjump): Likewise.
	* emit-rtl.c (link_insn_into_chain): Likewise.
	(remove_insn): Likewise.
	(delete_insns_since): Likewise.
	(reorder_insns_nobb): Likewise.
	(emit_insn_after_1): Likewise.
	* final.c (rest_of_clean_state): Likewise.
	(final_scan_insn): Likewise.
	* gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
	* haifa-sched.c (concat_note_lists): Likewise.
	(remove_notes): Likewise.
	(restore_other_notes): Likewise.
	(move_insn): Likewise.
	(unlink_bb_notes): Likewise.
	(restore_bb_notes): Likewise.
	* jump.c (delete_for_peephole): Likewise.
	* optabs.c (emit_libcall_block_1): Likewise.
	* reorg.c (emit_delay_sequence): Likewise.
	(fill_simple_delay_slots): Likewise.
	* sel-sched-ir.c (sel_move_insn): Likewise.
	(sel_remove_insn): Likewise.
	(get_bb_note_from_pool): Likewise.
	* sel-sched.c (move_nop_to_previous_block): Likewise.

	* config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
	* config/c6x/c6x.c (gen_one_bundle): Likewise.
	(c6x_gen_bundles): Likewise.
	(hwloop_optimize): Likewise.
	* config/frv/frv.c (frv_function_prologue): Likewise.
	(frv_register_nop): Likewise.
	* config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
	(ia64_reorg): Likewise.
	* config/mep/mep.c (mep_reorg_addcombine): Likewise.
	(mep_make_bundle): Likewise.
	(mep_bundle_insns): Likewise.
	* config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
	* config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
	* config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.

2014-08-19  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
	return type from rtx to rtx_insn *.
	(BB_END): Likewise.
	(BB_HEADER): Likewise.
	(BB_FOOTER): Likewise.
	(SET_BB_HEAD): Convert to a function.
	(SET_BB_END): Likewise.
	(SET_BB_HEADER): Likewise.
	(SET_BB_FOOTER): Likewise.

	* cfgrtl.c (BB_HEAD): New function, from macro of same name.
	Strengthen the return type from rtx to rtx_insn *.  For now, this
	is done by adding a checked cast, but this will eventually
	become a field lookup.
	(BB_END): Likewise.
	(BB_HEADER): Likewise.
	(BB_FOOTER): Likewise.
	(SET_BB_HEAD): New function, from macro of same name.  This is
	intended for use as an lvalue, and so returns an rtx& to allow
	in-place modification.
	(SET_BB_END): Likewise.
	(SET_BB_HEADER): Likewise.
	(SET_BB_FOOTER): Likewise.

2014-08-18  David Malcolm  <dmalcolm@redhat.com>

	* basic-block.h (BB_HEAD): Split macro in two: the existing one,
	for rvalues, and...
	(SET_BB_HEAD): New macro, for use as a lvalue.
	(BB_END, SET_BB_END): Likewise.
	(BB_HEADER, SET_BB_HEADER): Likewise.
	(BB_FOOTER, SET_BB_FOOTER): Likewise.

	* bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
	of BB_* macros into SET_BB_* macros.
	(fix_crossing_unconditional_branches): Likewise.
	* caller-save.c (save_call_clobbered_regs): Likewise.
	(insert_one_insn): Likewise.
	* cfgbuild.c (find_bb_boundaries): Likewise.
	* cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
	(outgoing_edges_match): Likewise.
	(try_optimize_cfg): Likewise.
	* cfgexpand.c (expand_gimple_cond): Likewise.
	(expand_gimple_tailcall): Likewise.
	(expand_gimple_basic_block): Likewise.
	(construct_exit_block): Likewise.
	* cfgrtl.c (delete_insn): Likewise.
	(create_basic_block_structure): Likewise.
	(rtl_delete_block): Likewise.
	(rtl_split_block): Likewise.
	(emit_nop_for_unique_locus_between): Likewise.
	(rtl_merge_blocks): Likewise.
	(block_label): Likewise.
	(try_redirect_by_replacing_jump): Likewise.
	(emit_barrier_after_bb): Likewise.
	(fixup_abnormal_edges): Likewise.
	(record_effective_endpoints): Likewise.
	(relink_block_chain): Likewise.
	(fixup_reorder_chain): Likewise.
	(fixup_fallthru_exit_predecessor): Likewise.
	(cfg_layout_duplicate_bb): Likewise.
	(cfg_layout_split_block): Likewise.
	(cfg_layout_delete_block): Likewise.
	(cfg_layout_merge_blocks): Likewise.
	* combine.c (update_cfg_for_uncondjump): Likewise.
	* emit-rtl.c (add_insn_after): Likewise.
	(remove_insn): Likewise.
	(reorder_insns): Likewise.
	(emit_insn_after_1): Likewise.
	* haifa-sched.c (get_ebb_head_tail): Likewise.
	(restore_other_notes): Likewise.
	(move_insn): Likewise.
	(sched_extend_bb): Likewise.
	(fix_jump_move): Likewise.
	* ifcvt.c (noce_process_if_block): Likewise.
	(dead_or_predicable): Likewise.
	* ira.c (update_equiv_regs): Likewise.
	* reg-stack.c (change_stack): Likewise.
	* sel-sched-ir.c (sel_move_insn): Likewise.
	* sel-sched.c (move_nop_to_previous_block): Likewise.

	* config/c6x/c6x.c (hwloop_optimize): Likewise.
	* config/ia64/ia64.c (emit_predicate_relation_info): Likewise.

2014-08-18  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (for_each_rtx_in_insn): New function.
	* rtlanal.c (for_each_rtx_in_insn): Likewise.

2014-08-18  David Malcolm  <dmalcolm@redhat.com>

	* coretypes.h (class rtx_insn): Add forward declaration.

	* rtl.h: Include is-a.h.
	(struct rtx_def): Add dummy "desc" and "tag" GTY options as a
	workaround to ensure gengtype knows inheritance is occurring,
	whilst continuing to use the pre-existing special-casing for
	rtx_def.
	(class rtx_insn): New subclass of rtx_def, adding the
	invariant that we're dealing with something we can sanely use
	INSN_UID, NEXT_INSN, PREV_INSN on.
	(is_a_helper <rtx_insn *>::test): New.
	(is_a_helper <const rtx_insn *>::test): New.

2014-08-18  David Malcolm  <dmalcolm@redhat.com>

	* is-a.h (template<T, U> safe_as_a <U *p>) New function.

2014-08-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (update_visibility_by_resolution_info): Do no
	turn UNDEF comdats as extern.

2014-08-18  Jan Hubicka  <hubicka@ucw.cz>

	* gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
	to BUILT_IN_UNREACHABLE.

2014-08-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/62011
	* config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
	New tune flag.
	* config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
	* config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
	(ffs<mode>2): Do not expand with tzcnt for
	TARGET_AVOID_FALSE_DEP_FOR_BMI.
	(ffssi2_no_cmove): Ditto.
	(*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
	(ctz<mode>2): New expander.
	(*ctz<mode>2_falsedep_1): New insn_and_split pattern.
	(*ctz<mode>2_falsedep): New insn.
	(*ctz<mode>2): Rename from ctz<mode>2.
	(clz<mode>2_lzcnt): New expander.
	(*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
	(*clz<mode>2_lzcnt_falsedep): New insn.
	(*clz<mode>2): Rename from ctz<mode>2.
	(popcount<mode>2): New expander.
	(*popcount<mode>2_falsedep_1): New insn_and_split pattern.
	(*popcount<mode>2_falsedep): New insn.
	(*popcount<mode>2): Rename from ctz<mode>2.
	(*popcount<mode>2_cmp): Remove.
	(*popcountsi2_cmp_zext): Ditto.

2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>

	* config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
	(microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
	* config/microblaze/microblaze.h
	(TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.

2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/62168
	* configure.ac: Set install_gold_as_default to no for
	--enable-gold=no.
	* configure: Regenerated.

2014-08-18 Roman Gareev  <gareevroman@gmail.com>

	* Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
	* config.in: Add undef of HAVE_isl.
	* configure: Regenerate.
	* configure.ac: Add definition of HAVE_isl.
	* graphite-blocking.c: Add checking of HAVE_isl.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-isl-ast-to-gimple.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* toplev.c: Replace the checking of HAVE_cloog with the checking
	of HAVE_isl.

2014-08-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62090
	* builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
	(fold_builtin_3): Do not fold snprintf.
	(fold_builtin_4): Likewise.
	* gimple-fold.c (gimple_fold_builtin_snprintf): New function
	moved from builtins.c.
	(gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
	(gimple_fold_builtin): Do not fold sprintf here.

2014-08-18  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (maybe_fold_reference): Move re-gimplification
	code to ...
	(maybe_canonicalize_mem_ref_addr): ... this function.
	(fold_stmt_1): Apply it here before all simplification.

2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>

	PR ipa/61800
	* cgraph.h (cgraph_node::create_indirect_edge): Add
	compute_indirect_info param.
	* cgraph.c (cgraph_node::create_indirect_edge): Compute
	indirect_info only when it is required.
	* cgraphclones.c (cgraph_clone_edge): Do not recompute
	indirect_info fore cloned indirect edge.

2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VI8_AVX2_AVX512BW): New.
	(define_insn "<sse2_avx2>_psadbw"): Add evex version.

2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VF1_AVX512VL): New.
	(define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
	(define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
	New.

2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c: Rename ufloatv8siv8df_mask to
	ufloatv8siv8df2_mask.
	* config/i386/i386.md
	(define_code_iterator any_float): New.
	(define_code_attr floatsuffix): New.
	* config/i386/sse.md
	(define_mode_iterator VF1_128_256VL): New.
	(define_mode_iterator VF2_512_256VL): New.
	(define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove
	unnecessary TARGET check.
	(define_insn "ufloatv8siv8df<mask_name>"): Delete.
	(define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
	New.
	(define_mode_attr qq2pssuff): New.
	(define_mode_attr sselongvecmode): New.
	(define_mode_attr sselongvecmodelower): New.
	(define_mode_attr sseintvecmode3): New.
	(define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
	New.
	(define_insn "*<floatsuffix>floatv2div2sf2"): New.
	(define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
	(define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
	(define_insn "ufloatv2siv2df2<mask_name>"): New.

2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md
	(define_mode_iterator VF2_AVX512VL): New.
	(define_mode_attr sseintvecmode2): New.
	(define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
	(define_insn "fix_truncv4dfv4si2<mask_name>"): New.
	(define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
	(define_insn
	"<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
	Ditto.
	(define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
	Ditto.
	(define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
	Ditto.

2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.md
	(define_insn "*movoi_internal_avx"): Add evex version.
	(define_insn "*movti_internal"): Ditto.

2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.md
	(define_attr "isa"): Add avx512dq, noavx512dq.
	(define_attr "enabled"): Ditto.
	* config/i386/sse.md
	(define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.

2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c
	(ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
	avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
	avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
	avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
	avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
	avx512vl_loadv4si_mask, avx512vl_loadv2df_mask,	avx512vl_loadv2di_mask,
	avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
	avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
	* config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
	* config/i386/sse.md
	(define_mode_iterator VMOVE): Allow V4TI mode.
	(define_mode_iterator V_AVX512VL): New.
	(define_mode_iterator V): New handling for AVX512VL.
	(define_insn "avx512f_load<mode>_mask"): Delete.
	(define_insn "<avx512>_load<mode>_mask"): New.
	(define_insn "avx512f_store<mode>_mask"): Delete.
	(define_insn "<avx512>_store<mode>_mask"): New.


2014-08-18  Yury Gribov  <y.gribov@samsung.com>

	PR sanitizer/62089
	* asan.c (instrument_derefs): Fix bitfield check.

2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
	* config/rs6000/htm.md (ttest): Remove clobber.
	* config/rs6000/predicates.md (any_mask_operand): New predicate.
	(and_operand): Reformat.
	(and_2rld_operand): New predicate.
	* config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
	parameter.
	* config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
	parameter.  Handle AND directly.
	(rs6000_split_logical_di): Remove last parameter.
	(rs6000_split_logical): Remove last parameter.  Remove obsolete
	comment.
	* config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
	(one_cmpl<mode>2): Adjust call of rs6000_split_logical.
	(ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
	(andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
	*andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
	and 5 anonymous splitters):  Delete.
	(and<mode>3): New expander.
	(*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
	(and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
	(*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
	(ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
	(floatdisf2_internal1): Remove clobbers.
	(anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
	*anddi3_internal3_mc, and 4 anonymous splitters): Delete.
	(*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
	(and<mode>3 for BOOL_128): Remove clobber.
	(*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
	rs6000_split_logical.
	(*bool<mode>3_internal for BOOL_128): Adjust call of
	rs6000_split_logical.
	(*boolc<mode>3_internal1 for BOOL_128,
	*boolc<mode>3_internal2 for BOOL_128,
	*boolcc<mode>3_internal1 for BOOL_128,
	*boolcc<mode>3_internal2 for BOOL_128,
	*eqv<mode>3_internal1 for BOOL_128,
	*eqv<mode>3_internal2 for BOOL_128,
	*one_cmpl<mode>3_internal for BOOL_128): Ditto.
	* config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
	clobber.
	(*vec_reload_and_reg_<mptrsize>): Delete.

2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
	and split, *boolccsi3_internal3 and split): Delete.
	(*boolccdi3_internal1, *boolccdi3_internal2 and split,
	*boolccdi3_internal3 and split): Delete.
	(*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
	(*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.

2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
	and split, *boolcsi3_internal3 and split): Delete.
	(*boolcdi3_internal1, *boolcdi3_internal2 and split,
	*boolcdi3_internal3 and split): Delete.
	(*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.

2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (print_operand) <'e'>: New.
	<'u'>: Also support printing the low-order 16 bits.
	* config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
	*boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
	(iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
	*booldi3_internal3 and split): Delete.
	(ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
	*bool<mode>3_dot2): New.
	(two anonymous define_splits for non_logical_cint_operand): Merge.

2014-08-17  Marek Polacek  <polacek@redhat.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/62059
	* diagnostic.c (adjust_line): Add gcc_checking_assert.
	(diagnostic_show_locus): Don't print caret diagnostic
	if a column is larger than the line_width.

2014-08-17 Roman Gareev  <gareevroman@gmail.com>

	* common.opt: Make the ISL AST generator to be the main code generator
	of Graphite.

2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>

	* wide-int.h (generic_wide_int): Declare as class instead of struct.

2014-08-16  John David Anglin  <danglin@gcc.gnu.org>

	PR target/61641
	* config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
	Declare.
	* config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
	(pa_output_addr_vec, pa_output_addr_diff_vec): New.
	* config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
	Define.
	* config/pa/pa.md (begin_brtab): Delete insn.
	(end_brtab): Likewise.

2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.

2014-08-15  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
	(possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
	possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
	(get_dynamic_type): Remove.
	* ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
	(clear_speculation): Bring to ipa-deivrt.h
	(get_class_context): Rename to ...
	(ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
	(contains_type_p): Update.
	(get_dynamic_type): Rename to ...
	ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
	(possible_polymorphic_call_targets): UPdate.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
	* ipa-prop.c (ipa_analyze_call_uses): Update.

2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>

	* doc/invoke.texi (SH options): Document missing processor variant
	options.  Remove references to Hitachi.  Undocument deprecated mspace
	option.

2014-08-15  Jason Merrill  <jason@redhat.com>

	* tree.c (type_hash_canon): Uncomment assert.

2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* input.h (in_system_header_at): Add comment.

2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* diagnostic.c (build_message_string): Make it extern.
	* diagnostic.h (build_message_string): Make it extern.

2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>

	* config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
	load/store from/to non-floating class pseudo.

2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* input.c (diagnostic_file_cache_fini): Fix typo in comment.

2014-08-15  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (readonly_id): Rename to string_id.
	(get_constraint_for_ssa_var): Remove dead code.
	(get_constraint_for_1): Adjust.
	(find_what_var_points_to): Likewise.
	(init_base_vars): Likewise.  STRING_CSTs do not contain pointers.

2014-08-15  Ilya Tocar  <tocarip@gmail.com>

	PR target/61878
	* config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
	(_mm512_mask_cmpge_epu32_mask): Ditto.
	(_mm512_cmpge_epu32_mask): Ditto.
	(_mm512_mask_cmpge_epi64_mask): Ditto.
	(_mm512_cmpge_epi64_mask): Ditto.
	(_mm512_mask_cmpge_epu64_mask): Ditto.
	(_mm512_cmpge_epu64_mask): Ditto.
	(_mm512_mask_cmple_epi32_mask): Ditto.
	(_mm512_cmple_epi32_mask): Ditto.
	(_mm512_mask_cmple_epu32_mask): Ditto.
	(_mm512_cmple_epu32_mask): Ditto.
	(_mm512_mask_cmple_epi64_mask): Ditto.
	(_mm512_cmple_epi64_mask): Ditto.
	(_mm512_mask_cmple_epu64_mask): Ditto.
	(_mm512_cmple_epu64_mask): Ditto.
	(_mm512_mask_cmplt_epi32_mask): Ditto.
	(_mm512_cmplt_epi32_mask): Ditto.
	(_mm512_mask_cmplt_epu32_mask): Ditto.
	(_mm512_cmplt_epu32_mask): Ditto.
	(_mm512_mask_cmplt_epi64_mask): Ditto.
	(_mm512_cmplt_epi64_mask): Ditto.
	(_mm512_mask_cmplt_epu64_mask): Ditto.
	(_mm512_cmplt_epu64_mask): Ditto.
	(_mm512_mask_cmpneq_epi32_mask): Ditto.
	(_mm512_mask_cmpneq_epu32_mask): Ditto.
	(_mm512_cmpneq_epu32_mask): Ditto.
	(_mm512_mask_cmpneq_epi64_mask): Ditto.
	(_mm512_cmpneq_epi64_mask): Ditto.
	(_mm512_mask_cmpneq_epu64_mask): Ditto.
	(_mm512_cmpneq_epu64_mask): Ditto.
	(_mm512_castpd_ps): Ditto.
	(_mm512_castpd_si512): Ditto.
	(_mm512_castps_pd): Ditto.
	(_mm512_castps_si512): Ditto.
	(_mm512_castsi512_ps): Ditto.
	(_mm512_castsi512_pd): Ditto.
	(_mm512_castpd512_pd128): Ditto.
	(_mm512_castps512_ps128): Ditto.
	(_mm512_castsi512_si128): Ditto.
	(_mm512_castpd512_pd256): Ditto.
	(_mm512_castps512_ps256): Ditto.
	(_mm512_castsi512_si256): Ditto.
	(_mm512_castpd128_pd512): Ditto.
	(_mm512_castps128_ps512): Ditto.
	(_mm512_castsi128_si512): Ditto.
	(_mm512_castpd256_pd512): Ditto.
	(_mm512_castps256_ps512): Ditto.
	(_mm512_castsi256_si512): Ditto.
	(_mm512_cmpeq_epu32_mask): Ditto.
	(_mm512_mask_cmpeq_epu32_mask): Ditto.
	(_mm512_mask_cmpeq_epu64_mask): Ditto.
	(_mm512_cmpeq_epu64_mask): Ditto.
	(_mm512_cmpgt_epu32_mask): Ditto.
	(_mm512_mask_cmpgt_epu32_mask): Ditto.
	(_mm512_mask_cmpgt_epu64_mask): Ditto.
	(_mm512_cmpgt_epu64_mask): Ditto.
	* config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
	V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
	* config/i386/i386.c (enum ix86_builtins): Add
	IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
	IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
	IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
	(bdesc_args): Add __builtin_ia32_si512_256si,
	__builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
	__builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
	__builtin_ia32_pd512_pd.
	(ix86_expand_args_builtin): Handle new FTYPEs.
	* config/i386/sse.md (castmode): Add 512-bit modes.
	(AVX512MODE2P): New.
	(avx512f_<castmode><avxsizesuffix>_<castmode): New.
	(avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.

2014-08-15  Richard Biener  <rguenther@suse.de>

	* fold-const.c (tree_swap_operands_p): Put all constants
	last, also strip sign-changing NOPs when considering further
	canonicalization.  Canonicalize also when optimizing for size.

2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
	one_match > zero_match case to just before simple_sequence.

2014-08-15  Richard Biener  <rguenther@suse.de>

	* data-streamer.h (streamer_string_index, string_for_index):
	Remove.
	* data-streamer-out.c (streamer_string_index): Make static.
	* data-streamer-in.c (string_for_index): Likewise.
	* lto-streamer-out.c (lto_output_location): Use bp_pack_string.
	* lto-streamer-in.c (lto_input_location): Use bp_unpack_string.

2014-08-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62031
	* tree-data-ref.c (dr_analyze_indices): Do not set
	DR_UNCONSTRAINED_BASE.
	(dr_may_alias_p): All indirect accesses have to go the
	formerly DR_UNCONSTRAINED_BASE path.
	* tree-data-ref.h (struct indices): Remove
	unconstrained_base member.
	(DR_UNCONSTRAINED_BASE): Remove.

2014-08-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/62092
	* gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
	OMP_CLAUSE_SHARED for global vars if the global var is mentioned
	in OMP_CLAUSE_MAP in some outer target region.

2014-08-15  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (ivopts_data): New field
	name_expansion_cache.
	(tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
	(tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
	(strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
	(difference_cannot_overflow_p): New parameter.  Use affine
	expansion for equality check.
	(iv_elimination_compare_lt): Pass new argument.

2014-08-14  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78-real.md (addqi3_real): Allow adding global
	variables to the accumulator.

	* config/rl78/predicates.md (rl78_near_mem_operand): New.
	* config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
	(movhi_virt_mm): Split out near mem-mem moves to avoid problems
	with far-far moves.

	* config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
	* config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
	(umulqihi3_virt): Likewise.
	* config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
	(umulqihi3_real): Likewise.

	* config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.

2014-08-14  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/62091
	* tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
	function_entry_reached.
	(walk_aliased_vdefs): Clear it here.
	* ipa-devirt.c (check_stmt_for_type_change): Handle static storage.

2014-08-14  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.h (compare_virtual_tables): Declare.
	* ipa-devirt.c (odr_subtypes_equivalent_p): New function

2014-08-14  Marek Polacek  <polacek@redhat.com>

	DR 458
	* ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
	(ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.

2014-08-14  Tom de Vries  <tom@codesourcery.com>

	* emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.

2014-08-14  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/62004
	PR rtl-optimization/62030
	* ifcvt.c (rtx_interchangeable_p): New function.
	(noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
	* emit-rtl.h (mem_attrs_eq_p): Declare.

2014-08-14  Roman Gareev  <gareevroman@gmail.com>

	* graphite-scop-detection.c:
	Add inclusion of cp-tree.h.
	(graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
	in case they are pointers to object types

2014-08-14  Richard Biener  <rguenther@suse.de>

	* BASE-VER: Change to 5.0.0

2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md (define_mode_attr avx512): New.
	(define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
	V4DI modes.
	(define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
	(define_mode_attr ssse3_avx2): Ditto.
	(define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
	(define_mode_attr avx2_avx512bw): New.
	(define_mode_attr ssedoublemodelower): New.
	(define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
	V32HI, V64QI modes.
	(define_mode_attr ssebytemode): Allow V8DI modes.
	(define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
	(define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
	(define_mode_attr ssePSmode2): New.
	(define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
	V16HI, V32HI modes.
	(define_mode_attr dbpsadbwmode): New.
	(define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
	V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
	(vi8_sse4_1_avx2_avx512): New.
	(define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
	mode attribute.
	(define_mode_attr blendbits): Move before its immediate use.

2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
	* config/i386/subst.md
	(define_mode_iterator SUBST_V): Update.
	(define_mode_iterator SUBST_A): Ditto.
	(define_subst_attr "mask_operand7"): New.
	(define_subst_attr "mask_operand10"): New.
	(define_subst_attr "mask_operand_arg34") : New.
	(define_subst_attr "mask_expand_op3"): New.
	(define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
	(define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
	(define_subst_attr "mask_avx512vl_condition"): New.
	(define_subst_attr "round_mask_operand4"): Ditto.
	(define_subst_attr "round_mask_scalar_op3"): Delete.
	(define_subst_attr "round_mask_op4"): New.
	(define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
	V16SImode.
	(define_subst_attr "round_modev8sf_condition"): New.
	(define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
	<MODE>mode.
	(define_subst_attr "round_saeonly_mask_operand4"): New.
	(define_subst_attr "round_saeonly_mask_op4"): New.
	(define_subst_attr "round_saeonly_mode512bit_condition"): Allow
	V8DImode, V16SImode.
	(define_subst_attr "round_saeonly_modev8sf_condition"): New.
	(define_subst_attr "mask_expand4_name" "mask_expand4"): New.
	(define_subst_attr "mask_expand4_args"): New.
	(define_subst "mask_expand4"): New.

2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.md
	(define_attr "isa"): Add avx512bw,noavx512bw.
	(define_attr "enabled"): Ditto.
	(define_split): Add 32/64-bit mask logic.
	(define_insn "*k<logic>qi"): New.
	(define_insn "*k<logic>hi"): New.
	(define_insn "*anddi_1"): Add mask version.
	(define_insn "*andsi_1"): Ditto.
	(define_insn "*<code><mode>_1"): Ditto.
	(define_insn "*<code>hi_1"): Ditto.
	(define_insn "kxnor<mode>"): New.
	(define_insn "kunpcksi"): New.
	(define_insn "kunpckdi"): New.
	(define_insn "*one_cmpl<mode>2_1"): Add mask version.
	(define_insn "*one_cmplhi2_1"): Ditto.

2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
	V32HImode.

2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
	registers.
	(inline_secondary_memory_needed): Allow 64 bit wide mask registers.
	(ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
	xmm/ymm16+ when availble.
	* config/i386/i386.h
	(HARD_REGNO_NREGS): Add mask regs.
	(VALID_AVX512F_REG_MODE): Ditto.
	(VALID_AVX512F_REG_MODE) : Define.
	(VALID_MASK_AVX512BW_MODE): Ditto.
	(reg_class) (MASK_REG_P(X)): Define.
	* config/i386/i386.md: Do not split long moves with mask register,
	use kmovb if avx512bw is availible.
	(movdi_internal): Handle mask registers.

2014-08-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62081
	* tree-ssa-loop.c (pass_fix_loops): New pass.
	(pass_tree_loop::gate):  Do not fixup loops here.
	* tree-pass.h (make_pass_fix_loops): Declare.
	* passes.def: Schedule pass_fix_loops before GIMPLE loop passes.

2014-08-14  Richard Biener  <rguenther@suse.de>

	* tree.c (type_hash_lookup, type_hash_add): Merge into ...
	(type_hash_canon): ... this and avoid 2nd lookup for the add.

2014-08-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62090
	* builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
	(fold_builtin_2): Do not fold sprintf.
	(fold_builtin_3): Likewise.
	* gimple-fold.c (gimple_fold_builtin_sprintf): New function
	moved from builtins.c.
	(gimple_fold_builtin): Fold sprintf.

2014-08-14  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/62079
	* recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
	run cleanup_cfg.

2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
	current_function_decl.

2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>

	* cgraph.c (cgraph_node::function_symbol): Fix wrong
	cgraph_function_node to cgraph_node::function_symbol
	refactoring.

2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* config/arm/arm.c (arm_option_override): Set max_insns_skipped
	to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.

2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com

	* microblaze/microblaze.md: Remove redundant '@' to avoid compiling
	warning.

2014-08-13  Roman Gareev  <gareevroman@gmail.com>

	* gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
	generator.

2014-08-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/62025
	* sched-deps.c (find_inc): Check if inc_insn doesn't clobber
	any registers that are used in mem_insn.

2014-08-12  Steve Ellcey  <sellcey@mips.com>

	* config/mips/mips.h (ASM_SPEC): Pass float options to assembler.

2014-08-12  Steve Ellcey  <sellcey@mips.com>

	* config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
	(MULTILIB_DIRNAMES): Ditto.
	* config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
	* config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
	* config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
	* config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
	* config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
	* config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.

2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/61413
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
	of __ARM_SIZEOF_WCHAR_T.

2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/62098
	* config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
	Remove unnecessary attributes.

2014-08-12  Yury Gribov  <y.gribov@samsung.com>

	* internal-fn.c (init_internal_fns): Fix off-by-one.

2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* config/i386/i386.c (standard_sse_constant_opcode): Use
	vpxord/vpternlog if avx512 is availible.

2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR middle-end/62103
	* gimple-fold.c (fold_ctor_reference): Don't fold in presence of
	bitfields, that is when size doesn't match the size of type or the
	size of the constructor.

2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/constraints.md (wh constraint): New constraint,
	for FP registers if direct move is available.
	(wi constraint): New constraint, for VSX/FP registers that can
	handle 64-bit integers.
	(wj constraint): New constraint for VSX/FP registers that can
	handle 64-bit integers for direct moves.
	(wk constraint): New constraint for VSX/FP registers that can
	handle 64-bit doubles for direct moves.
	(wy constraint): Make documentation match implementation.

	* config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
	scalar_in_vmx_p field to simplify tests of whether SFmode or
	DFmode can go in the Altivec registers.
	(rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
	(rs6000_setup_reg_addr_masks): Likewise.
	(rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
	field, and wh/wi/wj/wk constraints.
	(rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
	the wh/wi/wj/wk constraints.
	(rs6000_preferred_reload_class): If SFmode/DFmode can go in the
	upper registers, prefer VSX registers unless the operation is a
	memory operation with REG+OFFSET addressing.

	* config/rs6000/vsx.md (VSr mode attribute): Add support for
	DImode.  Change SFmode to use ww constraint instead of d to allow
	SF registers in the upper registers.
	(VSr2): Likewise.
	(VSr3): Likewise.
	(VSr5): Fix thinko in comment.
	(VSa): New mode attribute that is an alternative to wa, that
	returns the VSX register class that a mode can go in, but may not
	be the preferred register class.
	(VS_64dm): New mode attribute for appropriate register classes for
	referencing 64-bit elements of vectors for direct moves and normal
	moves.
	(VS_64reg): Likewise.
	(vsx_mov<mode>): Change wa constraint to <VSa> to limit the
	register allocator to only registers the data type can handle.
	(vsx_le_perm_load_<mode>): Likewise.
	(vsx_le_perm_store_<mode>): Likewise.
	(vsx_xxpermdi2_le_<mode>): Likewise.
	(vsx_xxpermdi4_le_<mode>): Likewise.
	(vsx_lxvd2x2_le_<mode>): Likewise.
	(vsx_lxvd2x4_le_<mode>): Likewise.
	(vsx_stxvd2x2_le_<mode>): Likewise.
	(vsx_add<mode>3): Likewise.
	(vsx_sub<mode>3): Likewise.
	(vsx_mul<mode>3): Likewise.
	(vsx_div<mode>3): Likewise.
	(vsx_tdiv<mode>3_internal): Likewise.
	(vsx_fre<mode>2): Likewise.
	(vsx_neg<mode>2): Likewise.
	(vsx_abs<mode>2): Likewise.
	(vsx_nabs<mode>2): Likewise.
	(vsx_smax<mode>3): Likewise.
	(vsx_smin<mode>3): Likewise.
	(vsx_sqrt<mode>2): Likewise.
	(vsx_rsqrte<mode>2): Likewise.
	(vsx_tsqrt<mode>2_internal): Likewise.
	(vsx_fms<mode>4): Likewise.
	(vsx_nfma<mode>4): Likewise.
	(vsx_eq<mode>): Likewise.
	(vsx_gt<mode>): Likewise.
	(vsx_ge<mode>): Likewise.
	(vsx_eq<mode>_p): Likewise.
	(vsx_gt<mode>_p): Likewise.
	(vsx_ge<mode>_p): Likewise.
	(vsx_xxsel<mode>): Likewise.
	(vsx_xxsel<mode>_uns): Likewise.
	(vsx_copysign<mode>3): Likewise.
	(vsx_float<VSi><mode>2): Likewise.
	(vsx_floatuns<VSi><mode>2): Likewise.
	(vsx_fix_trunc<mode><VSi>2): Likewise.
	(vsx_fixuns_trunc<mode><VSi>2): Likewise.
	(vsx_x<VSv>r<VSs>i): Likewise.
	(vsx_x<VSv>r<VSs>ic): Likewise.
	(vsx_btrunc<mode>2): Likewise.
	(vsx_b2trunc<mode>2): Likewise.
	(vsx_floor<mode>2): Likewise.
	(vsx_ceil<mode>2): Likewise.
	(vsx_<VS_spdp_insn>): Likewise.
	(vsx_xscvspdp): Likewise.
	(vsx_xvcvspuxds): Likewise.
	(vsx_float_fix_<mode>2): Likewise.
	(vsx_set_<mode>): Likewise.
	(vsx_extract_<mode>_internal1): Likewise.
	(vsx_extract_<mode>_internal2): Likewise.
	(vsx_extract_<mode>_load): Likewise.
	(vsx_extract_<mode>_store): Likewise.
	(vsx_splat_<mode>): Likewise.
	(vsx_xxspltw_<mode>): Likewise.
	(vsx_xxspltw_<mode>_direct): Likewise.
	(vsx_xxmrghw_<mode>): Likewise.
	(vsx_xxmrglw_<mode>): Likewise.
	(vsx_xxsldwi_<mode>): Likewise.
	(vsx_xscvdpspn): Tighten constraints to only use register classes
	the types use.
	(vsx_xscvspdpn): Likewise.
	(vsx_xscvdpspn_scalar): Likewise.

	* config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
	wj, and wk constraints.
	(GPR_REG_CLASS_P): New helper macro for register classes targeting
	general purpose registers.

	* config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
	direct moves.
	(zero_extendsidi2_lfiwz): Use wj constraint for direct move of
	DImode instead of wm.  Use wk constraint for direct move of DFmode
	instead of wm.
	(extendsidi2_lfiwax): Likewise.
	(lfiwax): Likewise.
	(lfiwzx): Likewise.
	(movdi_internal64): Likewise.

	* doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
	wk constraints. Make the wy constraint documentation match them
	implementation.

2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>

	Replacement of isl_int by isl_val
	* graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
	(compute_bounds_for_param): use isl_val instead of isl_int
	(compute_bounds_for_loop): likewise
	* graphite-interchange.c: include isl/val.h, isl/val_gmp.h
	(build_linearized_memory_access): use isl_val instead of isl_int
	(pdr_stride_in_loop): likewise
	* graphite-optimize-isl.c:
	(getPrevectorMap): use isl_val instead of isl_int
	* graphite-poly.c:
	(pbb_number_of_iterations_at_time): use isl_val instead of isl_int
	graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
	(extern the_isl_ctx): declare
	(build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
	(extract_affine_gmp): likewise
	(wrap): likewise
	(build_loop_iteration_domains): likewise
	(add_param_constraints): likewise

2014-08-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62075
	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
	handle uses in patterns.

2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_AVX512VL_SET): Define.
	(OPTION_MASK_ISA_AVX512F_UNSET): Update.
	(ix86_handle_option): Handle OPT_mavx512vl.
	* config/i386/cpuid.h (bit_AVX512VL): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
	set -mavx512vl accordingly.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	OPTION_MASK_ISA_AVX512VL.
	* config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
	(ix86_option_override_internal): Define PTA_AVX512VL, handle
	PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
	(ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
	* config/i386/i386.h (TARGET_AVX512VL): Define.
	(TARGET_AVX512VL_P(x)): Ditto.
	* config/i386/i386.opt: Add mavx512vl.

2014-08-11  Felix Yang  <fei.yang0953@gmail.com>

	PR tree-optimization/62073
	* tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
	a basic block.

2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_AVX512BW_SET) : Define.
	(OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
	(OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
	(ix86_handle_option): Handle OPT_mavx512bw.
	* config/i386/cpuid.h (bit_AVX512BW): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
	set -mavx512bw accordingly.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	OPTION_MASK_ISA_AVX512BW.
	* config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
	(ix86_option_override_internal): Define PTA_AVX512BW, handle
	PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
	(ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
	* config/i386/i386.h (TARGET_AVX512BW): Define.
	(TARGET_AVX512BW_P(x)): Ditto.
	* config/i386/i386.opt: Add mavx512bw.

2014-08-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62070
	* tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
	Remove SSA checking.

2014-08-11  Yury Gribov  <y.gribov@samsung.com>

	* asan.c (asan_check_flags): New enum.
	(build_check_stmt_with_calls): Removed function.
	(build_check_stmt): Split inlining logic to
	asan_expand_check_ifn.
	(instrument_derefs): Rename parameter.
	(instrument_mem_region_access): Rename parameter.
	(instrument_strlen_call): Likewise.
	(asan_expand_check_ifn): New function.
	(asan_instrument): Remove old code.
	(pass_sanopt::execute): Change handling of
	asan-instrumentation-with-call-threshold.
	(asan_clear_shadow): Fix formatting.
	(asan_function_start): Likewise.
	(asan_emit_stack_protection): Likewise.
	* doc/invoke.texi (asan-instrumentation-with-call-threshold):
	Update description.
	* internal-fn.c (expand_ASAN_CHECK): New function.
	* internal-fn.def (ASAN_CHECK): New internal function.
	* params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
	Update description.
	(PARAM_ASAN_USE_AFTER_RETURN): Likewise.
	* tree.c: Small comment fix.

2014-08-11  Yury Gribov  <y.gribov@samsung.com>

	* gimple.c (gimple_call_fnspec): Support internal functions.
	(gimple_call_return_flags): Use const.
	* Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
	* internal-fn.def: Add fnspec information.
	* internal-fn.h (internal_fn_fnspec): New function.
	(init_internal_fns): Declare new function.
	* internal-fn.c (internal_fn_fnspec_array): New global variable.
	(init_internal_fns): New function.
	* tree-core.h: Update macro call.
	* tree.c (build_common_builtin_nodes): Initialize internal fns.

2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>

	* lto-streamer.h (struct output_block::symbol): Change from
	struct symtab_node to plain symtab_node.
	(referenced_from_this_partition_p): Change first parameter
	from struct symtab_node to plain symtab_node.

2014-08-10  Marek Polacek  <polacek@redhat.com>

	PR c/51849
	* gcc/doc/invoke.texi: Document -Wc90-c99-compat.

2014-08-09  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (get_dynamic_type): Handle case when instance is in
	DECL correctly; do not give up on types in static storage.

2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>

	* doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.

2014-08-09  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c:
	(translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.

	* gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.

2014-08-08  Guozhi Wei  <carrot@google.com>

	* config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.

2014-08-08  Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (get_skeleton_type_unit): Remove.
	(output_skeleton_debug_sections): Remove skeleton type units.
	(output_comdat_type_unit): Likewise.
	(dwarf2out_finish): Likewise.

2014-08-07  Yi Yang  <ahyangyi@google.com>

	* predict.c (expr_expected_value_1): Remove the redundant assignment.

2014-08-08  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (struct lto_input_block): Make it a class
	with a constructor.
	(LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
	(struct lto_function_header, struct lto_simple_header,
	struct lto_simple_header_with_strings,
	struct lto_decl_header, struct lto_function_header): Make
	a simple inheritance hieararchy.  Remove unused fields.
	(struct lto_asm_header): Remove.
	* lto-streamer-out.c (produce_asm): Adjust.
	(lto_output_toplevel_asms): Likewise.
	(produce_asm_for_decls): Likewise.
	* lto-section-out.c (lto_destroy_simple_output_block): Likewise.
	* data-streamer-in.c (string_for_index): Likewise.
	* ipa-inline-analysis.c (inline_read_section): Likewise.
	* ipa-prop.c (ipa_prop_read_section): Likewise.
	(read_replacements_section): Likewise.
	* lto-cgraph.c (input_cgraph_opt_section): Likewise.
	* lto-section-in.c (lto_create_simple_input_block): Likewise.
	(lto_destroy_simple_input_block): Likewise.
	* lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
	(lto_input_toplevel_asms): Likewise.

2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
	    Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
	    Anna Tikhonova  <anna.tikhonova@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Ilya Verbin  <ilya.verbin@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_AVX512DQ_SET): Define.
	(OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
	(ix86_handle_option): Handle OPT_mavx512dq.
	* config/i386/cpuid.h (bit_AVX512DQ): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
	set -mavx512dq accordingly.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	OPTION_MASK_ISA_AVX512DQ.
	* config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
	(ix86_option_override_internal): Define PTA_AVX512DQ, handle
	PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
	(ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
	* config/i386/i386.h (TARGET_AVX512DQ): Define.
	(TARGET_AVX512DQ_P(x)): Ditto.
	* config/i386/i386.opt: Add mavx512dq.

2014-08-08  Richard Biener  <rguenther@suse.de>

	* builtins.c (c_getstr, readonly_data_expr, init_target_chars,
	target_percent, target_percent_s): Export.
	(var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
	fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
	fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
	fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
	fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
	Move to gimple-fold.c.
	(fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
	strcat and strcpy.
	(fold_builtin_3): Remove handling of memset, bcopy, memcpy,
	mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
	(fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
	memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
	(rewrite_call_expr_array): Remove.
	(fold_builtin_sprintf_chk): Likewise.
	(fold_builtin_snprintf_chk): Likewise.
	(fold_builtin_varargs): Remove handling of sprintf_chk,
	vsprintf_chk, snprintf_chk and vsnprintf_chk.
	(gimple_fold_builtin_sprintf_chk): Remove.
	(gimple_fold_builtin_snprintf_chk): Likewise.
	(gimple_fold_builtin_varargs): Likewise.
	(fold_call_stmt): Do not call gimple_fold_builtin_varargs.
	* predict.c (optimize_bb_for_size_p): Handle NULL bb.
	* gimple.c (gimple_seq_add_seq_without_update): New function.
	* gimple.h (gimple_seq_add_seq_without_update): Declare.
	* gimple-fold.c: Include output.h.
	(gsi_replace_with_seq_vops): New function, split out from ...
	(gimplify_and_update_call_from_tree): ... here.
	(replace_call_with_value): New function.
	(replace_call_with_call_and_fold): Likewise.
	(var_decl_component_p): Moved from builtins.c.
	(gimple_fold_builtin_memory_op): Moved from builtins.c
	fold_builtin_memory_op and rewritten to GIMPLE.
	(gimple_fold_builtin_memset): Likewise.
	(gimple_fold_builtin_strcpy): Likewise.
	(gimple_fold_builtin_strncpy): Likewise.
	(gimple_fold_builtin_strcat): Likewise.
	(gimple_fold_builtin_fputs): Likewise.
	(gimple_fold_builtin_memory_chk): Likewise.
	(gimple_fold_builtin_stxcpy_chk): Likewise.
	(gimple_fold_builtin_stxncpy_chk): Likewise.
	(gimple_fold_builtin_snprintf_chk): Likewise.
	(gimple_fold_builtin_sprintf_chk): Likewise.
	(gimple_fold_builtin_strlen): New function.
	(gimple_fold_builtin_with_strlen): New function split out from
	gimple_fold_builtin.
	(gimple_fold_builtin): Change signature and handle
	bzero, memset, bcopy, memcpy, mempcpy and memmove folding
	here.  Call gimple_fold_builtin_with_strlen.
	(gimple_fold_call): Adjust.

2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* calls.c (precompute_arguments): Check
	promoted_for_signed_and_unsigned_p and set the promoted mode.
	(promoted_for_signed_and_unsigned_p): New function.
	(expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
	and set the promoted mode.
	* expr.h (promoted_for_signed_and_unsigned_p): New function definition.
	* cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
	SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.


2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
	instead of SUBREG_PROMOTED_UNSIGNED_SET.
	(expand_call): Likewise.
	* cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
	to get promoted mode.
	* combine.c (record_promoted_value): Skip > 0 comparison with
	SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
	* expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
	of SUBREG_PROMOTED_UNSIGNED_P.
	(convert_modes): Likewise.
	(store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
	Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
	(expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
	SUBREG_PROMOTED_UNSIGNED_SET.
	* function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
	instead of SUBREG_PROMOTED_UNSIGNED_SET.
	* ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
	SUBREG_PROMOTED_SET.
	* internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
	SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
	* optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
	of SUBREG_PROMOTED_UNSIGNED_P.
	* rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
	(SUBREG_PROMOTED_SET): New define.
	(SUBREG_PROMOTED_GET): Likewise.
	(SUBREG_PROMOTED_SIGN): Likewise.
	(SUBREG_PROMOTED_SIGNED_P): Likewise.
	(SUBREG_CHECK_PROMOTED_SIGN): Likewise.
	(SUBREG_PROMOTED_UNSIGNED_P): Updated.
	* rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
	instead of SUBREG_PROMOTED_UNSIGNED_GET.
	(nonzero_bits1): Skip > 0 comparison with the results as
	SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
	(num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
	of !SUBREG_PROMOTED_UNSIGNED_P.
	* simplify-rtx.c (simplify_unary_operation_1): Use new
	SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
	(simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
	SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
	SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.

2014-08-07  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c: Include gimple-pretty-print.h
	(referenced_from_vtable_p): Exclude DECL_EXTERNAL from
	further tests.
	(decl_maybe_in_construction_p): Fix conditional on cdtor check
	(get_polymorphic_call_info): Fix return value
	(type_change_info): New sturcture based on ipa-prop
	variant.
	(noncall_stmt_may_be_vtbl_ptr_store): New predicate
	based on ipa-prop variant.
	(extr_type_from_vtbl_ptr_store): New function
	based on ipa-prop variant.
	(record_known_type): New function.
	(check_stmt_for_type_change): New function.
	(get_dynamic_type): New function.
	* ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
	* tree-ssa-pre.c: ipa-utils.h
	(eliminate_dom_walker::before_dom_children): Use ipa-devirt
	machinery; sanity check with ipa-prop devirtualization.
	* trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
	polymorphic flag.

2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>

	* Makefile.in: Remove references to pointer-set.c and pointer-set.h.
	* alias.c, cfgexpand.c, cgraphbuild.c,
	config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
	config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
	config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
	config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
	config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
	config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
	config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
	dse.c, except.c, gengtype.c, gimple-expr.c,
	gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
	ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
	tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
	tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
	tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
	tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
	pointer-set.h.
	* pointer-set.c: Remove file.
	* pointer-set.h: Remove file.

2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
	* config/arm/types.md (f_sels, f_seld): Delete.

2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (absdi2): Set simd attribute.
	(aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
	(aarch64_movdi_<mode>high): Likewise.
	(aarch64_mov<mode>high_di): Likewise.
	(aarch64_movdi_<mode>low): Likewise.
	(aarch64_mov<mode>low_di): Likewise.
	(aarch64_movtilow_tilow): Likewise.
	Add comment explaining usage of fp,simd attributes and of
	TARGET_FLOAT and TARGET_SIMD.

2014-08-07  Ian Bolton  <ian.bolton@arm.com>
	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
	Use MOVN when one of the half-words is 0xffff.

2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>

	* config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.

2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
	(enum rfs_decition:RFS_*): New constants wrapped in an enum.
	(rfs_str): String corresponding to RFS_* constants.
	(rank_for_schedule_stats_t): New typedef.
	(rank_for_schedule_stats): New static variable.
	(rfs_result): New static function.
	(rank_for_schedule): Track statistics for deciding heuristics.
	(rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
	static functions.
	(ready_sort): Use them for debug printouts.
	(schedule_block): Init statistics state.  Print statistics on
	rank_for_schedule decisions.

2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	* haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.

2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
	constraint.

2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-map.h (default_hashmap_traits): Adjust overloads of hash
	function to not conflict.
	* alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
	gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
	lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
	tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
	tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
	of pointer_map.

2014-08-07  Marek Polacek  <polacek@redhat.com>

	* fold-const.c (fold_binary_loc): Add folding of
	(PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.

2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>

	* config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
	instead of type size.
	(ASM_FINISH_DECLARE_OBJECT): Likewise.

2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>

	* config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
	(*thumb1_movqi_insn): Likewise.
	* config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.

2014-08-07  Tom de Vries  <tom@codesourcery.com>

	* doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
	(glibc_2_11_or_earlier): Remove effective-target keywords.

2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/arm/arm.c (bdesc_2arg): Fix typo.
	(arm_atomic_assign_expand_fenv): Remove The default implementation.

2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.

2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR debug/61923
	* haifa-sched.c (advance_one_cycle): Fix dump.
	(schedule_block): Don't advance cycle if we are already at the
	beginning of the cycle.

2014-08-06  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61393
	* cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.

2014-08-06  Richard Biener  <rguenther@suse.de>

	PR lto/62034
	* lto-streamer-in.c (lto_input_tree_1): Assert we do not read
	SCCs here.
	(lto_input_tree): Pop SCCs here.

2014-08-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61320
	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
	handle misaligned loads.

2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
	(aarch64_expand_vec_perm_const): Check for dup before zip.

2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
	CONST_INT_P instead of GET_CODE and compare.
	(aarch64_select_cc_mode): Likewise.
	(aarch64_print_operand): Likewise.
	(aarch64_rtx_costs): Likewise.
	(aarch64_simd_valid_immediate): Likewise.
	(aarch64_simd_check_vect_par_cnst_half): Likewise.
	(aarch64_simd_emit_pair_result_insn): Likewise.

2014-08-05  David Malcolm  <dmalcolm@redhat.com>

	* gdbhooks.py (find_gcc_source_dir): New helper function.
	(class PassNames): New class, locating and parsing passes.def.
	(class BreakOnPass): New command "break-on-pass".

2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>

	* tree-ssa.c (redirect_edge_var_map_dup): insert newe before
	getting olde.

2014-08-05  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/61672
	* emit-rtl.h (mem_attrs_eq_p): Declare.
	* emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
	* cse.c (exp_equiv_p): Use mem_attrs_eq_p.
	* cfgcleanup.c (merge_memattrs): Likewise.
	Include emit-rtl.h.

2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
	rather than singleton vectors.
	(vqdmlsls_lane_s32): Likewise.

2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
	Use VSDQ_HSI mode iterator.
	(aarch64_sqrdmulh_laneq<mode>): Likewise.
	(aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
	* config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
	Use BUILTIN_VDQHS macro.
	(sqrdmulh_laneq): Likewise.
	* config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
	(vqdmlals_laneq_s32): Likewise.
	(vqdmlslh_laneq_s16): Likewise.
	(vqdmlsls_laneq_s32): Likewise.
	(vqdmulhh_laneq_s16): Likewise.
	(vqdmulhs_laneq_s32): Likewise.
	(vqrdmulhh_laneq_s16): Likewise.
	(vqrdmulhs_laneq_s32): Likewise.

2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
	(vmuld_laneq_f64): Likewise.
	(vmuls_laneq_f32): Likewise.
	(vmul_n_f64): Likewise.
	(vmuld_lane_f64): Reimplement in C.
	(vmuls_lane_f32): Likewise.

2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
	to reservation.
	* config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.

2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
	(rbitsi2): Likewise.
	(*arm_rev): Set predicable and predicable_short_it attributes.

2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* convert.c (convert_to_integer): Guard transformation to lrint by
	-fno-math-errno.

2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_simd_builtin_type_mode): Delete.
	(v8qi_UP): Remap to V8QImode.
	(v4hi_UP): Remap to V4HImode.
	(v2si_UP): Remap to V2SImode.
	(v2sf_UP): Remap to V2SFmode.
	(v1df_UP): Remap to V1DFmode.
	(di_UP): Remap to DImode.
	(df_UP): Remap to DFmode.
	(v16qi_UP):V16QImode.
	(v8hi_UP): Remap to V8HImode.
	(v4si_UP): Remap to V4SImode.
	(v4sf_UP): Remap to V4SFmode.
	(v2di_UP): Remap to V2DImode.
	(v2df_UP): Remap to V2DFmode.
	(ti_UP): Remap to TImode.
	(ei_UP): Remap to EImode.
	(oi_UP): Remap to OImode.
	(ci_UP): Map to CImode.
	(xi_UP): Remap to XImode.
	(si_UP): Remap to SImode.
	(sf_UP): Remap to SFmode.
	(hi_UP): Remap to HImode.
	(qi_UP): Remap to QImode.
	(aarch64_simd_builtin_datum): Make mode a machine_mode.
	(VAR1): Build builtin name.
	(aarch64_init_simd_builtins): Remove dead code.

2014-08-05  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c:
	(set_options): New function.
	(scop_to_isl_ast): Add calling of set_options.

2014-08-05  Jakub Jelinek  <jakub@redhat.com>

	* loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
	(analyze_iv_to_split_insn): Don't initialize them.
	(get_ivts_expr): Removed.
	(allocate_basic_variable, insert_base_initialization): Use
	SET_SRC instead of *get_ivts_expr.
	(split_iv): Use &SET_SRC instead of get_ivts_expr.

2014-08-05  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
	(translate_isl_ast_for_loop): Add checking of the
	flag_loop_parallelize_all.
	(ast_build_before_for): New function.
	(scop_to_isl_ast): Add checking of the
	flag_loop_parallelize_all.
	* graphite-dependences.c: Move the defenition of the
	scop_get_dependences from graphite-optimize-isl.c to this file.
	(apply_schedule_on_deps): Add checking of the ux's emptiness.
	(carries_deps): Add checking of the x's value.
	* graphite-optimize-isl.c: Move the defenition of the
	scop_get_dependences to graphite-dependences.c.
	* graphite-poly.h: Add declarations of scop_get_dependences
	and carries_deps.

2014-08-04  Rohit  <rohitarulraj@freescale.com>

	PR target/60102
	* config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
	names.
	(alt_reg_names): Likewise.
	(rs6000_dwarf_register_span): For SPE high registers, replace
	dwarf register numbers with GCC hard register numbers.
	(rs6000_init_dwarf_reg_sizes_extra): Likewise.
	(rs6000_dbx_register_number): For SPE high registers, return dwarf
	register number for the corresponding GCC hard register number.
	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
	newly added GCC hard register numbers for SPE high registers.
	(DWARF_FRAME_REGISTERS):  Likewise.
	(DWARF_REG_TO_UNWIND_COLUMN): Likewise.
	(DWARF_FRAME_REGNUM): Likewise.
	(FIXED_REGISTERS): Likewise.
	(CALL_USED_REGISTERS): Likewise.
	(CALL_REALLY_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(enum reg_class): Likewise.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(SPE_HIGH_REGNO_P): New macro to identify SPE high registers.

2014-08-04  Richard Biener  <rguenther@suse.de>

	* gimple-fold.h (gimple_fold_builtin): Remove.
	* gimple-fold.c (gimple_fold_builtin): Make static.
	* tree-ssa-ccp.c (pass_fold_builtins::execute): Use
	fold_stmt, not gimple_fold_builtin.

2014-08-04  Martin Liska <mliska@suse.cz>

	* cgraph.h (csi_end_p): Removed.
	(csi_next): Likewise.
	(csi_node): Likewise.
	(csi_start): Likewise.
	(cgraph_node_in_set_p): Likewise.
	(cgraph_node_set_size): Likewise.
	(vsi_end_p): Likewise.
	(vsi_next): Likewise.
	(vsi_node): Likewise.
	(vsi_start): Likewise.
	(varpool_node_set_size): Likewise.
	(cgraph_node_set_nonempty_p): Likewise.
	(varpool_node_set_nonempty_p): Likewise.
	* cgraphunit.c (cgraph_process_new_functions): vec replaces
	cgraph_node_set.
	* ipa-inline-transform.c: Likewise.
	* ipa-utils.c (cgraph_node_set_new): Removed.
	(cgraph_node_set_add): Likewise.
	(cgraph_node_set_remove): Likewise.
	(cgraph_node_set_find): Likewise.
	(dump_cgraph_node_set): Likewise.
	(debug_cgraph_node_set): Likewise.
	(free_cgraph_node_set): Likewise.
	(varpool_node_set_new): Likewise.
	(varpool_node_set_add): Likewise.
	(varpool_node_set_remove): Likewise.
	(varpool_node_set_find): Likewise.
	(dump_varpool_node_set): Likewise.
	(free_varpool_node_set): Likewise.
	(debug_varpool_node_set): Likewise.
	* tree-emutls.c (struct tls_var_data):
	(emutls_index): Removed.
	(emutls_decl): Likewise.
	(gen_emutls_addr): Function implementation uses newly added
	hash_map<varpool_node *, tls_var_data>.
	(clear_access_vars): Likewise.
	(create_emultls_var): Likewise.
	(ipa_lower_emutls): Likewise.
	(reset_access): New function.

2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	* config/i386/i386.c (ix86_option_override_internal): Add
	PTA_RDRND and PTA_MOVBE for bdver4.

2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
	    James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/md.texi (clrsb): Document.
	(clz): Change reference to x into operand 1.
	(ctz): Likewise.
	(popcount): Likewise.

2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/61713
	* gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
	move to subtarget in serial version if result is ignored.

2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* sched-deps.c (try_group_insn): Generalise macro fusion hook usage
	to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
	(sched_analyze_insn): Update use of try_group_insn to
	sched_macro_fuse_insns.
	* config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
	arguments that are not conditional jumps.

2014-08-04  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's
	extended family information. Handle BTVER2 cpu with cpuid family value.

2014-08-04  Tom de Vries  <tom@codesourcery.com>

	* doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
	(glibc_2_11_or_earlier): Document effective-target keywords.

2014-08-01  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (odr_type_warn_count): Add type.
	(possible_polymorphic_call_targets): Set it.
	(ipa_devirt): Use it.

2014-08-01  Jan Hubicka  <hubicka@ucw.cz>

	* doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
	Document.
	* ipa-devirt.c: Include hash-map.h
	(struct polymorphic_call_target_d): Add type_warning and decl_warning.
	(clear_speculation): Break out of ...
	(get_class_context): ... here; speed up handling obviously useless
	speculations.
	(odr_type_warn_count, decl_warn_count): New structures.
	(final_warning_record): New structure.
	(final_warning_records): New static variable.
	(possible_polymorphic_call_targets): Cleanup handling of
	speculative info; do not build speculation when user do not care;
	record info about warnings when asked for.
	(add_decl_warning): New function.
	(type_warning_cmp): New function.
	(decl_warning_cmp): New function.
	(ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
	(gate): Enable pass when warnings are requested.
	* common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
	options.

2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-map.h (default_hashmap_traits::mark_key_deleted):
	Fix cast.
	(hash_map::remove): New method.
	(hash_map::traverse): New method.
	* cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
	ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
	tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
	tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
	tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
	pointer_map.

2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-set.h: new File.
	* cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
	cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
	ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
	lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
	tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
	tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
	tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
	varpool.c: Use hash_set instead of pointer_set.

2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.

2014-08-01  Jiong Wang <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
	for frame access when strict_p is false.

2014-08-01  Renlin Li <renlin.li@arm.com>
2014-08-01  Jiong Wang <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
	aarch64_offset_7bit_signed_scaled_p, remove static and use it.
	* config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
	Declaration.
	* config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
	predicate.
	* config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
	aarch64_mem_pair_offset.

2014-08-01  Jiong Wang <jiong.wang@arm.com>

	* config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
	offset.
	(loadwb_pair<GPI:mode>_<P:mode>): Likewise.
	* config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.

2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.h (REGISTER_PREFIX): Define macro.

2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>

	PR regression/61510
	* cgraphunit.c (analyze_functions): Use get_create rather than get
	for decls which are clones of abstract functions.

2014-08-01  Martin Liska  <mliska@suse.cz>

	* gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
	* ipa-prop.h (count_formal_params): Global function created from static.
	* ipa-prop.c (count_formal_params): Likewise.
	* ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
	profiles for semantically equivalent functions.
	* passes.c (do_per_function): If we load body of a function
	during WPA, this condition should behave same.
	* varpool.c (ctor_for_folding): More tolerant assert for variable
	aliases created during WPA.

2014-08-01  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi (Options That Control Optimization): Documentation
	for -foptimize-strlen introduced. Optimization levels default options
	fixed.

2014-08-01  Jakub Jelinek  <jakub@redhat.com>

	* opts.c (common_handle_option): Handle -fsanitize=alignment.
	* ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
	(ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
	type to bool.
	* stor-layout.h (min_align_of_type): New prototype.
	* asan.c (pass_sanopt::execute): Don't perform gsi_next if
	ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
	check.
	* ubsan.c: Include builtins.h.
	(ubsan_expand_bounds_ifn): Change return type to bool,
	always return true.
	(ubsan_expand_null_ifn): Change return type to bool, change
	argument to gimple_stmt_iterator *.  Handle both null and alignment
	sanitization, take type from ckind argument's type rather than
	first argument.
	(instrument_member_call): Removed.
	(instrument_mem_ref): Remove t argument, add mem and base arguments.
	Handle both null and alignment sanitization, don't say whole
	struct access is member access.  Build 3 argument IFN_UBSAN_NULL
	call instead of 2 argument.
	(instrument_null): Adjust instrument_mem_ref caller.  Don't
	instrument calls here.
	(pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
	like SANITIZE_NULL.
	* stor-layout.c (min_align_of_type): New function.
	* flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
	Or it into SANITIZE_UNDEFINED.
	* doc/invoke.texi (-fsanitize=alignment): Document.

2014-07-31  Andi Kleen  <ak@linux.intel.com>

	* tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.

2014-07-31  Andi Kleen  <ak@linux.intel.com>

	* tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
	inchash.
	(vn_reference_compute_hash): Dito.
	(vn_nary_op_compute_hash): Dito.
	(vn_phi_compute_hash): Dito.
	* tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.

2014-07-31  Andi Kleen  <ak@linux.intel.com>

	* tree-ssa-dom.c (iterative_hash_exprs_commutative):
	Rename to inchash:add_expr_commutative. Convert to inchash.
	(iterative_hash_hashable_expr): Rename to
	inchash:add_hashable_expr. Convert to inchash.
	(avail_expr_hash): Dito.

2014-07-31  Andi Kleen  <ak@linux.intel.com>

	* ipa-devirt.c (polymorphic_call_target_hasher::hash):
	Convert to inchash.

2014-07-31  Andi Kleen  <ak@linux.intel.com>

	* asan.c (asan_mem_ref_hasher::hash): Convert to inchash.

2014-07-31  Andi Kleen  <ak@linux.intel.com>

	* Makefile.in (OBJS): Add rtlhash.o
	* dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
	(loc_checksum): Dito.
	(loc_checksum_ordered): Dito.
	(hash_loc_operands): Dito.
	(hash_locs): Dito.
	(hash_loc_list): Dito.
	* rtl.c (iterative_hash_rtx): Moved to rtlhash.c
	* rtl.h (iterative_hash_rtx): Moved to rtlhash.h
	* rtlhash.c: New file.
	* rtlhash.h: New file.

2014-07-31  Andi Kleen  <ak@linux.intel.com>

	* inchash.h (inchash): Change inchash class to namespace.
	(class hash): ... Rename from inchash.
	(add_object): Move from macro to class template.
	* lto-streamer-out.c (hash_tree): Change inchash
	to inchash::hash.
	* tree.c (build_type_attribute_qual_variant): Dito.
	(type_hash_list): Dito.
	(attribute_hash_list): Dito.
	(iterative_hstate_expr): Rename to inchash::add_expr
	(build_range_type_1): Change inchash to inchash::hash
	and use hash::add_expr.
	(build_array_type_1): Dito.
	(build_function_type): Dito
	(build_method_type_directly): Dito.
	(build_offset_type): Dito.
	(build_complex_type): Dito.
	(make_vector_type): Dito.
	* tree.h (iterative_hash_expr): Dito.

2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>

	* gcc.c (do_spec_1): Allocate enough space for saved_suffix.

2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
	correct alphabetical position.
	(vpaddd_f64): Rewrite using builtins.
	(vpaddd_s64): Move to correct alphabetical position.
	(vpaddd_u64): New.

2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/61844
	* config/sh/sh.c (sh_legitimate_address_p,
	sh_legitimize_reload_address): Handle reg+reg address modes when
	ALLOW_INDEXED_ADDRESS is false.
	* config/sh/predicates.md (general_movsrc_operand,
	general_movdst_operand): Likewise.

2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_gimple_fold_builtin): Don't fold reduction operations for
	BYTES_BIG_ENDIAN.

2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
	the generated mask based on BYTES_BIG_ENDIAN.
	(aarch64_simd_check_vect_par_cnst_half): New.
	* config/aarch64/aarch64-protos.h
	(aarch64_simd_check_vect_par_cnst_half): New.
	* config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
	the check out to aarch64_simd_check_vect_par_cnst_half.
	(vect_par_cnst_lo_half): Likewise.
	* config/aarch64/aarch64-simd.md
	(aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
	(move_hi_quad_<mode>): Always generate a low mask.

2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* doc/invoke.texi (AVR Options): Add documentation about
	__AVR_DEVICE_NAME__ built-in macro.

2014-07-31  Charles Baylis  <charles.baylis@linaro.org>

	PR target/61948
	* config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
	constraints are satisfied.
	(<shift>di3_neon): Likewise.

2014-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61964
	* tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
	by structural equality.

2014-07-31  Yury Gribov  <y.gribov@samsung.com>

	* doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
	* doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
	* flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
	New enums.
	* gcc.c (sanitize_spec_function): Support new option.
	(SANITIZER_SPEC): Remove now redundant check.
	* opts.c (common_handle_option): Support new option.
	(finish_options): Check for incompatibilities.
	* toplev.c (process_options): Split userspace-specific checks.

2014-07-31  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (struct output_block): Remove global.
	(struct data_in): Remove labels, num_named_labels and
	num_unnamed_labels.
	* lto-streamer-in.c (lto_data_in_delete): Do not free labels.
	* lto-streamer-out.c (produce_asm_for_decls): Do not set global.

2014-07-31  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/60517
	* common.opt (-Wreturn-local-addr): Moved from c.opt.
	* gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
	(isolate_path): New argument to avoid inserting a trap.
	(find_implicit_erroneous_behaviour): Handle returning the address
	of a local variable.
	(find_explicit_erroneous_behaviour): Likewise.

2014-07-31  Bingfeng Mei <bmei@broadcom.com>

	PR lto/61868
	* toplev.c (init_random_seed): Move piece of code never called to
	set_random_seed.
	(set_random_seed): see above.

2014-07-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.

2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
	(compute_regs_asm_clobbered): Use extract_asm_operands instead.

2014-07-31  Richard Biener  <rguenther@suse.de>

	* data-streamer.h (streamer_write_data_stream): Declare here,
	renamed from ...
	* lto-streamer.h (lto_output_data_stream): ... this.  Remove.
	* lto-cgraph.c (lto_output_node): Adjust.
	(lto_output_varpool_node): Likewise.
	* data-streamer-out.c (streamer_string_index): Likewise.
	(streamer_write_data_stream, lto_append_block): Move from ...
	* lto-section-out.c (lto_output_data_stream,
	lto_append_block): ... here.

2014-07-30  Mike Stump  <mikestump@comcast.net>

	* configure.ac: Also check for popen.
	* tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
	* configure: Regenerate.
	* config.in:  Regenerate.

2014-07-30  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (sra_ipa_modify_assign): Change type of the first
	parameter to gimple.

2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
	address as second parameter to __tpf_eh_return routine.

2014-07-30  Jiong Wang  <jiong.wang@arm.com>

	* config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
	Thumb2.

2014-07-30  Tom Tromey  <tromey@redhat.com>

	PR c/59855
	* doc/invoke.texi (Warning Options): Document -Wdesignated-init.
	* doc/extend.texi (Type Attributes): Document designated_init
	attribute.

2014-07-30  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c:
	(gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
	(gcc_expression_from_isl_expression): Pass type to
	gcc_expression_from_isl_ast_expr_id.

2014-07-30  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (lto_write_data): New function.
	* langhooks.c (lhd_append_data): Do not free block.
	* lto-section-out.c (lto_write_data): New function writing
	raw data to the current section.
	(lto_write_stream): Adjust for langhook semantic change.
	(lto_destroy_simple_output_block): Write header directly.
	* lto-opts.c (lto_write_options): Write options directly.
	* lto-streamer-out.c (produce_asm): Write heaeder directly.
	(lto_output_toplevel_asms): Likewise.
	(copy_function_or_variable): Copy data directly.
	(write_global_references): Output index table directly.
	(lto_output_decl_state_refs): Likewise.
	(write_symbol): Write data directly.
	(produce_symtab): Adjust.
	(produce_asm_for_decls): Output header and refs directly.

2014-07-29  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (polymorphic_call_target_d): Rename
	nonconstruction_targets to speculative_targets
	(get_class_context): Fix handling of contextes without outer type;
	avoid matching non-polymorphic types in LTO.
	(possible_polymorphic_call_targets): Trun nonconstruction_targetsp
	parameter to speculative_targetsp; handle speculation.
	(dump_possible_polymorphic_call_targets): Update dumping.

2014-07-29  Jan Hubicka  <hubicka@ucw.cz>

	* common.opt (Wodr): Enable by default.

2014-07-29  Olivier Hainque  <hainque@adacore.com>

	* config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.

2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/61914
	* gengtype.c (strtoken): New function.
	(create_user_defined_type): Replace strtok with strtoken.

2014-07-29  Nathan Sidwell  <nathan@acm.org>

	* gcov-io.c (gcov_var): Make hidden.
	* gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
	(gcov_do_dump): Declare.
	(gcov_output_files): Call gcov_do_dump, not gcov_exit).

2014-07-29  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (sra_modify_constructor_assign): Change type of stmt
	parameter to gimple.
	(sra_modify_assign): Likewise.

2014-07-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/52478
	* expr.c (expand_expr_real_2): Revert last change.

2014-07-28  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
	* cgraph.h (cgraph_indirect_call_info): Add speculative data.
	* gimple-fold.c (fold_gimple_assign): Fix check for virtual
	call.
	* ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
	(contains_type_p): Forward declare.
	(polymorphic_call_target_hasher::hash): Hash speculative info.
	(polymorphic_call_target_hasher::equal): Compare speculative info.
	(get_class_context): Handle speuclation.
	(contains_type_p): Update.
	(get_polymorphic_call_info_for_decl): Update.
	(walk_ssa_copies): Break out from ...
	(get_polymorphic_call_info): ... here; set speculative context
	before giving up.
	* ipa-prop.c (ipa_write_indirect_edge_info,
	ipa_read_indirect_edge_info): Stream speculative context.
	* ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
	(SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
	SPECULATIVE_MAYBE_DERIVED_TYPE).
	(possible_polymorphic_call_targets overriders): Update.
	(dump_possible_polymorphic_call_targets overriders): Update.
	(dump_possible_polymorphic_call_target_p overriders): Update.

2014-07-28  Jan Hubicka  <hubicka@ucw.cz>

	* gimple-fold.c (fold_gimple_assign): Fix condition guarding
	ipa-devirt path; fix thinko there.

2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>

	* config/i386/i386.c (ix86_return_in_memory): Replace one
	ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.

2014-07-28  Marek Polacek  <polacek@redhat.com>

	* doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.

2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>

	* config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
	* config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
	* config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
	(LINK_GCC_C_SEQUENCE_SPEC): Likewise.
	(USE_LD_AS_NEEDED): Likewise.
	(ASM_APP_ON): Likewise.
	(ASM_APP_OFF): Likewise.
	(TARGET_POSIX_IO): Likewise.
	* config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
	(LINK_GCC_C_SEQUENCE_SPEC): Likewise.
	(USE_LD_AS_NEEDED): Likewise.
	(ASM_APP_ON): Likewise.
	(ASM_APP_OFF): Likewise.
	(TARGET_POSIX_IO): Likewise.

2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/61734
	* fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
	operators other than the equality operators.

2014-07-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/52478
	* optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
	sure to register SImode ones, not only >= word_mode ones.
	* expr.c (expand_expr_real_2): When expanding -ftrapv
	binops do not use OPTAB_LIB_WIDEN.

2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/61919
	* tree-outof-ssa.c (insert_partition_copy_on_edge)
	(insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
	(insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
	inserting them in the insn stream.

2014-07-28  Marek Polacek  <polacek@redhat.com>

	PR middle-end/61913
	* common.opt (Wodr): Add Var.

2014-07-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61921
	* tree-ssa-structalias.c (create_variable_info_for_1): Check
	if there is a varpool node before dereferencing it.

2014-07-28  Roman Gareev  <gareevroman@gmail.com>

	* graphite-sese-to-poly.c:
	(new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
	id of the pbb), which contains pointer to the pbb1.

	* gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.

2014-07-28  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c:
	(graphite_create_new_guard): New function.
	(translate_isl_ast_node_if): New function.
	(translate_isl_ast): Add calling of translate_isl_ast_node_if.

	* gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.

2014-07-27  Anthony Green  <green@moxielogic.com>

	* config.gcc: Add moxie-*-moxiebox* configuration.
	* config/moxie/moxiebox.h: New file.

2014-07-26  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
	from the read only register.

2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-costs.c (find_costs_and_classes): For -O0, use the best class
	as the allocation class if it isn't likely to be spilled.

2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (tls_referenced_p): Declare.
	* rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
	* config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
	(mips_cannot_force_const_mem): Use tls_referenced_p.
	* config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
	* config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
	instead of pa_tls_referenced_p.
	* config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
	(pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
	(pa_legitimate_constant_p): Likewise.
	(pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
	* config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
	(rs6000_cannot_force_const_mem, rs6000_emit_move)
	(rs6000_address_for_altivec): Use tls_referenced_p instead of
	rs6000_tls_referenced_p.
	(rs6000_tls_symbol_ref_1): Delete.

2014-07-26  Marc Glisse  <marc.glisse@inria.fr>

	PR target/44551
	* simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
	Optimize inverse of a VEC_CONCAT.

2014-07-25  Xinliang David Li  <davidxl@google.com>

	* params.def: New parameter.
	* coverage.c (get_coverage_counts): Check new flag.
	(coverage_compute_profile_id): Check new flag.
	(coverage_begin_function): Check new flag.
	(coverage_end_function): Check new flag.
	* value-prof.c (coverage_node_map_initialized_p): New function.
	(init_node_map): Populate map with all functions.
	* doc/invoke.texi: Document new parameter.

2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
	    Richard Biener <rguenther@suse.de>

	* lto-streamer-out.c (struct sccs): Turn to ...
	(class DFS): ... this one; refactor the DFS walk so it can
	be re-done on per-SCC basis.
	(DFS::DFS): New constructor.
	(DFS::~DFS): New destructor.
	(hash_tree): Add new MAP argument holding in-SCC hash values;
	remove POINTER_TYPE hashing hack.
	(scc_entry_compare): Rename to ...
	(DFS::scc_entry_compare): ... this one.
	(hash_scc): Rename to ...
	(DFS::hash_scc): ... this one; pass output_block instead
	of streamer_cache; work harder to get unique and stable SCC
	hashes.
	(DFS_write_tree): Rename to ...
	(DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
	(lto_output_tree): Update.

2014-07-25  Andi Kleen  <ak@linux.intel.com>

	* lto-streamer-out.c (hash_tree): Convert to inchash.

2014-07-25  Andi Kleen  <ak@linux.intel.com>

	* tree.c (build_type_attribute_qual_variant): Use inchash.
	(type_hash_list): Dito.
	(attribute_hash_list): Dito
	(iterative_hstate_expr): Dito.
	(iterative_hash_expr): Dito.
	(build_range_type_1): Dito.
	(build_array_type_1): Dito.
	(build_function_type): Dito.
	(build_method_type_directly): Dito.
	(build_offset_type): Dito.
	(build_complex_type): Dito.
	(make_vector_type): Dito.
	* tree.h (iterative_hash_expr): Add compat wrapper.
	(iterative_hstate_expr): Add.

2014-07-25  Andi Kleen  <ak@linux.intel.com>

	* Makefile.in (OBJS): Add inchash.o.
	(PLUGIN_HEADERS): Add inchash.h.
	* ipa-devirt.c: Include inchash.h.
	* lto-streamer-out.c: Dito.
	* tree-ssa-dom.c: Dito.
	* tree-ssa-pre.c: Dito.
	* tree-ssa-sccvn.c: Dito.
	* tree-ssa-tail-merge.c: Dito.
	* asan.c: Dito.
	* tree.c (iterative_hash_hashval_t): Move to ...
	(iterative_hash_host_wide_int): Move to ...
	* inchash.c: Here. New file.
	* tree.h (iterative_hash_hashval_t): Move to ...
	(iterative_hash_host_wide_int): Move to ...
	* inchash.h: Here. New file.

2014-07-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/61762
	PR middle-end/61894
	* fold-const.c (native_encode_int): Add and handle offset
	parameter to do partial encodings of expr.
	(native_encode_fixed): Likewise.
	(native_encode_real): Likewise.
	(native_encode_complex): Likewise.
	(native_encode_vector): Likewise.
	(native_encode_string): Likewise.
	(native_encode_expr): Likewise.
	* fold-const.c (native_encode_expr): Add offset parameter
	defaulting to -1.
	* gimple-fold.c (fold_string_cst_ctor_reference): Remove.
	(fold_ctor_reference): Handle all reads from tcc_constant
	ctors.

2014-07-25  Richard Biener  <rguenther@suse.de>

	* tree-inline.c (estimate_move_cost): Mark speed_p argument
	as possibly unused.

2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.

2014-07-24  Kyle McMartin  <kyle@redhat.com>

	* config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.

2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
	Add prototype.
	* config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
	function.
	* config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
	* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.

2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
	and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
	aggregate types.  Instead, *all* aggregate types, except for single-
	element or homogeneous float/vector aggregates, are quadword-aligned
	if required by their type alignment.  Issue -Wpsabi note when a type
	is now treated differently than before.

2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
	does not fit fully into floating-point registers, and there is still
	space in the register parameter area, use GPRs to pass those parts
	of the argument.  Issue -Wpsabi note if any parameter is now treated
	differently than before.
	(rs6000_arg_partial_bytes): Update.

2014-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.

2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (target_rtl): Remove lang_dependent_initialized.
	* toplev.c (initialize_rtl): Don't use it.  Move previously
	"language-dependent" calls to...
	(backend_init): ...here.
	(lang_dependent_init_target): Don't set lang_dependent_initialized.
	Assert that RTL initialization hasn't happend yet.

2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/61629
	* reginfo.c (reinit_regs): Only call ira_init and recog_init if
	they have already been initialized.

2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/61268
	* function.c (assign_parm_setup_reg): Prevent invalid sharing of
	DECL_INCOMING_RTL and entry_parm.
	(get_arg_pointer_save_area): Likewise arg_pointer_save_area.
	* calls.c (load_register_parameters): Likewise argument values.
	(emit_library_call_value_1, store_one_arg): Likewise argument
	save areas.
	* config/i386/i386.c (assign_386_stack_local): Likewise the local
	stack slot.
	* explow.c (validize_mem): Modify the argument in-place.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
	(aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
	(aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_restore_callee_saves)
	(aarch64_save_callee_saves): New parameter "skip_wb".
	(aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
	"wb_candidate2".
	* config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.

2014-07-24  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c:
	(graphite_create_new_loop): Add calling of isl_id_free to properly
	decrement reference counts.

	* gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.

2014-07-24  Martin Liska  <mliska@suse.cz>
	* config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
	function used.
	* config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
	(rs6000_code_end): Likewise.

2014-07-24  Martin Liska  <mliska@suse.cz>

	* config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
	symtab_node funtion used.
	(rs6000_xcoff_declare_object_name): Likewise.

2014-07-24  Martin Liska  <mliska@suse.cz>

	* cgraphunit.c (compile): Correct function used.

2014-07-24  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
	as non-indexable.

2014-07-24  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/61802
	* varasm.c (bss_initializer_p): Handle offlined ctors.
	(align_variable, get_variable_align): Likewise.
	(make_decl_one_only): Likewise.
	(default_binds_local_p_1): Likewise.
	(decl_binds_to_current_def_p): Likewise.
	(get_variable_section): Get constructor if it is offlined.
	(assemble_variable_contents): Sanity check that the caller
	streamed in the ctor in LTO.

2014-07-24  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c:
	(binary_op_to_tree): Add calling of translate_isl_ast_node_block.
	(gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
	isl_ast_op_pdiv_r to the different case.

	* gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.

2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR middle-end/61876
	* convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
	when flag_errno_math is on.

2014-07-24  Martin Liska  <mliska@suse.cz>

	* cgraph.h (varpool_node):
	(availability get_availability (void)):
	created from cgraph_variable_initializer_availability
	(inline varpool_node *ultimate_alias_target (availability *availability = NULL)
	created from: cgraph_variable_initializer_availability
	(inline varpool_node *get_alias_target (void)): created from varpool_alias_target
	(void finalize_named_section_flags (void)):
	created from varpool_finalize_named_section_flags
	(bool assemble_decl (void)): created from varpool_assemble_decl
	(void analyze (void)): created from varpool_analyze_node
	(bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
	void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
	(void remove_initializer (void)): created from varpool_remove_initializer
	(tree get_constructor (void)): created from varpool_get_constructor
	(bool externally_visible_p (void)): created from varpool_externally_visible_p
	(bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
	(inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
	(inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
	(static inline varpool_node *get (const_tree decl)): created from varpool_get_node
	(static void finalize_decl (tree decl)): created from varpool_finalize_decl
	(static bool output_variables (void)): created from varpool_output_variables
	(static varpool_node * create_extra_name_alias (tree alias, tree decl)):
	created from varpool_extra_name_alias
	(static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
	(static void dump_varpool (FILE *f)): created from dump_varpool
	(static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
	(static varpool_node *create_empty (void)): created from varpool_create_empty_node
	(static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
	(static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
	(void assemble_aliases (void)): created from assemble_aliases

2014-07-24  Martin Liska  <mliska@suse.cz>

	* cgraph.h (symtab_node):
	(void register_symbol (void)): created from symtab_register_node
	(void remove (void)): created from symtab_remove_node
	(void dump (FILE *f)): created from dump_symtab_node
	(void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
	(void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
	(struct ipa_ref *add_reference (symtab_node *referred_node,
	enum ipa_ref_use use_type)): created from add_reference
	(struct ipa_ref *add_reference (symtab_node *referred_node,
	enum ipa_ref_use use_type, gimple stmt)): created from add_reference
	(struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
	gimple stmt)): created from maybe_add_reference
	(bool semantically_equivalent_p (symtab_node *target)): created from
	symtab_semantically_equivalent_p
	(void remove_from_same_comdat_group (void)): created from
	remove_from_same_comdat_group
	(void add_to_same_comdat_group (symtab_node *old_node)): created from
	symtab_add_to_same_comdat_group
	(void dissolve_same_comdat_group_list (void)): created from
	symtab_dissolve_same_comdat_group_list
	(bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
	(symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
	created from symtab_alias_ultimate_target
	(inline symtab_node *next_defined_symbol (void)): created from
	symtab_next_defined_symbol
	(bool resolve_alias (symtab_node *target)): created from
	symtab_resolve_alias
	(bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
	void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
	(symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
	(inline symtab_node *get_alias_target (void)): created from symtab_alias_target
	(void set_section (const char *section)): created from set_section_1
	(enum availability get_availability (void)): created from symtab_node_availability
	(void make_decl_local (void)): created from symtab_make_decl_local
	(bool real_symbol_p (void)): created from symtab_read_node
	(can_be_discarded_p (void)): created from symtab_can_be_discarded
	(inline bool comdat_local_p (void)): created from symtab_comdat_local_p
	(inline bool in_same_comdat_group_p (symtab_node *target)): created from
	symtab_in_same_comdat_p;
	(bool address_taken_from_non_vtable_p (void)): created from
	address_taken_from_non_vtable_p
	(static inline symtab_node *get (const_tree decl)): created from symtab_get_node
	(static void dump_table (FILE *)): created from dump_symtab
	(static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
	(static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
	(static bool used_from_object_file_p_worker (symtab_node *node)): created from
	symtab_used_from_object_file_p
	(void dump_base (FILE *)): created from dump_symtab_base
	(bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
	(void unregister (void)): created from symtab_unregister_node
	(struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
	(static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
	(static bool noninterposable_alias (symtab_node *node, void *data)): created from
	symtab_nonoverwritable_alias_1
	* cgraph.h (cgraph_node):
	(bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
	created from cgraph_remove_node_and_inline_clones
	(void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
	(void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
	bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
	(cgraph_node *function_symbol (enum availability *avail = NULL)):
	created from cgraph_function_node
	(cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
	vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
	struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
	created from cgraph_create_clone
	(cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
	vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
	created from cgraph_create_virtual_clone
	(cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
	(cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
	bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
	(cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
	vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
	bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
	created from cgraph_function_version_info
	(struct cgraph_function_version_info *insert_new_function_version (void)):
	created from insert_new_cgraph_node_version
	(struct cgraph_function_version_info *function_version (void)): created from
	get_cgraph_node_version
	(void analyze (void)): created from analyze_function
	(cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
	HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
	tree real_alias) cgraph_add_thunk
	(inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
	(cgraph_node *ultimate_alias_target (availability *availability = NULL)):
	created from cgraph_function_or_thunk_node
	(bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
	created from expand_thunk
	(void reset (void)): created from cgraph_reset_node
	(void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
	(void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
	(void remove (void)): created from cgraph_remove_node
	(void dump (FILE *f)): created from dump_cgraph_node
	(void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
	(bool get_body (void)): created from cgraph_get_body
	(void release_body (void)): created from cgraph_release_function_body
	(void unnest (void)): created from cgraph_unnest_node
	(void make_local (void)): created from cgraph_make_node_local
	(void mark_address_taken (void)): created from cgraph_mark_address_taken_node
	(struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
	gcov_type count, int freq)): created from cgraph_create_edge
	(struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
	gcov_type count, int freq)): created from cgraph_create_indirect_edge
	(void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
	gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
	created from cgraph_create_edge_including_clones
	(cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
	(vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
	(void remove_callers (void)): created from cgraph_node_remove_callers
	(void remove_callees (void)): created from cgraph_node_remove_callees
	(enum availability get_availability (void)): created from cgraph_function_body_availability
	(void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
	(void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
	(void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
	(void call_duplication_hooks (cgraph_node *node2)): created from
	cgraph_call_node_duplication_hooks
	(bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
	void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
	(bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
	void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
	(void call_function_insertion_hooks (void)):
	created from cgraph_call_function_insertion_hooks
	(inline void mark_force_output (void)): created from cgraph_mark_force_output_node
	(bool local_p (void)): created from cgraph_local_node
	(bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
	(bool cannot_return_p (void)): created from cgraph_node_cannot_return
	(bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
	(inline bool only_called_directly_or_aliased_p (void)):
	created from cgraph_only_called_directly_or_aliased_p
	(bool will_be_removed_from_program_if_no_direct_calls_p (void)):
	created from cgraph_will_be_removed_from_program_if_no_direct_calls
	(bool can_remove_if_no_direct_calls_and_refs_p (void)):
	created from cgraph_can_remove_if_no_direct_calls_and_refs_p
	(bool can_remove_if_no_direct_calls_p (void)):
	created from cgraph_can_remove_if_no_direct_calls_p
	(inline bool has_gimple_body_p (void)):
	created from cgraph_function_with_gimple_body_p
	(bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
	(static void dump_cgraph (FILE *f)): created from dump_cgraph
	(static inline void debug_cgraph (void)): created from debug_cgraph
	(static void record_function_versions (tree decl1, tree decl2)):
	created from record_function_versions
	(static void delete_function_version (tree decl)):
	created from delete_function_version
	(static void add_new_function (tree fndecl, bool lowered)):
	created from cgraph_add_new_function
	(static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
	(static cgraph_node * create (tree decl)): created from cgraph_create_node
	(static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
	(static cgraph_node * get_create (tree)): created from cgraph_get_create_node
	(static cgraph_node *get_for_asmname (tree asmname)):
	created from cgraph_node_for_asm
	(static cgraph_node * create_same_body_alias (tree alias, tree decl)):
	created from cgraph_same_body_alias
	(static bool used_from_object_file_p_worker (cgraph_node *node,
	void *): new function
	(static bool non_local_p (cgraph_node *node, void *)):
	created from cgraph_non_local_node_p_1
	(static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
	created from verify_cgraph
	(static bool make_local (cgraph_node *node, void *)):
	created from cgraph_make_node_local
	(static cgraph_node *create_alias (tree alias, tree target)):
	created from cgraph_create_function_alias
	(static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
	gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
	created from cgraph_create_edge_1
	* cgraph.h (varpool_node):
	(void remove (void)): created from varpool_remove_node
	(void dump (FILE *f)): created from dump_varpool_node

2014-07-24  Richard Biener  <rguenther@suse.de>

	PR ipa/61823
	* tree-ssa-structalias.c (create_variable_info_for_1):
	Use varpool_get_constructor.
	(create_variable_info_for): Likewise.

2014-07-24  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
	subtract outgoing area size when restoring stack_pointer_rtx.

2014-07-24  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (stack_push): Adjust RTL to account for the fact
	that operations are taking place in parallel.
	* config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.

2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>

	* omp-low.c (extract_omp_for_data): Add missing break statement.

2014-07-24  Richard Biener  <rguenther@suse.de>

	* tree-inline.h (estimate_move_cost): Add speed_p parameter.
	* tree-inline.c (estimate_move_cost): Add speed_p parameter
	and adjust MOVE_RATIO query accordingly.
	(estimate_num_insns): Adjust callers.
	* ipa-prop.c (ipa_populate_param_decls): Likewise.
	* ipa-cp.c (gather_context_independent_values,
	estimate_local_effects): Likewise.
	* ipa-split.c (consider_split): Likewise.

2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>

	* config/i386/driver-i386.c: Remove names of unused arguments and
	unnecessary unused attributes.
	* config/i386/host-mingw32.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/winnt-stubs.c: Likewise.
	* config/i386/winnt.c: Likewise.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
	(aarch64_gen_loadwb_pair): New helper function.
	(aarch64_expand_epilogue): Simplify code using new helper functions.
	* config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
	(aarch64_gen_storewb_pair): New helper function.
	(aarch64_expand_prologue): Simplify code using new helper functions.
	* config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
	Rename to aarch64_save_callee_saves, remove restore code.
	(aarch64_restore_callee_saves): New function.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
	(aarch64_save_callee_saves): New function to handle reg save
	for both core and vectore regs.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_gen_load_pair)
	(aarch64_gen_store_pair): New helper function.
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Use new helper functions.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Hoist calculation of register rtx.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Remove 'increment'.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Use register offset in
	cfun->machine->frame.reg_offset.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers)
	(aarch64_save_or_restore_fprs): Remove base_rtx.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c
	(aarch64_save_or_restore_callee_save_registers): Rename 'offset'
	to 'start_offset'.  Remove local variable 'start_offset'.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
	type to HOST_WIDE_INT.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_prologue)
	(aarch64_save_or_restore_fprs)
	(aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.

2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/t-rtems-eabi: Add
	mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
	mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
	mbig-endian/mthumb/march=armv7-r, and
	mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
	multilibs.

2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
	    Chris Johns <chrisj@rtems.org>
	    Joel Sherrill <joel.sherrill@oarcorp.com>

	* config.gcc: Add nios2-*-rtems*.
	* config/nios2/rtems.h: New file.
	* gcc/config/nios2/t-rtems: New file.

2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/61396
	* config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
	constant numbers, not general constants.
	(rs6000_expand_vector_init): Ditto.

2014-07-23  Nathan Sidwell  <nathan@acm.org>

	* gcov-tool.c (gcov_list): Declare here.
	(set_gcov_list): Remove.
	(gcov_output_files): Set gcov_list directly.

2014-07-23  Host Schirmeier  <horst@schirmeier.com>

	* doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.

2014-07-23  Jiong Wang  <jiong.wang@arm.com>

	* config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
	callee-saved registers are available for padding purpose
	and r3 is not mandatory, then prefer use those callee-saved
	instead of r3.

2014-07-23  Richard Biener  <rguenther@suse.de>

	* params.def (PARAM_MAX_COMBINE_INSNS): New.
	* combine.c: Include statistics.h and params.h.
	(combine_instructions): Guard three and four insn combines
	with max-combine-insns value.  Record statistics for combines
	performed.
	* doc/invoke.texi (max-combine-insns): Document new param.

2014-07-23  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c:
	(translate_isl_ast_node_block): New function.
	(translate_isl_ast): Add calling of translate_isl_ast_node_block.

	* gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
	* gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.

2014-07-23  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c:
	(get_max_schedule_dimensions): New function.
	(extend_schedule): Likewise.
	(generate_isl_schedule): Add calling of extend_schedule and
	get_max_schedule_dimensions.

2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
	(case UNSPEC): Handle UNSPEC_RBIT.

2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md: Delete UNSPEC_CLS.
	(clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.

2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.

2014-07-22  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c:
	Add inclusion of gimple-ssa.h, tree-into-ssa.h.
	(ivs_params_clear):
	(build_iv_mapping): New function.
	(translate_isl_ast_node_user): Likewise.
	(translate_isl_ast): Add calling of translate_isl_ast_node_user.

	* gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
	* gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
	* gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.

2014-07-21  Bin Cheng  <bin.cheng@arm.com>

	PR target/55701
	* config/arm/arm.md (setmem): New pattern.
	* config/arm/arm-protos.h (struct tune_params): New fields.
	(arm_gen_setmem): New prototype.
	* config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
	(arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
	(arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
	(arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
	(arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
	(arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
	(arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
	(arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
	(arm_const_inline_cost): New function.
	(arm_block_set_max_insns): New function.
	(arm_block_set_non_vect_profit_p): New function.
	(arm_block_set_vect_profit_p): New function.
	(arm_block_set_unaligned_vect): New function.
	(arm_block_set_aligned_vect): New function.
	(arm_block_set_unaligned_non_vect): New function.
	(arm_block_set_aligned_non_vect): New function.
	(arm_block_set_vect, arm_gen_setmem): New functions.

2014-07-21  Bin Cheng  <bin.cheng@arm.com>

	* config/arm/arm.c (output_move_neon): Handle REG explicitly.

2014-07-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/61855
	* config/i386/avx512fintrin.h: Move constants for mantissa extraction
	out of #ifdef __OPTIMIZE__.

2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>

	* cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
	different trapping status if -fnon-call-exceptions is enabled.

2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (store_field): Handle VOIDmode for calls that return values
	in multiple locations.

2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
	(altivec_vsldoi_<mode>): Likewise.

2014-07-20  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
	to the number of characters in the line.

2014-07-20  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c: Add using of
	build_nonstandard_integer_type instead of int128_integer_type_node.

2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>

	* toplev.c (output_stack_usage): Adjust the location of the warning.

2014-07-19  Daniel Cederman  <cederman@gaisler.com>

	* config/sparc/sync.md (*membar_storeload_leon3): New insn.
	(*membar_storeload): Disable for LEON3.

2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR rtl-optimization/61461
	* sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.

2014-07-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/61794
	* config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
	Fix instruction constraint.
	(<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.

2014-07-18  Jonathan Wakely  <jwakely@redhat.com>

	* doc/extend.texi (Template Instantiation): Remove stray parenthesis.

2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_can_eliminate): Follow the
	GNU coding standards.
	(nds32_register_move_cost): Likewise.
	(nds32_memory_move_cost): Likewise.
	(nds32_address_cost): Likewise.

2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.

2014-07-17  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
	and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
	(HAVE_sync_compare_and_swapqi): Define.
	(HAVE_sync_compare_and_swaphi): Likewise.
	(HAVE_sync_compare_and_swapsi): Likewise.

2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/p5600.md: Add missing cpu tests.

2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
	(vmla_f64): Likewise.
	(vfms_f64): Likewise.
	(vmls_f64): Likewise.

2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
	(aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.

2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
	(vmlal_high_lane_s32): Likewise.
	(vmlal_high_lane_u16): Likewise.
	(vmlal_high_lane_u32): Likewise.
	(vmlsl_high_lane_s16): Likewise.
	(vmlsl_high_lane_s32): Likewise.
	(vmlsl_high_lane_u16): Likewise.
	(vmlsl_high_lane_u32): Likewise.

2014-07-17  Terry Guo  <terry.guo@arm.com>

	* config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
	(alus_reg): Renamed to alus_sreg.
	* config/arm/arm-fixed.md: Change type of non-dsp instructions
	from alu_reg to alu_sreg.  Change type of dsp instructions from
	alu_reg to alu_dsp_reg.
	* config/arm/thumb1.md: Likewise.
	* config/arm/thumb2.md: Likewise.
	* config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
	* config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
	with alu_sreg and alus_sreg.
	* config/arm/arm1026ejs.md (alu_op): Likewise.
	* config/arm/arm1136jfs.md (11_alu_op): Likewise.
	* config/arm/arm926ejs.md (9_alu_op): Likewise.
	* config/arm/fa526.md (526_alu_op): Likewise.
	* config/arm/fa606te.md (606te_alu_op): Likewise.
	* config/arm/fa626te.md (626te_alu_op): Likewise.
	* config/arm/fa726te.md (726te_alu_op): Likewise.
	* config/arm/fmp626.md (mp626_alu_op): Likewise.
	* config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
	alu_sreg, alu_dsp_reg and alus_sreg.
	* config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
	* config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
	* config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
	* config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
	* config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
	* config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
	* config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
	* config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
	* config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
	* config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
	subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
	*negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
	(add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
	sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
	subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
	alus_reg to alus_sreg.

2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>

	* real.c (encode_ieee_extended_motorola): Clear integer bit in the
	infinity format.

2014-07-17  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/61801
	* sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
	don't set reg_pending_barrier if it appears in a debug-insn.

2014-07-16  DJ Delorie  <dj@redhat.com>

	* config/rx/rx.c (rx_option_override): Fix alignment values.
	(rx_align_for_label): Likewise.

2014-07-17  Hans-Peter Nilsson  <hp@axis.com>

	PR target/61737.
	* config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
	(TARGET_CANNOT_FORCE_CONST_MEM): Define.
	(cris_cannot_force_const_mem, cris_legitimate_constant_p): New
	functions.
	(cris_print_index, cris_print_operand, cris_constant_index_p)
	(cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
	(cris_address_cost): Ditto last CONSTANT_P.
	(cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
	callers changed.  Yield cris_offsettable_symbol for non-PIC
	constant symbolic expressions including labels.  Yield cris_unspec
	for all unspecs.
	(cris_expand_pic_call_address): New parameter MARKERP.  Set its
	target to pic_offset_table_rtx for calls that will likely go
	through PLT, const0_rtx when they can't.  All callers changed.
	Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
	symbolic expressions to be PICified.  Remove second, redundant,
	assert on can_create_pseudo_p returning non-zero.  Use
	replace_equiv_address_nv, not replace_equiv_address, for final
	operand update.
	* config/cris/cris.md ("movsi"): Move variable t to pattern
	toplevel. Adjust assert for new cris_symbol_type member.  Use
	CONSTANT_P instead of CONSTANT_ADDRESS_P.
	("*movsi_internal") <case 9>: Make check for valid unspec operands
	for lapc stricter.
	<case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
	("call", "call_value"): Use second incoming operand as a marker
	for pic-offset-table-register being used.
	("*expanded_call_non_v32", "*expanded_call_v32")
	("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
	second incoming operand to CALL, match cris_call_type_marker.
	("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
	("*expanded_call_side"): Ditto.  Fix typo in comment.
	(moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
	CONSTANT_P.
	* config/cris/predicates.md ("cris_call_type_marker"): New predicate.
	* config/cris/cris.h (CRIS_CONSTANT_P): New macro.
	(enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
	users changed.  Add members cris_offsettable_symbol and cris_unspec.
	(cris_symbol_type): Rename from cris_pic_symbol_type.
	* config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
	just CONSTANT_P.
	* config/cris/cris-protos.h (cris_symbol_type_of,
	cris_expand_pic_call_address): Adjust prototypes.
	(cris_legitimate_constant_p): New prototype.

	* config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
	an existing tmake_file.  Don't add t-slibgcc and t-linux.

2014-07-17  Jason Merrill  <jason@redhat.com>

	PR c++/61623
	* symtab.c (symtab_remove_from_same_comdat_group): Also
	set_comdat_group to NULL_TREE.
	(verify_symtab): Fix diagnostic.

2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>

	PR target/61662
	* config/i386/ia32intrin.h: Use __LP64__ to determine size of long.

2014-07-16  Dodji Seketeli  <dodji@redhat.com>

	Support location tracking for built-in macro tokens
	* input.h (is_location_from_builtin_token): New function declaration.
	* input.c (is_location_from_builtin_token): New function definition.
	* toplev.c (general_init): Tell libcpp what the pre-defined
	spelling location for built-in tokens is.

2014-07-16  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
	on the FUNCTION_DECL.

2014-07-16  Richard Biener  <rguenther@suse.de>

	PR other/61782
	* doc/extend.texi (always_inline): Clarify.

2014-07-15  Eric Christopher  <echristo@gmail.com>

	* doc/invoke.texi (Link Options): Document -z option.

2014-07-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
	(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.

2014-07-15  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (fold_checksum_tree): Fix typo in previous patch.

2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>

	* asan.c (asan_finish_file): Use varpool_finalize_decl instead of
	varpool_assemble_decl.
	* varpool.c (varpool_assemble_decl): Assert that node->definition is
	true.

2014-07-15  Michael Matz  <matz@suse.de>

	PR rtl-optimization/61772
	* ifcvt.c (dead_or_predicable): Check jump to be free of side effects.

2014-07-15  Richard Biener  <rguenther@suse.de>

	* opts.c (default_options_table): Disable bit-ccp at -Og.

2014-07-14  Jan Hubicka  <hubicka@ucw.cz>

	* fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.

2014-07-14  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
	NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
	call langhook for unknown declaration.
	(find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
	* tree.h (DECL_ARGUMENTS): Update.
	* print-tree.c (print_node): Update.
	* tree-core.h (tree_decl_non_common): Remove arguments.
	(tree_function_decl): Add arguments.

2014-07-14  Richard Earnshaw  <rearnsha@arm.com>

	* aarch64.md (add_losym_<mode>): Set type to alu_imm.

2014-07-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61779
	* tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
	simplifying a condition.

2014-07-14  Richard Biener  <rguenther@suse.de>

	* builtins.c (c_strlen): Make only_value == 2 really only
	affect warning generation.

2014-07-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61757
	PR tree-optimization/61783
	PR tree-optimization/61787
	* tree-ssa-dom.c (record_equality): Revert canonicalization
	change and add comment.
	(propagate_rhs_into_lhs): Revert previous fix, removing
	loop depth restriction again.

2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
	* config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
	* config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
	* config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
	* config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
	* config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
	* config/arm/cortex-r4.md (cortex_r4_alu): Likewise.

2014-07-14  Richard Biener  <rguenther@suse.de>

	* cgraph.h (decl_in_symtab_p): Make inline.

2014-07-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/61294
	* doc/invoke.texi (-Wmemset-transposed-args): Document.

	PR target/61656
	* config/i386/i386.c (classify_argument): Don't merge classes above
	number of words.

2014-07-13  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (symtab_node): Add nonzero_address.
	(decl_in_symtab_p): Break out from ...
	(symtab_get_node): ... here.
	* fold-const.c: Include cgraph.h
	(tree_single_nonzero_warnv_p): Use symtab to determine
	if symbol is non-zero.
	* symtab.c (symtab_node::nonzero_address): New method.

2014-07-12  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
	forgotten in previous commit.

2014-07-12  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
	on builtin types.
	* ipa-devirt.c: Include stor-layout.h and intl.h
	(odr_subtypes_equivalent_p): New function.
	(warn_odr): New function.
	(warn_type_mismatch): New function.
	(odr_types_equivalent_p): New function.
	(add_type_duplicate): Use it.
	* common.opt (Wodr): New flag.
	* doc/invoke.texi (Wodr): Document new warning.

2014-07-12  Jan Hubicka  <hubicka@ucw.cz>

	* timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
	(TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
	* cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
	(varpool_get_constructor): Push CTORS_IN timevar.
	* lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.

2014-07-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
	Remove VOID_FTYPE_PUSHORT.
	* config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
	Change code to USHORT_FTYPE_VOID.
	(ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
	(ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
	(ix86_atomic_assign_expand_fenv): Update for
	__builtin_ia32_fnstsw changes.
	* config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
	(fnstsw): Change operand 0 to nonimmediate operand.

2014-07-11  Jan Hubicka  <hubicka@ucw.cz>

	* vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
	(varpool_get_constructor): New function.
	(varpool_ctor_useable_for_folding_p): Break out from ...
	(ctor_for_folding): ... here; use varpool_get_constructor.
	(varpool_assemble_decl): Likewise.
	* lto-streamer.h (struct output_block): Turn cgraph_node
	to symbol filed.
	(lto_input_variable_constructor): Declare.
	* ipa-visibility.c (function_and_variable_visibility): Use
	varpool_get_constructor.
	* cgraph.h (varpool_get_constructor): Declare.
	(varpool_ctor_useable_for_folding_p): New function.
	* lto-streamer-out.c (get_symbol_initial_value): Take encoder
	parameter; return error_mark_node for non-trivial constructors.
	(lto_write_tree_1, DFS_write_tree): Update use of
	get_symbol_initial_value.
	(output_function): Update initialization of symbol.
	(output_constructor): New function.
	(copy_function): Rename to ..
	(copy_function_or_variable): ... this one; handle vars too.
	(lto_output): Output variable sections.
	* lto-streamer-in.c (input_constructor): New function.
	(lto_read_body): Rename from ...
	(lto_read_body_or_constructor): ... this one; handle vars too.
	(lto_input_variable_constructor): New function.
	* ipa-prop.c (ipa_prop_write_jump_functions,
	ipa_prop_write_all_agg_replacement): Update.
	* lto-cgraph.c (compute_ltrans_boundary): Use it.
	(output_cgraph_opt_summary): Set symbol to NULL.

2014-07-11  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
	non-polymorphic types.
	* ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
	* ipa-devirt.c (types_same_for_odr): Do not explode when one
	of types is not polymorphic.

2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-constraints.c (remove_inheritance_pseudos): Process
	destination pseudo too.

2014-07-11  Rong Xu  <xur@google.com>

	* gcov-tool.c (gcov_output_files): Fix build error introduced in
	commit r212448.

2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>

	* config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
	* config/avr/avr-devices.c (AVR_MCU): Same.
	(avr_mcu_types): add text start value to end of device list.
	* config/avr/avr-mcus.def: Add text section start for all devices.
	(ata5782): Add new avr5 device.
	(ata5831): Same.
	* config/avr/avr-tables.opt: Regenerate.
	* config/avr/avr.h: Add declaration for text section start handler.
	(EXTRA_SPEC_FUNCTIONS): Add text section start handler to
	SPEC functions.
	(LINK_SPEC): Include text section start handler to linker spec.
	* config/avr/driver-avr.c (avr_device_to_text_start): New function to
	pass -Ttext option to linker if the text section start for the device
	is not zero.
	* config/avr/t-multilib: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

2014-07-11  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
	* config/rs6000/aix52.h (LINK_SPEC): Same.
	* config/rs6000/aix53.h (LINK_SPEC): Same.
	* config/rs6000/aix61.h (LINK_SPEC): Same.
	* config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.

2014-07-11  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
	(graphite_verify): New function.
	(ivs_params_clear): New function.
	(gcc_expression_from_isl_ast_expr_id): New function.
	(gcc_expression_from_isl_expr_int): New function.
	(binary_op_to_tree): New function.
	(ternary_op_to_tree): New function.
	(unary_op_to_tree): New function.
	(nary_op_to_tree): New function.
	(gcc_expression_from_isl_expr_op): New function.
	(gcc_expression_from_isl_expression): New function.
	(graphite_create_new_loop): New function.
	(translate_isl_ast_for_loop): New function.
	(get_upper_bound): New function.
	(graphite_create_new_loop_guard): New function.
	(translate_isl_ast_node_for): New function.
	(translate_isl_ast): New function.
	(add_parameters_to_ivs_params): New function.
	(scop_to_isl_ast): New parameter ip.
	(graphite_regenerate_ast_isl): Add generation of GIMPLE code.

2014-07-11  Jan Hubicka  <hubicka@ucw.cz>

	* config/xtensa/predicates.md (call expander): Update for
	DECL_SECTION_NAME being string.

2014-07-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/61473
	* builtins.c (fold_builtin_memory_op): Inline memory moves that
	can be implemented with a single load followed by a single store.
	(c_strlen): Only warn when only_value is not 2.

2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.

2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>

	PR target/61561
	* config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
	(*movhi_bytes): Likewise.
	(*arm_movqi_insn): Likewise.

2014-07-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/56858
	* config/alpha/alpha.c: Include tree-pass.h, context.h
	and pass_manager.h.
	(pass_data_handle_trap_shadows): New pass.
	(pass_handle_trap_shadows::gate): New pass gate function.
	(make_pass_handle_trap_shadows): New function.
	(rest_of_handle_trap_shadows): Ditto.

	(alpha_align_insns_1): Rename from alpha_align_insns.
	(pass_data_align_insns): New pass.
	(pass_align_insns::gate): New pass gate function.
	(make_pass_aling_insns): New function.
	(rest_of_align_insns): Ditto.
	(alpha_align_insns): Ditto.

	(alpha_option_override): Declare handle_trap_shadows info
	and align_insns_info.  Register handle_trap_shadows and align_insns
	passes here.
	(alpha_reorg): Do not call alpha_trap_shadows and
	alpha_align_insn from here.

	(alpha_pad_function_end): Do not skip BARRIERs.

2014-07-10  Rong Xu  <xur@google.com>

	Add gcov-tool: an offline gcda profile processing tool support.
	* gcov-io.c (gcov_position): Make avaialble to gcov-tool.
	(gcov_is_error): Ditto.
	(gcov_read_string): Ditto.
	(gcov_read_sync): Ditto.
	* gcov-io.h: Move counter defines to gcov-counter.def.
	* gcov-dump.c (tag_counters): Use gcov-counter.def.
	* coverage.c: Ditto.
	* gcov-tool.c: Offline gcda profile processing tool.
	(unlink_gcda_file): Remove one gcda file.
	(unlink_profile_dir): Remove gcda files from the profile path.
	(gcov_output_files): Output gcda files to an output dir.
	(profile_merge): Merge two profiles in directory.
	(print_merge_usage_message): Print merge usage.
	(merge_usage): Print merge usage and exit.
	(do_merge): Driver for profile merge sub-command.
	(profile_rewrite): Rewrite profile.
	(print_rewrite_usage_message): Print rewrite usage.
	(rewrite_usage): Print rewrite usage and exit.
	(do_rewrite): Driver for profile rewrite sub-command.
	(print_usage): Print gcov-info usage and exit.
	(print_version): Print gcov-info version.
	(process_args): Process arguments.
	(main): Main routine for gcov-tool.
	* Makefile.in: Build and install gcov-tool.
	* gcov-counter.def: New file split from gcov-io.h.
	* doc/gcc.texi: Include gcov-tool.texi.
	* doc/gcov-tool.texi: Document for gcov-tool.

2014-07-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61757
	* tree-ssa-dom.c (loop_depth_of_name): Restore.
	(propagate_rhs_into_lhs): Revert part of last change.

2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>

	* fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
	FUNCTION_DECLs.

2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/53590
	* function.c (allocate_struct_function): Revert r188667 change.

	* gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.

2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>

	* doc/install.texi: Remove links to defunct package providers for
	Solaris.

2014-07-09  Tom de Vries  <tom@codesourcery.com>

	* final.c (get_call_fndecl): Declare.
	(self_recursive_call_p): New function.
	(collect_fn_hard_reg_usage): Handle self-recursive function calls.

2014-07-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (record_node): Walk through aliases.

2014-07-08  Jan Hubicka  <hubicka@ucw.cz>

	* lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.

2014-07-08  Jan Hubicka  <hubicka@ucw.cz>

	Revert:
	* stor-layout.c (finish_builtin_struct): Copy fields into the variants.

2014-07-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (function_and_variable_visibility): Remove
	temporary hack disabling local aliases on AIX.

2014-07-08  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
	* ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.

2014-07-08  Jan Hubicka  <hubicka@ucw.cz>

	* rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
	* rs6000/rs6000.c: Inline output of .set instruction.
	(declare_alias_data): New struct.
	(rs6000_declare_alias): New function.
	(rs6000_xcoff_declare_function_name): Use it.
	(rs6000_xcoff_declare_object_name): New function.
	* config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
	(ASM_OUTPUT_DEF): Turn to empty definition.

2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>

	PR bootstrap/61679
	* hash-table.h: use hash_table::value_type instead of
	Descriptor::value_type in the return types of several methods.

2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>

	* tree-pass.h (pass_data): Remove has_execute member.
	* passes.c (execute_one_pass): Don't check pass->has_execute.
	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
	config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
	config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
	dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
	gimple-low.c, gimple-ssa-isolate-paths.c,
	gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
	ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
	ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
	ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
	lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
	postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
	reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
	stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
	tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
	tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
	tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
	tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
	tree-sra.c, tree-ssa-ccp.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-ch.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
	web.c: Remove initializer for pass_data::has_execute.

2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>

	* graphite-htab.h: Use hash_map instead of hash_table.
	* graphite-clast-to-gimple.c: Adjust.
	* passes.c: Use hash_map instead of hash_table.
	* sese.c: Likewise.
	* sese.h: Remove now unused code.

2014-07-08  Sriraman Tallam  <tmsriram@google.com>

	PR target/61599
	* config/i386/i386.c (ix86_in_large_data_p): Check for size less
	than zero.

2014-07-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/61673
	* combine.c (simplify_comparison): Test just mode's sign bit
	in tmode rather than the sign bit and any bits above it.

2014-07-08  Roman Gareev  <gareevroman@gmail.com>

	* graphite-isl-ast-to-gimple.c (generate_isl_context):
	Add __isl_give to the declaration.
	(generate_isl_schedule): Likewise.
	(scop_to_isl_ast): Likewise.

2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (cortexa5_extra_costs): New table.
	(arm_cortex_a5_tune): Use cortexa5_extra_costs.

2014-07-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/61725
	* tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
	range, use range_includes_zerop_p instead of integer_zerop on
	vr0->min, only use log2 of max if min is not negative.

2014-07-08  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dom.h (loop_depth_of_name): Remove.
	* tree-ssa-dom.c (record_equivalences_from_phis): Remove
	restriction on loop depth difference.
	(record_equality): Likewise.
	(propagate_rhs_into_lhs): Likewise.  Simplify condition.
	(loop_depth_of_name): Remove.
	* tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
	restriction on loop depth difference.
	(init_copy_prop): Likewise.

2014-07-08  Jan Hubicka  <hubicka@ucw.cz>

	* tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
	parameter.
	(walk_aliased_vdefs): Likewise.
	* tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
	* ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
	(detect_type_change_from_memory_writes): Check if entry was reached.

2014-07-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61681
	* tree-ssa-structalias.c (find_what_var_points_to): Expand
	NONLOCAL inside ESCAPED.

2014-07-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61680
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
	Handle properly all read-write dependences with group accesses.

2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/61576
	* tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
	block containing reduction statement is predecessor of phi basi block.

2014-07-08  Marek Polacek  <polacek@redhat.com>

	PR c/60226
	* fold-const.c (round_up_loc): Change the parameter type.
	Remove assert.
	* fold-const.h (round_up_loc): Adjust declaration.
	* stor-layout.c (finalize_record_size): Check for too large types.

2014-07-07  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c: Include calls.h.
	(symtab_nonoverwritable_alias_1): Check sanity of the local alias.

2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/rs6000/rs6000.c (output_vec_const_move): Handle
	little-endian code generation.
	* config/rs6000/spe.md (spe_evmergehi): Rename to...
	(vec_perm00_v2si): ... this.  Handle little-endian code generation.
	(spe_evmergehilo): Rename to...
	(vec_perm01_v2si): ... this.  Handle little-endian code generation.
	(spe_evmergelo): Rename to...
	(vec_perm11_v2si): ... this.  Handle little-endian code generation.
	(spe_evmergelohi): Rename to...
	(vec_perm10_v2si): ... this.  Handle little-endian code generation.
	(spe_evmergehi, spe_evmergehilo): New expanders.
	(spe_evmergelo, spe_evmergelohi): Likewise.
	(*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
	(*frob_tf_ti): Likewise.
	(*frob_<mode>_di_2): Likewise.
	(*frob_tf_di_8_2): Likewise.
	(*frob_di_<mode>): Likewise.
	(*frob_ti_tf): Likewise.
	(*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
	(*frob_ti_<mode>_8_2): Likewise.
	(*frob_ti_tf_2): Likewise.
	(mov_si<mode>_e500_subreg0): Rename to...
	(mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
	endianness only.
	(*mov_si<mode>_e500_subreg0_le): New instruction pattern.
	(*mov_si<mode>_e500_subreg0_elf_low): Rename to...
	(*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
	the big endianness only.
	(*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
	(*mov_si<mode>_e500_subreg0_2): Rename to...
	(*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
	big big endianness only.
	(*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
	(*mov_si<mode>_e500_subreg4): Rename to...
	(*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
	endianness only.
	(mov_si<mode>_e500_subreg4_le): New instruction pattern.
	(*mov_si<mode>_e500_subreg4_elf_low): Rename to...
	(*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
	the big endianness only.
	(*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
	pattern.
	(*mov_si<mode>_e500_subreg4_2): Rename to...
	(*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
	endianness only.
	(*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
	(*mov_sitf_e500_subreg8): Rename to...
	(*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
	endianness only.
	(*mov_sitf_e500_subreg8_le): New instruction pattern.
	(*mov_sitf_e500_subreg8_2): Rename to...
	(*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
	endianness only.
	(*mov_sitf_e500_subreg8_2_le): New instruction pattern.
	(*mov_sitf_e500_subreg12): Rename to...
	(*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
	endianness only.
	(*mov_sitf_e500_subreg12_le): New instruction pattern.
	(*mov_sitf_e500_subreg12_2): Rename to...
	(*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
	endianness only.
	(*mov_sitf_e500_subreg12_2_le): New instruction pattern.

2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* asan.c (instrument_strlen_call): Do not instrument first byte
	in strlen if already instrumented.

2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.opt (mwords-little-endian): Delete.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
	of TARGET_LITTLE_WORDS.
	(WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
	* config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
	warning.
	* doc/invoke.texi: Remove references to -mwords-little-endian.

2014-07-07  Jakub Jelinek  <jakub@redhat.com>

	* expmed.c (struct init_expmed_rtl): Change all fields but
	pow2 and cint from struct rtx_def to rtx.
	(init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
	(init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
	at the end again.

2014-07-06  Marek Polacek  <polacek@redhat.com>

	PR c/6940
	* doc/invoke.texi: Document -Wsizeof-array-argument.

2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>

	* wide-int.h (wide_int_storage): Change declaration from struct
	to class.

2014-07-05  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_create_indirect_edge): Update call of
	get_polymorphic_call_info.
	* ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
	(possible_polymorphic_call_targets): Add parameter call.
	(decl_maybe_in_construction_p): New predicate.
	(get_polymorphic_call_info): Add parameter call;
	use decl_maybe_in_construction_p.
	* gimple-fold.c (fold_gimple_assign): Update use of
	possible_polymorphic_call_targets.
	(gimple_fold_call): Likewise.
	* ipa-prop.c: Inlcude calls.h
	(ipa_binfo_from_known_type_jfunc): Check that known type is record.
	(param_type_may_change_p): New predicate.
	(detect_type_change_from_memory_writes): Break out from ...
	(detect_type_change): ... this one; use param_type_may_change_p.
	(detect_type_change_ssa): Use param_type_may_change_p.
	(compute_known_type_jump_func): Use decl_maybe_in_construction_p.

2014-07-05  Charles Baylis  <charles.baylis@linaro.org>

	PR target/49423
	* config/arm/arm-protos.h (arm_legitimate_address_p,
	arm_is_constant_pool_ref): Add prototypes.
	* config/arm/arm.c (arm_legitimate_address_p): Remove static.
	(arm_is_constant_pool_ref) New function.
	* config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
	arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
	(arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
	operand. Remove pool_range and neg_pool_range attributes.
	(arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
	pool_range and neg_pool_range attributes.
	* config/arm/constraints.md (Uh): New constraint.
	(Uq): Don't allow constant pool references.

2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
	(move_lo_quad_internal_be_<mode>): Likewise.
	(move_lo_quad_<mode>): Convert to define_expand.
	(aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
	(aarch64_simd_move_hi_quad_be_<mode>): New.
	(move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
	(aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
	(aarch64_combinez_be<mode>): New.
	(aarch64_combine<mode>): Convert to define_expand.
	(aarch64_combine_internal<mode>): New.
	(aarch64_simd_combine<mode>): Remove bogus RTL description.

2014-07-04  Tom de Vries  <tom@codesourcery.com>

	* doc/md.texi (@subsection Constraint Modifier Characters): Clarify
	combination of earlyclobber and read/write modifiers.

2014-07-04  Tom de Vries  <tom@codesourcery.com>

	* config/aarch64/aarch64-simd.md
	(define_insn "vec_unpack_trunc_<mode>"): Fix constraint.

2014-07-04  Richard Earnshaw  <rearnsha@arm.com>

	PR target/61714
	* config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.

2014-07-04  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/61654
	* cgraphunit.c (expand_thunk): Call free_dominance_info.

	PR tree-optimization/61684
	* tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
	rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.

2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Kito Cheng  <kito@0xlab.org>
	    Monk Chiang  <sh.chiang04@gmail.com>

	* config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
	(nds32_symbol_load_store_p): Move to ...
	(nds32_fp_as_gp_check_available): Move to ...
	* config/nds32/nds32-fp-as-gp.c: ... here.
	* config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
	extern declaration.

2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Kito Cheng  <kito@0xlab.org>
	    Monk Chiang  <sh.chiang04@gmail.com>

	* config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
	(nds32_expand_store_multiple): Move to ...
	(nds32_expand_movmemqi): Move to ...
	* config/nds32/nds32-memory-manipulation.c: ... here.

2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Kito Cheng  <kito@0xlab.org>
	    Monk Chiang  <sh.chiang04@gmail.com>

	* config/nds32/nds32.c (nds32_byte_to_size): Move to ...
	(nds32_output_casesi_pc_relative): Move to ...
	(nds32_output_casesi): Move to ...
	(nds32_mem_format): Move to ...
	(nds32_output_16bit_store): Move to ...
	(nds32_output_16bit_load): Move to ...
	(nds32_output_32bit_store): Move to ...
	(nds32_output_32bit_load): Move to ...
	(nds32_output_32bit_load_s): Move to ...
	(nds32_output_stack_push): Move to ...
	(nds32_output_stack_pop): Move to ...
	* config/nds32/nds32-md-auxiliary.c: ... here.

2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Ling-Hua Tseng  <uranus@tinlans.org>

	* config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
	the purpose of this file.

2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Kito Cheng  <kito@0xlab.org>
	    Monk Chiang  <sh.chiang04@gmail.com>

	* config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
	(nds32_address_cost): Move implementation to ...
	* config/nds32/nds32-cost.c: ... here.
	* config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
	(nds32_address_cost_impl): Declare.

2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Kito Cheng  <kito@0xlab.org>
	    Monk Chiang  <sh.chiang04@gmail.com>

	* config/nds32/nds32.c
	(nds32_consecutive_registers_load_store_p): Move to ...
	(nds32_valid_multiple_load_store): Move to ...
	(nds32_valid_stack_push_pop): Move to ...
	(nds32_can_use_bclr_p): Move to ...
	(nds32_can_use_bset_p): Move to ...
	(nds32_can_use_btgl_p): Move to ...
	(nds32_can_use_bitci_p): Move to ...
	* config/nds32/nds32-predicates.c: ... here.

2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Kito Cheng  <kito@0xlab.org>
	    Monk Chiang  <sh.chiang04@gmail.com>

	* config/nds32/nds32.c
	(nds32_expand_builtin_null_ftype_reg): Move to ...
	(nds32_expand_builtin_reg_ftype_imm): Move to ...
	(nds32_expand_builtin_null_ftype_reg_imm): Move to ...
	(nds32_init_builtins): Move implementation to ...
	(nds32_expand_builtin): Move implementation to ...
	* config/nds32/nds32-intrinsic.c: ... here.
	* config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
	(nds32_expand_builtin_impl): Declare.

2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Kito Cheng  <kito@0xlab.org>
	    Monk Chiang  <sh.chiang04@gmail.com>

	* config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
	(nds32_emit_section_tail_template): Move to ...
	(nds32_emit_isr_jmptbl_section): Move to ...
	(nds32_emit_isr_vector_section): Move to ...
	(nds32_emit_isr_reset_conten): Move to ...
	(nds32_check_isr_attrs_conflict): Move to ...
	(nds32_construct_isr_vectors_information): Move to ...
	(nds32_asm_file_start): Move implementation to ...
	(nds32_asm_file_end): Move implementation to ...
	* config/nds32/nds32-isr.c: ... here.
	* config/nds32/nds32-protos.h
	(nds32_check_isr_attrs_conflict): Declare.
	(nds32_construct_isr_vectors_information): Declare.
	(nds32_asm_file_start_for_isr): Declare.
	(nds32_asm_file_end_for_isr): Declare.

2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
	    Kito Cheng  <kito@0xlab.org>
	    Monk Chiang  <sh.chiang04@gmail.com>

	* config.gcc (nds32*): Add new modules to extra_objs.
	(nds32le-*-*): Use t-nds32 makefile fragment for new modules.
	(nds32be-*-*): Likewise.
	* config/nds32/nds32-cost.c: New file.
	* config/nds32/nds32-fp-as-gp.c: New file.
	* config/nds32/nds32-intrinsic.c: New file.
	* config/nds32/nds32-isr.c: New file.
	* config/nds32/nds32-md-auxiliary.c: New file.
	* config/nds32/nds32-memory-manipulation.c: New file.
	* config/nds32/nds32-pipelines-auxiliary.c: New file.
	* config/nds32/nds32-predicates.c: New file.
	* config/nds32/t-nds32: New file.

2014-07-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/61682
	* wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
	using cases and when one of the operands is equal to 1.

2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
	ashr<mode>3): Correct mode of operands[2].
	(rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
	lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
	Correct mode of operands[2].  Fix split condition.

2014-07-03  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (arch): Add armv6_or_vfpv3.
	(arch_enabled): Add test for the above.
	* vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
	on VFP9.
	(sqrtsf_vfp, sqrtdf_vfp): Likewise.

2014-07-03  Jakub Jelinek  <jakub@redhat.com>

	* gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
	* data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
	HWI 1 and negate the unsigned value.
	* expmed.c (expand_sdiv_pow2): For modes wider than word always
	use AND instead of shift.
	* wide-int-print.cc (print_decs): Negate UHWI instead of HWI.

2014-07-03  Marek Polacek  <polacek@redhat.com>

	* doc/invoke.texi (-fsanitize=bounds): Tweak wording.
	(-fsanitize=float-divide-by-zero): Move to the table with
	-fsanitize=undefined suboptions.
	(-fsanitize=float-cast-overflow): Likewise.

2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
	BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
	endianness.

2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* loop-invariant.c (struct invariant): Add a new member: eqno;
	(find_identical_invariants): Update eqno;
	(create_new_invariant): Init eqno;
	(get_inv_cost): Compute comp_cost with eqno;

2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
	(walk_insn_part) <ROTATE, ROTATERT>: New cases.
	(main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
	* simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
	Only do the transformation if both HAVE_rotate and HAVE_rotatert.

2014-07-02  Christian Bruel  <christian.bruel@st.com>

	PR target/29349
	PR target/53513
	* mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
	(make_preds_opaque): Delete.
	(clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
	(commit_mode_sets): New function.
	(optimize_mode_switching): Handle current_mode to mode_switching_emit.
	Process all modes at once.
	* basic-block.h (pre_edge_lcm_avs): Declare.
	* lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
	Call clear_aux_for_edges. Fix comments.
	(pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
	(pre_edge_rev_lcm): Idem.
	* config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
	parameter.
	* config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
	* config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
	Idem.
	* config/i386/i386.c (x96_emit_mode_set): Idem.
	* config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
	* config/sh/sh.md (toggle_pr):	Defined if TARGET_FPU_SINGLE.
	(fpscr_toggle) Disallow from delay slot.
	* target.def (emit_mode_set): Add prev_mode parameter.
	* doc/tm.texi: Regenerate.

2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
	variable i.

2014-07-01  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
	vtable_pointer_value_to_vtable): Constify.
	(contains_polymorphic_type_p): Declare.
	* ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
	vtable_pointer_value_to_vtable): Constify.
	(contains_polymorphic_type_p): New predicate.
	* ipa-prop.c (ipa_set_jf_known_type): Allow types containing
	polymorphic types.
	(ipa_set_ancestor_jf): Likewise.
	(detect_type_change): Return false in easy cases.
	(compute_complex_assign_jump_func): Require type to contain
	polymorphic type.
	(compute_known_type_jump_func): Likewise.

2014-07-01  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
	Remove.
	(type_in_anonymous_namespace_p): Constify argument.
	* tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
	* ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
	(main_odr_variant): New function.
	(hash_type_name): Make static; update assert; do not ICE on
	non-records.
	(types_same_for_odr): Bring here from tree.c; simplify and remove
	old structural comparing code that doesn't work for templates.
	(odr_hasher::equal): Update assert.
	(add_type_duplicate): Return true when bases should be computed;
	replace incomplete loader by complete; do not output duplicated
	warnings; do not ICE on non-records; set odr_violated flag.
	(get_odr_type): Be ready to replace incomplete type by complete
	one; work on ODR variants instead of main variants; reorder item
	in array so bases have still smaller indexes.
	(dump_type_inheritance_graph): Be ready for holdes in odr_types array.
	(possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.

2014-07-01  Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
	lookup.
	(resolve_addr_in_expr): When replacing the rtx in a location list
	entry, get a new address table entry.
	(dwarf2out_finish): Call index_location_lists even if there are no
	addr_index_table entries yet.

2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>

	* config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
	change for not being obvious.

2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>

	* config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
	unused argument.

2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
	(vcagt_f64): Likewise.
	(vcale_f64): Likewise.
	(vcaled_f64): Likewise.
	(vcales_f32): Likewise.
	(vcalt_f64): Likewise.
	(vcaltd_f64): Likewise.
	(vcalts_f32): Likewise.

2014-07-01  Marek Polacek  <polacek@redhat.com>

	* doc/invoke.texi: Document -Wint-conversion.

2014-07-01  Marek Polacek  <polacek@redhat.com>

	PR c/58286
	* doc/invoke.texi: Document -Wincompatible-pointer-types.

2014-07-01  Martin Liska  <mliska@suse.cz>

	IPA REF alias refactoring
	* cgraph.h (iterate_direct_aliases): New function.
	(FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
	* cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
	FOR_EACH_ALIAS added.
	(cgraph_for_node_and_aliases): Likewise.
	* cgraphunit.c (assemble_thunks_and_aliases): Likewise.
	* ipa-inline.c (reset_edge_caches): Likewise.
	(update_caller_keys): Likewise.
	* trans-mem.c (ipa_tm_execute): Likewise.
	*varpool.c (varpool_analyze_node): Likewise.
	(varpool_for_node_and_aliases): Likewise.
	* ipa-ref.h (first_alias): New function.
	(last_alias): Likewise.
	(has_aliases_p): Likewise.
	* ipa-ref.c (ipa_ref::remove_reference): Removal function
	is sensitive to IPA_REF_ALIASes.
	* symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
	are put at the beginning of the list.
	(symtab_node::iterate_direct_aliases): New function.

2014-06-28  Jan Hubicka  <hubicka@ucw.cz>

	Revert:
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
	type is complete.
	(write_ts_type_common_tree_pointers): Do not stream fields not set
	for incomplete types; do not stream duplicated fields for variants;
	sanity check that variant and type match.
	(write_ts_type_non_common_tree_pointers): Likewise.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
	TYPE_SIZE whether type is complete.
	(lto_input_ts_type_common_tree_pointers): Do same changes as in
	write_ts_type_common_tree_pointers
	(lto_input_ts_type_non_common_tree_pointers): Likewise.

2014-06-30  Joseph Myers  <joseph@codesourcery.com>

	* var-tracking.c (add_stores): Return instead of asserting if old
	and new values for conditional store are the same.

2014-06-30  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/61608
	PR target/39284
	* bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
	the cfg if there were any changes.
	* passes.def: Revert move of peephole2 after reorder_blocks;
	move duplicate_computed_gotos before peephole2.

2014-06-30  Uros Bizjak  <ubizjak@gmail.com>

	* except.c (emit_note_eh_region_end): New helper function.
	(convert_to_eh_region_ranges): Use emit_note_eh_region_end to
	emit EH_REGION_END note.
	* jump.c (cleanup_barriers): Do not split a call and its
	corresponding CALL_ARG_LOCATION note.

2014-06-30  Jeff Law  <law@redhat.com>

	PR tree-optimization/61607
	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
	deeper into the SSA_NAME_VALUE chain.

2014-06-30  Marek Polacek  <polacek@redhat.com>

	* convert.c (convert_to_integer): Don't instrument conversions if the
	function has no_sanitize_undefined attribute.
	* ubsan.c: Don't run the ubsan pass if the function has
	no_sanitize_undefined attribute.

2014-06-30  Jakub Jelinek  <jakub@redhat.com>

	* doc/invoke.texi (-fsanitize=bounds): Move to the table with
	-fsanitize=undefined suboptions.

2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
	* config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
	against bigendian and adjust indices.

2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.

2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	PR target/61633
	* config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
	Add alternative; make early clobber.  Adjust both split patterns
	to use operand 0 as the working register.

2014-06-30  Jakub Jelinek  <jakub@redhat.com>

	* ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
	as ira_object_id_map might be NULL, or 1.

2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* loop-invariant.c (get_inv_cost): Handle register class.
	(gain_for_invariant): Check the register pressure of the inv
	and its overlapped register class, other than all.

2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (Optimize Options): Fix descriptions of
	ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.

2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>

	* doc/extend.texi (Function Attributes): Update 'naked' attribute
	documentation.

2014-06-29  Tobias Grosser <tobias@grosser.es>

	PR bootstrap/61650
	* graphite-isl-ast-to-gimple.c: Add missing guards.

2014-06-29  Roman Gareev  <gareevroman@gmail.com>

	* Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
	* common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
	* flag-types.h: Add new enum fgraphite_generator.
	* graphite-isl-ast-to-gimple.c: New.
	* graphite-isl-ast-to-gimple.h: New.
	* graphite.c (graphite_transform_loops): Add choice of Graphite
	code generator, which depends on flag_graphite_code_gen.

2014-06-29  Roman Gareev  <gareevroman@gmail.com>

	* graphite-dependences.c (subtract_commutative_associative_deps):
	Add NULL checking of the following variables: must_raw_no_source,
	may_raw_no_source, must_war_no_source, may_war_no_source,
	must_waw_no_source, may_waw_no_source, must_raw, may_raw,
	must_war, may_war, must_waw, may_waw.

2014-06-29  Roman Gareev  <gareevroman@gmail.com>

	* graphite-clast-to-gimple.c: gloog is renamed to
	graphite_regenerate_ast_cloog.  gloog_error is renamed to
	graphite_regenerate_error.
	* graphite-clast-to-gimple.h: The definition of the struct
	bb_pbb_def is moved to graphite-htab.h.
	Add inclusion of the hash-table.h.
	* graphite-htab.h: The declaration of the function gloog is moved
	to graphite-clast-to-gimple.h and renamed to
	graphite_regenerate_ast_cloog.
	* graphite.c (graphite_transform_loops): gloog is renamed
	to graphite_regenerate_ast_cloog.

2014-06-28  Jan Hubicka  <hubicka@ucw.cz>

	* tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
	type is complete.
	(write_ts_type_common_tree_pointers): Do not stream fields not set
	for incomplete types; do not stream duplicated fields for variants;
	sanity check that variant and type match.
	(write_ts_type_non_common_tree_pointers): Likewise.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
	TYPE_SIZE whether type is complete.
	(lto_input_ts_type_common_tree_pointers): Do same changes as in
	write_ts_type_common_tree_pointers
	(lto_input_ts_type_non_common_tree_pointers): Likewise.

2014-06-28  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (dump_cgraph_node): Dump init&fini priorities.

2014-06-28  Jan Hubicka  <hubicka@ucw.cz>

	* tree-inline.c (remap_type_1): Do not duplicate fields
	that are shared in between type and its main variant.

2014-06-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
	of the type.
	(ipa_set_ancestor_jf) Likewise.
	(check_stmt_for_type_change): Check that we work on main variant.
	(detect_type_change): Look into main variant.
	(compute_known_type_jump_func): Check that main variant has BINFO.

2014-06-28  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (set_type_binfo): New function.
	(add_type_duplicate): Use it.
	(get_odr_type): Sanity check that binfos points to main variants.
	(get_class_context): Be sure the context's outer_type is main variant.
	(contains_type_p): Walk main variant.
	(get_polymorphic_call_info_for_decl): Set outer_type to be
	main variant.
	(get_polymorphic_call_info): Likewise.
	(possible_polymorphic_call_targets): Sanity check that we operate
	on main variant.

2014-06-28  Jan Hubicka  <hubicka@ucw.cz>

	* stor-layout.c (finish_builtin_struct): Copy fields into the variants.

2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
	accidental change due to wide-int branch merge.

2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_compress_debug): Check for assembler
	compressed debug support.
	(gcc_cv_ld_compress_debug): Check for linker compressed debug support.
	* configure: Regenerate.
	* config.in: Regenerate.
	* common.opt (compressed_debug_sections): New enum.
	(gz, gz=): New options.
	* gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
	(LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
	(asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
	* config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
	LINK_COMPRESS_DEBUG_SPEC.
	* config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
	* opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
	* doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
	(Debugging Options): Document -gz[=type].

2014-06-27  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61160
	* cgraphclones.c (duplicate_thunk_for_node): Removed parameter
	args_to_skip, use those from node instead.  Copy args_to_skip and
	combined_args_to_skip from node to the new thunk.
	(redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
	(cgraph_create_virtual_clone): Moved computation of
	combined_args_to_skip...
	(cgraph_clone_node): ...here, simplify it to bitmap_ior..

2014-06-27  trevor Saunders  <tsaunders@mozilla.com>

	* config/i386/winnt.c (i386_pe_section_type_flags): Remove
	redundant diagnostic machinary.

2014-06-27  Richard Biener  <rguenther@suse.de>

	* tree-ssa-math-opts.c (bswap_replace): Fix
	SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.

2014-06-27  Martin Liska  <mliska@suse.cz>

	* gimple.h (gimple_location_safe): New function introduced.
	* cgraphunit.c (walk_polymorphic_call_targets): Usage
	of gimple_location_safe replaces gimple_location.
	(gimple_fold_call): Likewise.
	* ipa-devirt.c (ipa_devirt): Likewise.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
	* ipa.c (walk_polymorphic_call_targets): Likewise.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.

2014-06-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/57233
	PR tree-optimization/61299
	* tree-vect-generic.c (get_compute_type, count_type_subparts): New
	functions.
	(expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
	would be lowered to scalar shifts, check if corresponding
	shifts and vector BIT_IOR_EXPR are supported and don't lower
	or lower just to narrower vector type in that case.
	* expmed.c (expand_shift_1): Fix up handling of vector
	shifts and rotates.

2014-06-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/61586
	* config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.

2014-06-26  Jan Hubicka  <hubicka@ucw.cz>

	* doc/invoke.texi (-fsemantic-interposition): Document.
	* common.opt (fsemantic-interposition): New flag.
	* varasm.c (decl_replaceable_p): Use it.

2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/61542
	* config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
	extraction other than index 3.

2014-06-26  Teresa Johnson  <tejohnson@google.com>

	* doc/invoke.texi: Fix typo.
	* dumpfile.c: Add support for documented -fdump-* options
	optimized/missed/note/optall.

2014-06-26  Martin Jambor  <mjambor@suse.cz>

	* params.def (PARAM_ALLOW_LOAD_DATA_RACES)
	(PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
	(PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
	(PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
	* opts.c (default_options_optimization): Set
	PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
	* doc/invoke.texi (allow-load-data-races)
	(allow-packed-load-data-races, allow-packed-store-data-races): Removed.
	(allow-store-data-races): Document the new default.

2014-06-26  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (ipa_impossible_devirt_target): No longer static,
	renamed to ipa_impossible_devirt_target.  Fix typo.
	* ipa-prop.h (ipa_impossible_devirt_target): Declare.
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Use
	ipa_impossible_devirt_target.

2014-06-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61607
	* tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
	explaining why we restrict copies on loop depth.
	* tree-ssa-dom.c (cprop_operand): Remove restriction on
	on loop depth.
	(record_equivalences_from_phis): Instead add it here.

2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>

	* Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
	(LTO_WRAPPER_OBJS): New variable.
	(lto-wrapper$(exeext)): Use it.
	* collect2.c: Include "collect-utils.h".
	(verbose, debug): Remove variables.
	(at_file_supplied): No longer static.
	(tool_name): New variable.
	(do_wait, fork_execute, maybe_unlink): Don't declare.
	(tool_cleanup): No longer static.
	(notice): Remove function.
	(maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
	fork_execute calls.
	(collect_wait, do_wait, collect_execute): Remove functions.
	(maybe_unlink): No longer static.
	* collect2.h (verbose, debug): Don't declare.
	(at_file_supplied): Declare.
	* collect-utils.c (utils_cleanup): New arg from_signal.  All callers
	changed.
	(collect_execute): Replace with implementation from collect2, plus a
	new arg use_atfile.  All callers changed.
	(collect_wait): Replace with implementation from collect2.
	(maybe_unlink_file): Remove function.
	(fork_execute): Replace with implementation from collect2, plus a
	new arg use_atfile.  All callers changed.
	(do_wait): Add call to utils_cleanup to the error path.
	* collect-utils.h (collect_execute, fork_execute, utils_cleanup)
	(tool_cleanup): Adjust declarations.
	* lto-wrapper.c (tool_cleanup): Add unused bool argument.
	* tlink.c: Include "collect-utils.h".
	(tlink_execute): New arg use_atfile.  All callers changed.
	(tlink_init, tlink_execute): Remove declarations.

	* collect-utils.c (save_temps): New variable.
	(do_wait): Use it instead of debug.  Use fatal_error.
	* collect-utils.h (save_temps): Declare.
	* collect2.c (verbose): Rename from vflag.  All uses changed.
	(tool_cleanup): New function, copied from collect_atexit.
	(collect_atexit, handler): Just call it.
	* collect2.h (verbose): Declaration renamed from vflag.
	* lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
	debug.

	* Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
	(lto-wrapper$(exeext)): Link with collect-utils.o.
	* collect-utils.c: New file.
	* collect-utils.h: New file.
	* lto-wrapper.c: Include "collect-utils.h".
	(args_name): Delete variable.
	(tool_name): New variable.
	(tool_cleanup): New function.
	(maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
	(lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
	(fork_execute): Remove functions.

2014-06-26  Nick Clifton  <nickc@redhat.com>

	* config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.

	* doc/extend.texi (Function Attributes): Fix typo in description
	of RX vector attribute.

2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>

	* config.gcc (supported_defaults): Error when passing either
	--with-tune or --with-arch in conjunction with --with-cpu for ARM.

2014-06-26  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dom.c (cprop_operand): Remove restriction on
	propagating volatile pointers.

2014-06-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61607
	* tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
	loop if we redirected its latch edge.
	(thread_block_1): Do not cancel loops prematurely.

2014-06-25  Jan Hubicka  <hubicka@ucw.cz>

	* toplev.c (backend_init_target): Move init_emit_regs and
	init_regs to...
	(backend_init) ... here; skip ira_init_once and backend_init_target.
	(target_reinit) ... and here; clear
	this_target_rtl->lang_dependent_initialized.
	(lang_dependent_init_target): Clear
	this_target_rtl->lang_dependent_initialized;
	break out rtl initialization to ...
	(initialize_rtl): ... here; call also backend_init_target
	and ira_init_once.
	* toplev.h (initialize_rtl): New function.
	* function.c: Include toplev.h
	(init_function_start): Call initialize_rtl.
	* rtl.h (target_rtl): Add target_specific_initialized,
	lang_dependent_initialized.

2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (set_multilib_dir): Malloc "." pointer as well.

2014-06-25  Tom de Vries  <tom@codesourcery.com>

	* config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.

2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* tree-ssa-forwprop.c (associate_plusminus): For widening conversions
	check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
	Issue a strict overflow warning if appropriate.

2014-06-25  Martin Liska  <mliska@suse.cz>

	IPA REF refactoring
	* Makefile.in: Removed header file (ipa-ref-inline.h).
	* cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
	called.
	(cgraph_speculative_call_info): Likewise.
	(cgraph_for_node_thunks_and_aliases): Likewise.
	(cgraph_for_node_and_aliases): Likewise.
	(verify_cgraph_node): Likewise.
	* cgraph.h: Batch of IPA REF functions become member functions of
	symtab_node: add_reference, maybe_add_reference, clone_references,
	clone_referring, clone_reference, find_reference,
	remove_stmt_references, remove_all_references,
	remove_all_referring, dump_references, dump_referring,
	has_alias_p, iterate_reference, iterate_referring.
	* cgraphbuild.c (record_reference): New IPA REF function used.
	(record_type_list): Likewise.
	(record_eh_tables): Likewise.
	(mark_address): Likewise.
	(mark_load): Likewise.
	(mark_store): Likewise.
	(pass_build_cgraph_edges): Likewise.
	(rebuild_cgraph_edge): Likewise.
	(cgraph_rebuild_references): Likewise.
	(pass_remove_cgraph_callee_edges): Likewise.
	* cgraphclones.c (cgraph_clone_node): Likewise.
	(cgraph_create_virtual_clone): Likewise.
	(cgraph_materialize_clone): Likewise.
	(cgraph_materialize_all_clones): Likewise.
	* cgraphunit.c (cgraph_reset_node): Likewise.
	(cgraph_reset_node): Likewise.
	(analyze_function): Likewise.
	(assemble_thunks_and_aliases): Likewise.
	(expand_function): Likewise.
	* ipa-comdats.c (propagate_comdat_group): Likewise.
	(enqueue_references): Likewise.
	* ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
	(create_specialized_node): Likewise.
	* ipa-devirt.c (referenced_from_vtable_p): Likewise.
	* ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
	* ipa-inline.c (reset_edge_caches): Likewise.
	(update_caller_keys): Likewise.
	(execute): Likewise.
	* ipa-prop.c (remove_described_reference): Likewise.
	(propagate_controlled_uses): Likewise.
	(ipa_edge_duplication_hook): Likewise.
	(ipa_modify_call_arguments): Likewise.
	* ipa-pure-const.c (propagate_pure_const): Likewise.
	* ipa-ref-inline.h: Header file removed, functions moved
	to symtab_node class.
	* ipa-ref.c (remove_reference): New class member function.
	(cannot_lead_to_return): New class member function.
	(referring_ref_list): Likewise.
	(referred_ref_list): Likewise.
	Rest of functions moved to symtab_node class.
	* ipa-ref.h: New member functions remove_reference,
	cannot_lead_to_return, referring_ref_list, referred_ref_list added
	to ipa_ref class.
	ipa_ref_list class has new member functions: first_reference,
	first_referring, clear, nreferences.
	* ipa-reference.c (analyze_function): New IPA REF function used.
	(write_node_summary_p): Likewise.
	(ipa_reference_write_optimization_summary): Likewise.
	* ipa-split.c (split_function): Likewise.
	* ipa-utils.c (ipa_reverse_postorder): Likewise.
	* ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
	(function_and_variable_visibility): Likewise.
	* ipa.c (has_addr_references_p): Likewise.
	(process_references): Argument type changed.
	(symtab_remove_unreachable_nodes): New IPA REF function used.
	(process_references): Likewise.
	(set_writeonly_bit): Likewise.
	* lto-cgraph.c: Implementation of new symtab_node member functions
	that uses new IPA REF functions.
	* lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
	function used.
	* lto-streamer-out.c (output_symbol_p): Likewise.
	* lto-streamer.h (referenced_from_this_partition_p): Argument type
	changed.
	* symtab.c: Implementation of new IPA REF API.
	* trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
	(ipa_tm_create_version): Likewise.
	(ipa_tm_execute): Likewise.
	* tree-emutls.c (gen_emutls_addr): Likewise.
	* tree-inline.c (copy_bb): Likewise.
	(delete_unreachable_blocks_update_callgraph): Likewise.
	* varpool.c (varpool_remove_unreferenced_decls): Likewise.
	(varpool_for_node_and_aliases): Likewise.

2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>

	* config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.

2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>

	PR bootstrap/61598
	* fold-const.c (fold_checksum_tree): Use a hash_table of const
	tree_node * instead of tree_node *.
	(fold): Adjust.
	(print_fold_checksum): Likewise.
	(fold_check_failed): Likewise.
	(debug_fold_checksum): Likewise.
	(fold_build1_stat_loc): Likewise.
	(fold_build2_stat_loc): Likewise.
	(fold_build3_stat_loc): Likewise.
	(fold_build_call_array_loc): Likewise.

2014-06-25  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
	implementation with call to...
	* config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
	function.
	* config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
	Declare.

2014-06-25  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/57742
	* tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
	after replacing the statement.

2014-06-25  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.c (GHS_default_section_names): Change to const
	char * type.
	(GHS_current_section_names): Likewise.
	(v850_insert_attributes): Do not build strings, just assign the
	names directly.  Change the type of 'chosen_section' to const
	char*.
	* config/v850/v850-c.c (ghs_pragma_section): Assign the alias
	directly to the array entry.
	* config/v850/v850.h (GHS_default_section_names): Change to const
	char * type.
	(GHS_current_section_names): Likewise.

2014-06-25  Jakub Jelinek  <jakub@redhat.com>

	* langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
	(LANG_HOOKS_DECLS): Add it.
	* gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
	has correct type.
	* tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
	* langhooks.h (struct lang_hooks_for_decls): Add
	omp_clause_linear_ctor hook.
	* omp-low.c (lower_rec_input_clauses): Set max_vf even if
	OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
	OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
	combined simd loop use omp_clause_linear_ctor hook.

2014-06-24  Cong Hou  <congh@google.com>

	* tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
	pattern recognition.
	(type_conversion_p): PROMOTION is true if it's a type promotion
	conversion, and false otherwise.  Return true if the given expression
	is a type conversion one.
	* tree-vectorizer.h: Adjust the number of patterns.
	* tree.def: Add SAD_EXPR.
	* optabs.def: Add sad_optab.
	* cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
	* expr.c (expand_expr_real_2): Likewise.
	* gimple-pretty-print.c (dump_ternary_rhs): Likewise.
	* gimple.c (get_gimple_rhs_num_ops): Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	* tree-cfg.c (estimate_operator_cost): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
	* config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
	* doc/generic.texi: Add document for SAD_EXPR.
	* doc/md.texi: Add document for ssad and usad.

2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>

	* config/i386/winnt.c (i386_pe_section_type_flags): Fix const
	qualification in cast.

2014-06-24  Jan Hubicka  <hubicka@ucw.cz>

	* tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
	* tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
	* tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
	(tree_function_decl): ... here.
	* tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
	streaming of vindex to ...
	(write_ts_function_decl_tree_pointers): ... here.
	* tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
	Do not stream DECL_VINDEX.
	(lto_input_ts_function_decl_tree_pointers): Stream it here.

2014-06-24  Catherine Moore  <clm@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
	* config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
	* config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.

2014-06-24  Marc Glisse  <marc.glisse@inria.fr>

	* doc/invoke.texi (Warning Options): Remove duplicated
	-Wmaybe-uninitialized.

2014-06-24  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/57742
	* tree-ssa-strlen.c (get_string_length): Ignore malloc.
	(handle_builtin_malloc, handle_builtin_memset): New functions.
	(strlen_optimize_stmt): Call them.
	* passes.def: Move strlen after loop+dom but before vrp.

2014-06-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/61570
	* config/i386/driver-i386.c (host_detect_local_cpu): For unknown
	model family 6 CPU with has_longmode never use a CPU without
	64-bit support.

2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/61570
	* config/i386/driver-i386.c (host_detect_local_cpu): Revert
	the last change.

2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>

	* alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
	* dominance.c (iterate_fix_dominators): Use hash_map instead of
	pointer_map.
	* hash-map.h: New file.
	* ipa-comdats.c: Use hash_map instead of pointer_map.
	* ipa.c: Likewise.
	* lto-section-out.c: Adjust.
	* lto-streamer.h: Replace pointer_map with hash_map.
	* symtab.c (verify_symtab): Likewise.
	* tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
	* tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
	* tree-streamer.h: Likewise.
	* tree-streamer.c: Adjust.
	* pointer-set.h: Remove pointer_map.

2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-table.h: Add a template arg to choose between storing values
	and storing pointers to values, and then provide partial
	specializations for both.
	* tree-browser.c (tree_upper_hasher): Provide the type the hash table
	should store, not the type values should point to.
	* tree-into-ssa.c (var_info_hasher): Likewise.
	* tree-ssa-dom.c (expr_elt_hasher): Likewise.
	* tree-complex.c: Adjust.
	* tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
	table instead of int_tree_map *.
	* tree-parloops.c: Adjust.
	* tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
	type is being stored.
	* tree-vectorizer.c: Adjust.

2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>

	* hash-table.h: Remove a layer of indirection from hash_table so that
	it contains the hash table's data instead of a pointer to the data.
	* alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
	config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
	config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
	data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
	fold-const.c, gcse.c, ggc-common.c,
	gimple-ssa-strength-reduction.c, gimplify.c,
	graphite-clast-to-gimple.c, graphite-dependences.c,
	graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
	ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
	loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
	lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
	postreload-gcse.c, sese.c, statistics.c, store-motion.c,
	trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
	tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
	tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
	tree-ssa-live.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-tail-merge.c,
	tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
	tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
	tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
	vtable-verify.c, vtable-verify.h: Adjust.

2014-06-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61572
	* tree-ssa-sink.c (statement_sink_location): Do not sink
	loads from hard registers.

2014-06-24  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
	not mentioned in clauses use private clause if the iterator is
	declared in #pragma omp for simd, and when adding lastprivate
	instead, add it to the outer #pragma omp for too.  Diagnose
	if the variable is private in outer context.  For simd collapse > 1
	loops, replace all iterators with temporaries.
	* omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
	same even in collapse > 1 loops.

	* gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
	OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
	non-NULL.
	<case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
	(gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
	non-NULL.
	(gimplify_adjust_omp_clauses): Likewise.
	* omp-low.c (lower_rec_simd_input_clauses,
	lower_rec_input_clauses, expand_omp_simd): Handle non-constant
	safelen the same as safelen(1).
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
	OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
	(convert_nonlocal_reference_stmt, convert_local_reference_stmt):
	Fixup handling of GIMPLE_OMP_TARGET.
	(convert_tramp_reference_stmt, convert_gimple_call): Handle
	GIMPLE_OMP_TARGET.

2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>

	PR tree-optimization/61554
	* tree-ssa-propagate.c: Include "bitmap.h".
	(substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
	properly update constructor/destructor.
	(substitute_and_fold_dom_walker::before_dom_children):
	Remove call to gimple_purge_dead_eh_edges, add bb->index to
	need_eh_cleaup instead.
	(substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
	need_eh_cleanup.

2014-06-23  Jan Hubicka  <hubicka@ucw.cz>

	* varpool.c (dump_varpool_node): Dump used_by_single_function.
	* tree-pass.h (make_pass_ipa_single_use): New pass.
	* cgraph.h (used_by_single_function): New flag.
	* lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
	Stream it.
	* passes.def (pass_ipa_single_use): Scedule.
	* ipa.c (BOTTOM): New macro.
	(meet): New function
	(propagate_single_user): New function.
	(ipa_single_use): New function.
	(pass_data_ipa_single_use): New pass.
	(pass_ipa_single_use): New pass.
	(pass_ipa_single_use::gate): New gate.
	(make_pass_ipa_single_use): New function.

2014-06-23  Kai Tietz  <ktietz@redhat.com>

	PR target/39284
	* passes.def (peephole2): Move peephole2 pass before sched2 pass.
	* config/i386/i386.md (peehole2): Combine memories and indirect jumps.

2014-06-23  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop.c (gate_loop): New function.
	(pass_tree_loop::gate): Call it.
	(pass_data_tree_no_loop, pass_tree_no_loop,
	make_pass_tree_no_loop): New.
	* tree-vectorizer.c: Include tree-scalar-evolution.c
	(pass_slp_vectorize::execute): Initialize loops and SCEV if
	required.
	(pass_slp_vectorize::clone): New method.
	* timevar.def (TV_TREE_NOLOOP): New.
	* tree-pass.h (make_pass_tree_no_loop): Declare.
	* passes.def (pass_tree_no_loop): New pass group with
	SLP vectorizer.

2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/61570
	* config/i386/driver-i386.c (host_detect_local_cpu): Set arch
	to x86-64 if a 32-bit processor supports SSE2 and 64-bit.

2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
	"yes" where needed.

2014-06-23  Alan Modra  <amodra@gmail.com>

	PR bootstrap/61583
	* tree-vrp.c (remove_range_assertions): Do not set is_unreachable
	to zero on debug statements.

2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/60825
	* config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
	Ignore third operand if present by marking qualifier_internal.

	* config/aarch64/aarch64-simd-builtins.def (abs): Comment.

	* config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
	vector extension.
	(aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
	arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
	(vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
	vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
	vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
	vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
	vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
	vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
	vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
	vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
	vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
	vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
	vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
	vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
	vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
	vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
	logic in GCC vector extensions

	(vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
	vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
	vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
	vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
	vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
	vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
	vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
	vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
	vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
	vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.

	(vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.

	(vget_high_s64, vget_high_u64): Reimplement with GCC vector
	extensions.

	(__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
	(vget_low_s64): Use __GET_LOW macro.
	(vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
	gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
	(vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
	(vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
	__builtin_aarch64_lane_boundsi, use GCC vector extensions.

	(vcombine_s64): Use GCC vector extensions; remove cast.
	(vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
	vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
	vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
	Fix type signature; remove cast.

2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/60825
	* config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
	V1DFmode.
	* config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
	add V1DFmode
	(BUILTIN_VD1): New.
	(BUILTIN_VD_RE): Remove.
	(aarch64_init_simd_builtins): Add V1DF to modes/modenames.
	(aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
	* config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
	variant but not df.
	(vreinterpretv1df*, vreinterpret*v1df): New.
	(vreinterpretdf*, vreinterpret*df): Remove.
	* config/aarch64/aarch64-simd.md (aarch64_create,
	aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
	* config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
	(VD1): New.
	* config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
	(vcreate_f64): Remove cast, use v1df builtin.
	(vcombine_f64): Remove cast, get elements with gcc vector extensions.
	(vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
	vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
	vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
	vmov_n_f64, vst1_f64): Use gcc vector extensions.
	(vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
	add range check using __builtin_aarch64_im_lane_boundsi.
	(vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
	vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
	type signature, use gcc vector extensions.
	(vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
	vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
	vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
	vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
	vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
	vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
	vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
	vreinterpret_u64_f64): Use v1df builtin not df.

2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
	vector registers.

2014-06-23  Jan Hubicka  <hubicka@ucw.cz>

	* lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
	priority directly.

2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* loop-invariant.c (pre_check_invariant_p): New function.
	(find_invariant_insn): Call pre_check_invariant_p.

2014-06-22  Richard Henderson  <rth@redhat.com>

	PR target/61565
	* compare-elim.c (struct comparison): Add eh_note.
	(find_comparison_dom_walker::before_dom_children): Don't eliminate
	a redundant comparison in a different EH region.  Purge EH edges if
	necessary.

2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
	(var_shift): Use it.
	(rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
	*rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
	*rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
	*rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
	*rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
	*rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
	*ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
	*lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
	*ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
	*rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
	*rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
	*rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
	*rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
	*rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
	*rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
	*rotldi3_internal15be): Use the new attribute.  Merge register and
	integer alternatives.

2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
	define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
	split, *ashrdi3_internal3 and split): Delete, merge into...
	(ashr<mode>3): New expander.
	(*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
	(*ashrsi3_64): Fix formatting.  Replace "i" by "n".

2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
	*rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
	*rotldi3_internal3 and split): Delete, merge into...
	(rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
	(*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
	Use "rotlw" extended mnemonic.

2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
	and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
	and split, *ashldi3_internal3 and split): Delete, merge into...
	(ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
	(*ashlsi3_64): Fix formatting.  Replace "i" by "n".

2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md ("hH"): New define_mode_attr.
	(lshrsi3, two anonymous define_insns and define_splits,
	lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
	*lshrdi3_internal3 and split): Delete, merge into...
	(lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
	(*lshrsi3_64): Fix formatting.  Replace "i" by "n".

2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
	Remove "O" alternative.

2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
	(mips_move_from_gpr_cost): Likewise.
	(mips_register_move_cost): Update accordingly.
	(mips_secondary_reload_class): Remove name of in_p.

2014-06-22  Marc Glisse  <marc.glisse@inria.fr>

	PR target/61503
	* config/i386/i386.md (x86_64_shrd, x86_shrd,
	ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.

2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/nios2/nios2.c: Include "builtins.h".

2014-06-20  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (tls_model_names): New variable.
	* print-tree.c (print_node): Simplify.
	* varpool.c (tls_model_names): New variable.
	(dump_varpool_node): Output tls model.

2014-06-20  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (function_and_variable_visibility): Disable
	temporarily local aliases for some targets.

2014-06-20  Marek Polacek  <polacek@redhat.com>

	* asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
	* flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
	into SANITIZE_UNDEFINED.
	* doc/invoke.texi: Describe -fsanitize=bounds.
	* gimplify.c (gimplify_call_expr): Add gimplification of internal
	functions created in the FEs.
	* internal-fn.c: Move "internal-fn.h" after "tree.h".
	(expand_UBSAN_BOUNDS): New function.
	* internal-fn.def (UBSAN_BOUNDS): New internal function.
	* internal-fn.h: Don't define internal functions here.
	* opts.c (common_handle_option): Add -fsanitize=bounds.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
	BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
	* tree-core.h: Define internal functions here.
	(struct tree_base): Add ifn field.
	* tree-pretty-print.c: Include "internal-fn.h".
	(dump_generic_node): Handle functions without CALL_EXPR_FN.
	* tree.c (get_callee_fndecl): Likewise.
	(build_call_expr_internal_loc): New function.
	* tree.def (CALL_EXPR): Update description.
	* tree.h (CALL_EXPR_IFN): Define.
	(build_call_expr_internal_loc): Declare.
	* ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
	types.
	(ubsan_type_descriptor): Change bool parameter to enum
	ubsan_print_style.  Adjust the code.  Add handling of
	UBSAN_PRINT_ARRAY.
	(ubsan_expand_bounds_ifn): New function.
	(ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
	(ubsan_build_overflow_builtin): Likewise.
	(instrument_bool_enum_load): Likewise.
	(ubsan_instrument_float_cast): Likewise.
	* ubsan.h (enum ubsan_print_style): New enum.
	(ubsan_expand_bounds_ifn): Declare.
	(ubsan_type_descriptor): Adjust declaration.  Use a default parameter.

2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/rs6000/rs6000.md: Append `DONE' to preparation
	statements of `bswap' pattern splitters.

2014-06-20  Tom de Vries  <tom@codesourcery.com>

	* target.def (call_fusage_contains_non_callee_clobbers): Update
	definition.
	* doc/tm.texi: Regenerate.

2014-06-20  Yury Gribov  <y.gribov@samsung.com>
	    Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR sanitizer/61547
	* asan.c (instrument_strlen_call): Fixed instrumentation of
	trailing byte.

2014-06-20  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61540
	* ipa-prop.c (impossible_devirt_target): New function.
	(try_make_edge_direct_virtual_call): Use it, also instead of
	asserting.

2014-06-20  Yury Gribov  <y.gribov@samsung.com>
	    Max Ostapenko  <m.ostapenko@partner.samsung.com>

	PR sanitizer/61530
	* asan.c (build_check_stmt): Add condition.

2014-06-20  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61211
	* cgraph.c (clone_of_p): Allow skipped_branch to deal with
	expanded clones.

2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
	Update comments.
	(VCONQ): Make comment more helpful.
	(VCON): Delete.
	* config/aarch64/aarch64-simd.md
	(aarch64_sqdmulh_lane<mode>):
	Use VCOND for operands 2.  Update lane checking and flipping logic.
	(aarch64_sqrdmulh_lane<mode>): Likewise.
	(aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
	(aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
	attribute of operand 3 to VCOND.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
	(aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
	(aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
	(aarch64_sqdmull2_lane<mode>_internal): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
	define_insn.
	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
	(aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
	(aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
	(aarch64_sqdmull2_laneq<mode>_internal): Likewise.
	(aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
	operand to VCOND.  Update lane flipping and bounds checking logic.
	(aarch64_sqdmlal2_lane<mode>): Likewise.
	(aarch64_sqdmlsl_lane<mode>): Likewise.
	(aarch64_sqdmull_lane<mode>): Likewise.
	(aarch64_sqdmull2_lane<mode>): Likewise.
	(aarch64_sqdmlal_laneq<mode>):
	Replace VCON usage with VCONQ.
	Emit aarch64_sqdmlal_laneq<mode>_internal insn.
	(aarch64_sqdmlal2_laneq<mode>): Emit
	aarch64_sqdmlal2_laneq<mode>_internal insn.
	Replace VCON with VCONQ.
	(aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
	(aarch64_sqdmlsl2_laneq<mode>): Likewise.
	(aarch64_sqdmull_laneq<mode>): Emit
	aarch64_sqdmull_laneq<mode>_internal insn.
	Replace VCON with VCONQ.
	(aarch64_sqdmull2_laneq<mode>): Emit
	aarch64_sqdmull2_laneq<mode>_internal insn.
	(aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
	* config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
	of 3rd argument to int16x4_t.
	(vqdmlalh_lane_s16): Likewise.
	(vqdmlslh_lane_s16): Likewise.
	(vqdmull_high_lane_s16): Likewise.
	(vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
	(vqdmlal_lane_s16): Don't create temporary int16x8_t value.
	(vqdmlsl_lane_s16): Likewise.
	(vqdmull_lane_s16): Don't create temporary int16x8_t value.
	(vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
	(vqdmlals_lane_s32): Likewise.
	(vqdmlsls_lane_s32): Likewise.
	(vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
	(vqdmulls_lane_s32): Likewise.
	(vqdmlal_lane_s32): Don't create temporary int32x4_t value.
	(vqdmlsl_lane_s32): Likewise.
	(vqdmull_lane_s32): Don't create temporary int32x4_t value.
	(vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
	(vqrdmulhh_lane_s16): Likewise.
	(vqdmlsl_high_lane_s16): Likewise.
	(vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
	(vqdmlsl_high_lane_s32): Likewise.
	(vqrdmulhs_lane_s32): Likewise.

2014-06-20  Tom de Vries  <tom@codesourcery.com>

	* final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
	get_call_reg_set_usage.

2014-06-20  Tom de Vries  <tom@codesourcery.com>

	* final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
	it contains all call_used_regs.

2014-06-20  Tom de Vries  <tom@codesourcery.com>

	* final.c (collect_fn_hard_reg_usage): Add and use variable
	function_used_regs.

2014-06-20  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (struct symtab_node): Add field in_init_priority_hash
	(set_init_priority, get_init_priority, set_fini_priority,
	get_fini_priority): New methods.
	* tree.c (init_priority_for_decl): Remove.
	(init_ttree): Do not initialize init priority.
	(decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
	(decl_priority_info): Remove.
	(decl_init_priority_insert): Rewrite.
	(decl_fini_priority_insert): Rewrite.
	* tree.h (tree_priority_map_eq, tree_priority_map_hash,
	tree_priority_map_marked_p): Remove.
	* lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
	* lto-streamer-out.c (hash_tree): Do not hash priorities.
	* tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
	not output priorities.
	(pack_ts_function_decl_value_fields): Likewise.
	* tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
	not input priorities.
	(unpack_ts_function_decl_value_fields): Likewise.
	* symtab.c (symbol_priority_map): Declare.
	(init_priority_hash): Declare.
	(symtab_unregister_node): Unregister from priority hash, too.
	(symtab_node::get_init_priority, cgraph_node::get_fini_priority):
	New methods.
	(symbol_priority_map_eq, symbol_priority_map_hash): New functions.
	(symbol_priority_info): New function.
	(symtab_node::set_init_priority, cgraph_node::set_fini_priority):
	New methods.
	* tree-core.h (tree_priority_map): Remove.

2014-06-20  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
	0xff to uint64_t before shifting it up.

2014-06-20  Julian Brown  <julian@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.c (arm_output_mi_thunk): Fix offset for
	TARGET_THUMB1_ONLY. Add comments.

2014-06-19  Tom de Vries  <tom@codesourcery.com>

	* config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
	return type to void.
	* config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.

2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* loop-invariant.c (get_inv_cost): Skip invariants, which are marked
	as "move", from depends_on.

2014-06-19  Terry Guo  <terry.guo@arm.com>

	* config/arm/thumb1.md (define_split): Split 64bit constant in earlier
	stage.

2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
	Remove cr5.
	(REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.

2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/61550
	* config/sh/sh.c (prepare_move_operands): Don't process TLS
	addresses here if reload in progress or completed.

2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>

	* config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
	"TARGET_MIPS16 ? M16_REGS : GR_REGS".
	* config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
	(mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
	(mips_register_priority): New function that implements the target
	hook TARGET_REGISTER_PRIORITY.
	(mips_spill_class): Likewise for TARGET_SPILL_CLASS.
	(mips_lra_p): Likewise for TARGET_LRA_P.
	(TARGET_REGISTER_PRIORITY): Define macro.
	(TARGET_SPILL_CLASS): Likewise.
	(TARGET_LRA_P): Likewise.
	* config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
	classes.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(BASE_REG_CLASS): Use M16_SP_REGS.
	* config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
	New set attribute to enable alternatives depending on the register
	allocator used.
	(*mul_acc_si_r3900, *mul_sub_si): Likewise.
	(*lea64): Disable pattern for MIPS16.
	* config/mips/mips.opt (mlra): New option.

2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>

	* lra-constraints.c (base_to_reg): New function.
	(process_address): Use new function.

2014-06-18  Tom de Vries  <tom@codesourcery.com>

	* config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
	* config/aarch64/aarch64.c
	(TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
	(aarch64_emit_call_insn): New function.
	(aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
	of emit_call_insn.
	* config/aarch64/aarch64.md (define_expand "call_internal")
	(define_expand "call_value_internal", define_expand "sibcall_internal")
	(define_expand "sibcall_value_internal"): New.
	(define_expand "call", define_expand "call_value")
	(define_expand "sibcall", define_expand "sibcall_value"): Use internal
	expand variant and aarch64_emit_call_insn.

2014-06-18  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
	* config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
	Redefine to true.
	(arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
	clobbers to CALL_INSN_FUNCTION_USAGE.
	(define_expand "sibcall_internal")
	(define_expand "sibcall_value_internal"): New.
	(define_expand "call", define_expand "call_value"): Add argument to
	arm_emit_call_insn.
	(define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
	(define_expand "sibcall_value"): Use sibcall_value_internal and
	arm_emit_call_insn.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
	__udivmoddi4.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
	push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
	annotations. Fix DWARF information.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
	__udivmoddi4, and fixups for negative operands.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
	to __udivmoddi4.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
	manipulation.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
	describing register usage on function entry and exit.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
	(__aeabi_ldivmod): Fix whitespace.

2014-06-18  Andreas Schwab  <schwab@suse.de>

	* doc/md.texi (Standard Names): Use @itemx for grouped items.
	Remove blank line after @item.

2014-06-18  Richard Henderson  <rth@redhat.com>

	PR target/61545
	* config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.

2014-06-18  Charles Baylis  <charles.baylis@linaro.org>

	* config/arm/arm.c (neon_vector_mem_operand): Allow register
	POST_MODIFY for neon loads and stores.
	(arm_print_operand): Output post-index register for neon loads and
	stores.

2014-06-18  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.

2014-06-18  Richard Biener  <rguenther@suse.de>

	* tree-pass.h (make_pass_dce_loop): Remove.
	* passes.def: Replace pass_dce_loop with pass_dce.
	* tree-ssa-dce.c (perform_tree_ssa_dce): If something
	changed free niter estimates and reset the scev cache.
	(tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
	make_pass_dce_loop): Remove.
	* tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
	(fini_copy_prop): Return whether something changed.  Always
	let substitute_and_fold perform DCE and free niter estimates
	and reset the scev cache if so.
	(execute_copy_prop): If sth changed schedule cleanup-cfg.
	(pass_data_copy_prop): Do not unconditionally schedule
	cleanup-cfg or update-ssa.

2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/61518
	* tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
	reduction var is used in reduction stmt or phi-function only.

2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.

2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/61517
	* tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
	whose rhs's first tree is the source expression instead of the
	expression itself.
	(find_bswap_or_nop): Likewise.
	(bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
	gimple stmt whose rhs's first tree is the source. In the memory source
	case, move the stmt to be replaced close to one of the original load to
	avoid the problem of a store between the load and the stmt's original
	location.
	(pass_optimize_bswap::execute): Adapt to change in bswap_replace's
	signature.

2014-06-18  Andreas Schwab  <schwab@suse.de>

	PR rtl-optimization/54555
	* postreload.c (move2add_use_add2_insn): Substitute
	STRICT_LOW_PART only if it is cheaper.

2014-06-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
	Do not use unspec as call operand.  Use memory_operand instead of
	memory_nox32_operand and add "m" operand constraint.  Disable
	pattern for TARGET_X32.
	(*sibcall_pop_memory): Ditto.
	(*sibcall_value_memory): Ditto.
	(*sibcall_value_pop_memory): Ditto.
	(sibcall peepholes): Merge SImode and DImode patterns using
	W mode iterator.  Use memory_operand instead of memory_nox32_operand.
	Disable pattern for TARGET_X32.  Check if eliminated register is
	really dead after call insn.  Generate call RTX without unspec operand.
	(sibcall_value peepholes): Ditto.
	(sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
	instead of memory_nox32_operand.  Check if eliminated register is
	really dead after call insn. Generate call RTX without unspec operand.
	(sibcall_value_pop peepholes): Ditto.
	* config/i386/predicates.md (memory_nox32_operand): Remove predicate.

2014-06-18  Terry Guo  <terry.guo@arm.com>

	PR target/61544
	* config/arm/arm.c (thumb1_reorg): Move to next basic block if we
	reach the head.

2014-06-18  Olivier Hainque  <hainque@adacore.com>

	* tree-core.h (tree_block): Add an "end_locus" field, allowing
	memorization of the end of block source location.
	* tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
	* gimplify.c (gimplify_bind_expr): Propagate the block start and
	end source location info we have on the block entry/exit code we
	generate.

2014-06-18  Richard Biener  <rguenther@suse.de>

	* common.opt (fssa-phiopt): New option.
	* opts.c (default_options_table): Enable -fssa-phiopt with -O1+
	but not with -Og.
	* tree-ssa-phiopt.c (pass_phiopt): Add gate method.
	* doc/invoke.texi (-fssa-phiopt): Document.

2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* genattrtab.c (n_bypassed): New variable.
	(process_bypasses): Initialise n_bypassed.
	Count number of bypassed reservations.
	(make_automaton_attrs): Allocate space for bypassed reservations
	rather than number of bypasses.

2014-06-18  Richard Biener  <rguenther@suse.de>

	* tree-ssa-propagate.c (replace_phi_args_in): Return whether
	we propagated anything.
	(substitute_and_fold_dom_walker::before_dom_children): Something
	changed if we propagated into PHI arguments.
	* tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
	we removed a stmt.

2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/i386.c (ix86_reassociation_width): Add alternative for
	vector case.
	* config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
	* config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
	* tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
	Introduces alternative way of loads group permutaions.
	(vect_transform_grouped_load): Try alternative way of permutations.

2014-06-18  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (omp_notice_variable): If n is non-NULL and no flags
	changed in ORT_TARGET region, don't jump to do_outer.
	(struct gimplify_adjust_omp_clauses_data): New type.
	(gimplify_adjust_omp_clauses_1): Adjust for data being
	a struct gimplify_adjust_omp_clauses_data pointer instead
	of tree *.  Pass pre_p as a new argument to
	lang_hooks.decls.omp_finish_clause hook.
	(gimplify_adjust_omp_clauses): Add pre_p argument, adjust
	splay_tree_foreach to pass both list_p and pre_p.
	(gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
	gimplify_omp_workshare, gimplify_omp_target_update): Adjust
	gimplify_adjust_omp_clauses callers.
	* langhooks.c (lhd_omp_finish_clause): New function.
	* langhooks-def.h (lhd_omp_finish_clause): New prototype.
	(LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
	* langhooks.h (struct lang_hooks_for_decls): Add a new
	gimple_seq * argument to omp_finish_clause hook.
	* omp-low.c (scan_sharing_clauses): Call scan_omp_op on
	non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
	(scan_omp_parallel, lower_omp_for): When adding
	_LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
	* tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.

2014-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
	* tree-dfa.c (get_addr_base_and_unit_offset_1): To here.

2014-06-17  Xinliang David Li  <davidxl@google.com>

	* tree-pretty-print.c (dump_function_header): Print cgraph uid.
	* passes.c (pass_init_dump_file): Do not set initialize
	flag to false unconditionally.

2014-06-17  Richard Biener  <rguenther@suse.de>

	* genopinit.c (main): Use vec<>::qsort method.
	* tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
	Likewise.
	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.

2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
	* config/mips/mips.c (mips_expand_fcc_reload): Remove.
	(mips_move_to_gpr_cost): Remove ST_REGS case.
	(mips_move_from_gpr_cost): Likewise.
	(mips_register_move_cost): Likewise.
	(mips_secondary_reload_class): Likewise.

2014-06-17  Richard Biener  <rguenther@suse.de>

	* passes.def (pass_all_early_optimizations): Remove copy-prop pass.
	(pass_all_optimizations): Move 3rd copy-prop pass from after
	fre to before ifcombine/phiopt.

2014-06-17  Richard Biener  <rguenther@suse.de>

	* tree-switch-conversion.c (collect_switch_conv_info): Simplify
	and allow all blocks to be forwarders.

2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>

	PR target/61483
	* config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
	variable 'size'; calculate 'size' right in the front; use
	'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
	pcum->aapcs_stack_words.

2014-06-17  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
	(umulhi3, mulsidi3, umulsidi3): Likewise.

2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/61508
	* fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
	check for section name.

2014-06-17  Richard Biener  <rguenther@suse.de>

	* tree-ssa-propagate.c: Include domwalk.h.
	(substitute_and_fold): Outline main worker into a domwalker ...
	(substitute_and_fold_dom_walker::before_dom_children): ... here.
	Schedule stmts we can fully propagate for removal.  Remove
	poor-mans DCE.
	(substitute_and_fold): Apply a dominator walk to perform
	substitution.  Process stmts scheduled for removal here.

2014-06-17  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-im.c (determine_max_movement): Adjust cost
	of PHI node moving.

2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/arm/arm.c (arm_atomic_assign_expand_fenv): call
	default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
	(arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
	__builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
	* config/arm/vfp.md (set_fpscr): Make pattern conditional on
	TARGET_HARD_FLOAT.
	(get_fpscr) : Likewise.

2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/61325
	* lra-constraints.c (valid_address_p): Add forward declaration.
	(simplify_operand_subreg): Check address validity before and after
	alter_reg of memory subreg.

2014-06-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (decide_alg): Correctly handle
	maximum size of stringop algorithm.

2014-06-16  Yury Gribov  <y.gribov@samsung.com>

	* asan.c (build_check_stmt): Fix maybe-uninitialized warning.

2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/61522
	* lra-assigns.c (assign_by_spills): Check null targetm.spill_class.

2014-06-16  Jan Hubicka  <hubicka@ucw.cz>

	Revert:
	* symtab.c (symtab_node::reset_section): New method.
	* cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
	for localization.
	* cgraph.h (reset_section): Declare.
	* ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
	do not consider comdat locals.
	* cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
	for new symbol.
	* ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
	(update_visibility_by_resolution_info): Consider UNDEF; fix checking;
	reset sections of symbols dragged out of the comdats.
	(function_and_variable_visibility): Reset sections of
	localized symbols.

2014-06-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61482
	* tree-vrp.c (adjust_range_with_scev): Avoid setting of
	[-INF(OVF), +INF(OVF)] range.

2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>

	* config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
	instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
	handling 32-bit multiplication.

2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>

	PR middle-end/61430
	* lra-lives.c (process_bb_lives): Skip creating copy during
	insn scan when src/dest has constrained to same regno.

2014-06-15  Jan Hubicka  <hubicka@ucw.cz>

	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
	DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.

2014-06-16  Yury Gribov  <y.gribov@samsung.com>

	* asan.c (check_func): New function.
	(maybe_create_ssa_name): Likewise.
	(build_check_stmt_with_calls): Likewise.
	(use_calls_p): Likewise.
	(report_error_func): Change interface.
	(build_check_stmt): Allow non-integer lengths; add support
	for new parameter.
	(asan_instrument): Likewise.
	(instrument_mem_region_access): Moved code to build_check_stmt.
	(instrument_derefs): Likewise.
	(instrument_strlen_call): Likewise.
	* cfgcleanup.c (old_insns_match_p): Add support for new functions.
	* doc/invoke.texi: Describe new parameter.
	* params.def: Define new parameter.
	* params.h: Likewise.
	* sanitizer.def: Describe new builtins.

2014-06-16  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Make all defs available at the end.
	(eliminate): If we remove a PHI node schedule cfg-cleanup.

2014-06-18  Jakub Jelinek  <jakub@redhat.com>

	PR plugins/45078
	* config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.

2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>

	PR bootstrap/61516
	* auto-inc-dec.c (merge_in_block): Fix location of insn_info
	initialization.  Replace remaining use of uid.

2014-06-15  Jan Hubicka  <hubicka@ucw.cz>

	* c-family/c-common.c (handle_tls_model_attribute): Use
	set_decl_tls_model.
	* c-family/c-common.c (handle_tls_model_attribute): Use
	set_decl_tls_model.
	* cgraph.h (struct varpool_node): Add tls_model.
	* tree.c (decl_tls_model, set_decl_tls_model): New functions.
	* tree.h (DECL_TLS_MODEL): Update.
	(DECL_THREAD_LOCAL_P): Check that variable is static.
	(decl_tls_model): Declare.
	(set_decl_tls_model): Declare.
	* tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
	set symbol prorperties.
	(get_emutls_init_templ_addr): Cleanup.
	(new_emutls_decl): Update.
	* lto-cgraph.c (lto_output_varpool_node): Stream TLS model
	(lto_input_varpool_node): Likewise.
	* lto-streamer-out.c (hash_tree): Likewise.
	* tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
	not stream DECL_TLS_MODEL.
	* tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
	* tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.

2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.

2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
	(df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
	lists.
	(df_scan_bb_info): Likewise artificial_defs and artificial_uses.
	(DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
	(FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
	(FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
	(FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
	(df_get_artificial_defs, df_get_artificial_uses)
	(df_single_def, df_single_use): Update accordingly.
	(df_refs_chain_dump): Take the first element in a linked list as
	parameter, rather than a pointer to an array of pointers.
	* df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
	* df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
	(df_chain_create_bb_process_use): Likewise.
	(df_md_bb_local_compute_process_def): Likewise.
	* fwprop.c (process_defs, process_uses): Likewise.
	(register_active_defs, update_uses): Likewise.
	(forward_propagate_asm): Update for new df_ref linking.
	* df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
	(df_null_ref_rec, df_null_mw_rec): Likewise.
	(df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
	explicitly.
	(df_scan_free_bb_info): Remove check for null artificial_defs.
	(df_install_ref_incremental): Adjust for new df_ref linking.
	Use a single-element insertion rather than a full sort.
	(df_ref_chain_delete_du_chain): Take the first element
	in a linked list as parameter, rather than a pointer to an array of
	pointers.
	(df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
	(df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
	(df_insn_info_delete): Remove check for null defs and call to
	df_scan_free_mws_vec.
	(df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
	null rather than df_null_*_rec.
	(df_insn_rescan_debug_internal): Likewise, and update null
	checks in the same way.  Remove check for null defs.
	(df_ref_change_reg_with_loc_1): Fix choice of list for defs.
	Move a single element rather doing a full sort.
	(df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
	linking.
	(df_notes_rescan): Likewise.  Use a merge rather than a full sort.
	Initialize df_ref and df_mw_hardreg lists to null rather than
	df_null_*_rec.
	(df_ref_compare): Take df_refs as parameter, transferring the
	old interface to...
	(df_ref_ptr_compare): ...this new function.
	(df_sort_and_compress_refs): Update accordingly.
	(df_mw_compare): Take df_mw_hardregs as parameter, transferring the
	old interface to...
	(df_mw_ptr_compare): ...this new function.
	(df_sort_and_compress_mws): Update accordingly.
	(df_install_refs, df_install_mws): Return a linked list rather than
	an array of pointers.
	(df_refs_add_to_chains): Assert that old lists are empty rather
	than freeing them.
	(df_insn_refs_verify): Don't handle null defs speciailly.
	* web.c (union_match_dups): Update for new df_ref linking.

2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* df.h (df_ref_create, df_ref_remove): Delete.
	* df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
	(df_ref_remove): Likewise.

2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* df.h (df_single_def, df_single_use): New functions.
	* ira.c (find_moveable_pseudos): Use them.

2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* df.h (FOR_EACH_INSN_INFO_MW): New macro.
	* df-problems.c (df_note_bb_compute): Use it.
	* regstat.c (regstat_bb_compute_ri): Likewise.

2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
	* cse.c (cse_extended_basic_block): Use them.
	* dce.c (mark_artificial_use): Likewise.
	* df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
	(df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
	(df_chain_remove_problem, df_chain_bb_dump): Likewise.
	(df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
	(df_simulate_initialize_backwards): Likewise.
	(df_simulate_finalize_backwards): Likewise.
	(df_simulate_initialize_forwards): Likewise.
	(df_md_simulate_artificial_defs_at_top): Likewise.
	* df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
	* regrename.c (init_rename_info): Likewise.
	* regstat.c (regstat_bb_compute_ri): Likewise.
	(regstat_bb_compute_calls_crossed): Likewise.

2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
	(FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
	(FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
	* auto-inc-dec.c (find_inc, merge_in_block): Use them.
	* combine.c (create_log_links): Likewise.
	* compare-elim.c (find_flags_uses_in_insn): Likewise.
	(try_eliminate_compare): Likewise.
	* cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
	* dce.c (deletable_insn_p, find_call_stack_args): Likewise.
	(remove_reg_equal_equiv_notes_for_defs): Likewise.
	(reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
	(word_dce_process_block, dce_process_block): Likewise.
	* ddg.c (def_has_ccmode_p): Likewise.
	* df-core.c (df_bb_regno_first_def_find): Likewise.
	(df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
	* df-problems.c (df_rd_simulate_one_insn): Likewise.
	(df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
	(df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
	(df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
	(df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
	(df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
	(df_simulate_find_defs, df_simulate_find_uses): Likewise.
	(df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
	(df_simulate_uses, df_md_simulate_one_insn): Likewise.
	* df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
	* fwprop.c (local_ref_killed_between_p): Likewise.
	(all_uses_available_at, free_load_extend): Likewise.
	* gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
	* hw-doloop.c (scan_loop): Likewise.
	* ifcvt.c (dead_or_predicable): Likewise.
	* init-regs.c (initialize_uninitialized_regs): Likewise.
	* ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
	(process_bb_node_lives): Likewise.
	* ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
	(find_moveable_pseudos): Likewise.
	* loop-invariant.c (check_dependencies, record_uses): Likewise.
	* recog.c (peep2_find_free_register): Likewise.
	* ree.c (get_defs): Likewise.
	* regstat.c (regstat_bb_compute_ri): Likewise.
	(regstat_bb_compute_calls_crossed): Likewise.
	* sched-deps.c (find_inc, find_mem): Likewise.
	* sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
	(maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
	* shrink-wrap.c (requires_stack_frame_p): Likewise.
	(prepare_shrink_wrap): Likewise.
	* store-motion.c (compute_store_table, build_store_vectors): Likewise.
	* web.c (union_defs, pass_web::execute): Likewise.
	* config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
	(insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.

2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-assign.c (assign_by_spills): Add code to assign vector regs
	to inheritance pseudos.
	* config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.

2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/61415
	* config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
	(BU_MISC_2): Rename to ...
	(BU_LDBL128_2): ... this.
	* config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
	(RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
	RS6000_BTM_LDBL128.
	(rs6000_invalid_builtin): Add long double 128-bit builtin support.
	(rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
	* config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
	(unpacktf_1): Likewise.
	* doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
	(__builtin_longdouble_dw1): Likewise.
	* doc/sourcebuild.texi (longdouble128): Document.

2014-06-13  Jeff Law  <law@redhat.com>

	PR rtl-optimization/61094
	PR rtl-optimization/61446
	* ree.c (combine_reaching_defs): Get the mode for the copy from
	the extension insn rather than the defining insn.

2014-06-13  Dehao Chen  <dehao@google.com>

	* dwarf2out.c (add_linkage_name): Emit more linkage name.

2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>

	* doc/install.texi (--enable-linker-plugin-configure-flags)
	(--enable-linker-plugin-flags): Document new flags.

2014-06-13  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61186
	* ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
	cache_token if returning early.

2014-06-13  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.h (JUMP_ALIGN): Return the log value if user
	requested alignment is active.
	(LABEL_ALIGN): Likewise.
	(LOOP_ALIGN): Likewise.

2014-06-13  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Rewrite to propagate the VN result into all uses where
	possible and to remove stmts becoming dead because of that.
	(eliminate): Generalize stmt removal handling, remove in
	reverse dominator order to support proper debug stmt
	generation.  Update stmts before removing stmts.
	* tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.

2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/61375
	* tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
	symbolic number cannot be represented in an uint64_t.
	(find_bswap_or_nop_1): Likewise.

2014-06-12  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (symtab_node::reset_section): New method.
	* cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
	for localization.
	* cgraph.h (reset_section): Declare.
	* ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
	do not consider comdat locals.
	* cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
	for new symbol.
	* ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
	(update_visibility_by_resolution_info): Consider UNDEF; fix checking;
	reset sections of symbols dragged out of the comdats.
	(function_and_variable_visibility): Reset sections of
	localized symbols.

2014-06-12  Jan Hubicka  <hubicka@ucw.cz>

	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
	to use symtab and decl_binds_to_current_def_p
	* tree-vectorizer.c (increase_alignment): Increase alignment
	of alias target, too.

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

	PR middle-end/61486
	* gimplify.c (struct gimplify_omp_ctx): Add distribute field.
	(gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
	if outer combined construct is distribute.
	(gimplify_omp_for): For OMP_DISTRIBUTE set
	gimplify_omp_ctxp->distribute.
	* omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
	GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
	mapping into decl map.

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

	* common.opt (fabi-version): Change default to 0.

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

	* toplev.c (process_options): Reject -fabi-version=1.

2014-06-12  Jeff Law  <law@redhat.com>

	PR tree-optimization/61009
	* tree-ssa-threadedge.c (thread_through_normal_block): Correct return
	value when we stop processing a block due to problematic PHIs.

2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
	vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
	vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
	vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
	vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
	vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
	vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
	are not in the spec.

2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/59843
	* config/aarch64/aarch64-modes.def: Add V1DFmode.
	* config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
	Support V1DFmode.

2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-core.h (DECL_NONALIASED): Use proper spelling in comment.

2014-06-12  Georg-Johann Lay  <avr@gjlay.de>

	PR target/61443
	* config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
	loading from address spaces.

2014-06-12  Martin Liska  <mliska@suse.cz>

	PR ipa/61462
	* ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
	statement is reachable.

2014-06-11  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (section_hash): New hash.
	(symtab_unregister_node): Clear section before freeing.
	(hash_section_hash_entry): New haser.
	(eq_sections): New function.
	(symtab_node::set_section_for_node): New method.
	(set_section_1): Update.
	(symtab_node::set_section): Take string instead of tree as parameter.
	(symtab_resolve_alias): Update.
	* cgraph.h (section_hash_entry_d): New structure.
	(section_hash_entry): New typedef.
	(cgraph_node): Change comdat_group_ to x_comdat_group,
	change section_ to x_section and turn into section_hash_entry;
	update accestors; put set_section_for_node offline.
	* tree.c (decl_section_name): Turn into string.
	(set_decl_section_name): Change parameter to be string.
	* tree.h (decl_section_name, set_decl_section_name): Update prototypes.
	* sdbout.c (sdbout_one_type): Update.
	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
	* varasm.c (IN_NAMED_SECTION, get_named_section,
	resolve_unique_section, hot_function_section, get_named_text_section,
	USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
	make_decl_rtl, default_unique_section): Update.
	* config/c6x/c6x.c (c6x_in_small_data_p): Update.
	(c6x_elf_unique_section): Update.
	* config/nios2/nios2.c (nios2_in_small_data_p): Update.
	* config/pa/pa.c (pa_function_section): Update.
	* config/pa/pa.h (IN_NAMED_SECTION_P): Update.
	* config/ia64/ia64.c (ia64_in_small_data_p): Update.
	* config/arc/arc.c (arc_in_small_data_p): Update.
	* config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
	* config/mcore/mcore.c (mcore_unique_section): Update.
	* config/mips/mips.c (mips16_build_function_stub): Update.
	(mips16_build_call_stub): Update.
	(mips_function_rodata_section): Update.
	(mips_in_small_data_p): Update.
	* config/score/score.c (score_in_small_data_p): Update.
	* config/rx/rx.c (rx_in_small_data): Update.
	* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
	(rs6000_xcoff_asm_named_section): Update.
	(rs6000_xcoff_unique_section): Update.
	* config/frv/frv.c (frv_string_begins_with): Update.
	(frv_in_small_data_p): Update.
	* config/v850/v850.c (v850_encode_data_area): Update.
	* config/bfin/bfin.c (DECL_SECTION_NAME): Update.
	(bfin_handle_l1_data_attribute): Update.
	(bfin_handle_l2_attribute): Update.
	* config/mep/mep.c (mep_unique_section): Update.
	* config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
	Update.
	* config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
	(h8300_handle_tiny_data_attribute): Update.
	* config/m32r/m32r.c (m32r_in_small_data_p): Update.
	(m32r_in_small_data_p): Update.
	* config/alpha/alpha.c (alpha_in_small_data_p): Update.
	* config/i386/i386.c (ix86_in_large_data_p): Update.
	* config/i386/winnt.c (i386_pe_unique_section): Update.
	* config/darwin.c (darwin_function_section): Update.
	* config/lm32/lm32.c (lm32_in_small_data_p): Update.
	* tree-emutls.c (get_emutls_init_templ_addr): Update.
	(new_emutls_decl): Update.
	* lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
	input_varpool_node): Update.
	(ead_string_cst): Turn to ...
	(read_string): ... this one.
	* dwarf2out.c (secname_for_decl): Update.
	* asan.c (asan_protect_global): Update.

2014-06-11  DJ Delorie  <dj@redhat.com>

	* config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
	cache lines.
	* config/rx/rx.c (rx_option_override): Likewise.
	(rx_align_for_label): Likewise.

	* config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.

2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>

	* config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
	prototype.

2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* common.md: New file.
	* doc/md.texi: Update description of generic, machine-independent
	constraints.
	* config/s390/constraints.md (e): Delete.
	* Makefile.in (md_file): Include common.md.
	* config/m32c/t-m32c (md_file): Likewise.
	* genpreds.c (general_mem): New array.
	(generic_constraint_letters): Remove constraints now defined by
	common.md.
	(add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
	Allow the first character to be '<' or '>' as well.
	* genoutput.c (general_mem): New array.
	(indep_constraints): Remove constraints now defined by common.md.
	(note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
	Remove special handling of 'm'.
	* ira-costs.c (record_reg_classes): Remove special handling of
	constraints now defined by common.md.
	* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
	* ira-lives.c (single_reg_class): Likewise.
	(ira_implicitly_set_insn_hard_regs): Likewise.
	* lra-constraints.c (reg_class_from_constraints): Likewise.
	(process_alt_operands, process_address, curr_insn_transform): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* reload.c (push_secondary_reload, scratch_reload_class)
	(find_reloads, alternative_allows_const_pool_ref): Likewise.
	* reload1.c (maybe_fix_stack_asms): Likewise.
	* targhooks.c (default_secondary_reload): Likewise.
	* stmt.c (parse_output_constraint): Likewise.
	* recog.c (preprocess_constraints): Likewise.
	(constrain_operands, peep2_find_free_register): Likewise.
	(asm_operand_ok): Likewise, but add a comment saying why 'o'
	must be handled specially.

2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
	* genpreds.c (have_const_dbl_constraints): Delete.
	(add_constraint): Don't set it.
	(write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
	* ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
	constraints using the lookup_constraint logic.
	* ira-lives.c (single_reg_class): Likewise.
	* ira.c (ira_setup_alts): Likewise.
	* lra-constraints.c (process_alt_operands): Likewise.
	* recog.c (asm_operand_ok, constrain_operands): Likewise.
	* reload.c (find_reloads): Likewise.

2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* genpreds.c (const_int_start, const_int_end): New variables.
	(choose_enum_order): Output CONST_INT constraints before memory
	constraints.
	(write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
	Add CT_CONST_INT.
	* ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
	* ira.c (ira_setup_alts): Likewise.
	* lra-constraints.c (process_alt_operands): Likewise.
	* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
	* reload.c (find_reloads): Likewise.

2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
	decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
	* recog.c (preprocess_constraints): Update accordingly.

2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
	(REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
	(EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
	* genpreds.c (print_type_tree): New function.
	(write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
	REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
	EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
	Write out enum constraint_type and get_constraint_type.
	* lra-constraints.c (satisfies_memory_constraint_p): Take a
	constraint_num rather than a constraint string.
	(satisfies_address_constraint_p): Likewise.
	(reg_class_from_constraints): Avoid old constraint macros.
	(process_alt_operands, process_address_1): Likewise.
	(curr_insn_transform): Likewise.
	* ira-costs.c (record_reg_classes): Likewise.
	(record_operand_costs): Likewise.
	* ira-lives.c (single_reg_class): Likewise.
	(ira_implicitly_set_insn_hard_regs): Likewise.
	* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
	(constrain_operands, peep2_find_free_register): Likewise.
	* reload.c (push_secondary_reload, scratch_reload_class): Likewise.
	(find_reloads, alternative_allows_const_pool_ref): Likewise.
	* reload1.c (maybe_fix_stack_asms): Likewise.
	* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
	* targhooks.c (default_secondary_reload): Likewise.
	* config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
	to EXTRA_CONSTRAINT_STR.
	* config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.

2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* genpreds.c (write_constraint_satisfied_p_1): Replace with...
	(write_constraint_satisfied_p_array): ...this new function.
	(write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
	an array.
	(write_insn_preds_c): Update accordingly.

2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* genpreds.c (write_lookup_constraint): Rename to...
	(write_lookup_constraint_1): ...this.
	(write_lookup_constraint_array): New function.
	(write_tm_preds_h): Define lookup_constraint as an inline function
	that uses write_lookup_constraint_array where possible.
	(write_insn_preds_c): Update for the changes above.

2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi (regclass_for_constraint): Rename to...
	(reg_class_for_constraint): ...this.
	* genpreds.c (num_constraints, enum_order, register_start)
	(register_end, satisfied_start, memory_start, memory_end)
	(address_start, address_end): New variables.
	(add_constraint): Count the number of constraints.
	(choose_enum_order): New function.
	(write_enum_constraint_num): Iterate over enum_order.
	(write_regclass_for_constraint): Rename to...
	(write_reg_class_for_constraint_1): ...this and update output
	accordingly.
	(write_constraint_satisfied_p): Rename to...
	(write_constraint_satisfied_p_1): ...this and update output
	accordingly.  Do nothing if all extra constraints are register
	constraints.
	(write_insn_extra_memory_constraint): Delete.
	(write_insn_extra_address_constraint): Delete.
	(write_range_function): New function.
	(write_tm_preds_h): Define constraint_satisfied_p and
	reg_class_for_constraint as inline functions that do a range check
	before calling the out-of-line function.  Use write_range_function
	to implement insn_extra_{register,memory,address}_constraint,
	the first of which is new.
	(write_insn_preds_c): Update after above changes to write_* functions.
	(main): Call choose_enum_order.

2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/61306
	* tree-ssa-math-opts.c (struct symbolic_number): Store type of
	expression instead of its size.
	(do_shift_rotate): Adapt to change in struct symbolic_number. Return
	false to prevent optimization when the result is unpredictable due to
	arithmetic right shift of signed type with highest byte is set.
	(verify_symbolic_number_p): Adapt to change in struct symbolic_number.
	(init_symbolic_number): Likewise.
	(find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
	when the result is unpredictable due to sign extension.

2014-06-11  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
	(*thumb1_addsi3): Ditto.
	(*thumb_subdi3): Ditto.
	(thumb1_subsi3_insn): Ditto.
	(*thumb_mulsi3): Ditto.
	(*thumb_mulsi3_v6): Ditto.
	(*thumb1_andsi3_insn): Ditto.
	(thumb1_bicsi3): Ditto.
	(*thumb1_iorsi3_insn): Ditto.
	(*thumb1_xorsi3_insn): Ditto.
	(*thumb1_ashlsi3): Ditto.
	(*thumb1_ashrsi3): Ditto.
	(*thumb1_lshrsi3): Ditto.
	(*thumb1_rotrsi3): Ditto.
	(*thumb1_negdi2): Ditto.
	(*thumb1_negsi2): Ditto.
	(*thumb1_abssi2): Ditto.
	(*thumb1_neg_abssi2): Ditto.
	(*thumb1_one_cmplsi2): Ditto.
	(*thumb1_zero_extendhisi2): Ditto.
	(*thumb1_zero_extendqisi2): Ditto.
	(*thumb1_zero_extendqisi2_v6): Ditto.
	(thumb1_extendhisi2): Ditto.
	(thumb1_extendqisi2): Ditto.
	(*thumb1_movdi_insn): Ditto.
	(*thumb1_movsi_insn): Ditto.
	(*thumb1_movhi_insn): Ditto.
	(thumb_movhi_clobber): Ditto.
	(*thumb1_movqi_insn): Ditto.
	(*thumb1_movhf): Ditto.
	(*thumb1_movsf_insn): Ditto.
	(*thumb_movdf_insn): Ditto.
	(movmem12b): Ditto.
	(movmem8b): Ditto.
	(cbranchqi4): Ditto.
	(cbranchsi4_insn): Ditto.
	(cbranchsi4_scratch): Ditto.
	(*negated_cbranchsi4): Ditto.
	(*tbit_cbranch): Ditto.
	(*tlobits_cbranch): Ditto.
	(*tstsi3_cbranch): Ditto.
	(*cbranchne_decr1): Ditto.
	(*addsi3_cbranch): Ditto.
	(*addsi3_cbranch_scratch): Ditto.
	(*thumb_cmpdi_zero): Ditto.
	(cstoresi_eq0_thumb1): Ditto.
	(cstoresi_ne0_thumb1): Ditto.
	(*cstoresi_eq0_thumb1_insn): Ditto.
	(*cstoresi_ne0_thumb1_insn): Ditto.
	(cstoresi_nltu_thumb1): Ditto.
	(cstoresi_ltu_thumb1): Ditto.
	(thumb1_addsi3_addgeu): Ditto.
	(*thumb_jump): Ditto.
	(*call_reg_thumb1_v5): Ditto.
	(*call_reg_thumb1): Ditto.
	(*call_value_reg_thumb1_v5): Ditto.
	(*call_value_reg_thumb1): Ditto.
	(*call_insn): Ditto.
	(*call_value_insn): Ditto.
	(thumb1_casesi_internal_pic): Ditto.
	(thumb1_casesi_dispatch): Ditto.
	(*thumb1_indirect_jump): Ditto.
	(prologue_thumb1_interwork): Ditto.
	(*epilogue_insns): Ditto.
	(consttable_1): Ditto.
	(consttable_2): Ditto.
	(tablejump): Ditto.
	(*thumb1_tablejump): Ditto.
	(thumb_eh_return): Ditto.
	(define_peephole2): Two of them are thumb1 only and got moved into
	new file thumb1.md.
	(define_split): Six of them are thumb1 only and got moved into new
	file thumb1.md.
	* config/arm/thumb1.md: New file comprised of above thumb1 only
	patterns.

2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
	* Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
	dependencies.
	* config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
	(aarch64_crc_builtin_datum): New struct.
	(aarch64_crc_builtin_data): New.
	(aarch64_init_crc32_builtins): New function.
	(aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
	(aarch64_crc32_expand_builtin): New.
	(aarch64_expand_builtin): Add CRC32 builtin expansion case.
	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
	__ARM_FEATURE_CRC32 when appropriate.
	(TARGET_CRC32): Define.
	* config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
	UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
	UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
	(aarch64_<crc_variant>): New pattern.
	* config/aarch64/arm_acle.h: New file.
	* config/aarch64/iterators.md (CRC): New int iterator.
	(crc_variant, crc_mode): New int attributes.
	* doc/aarch64-acle-intrinsics.texi: New file.
	* doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
	Include aarch64-acle-intrinsics.texi.

2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>

	* tree-vect-data-refs.c (vect_grouped_store_supported): New
	check for stores group of length 3.
	(vect_permute_store_chain): New permutations for stores group of
	length 3.
	* tree-vect-stmts.c (vect_model_store_cost): Change cost
	of vec_perm_shuffle for the new permutations.

2014-06-11  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (function_and_variable_visibility): Disable virtual
	table rewriting temporarily on targets not supporting ONE_ONLY.

2014-06-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/61437
	Revert
	2014-06-04  Richard Biener  <rguenther@suse.de>

	* tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
	TREE_PUBLIC and DECL_EXTERNAL decls.

2014-06-10  Jan Hubicka  <hubicka@ucw.cz>

	* varasm.c (set_implicit_section): New function.
	(resolve_unique_section): Use it to set implicit section
	for aliases, too.
	(get_named_text_section): Use symtab_get_node (decl)->implicit_section
	(default_function_section): Likewise.
	(decl_binds_to_current_def_p): Constify argument.
	* varasm.h (decl_binds_to_current_def_p): Update prototype.
	* asan.c (asan_protect_global): Use
	symtab_get_node (decl)->implicit_section.
	* symtab.c (dump_symtab_base): Dump implicit sections.
	(verify_symtab_base): Verify sanity of sectoins and comdats.
	(symtab_resolve_alias): Alias share the section of its target.
	(set_section_1): New function.
	(symtab_node::set_section): Move here, recurse to aliases.
	(verify_symtab): Check for duplicated symtab lists.
	* tree-core.h (implicit_section_name_p): Remove.
	* tree-vect-data-refs.c: Include varasm.h.
	(vect_can_force_dr_alignment_p): Fix conditional on when
	decl bints to current definition; use
	symtab_get_node (decl)->implicit_section.
	* cgraph.c (cgraph_make_node_local_1): Fix section set.
	* cgraph.h (struct symtab_node): Add implicit_section.
	(set_section): Rename to ...
	(set_section_for_node): ... this one.
	(set_section): Declare.
	* tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
	* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
	input_overwrite_node, input_varpool_node): Stream implicit_section.
	* ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
	removal; it will fail in LTO.

2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
	Change second alternative type to f_mcr.
	* config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
	and 12th alternatives' types to f_mcr and f_mrc.
	(*movdi_aarch64): Same for 12th and 13th alternatives.
	(*movsf_aarch64): Change 9th alternatives' type to mov_reg.
	(aarch64_movtilow_tilow): Change type to fmov.

2014-06-10  Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
	(aarch64_save_or_restore_callee_save_registers): Fix layout.

2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
	New expander.
	(aarch64_sqrdmulh_lane<mode>): Likewise.
	(aarch64_sq<r>dmulh_lane<mode>): Rename to...
	(aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
	(aarch64_sqdmulh_laneq<mode>): New expander.
	(aarch64_sqrdmulh_laneq<mode>): Likewise.
	(aarch64_sq<r>dmulh_laneq<mode>): Rename to...
	(aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
	(aarch64_sqdmulh_lane<mode>): New expander.
	(aarch64_sqrdmulh_lane<mode>): Likewise.
	(aarch64_sq<r>dmulh_lane<mode>): Rename to...
	(aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
	(aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
	(aarch64_sqdmlal_laneq<mode>): Likewise.
	(aarch64_sqdmlsl_lane<mode>): Likewise.
	(aarch64_sqdmlsl_laneq<mode>): Likewise.
	(aarch64_sqdmlal2_lane<mode>): Likewise.
	(aarch64_sqdmlal2_laneq<mode>): Likewise.
	(aarch64_sqdmlsl2_lane<mode>): Likewise.
	(aarch64_sqdmlsl2_laneq<mode>): Likewise.
	(aarch64_sqdmull_lane<mode>): Likewise.
	(aarch64_sqdmull_laneq<mode>): Likewise.
	(aarch64_sqdmull2_lane<mode>): Likewise.
	(aarch64_sqdmull2_laneq<mode>): Likewise.

2014-06-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61438
	* tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
	(eliminate_dom_walker::before_dom_children): Only try to inhibit
	insertion of IVs if running PRE.
	(eliminate): Adjust.
	(pass_pre::execute): Likewise.
	(pass_fre::execute): Likewise.

2014-06-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/61456
	* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
	Do not use the main variant for the type comparison.
	(ncr_compar): Likewise.
	(nonoverlapping_component_refs_p): Likewise.

2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
	REG_CFA_RESTORE mode.

2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/i386.c (expand_vec_perm_pblendv): New.
	* config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
	expand_vec_perm_pblendv.

2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
	available.
	Simplify description of __crc32d and __crc32cd intrinsics.
	* doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
	availability.

2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>

	PR lto/61334
	* configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
	* config.in: Regenerate.
	* configure: Likewise.

2014-06-10  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-reference.c (is_proper_for_analysis): Exclude addressable
	and public vars.
	(intersect_static_var_sets): Remove.
	(propagate): Do not prune local statics.

2014-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/60928
	* omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
	Set lastprivate_firstprivate even if omp_private_outer_ref
	langhook returns true.
	<case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
	langhook, call unshare_expr on new_var and call
	build_outer_var_ref to get the last argument.

2014-06-10  Marek Polacek  <polacek@redhat.com>

	PR c/60988
	* doc/extend.texi: Add cindex for transparent_union.

2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
	init_symbolic_number ().

2014-05-18  John David Anglin  <danglin@gcc.gnu.org>

	PR middle-end/61141
	* emit-rtl.c (reset_all_used_flags): In a sequence, check that
	XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
	(verify_rtl_sharing): Likewise.

2014-06-09  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/54442
	* tree.c (build_qualified_type): Use a canonical type for
	TYPE_CANONICAL.

2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm-modes.def: Remove XFmode.

2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>

	PR target/61062
	* config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
	vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
	vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
	vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
	vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
	vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
	vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
	vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
	vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.

2014-06-09  Jan Hubicka  <hubicka@ucw.cz>

	* tree-core.h (tree_decl_with_vis): Remove section_name.

2014-06-09  Kito Cheng  <kito@0xlab.org>

	* ira.c (ira): Don't call init_caller_save if LRA enabled
	since LRA use its own infrastructure to handle that.

2014-06-07  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (dump_symtab_base): Update dumping.
	(symtab_make_decl_local): Clear only DECL_COMDAT.
	* tree-vect-data-refs.c (Check that variable is static before
	tampering with sections.
	* cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
	(cgraph_create_virtual_clone): Likewise.
	* tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
	(decl_section_name, set_decl_section_name): New accessors.
	(find_decls_types_r): Do not walk section name
	* tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
	(decl_comdat_group, decl_comdat_group_id): Constify.
	(decl_section_name, set_decl_section_name): Update.
	* varpool.c (varpool_finalize_named_section_flags): Use get_section.
	* cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
	(cgraph_make_node_local_1): Clear section and comdat group.
	* cgraph.h (set_comdat_group): Sanity check.
	(get_section, set_section): New.
	* ipa-comdats.c (ipa_comdats): Use get_section.
	* ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
	* lto-streamer-out.c: Do not follow section names.
	* c-family/c-common.c (handle_section_attribute): Update.
	* lto-cgraph.c (lto_output_node): Output section.
	(lto_output_varpool_node): Likewise.
	(read_comdat_group): Rename to ...
	(read_identifier): ... this one.
	(read_string_cst): New function.
	(input_node, input_varpool_node): Input section names.
	* tree-emutls.c (get_emutls_init_templ_addr): Update.
	(new_emutls_decl): Update.
	(secname_for_decl): Check section names only of static vars.
	* config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
	* config/i386/winnt.c (i386_pe_unique_section): Likewise.
	* config/i386/i386.c (x86_64_elf_unique_section): Likewise.
	* config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
	* config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
	* config/mcore/mcore.c (mcore_unique_section): Likewise.
	* config/mips/mips.c (mips16_build_function_stub): Likewise.
	* config/v850/v850.c (v850_insert_attributes): Likewise.
	* config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
	Likewise.
	(h8300_handle_tiny_data_attribute): Likewise.
	* config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
	(bfin_handle_l2_attribute): Likewise.

2014-06-07  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
	remove static initializer.

2014-06-07  Jan Hubicka  <hubicka@ucw.cz>

	* varasm.c (use_blocks_for_decl_p): Check symbol table
	instead of alias attribute.
	(place_block_symbol): Recurse on aliases.

2014-06-07  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c: Include varasm.h
	(can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.

2014-06-07  Jan Hubicka  <hubicka@ucw.cz>

	* cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
	outputting aliases.

2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>

	* gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
	from test_insn into GGC space escape via SET_SRC.

2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
	call statement, if any.
	(gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
	statements, if any.  Tidy up.

2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/61431
	* config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
	iterators, VSX_D that handles 64-bit types, and VSX_LE that
	handles swapping the two 64-bit double words on little endian
	systems.  Include V1TImode and optionally TImode in VSX_LE so that
	these types are properly swapped.  Change all of the insns and
	splits that do the 64-bit swaps to use VSX_LE.
	(vsx_le_perm_load_<mode>): Likewise.
	(vsx_le_perm_store_<mode>): Likewise.
	(splitters for little endian memory operations): Likewise.
	(vsx_xxpermdi2_le_<mode>): Likewise.
	(vsx_lxvd2x2_le_<mode>): Likewise.
	(vsx_stxvd2x2_le_<mode>): Likewise.

2014-06-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/61423
	* config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
	define_insn_and_split pattern, merged from *floatunssi<mode>2_1
	and corresponding splitters.  Zero extend general register
	or memory input operand to XMM temporary.  Enable for
	TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
	(floatunssi<mode>2): Update expander predicate.

2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/61325
	* lra-constraints.c (process_address_1): Check scale equal to one
	to prevent transformation: base + scale * index => base + new_reg.

2014-06-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59299
	* tree-ssa-sink.c (all_immediate_uses_same_place): Work on
	a def operand.
	(nearest_common_dominator_of_uses): Likewise.
	(statement_sink_location): Adjust.  Support sinking loads.

2014-06-06  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (get_place_in_agg_contents_list): New function.
	(build_agg_jump_func_from_list): Likewise.
	(determine_known_aggregate_parts): Renamed to
	determine_locally_known_aggregate_parts.  Moved some functionality
	to the two functions above, removed bound checks.

2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
	* config/aarch64/aarch64.c (aarch64_move_pointer): New.
	(aarch64_progress_pointer): Likewise.
	(aarch64_copy_one_part_and_move_pointers): Likewise.
	(aarch64_expand_movmen): Likewise.
	* config/aarch64/aarch64.h (MOVE_RATIO): Set low.
	* config/aarch64/aarch64.md (movmem<mode>): New.

2014-06-06  Bingfeng Mei  <bmei@broadcom.com>

	* targhooks.c (default_add_stmt_cost): Call target specific
	hook instead of default one.

2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
	endianness instead of host endianness.
	* tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
	comments.

2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR debug/53927
	* function.c (instantiate_decls): Process the saved static chain.
	(expand_function_start): If not optimizing, save the static chain
	onto the stack.
	* tree-nested.c (convert_all_function_calls): Always create the static
	chain for nested functions if not optimizing.

2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.

2014-06-06  Richard Biener  <rguenther@suse.de>

	* cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
	(construct_init_block): Likewise.
	(construct_exit_block): Likewise.
	(pass_expand::execute): Likewise.
	* graphite.c (graphite_transforms): Replace check for current_loops
	with a check for > 1 loops.
	(pass_graphite_transforms::execute): Adjust.
	* ipa-split.c (split_function): Remove check for current_loops.
	* omp-low.c (expand_parallel_call): Likewise.
	(expand_omp_for_init_counts): Likewise.
	(extract_omp_for_update_vars): Likewise.
	(expand_omp_for_generic): Likewise.
	(expand_omp_sections): Likewise.
	(expand_omp_target): Likewise.
	* tracer.c (tail_duplicate): Likewise.
	(pass_tracer::execute): Likewise.
	* trans-mem.c (expand_transaction): Likewise.
	* tree-complex.c (expand_complex_div_wide): Likewise.
	* tree-eh.c (lower_resx): Likewise.
	(cleanup_empty_eh_merge_phis): Likewise.
	* tree-predcom.c (run_tree_predictive_commoning): Replace check for
	current_loops with a check for > 1 loops.
	(pass_predcom::execute): Adjust.
	* tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
	* tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
	* tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
	* tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
	* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
	* tree-switch-conversion.c (process_switch): Likewise.
	* tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
	* tree-vrp.c (vrp_visit_phi_node): Likewise.
	(execute_vrp): Likewise.
	* ubsan.c (ubsan_expand_null_ifn): Likewise.

2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* rtl.h (insn_location): Declare.
	* cfgcleanup.c (try_forward_edges): Compare the locus of locations
	with UNKNOWN_LOCATION.
	* emit-rtl.c (insn_location): New function.
	* final.c (notice_source_line): Check that the instruction has a
	location before retrieving it and use insn_location.
	* modulo-sched.c (loop_single_full_bb_p): Likewise.
	* print-rtl.c (print_rtx): Likewise.

2014-06-06  Richard Biener  <rguenther@suse.de>

	* passes.def: Move 2nd VRP pass before phi-only-cprop.

2014-06-06  Christian Bruel  <christian.bruel@st.com>

	PR tree-optimization/43934
	* tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
	cost.

2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-lives.c (single_reg_class): Add missing break.  Explicitly
	return NO_REGS for extra address and memory constraints.  Handle
	operands that match (or are equivalent to something that matches)
	extra constant constraints.  Ignore other non-register operands.

2014-06-06  Alan Modra  <amodra@gmail.com>

	PR target/61300
	* doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
	* doc/tm.texi: Regenerate.
	* function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
	Use throughout in place of REG_PARM_STACK_SPACE.
	* config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
	"incoming" param.  Pass to rs6000_function_parms_need_stack.
	(rs6000_function_parms_need_stack): Add "incoming" param, ignore
	prototype_p when incoming.  Use function decl when incoming
	to handle K&R style functions.
	* config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
	(INCOMING_REG_PARM_STACK_SPACE): Define.

2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	PR target/52472
	* cfgexpand.c (expand_debug_expr): Use address space of nested
	TREE_TYPE for ADDR_EXPR and MEM_REF.

2014-06-05  Jeff Law  <law@redhat.com>

	PR tree-optimization/61289
	* tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
	DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
	looking for those which match LHS.  All callers changed.
	(record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
	parameters and code which manipulated them.  All callers changed.
	(record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
	and DST_MAP parameters.  Simplify invalidation code by just calling
	invalidate_equivalences.  All callers changed.
	(thread_across_edge): Simplify now that we don't need to maintain
	the map of equivalences to invalidate.

2014-06-05  Kai Tietz  <ktietz@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	PR target/46219
	* config/i386/predicates.md (memory_nox32_operand): Add memory_operand
	checking for !TARGET_X32.
	* config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
	(sibcall_intern): New define_insn, plus required peepholes.
	(sibcall_pop_intern): Likewise.
	(sibcall_value_intern): Likewise.
	(sibcall_value_pop_intern): Likewise.

2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-inline.c (tree_function_versioning): Check DF info existence
	before accessing it.

2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
	frame_size.
	* config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
	aarch64_frame hard_fp_offset and frame_size.
	(aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
	frame_size; remove original_frame_size.
	(aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
	(aarch64_initial_elimination_offset): Remove frame_size and
	offset.  Use aarch64_frame frame_size.

2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>
	    Renlin  <renlin.li@arm.com>

	* config/aarch64/aarch64.c (aarch64_layout_frame): Correct
	initialization of R30 offset.  Update offset.  Iterate core
	regisers upto X30.  Remove X29, X30 specific code.

2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
	(aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
	(aarch64_register_saved_on_entry): Adjust test.

2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.h (machine_function): Move
	saved_varargs_size from here...
	(aarch64_frame): ... to here.

	* config/aarch64/aarch64.c (aarch64_expand_prologue)
	(aarch64_expand_epilogue, aarch64_final_eh_return_addr)
	(aarch64_initial_elimination_offset)
	(aarch64_setup_incoming_varargs): Adjust location of
	saved_varargs_size.

2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
	layout comment.

2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
	    Prachi Godbole  <Prachi.Godbole@imgtec.com>

	* config/mips/mips-cpus.def: Add definition for p5600.  Updated
	mips32r5 entry to use PROCESSOR_P5600.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
	* config/mips/mips.c (mips_fmadd_bypass): New function.
	(mips_rtx_cost_data): Add costs for p5600.
	(mips_issue_rate): Add support for p5600.
	(mips_multipass_dfa_lookahead): Likewise.
	* config/mips/mips.h (TUNE_P5600): New define.
	(TUNE_MACC_CHAINS): Add TUNE_P5600.
	(MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
	* config/mips/mips.md: Include p5600.md.
	(processor): Add p5600.
	* config/mips/p5600.md: New file.

2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
	* config/i386/predicates.md (palignr_operand): New.
	Indicates if permutation is suitable for palignr instruction.

2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/61319
	* tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
	stmt belongs to loop.

2014-06-05  Richard Biener  <rguenther@suse.de>

	* gimplify.c (create_tmp_from_val): Remove is_formal parameter
	and set DECL_GIMPLE_REG_P unconditionally if appropriate.
	(lookup_tmp_var): Adjust.
	(prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.

2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.md (enabled): Disable opt_enabled attribute.

2014-06-05  Marek Polacek  <polacek@redhat.com>

	PR c/49706
	* doc/invoke.texi: Document -Wlogical-not-parentheses.

2014-06-04  Tom de Vries  <tom@codesourcery.com>

	* config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
	CONST_INT.

2014-06-04  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/61385
	* tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.

2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>

	* lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
	changed to use fatal_error.
	(main): Ensure lto_wrapper_cleanup is run atexit.

2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* lra-constraints.c (valid_address_p): Move earlier in file.
	(address_eliminator): New structure.
	(satisfies_memory_constraint_p): New function.
	(satisfies_address_constraint_p): Likewise.
	(process_alt_operands, process_address, curr_insn_transform): Use them.

2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* lra-int.h (lra_static_insn_data): Make operand_alternative a
	const pointer.
	(target_lra_int, default_target_lra_int, this_target_lra_int)
	(op_alt_data): Delete.
	* lra.h (lra_init): Delete.
	* lra.c (default_target_lra_int, this_target_lra_int): Delete.
	(init_insn_code_data_once): Remove op_alt_data handling.
	(finish_insn_code_data_once): Likewise.
	(init_op_alt_data): Delete.
	(get_static_insn_data): Initialize operand_alternative to null.
	(free_insn_recog_data): Cast operand_alternative before freeing it.
	(setup_operand_alternative): Take the operand_alternative as
	parameter and assume it isn't already cached in the static
	insn data.
	(lra_set_insn_recog_data): Update accordingly.
	(lra_init): Delete.
	* ira.c (ira_init): Don't call lra_init.
	* target-globals.h (this_target_lra_int): Declare.
	(target_globals): Remove lra_int.
	(restore_target_globals): Update accordingly.
	* target-globals.c: Don't include lra-int.h.
	(default_target_globals, save_target_globals): Remove lra_int.

2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* recog.h (operand_alternative): Convert reg_class, reject,
	matched and matches into bitfields.
	(preprocess_constraints): New overload.
	(preprocess_insn_constraints): New function.
	(preprocess_constraints): Take the insn as parameter.
	(recog_op_alt): Change into a pointer.
	(target_recog): Add x_op_alt.
	* recog.c (asm_op_alt): New variable.
	(recog_op_alt): Change into a pointer.
	(preprocess_constraints): New overload, replacing the old function
	definition with one that doesn't use global state.
	(preprocess_insn_constraints): New function.
	(preprocess_constraints): Use them.  Take the insn as parameter.
	Use asm_op_alt for asms.
	(recog_init): Free existing x_op_alt entries.
	* ira-lives.c (check_and_make_def_conflict): Make operand_alternative
	pointer const.
	(make_early_clobber_and_input_conflicts): Likewise.
	(process_bb_node_lives): Pass the insn to process_constraints.
	* reg-stack.c (check_asm_stack_operands): Likewise.
	(subst_asm_stack_regs): Likewise.
	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
	* regrename.c (build_def_use): Likewise.
	* sched-deps.c (sched_analyze_insn): Likewise.
	* sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
	* config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
	(note_invalid_constants): Likewise.
	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
	(ix86_legitimate_combined_insn): Make operand_alternative pointer
	const.

2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* recog.c (preprocess_constraints): Don't skip disabled alternatives.
	* ira-lives.c (check_and_make_def_conflict): Check for disabled
	alternatives.
	(make_early_clobber_and_input_conflicts): Likewise.
	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.

2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* recog.h (alternative_class): New function.
	(which_op_alt): Return a const recog_op_alt.
	* reg-stack.c (check_asm_stack_operands): Update type accordingly.
	(subst_asm_stack_regs): Likewise.
	* config/arm/arm.c (note_invalid_constants): Likewise.
	* regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
	the operand_alternative; use alternative class instead.
	* sel-sched.c (get_reg_class): Likewise.
	* regrename.c (build_def_use): Likewise.
	(hide_operands, restore_operands, record_out_operands): Update type
	accordingly.

2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* recog.h (recog_op_alt): Convert to a flat array.
	(which_op_alt): New function.
	* recog.c (recog_op_alt): Convert to a flat array.
	(preprocess_constraints): Update accordingly, grouping all
	operands of the same alternative together, rather than the
	other way around.
	* ira-lives.c (check_and_make_def_conflict): Likewise.
	(make_early_clobber_and_input_conflicts): Likewise.
	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
	* reg-stack.c (check_asm_stack_operands): Use which_op_alt.
	(subst_asm_stack_regs): Likewise.
	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
	* regrename.c (hide_operands, record_out_operands): Likewise.
	(build_def_use): Likewise.
	* sel-sched.c (get_reg_class): Likewise.
	* config/arm/arm.c (note_invalid_constants): Likewise.

2014-06-04  Jason Merrill  <jason@redhat.com>

	PR c++/51253
	PR c++/61382
	* gimplify.c (gimplify_arg): Non-static.
	* gimplify.h: Declare it.

2014-06-04  Richard Biener  <rguenther@suse.de>

	* tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
	TREE_PUBLIC and DECL_EXTERNAL decls.

2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>

	* regcprop.c (copyprop_hardreg_forward_1): Account for
	HARD_REGNO_CALL_PART_CLOBBERED.

2014-06-04  Richard Biener  <rguenther@suse.de>

	* configure.ac: Check whether the underlying type of int64_t
	is long or long long.
	* configure: Regenerate.
	* config.in: Likewise.
	* hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
	(HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.

2014-06-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60098
	* tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
	we hit a kill.
	(dse_optimize_stmt): Simplify, now that we found a kill
	earlier.

2014-06-04  Richard Biener  <rguenther@suse.de>

	* tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
	of accesses with non-invariant address.

2014-06-04  Martin Liska  <mliska@suse.cz>

	* cgraph.h (cgraph_make_wrapper): New function introduced.
	* cgraphunit.c (cgraph_make_wrapper): The function implementation.
	* ipa-inline.h (inline_analyze_function): The function is global.
	* ipa-inline-analysis.c (inline_analyze_function): Likewise.

2014-06-04  Martin Liska  <mliska@suse.cz>

	* tree.h (private_lookup_attribute_starting): New function.
	(lookup_attribute_starting): Likewise.
	* tree.c (private_lookup_attribute_starting): Likewise.

2014-06-04  Martin Liska  <mliska@suse.cz>

	* cgraph.h (expand_thunk): New argument added.
	(address_taken_from_non_vtable_p): New global function.
	* ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
	* cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
	* cgraphunit.c (analyze_function): Likewise.
	(assemble_thunks_and_aliases): Argument added to call.
	(expand_thunk): New argument forces to produce GIMPLE thunk.

2014-06-04  Martin Liska  <mliska@suse.cz>

	* coverage.h (coverage_compute_cfg_checksum): Argument added.
	* coverage.c (coverage_compute_cfg_checksum): Likewise.
	* profile.c (branch_prob): Likewise.

2014-06-04  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61340
	* ipa-pure-const.c (propagate_pure_const): Add unreachable default
	handler for switch on an ipa_ref_use enum.
	* ipa-reference.c (analyze_function): Likewise.

2014-06-04  Kai Tietz  <ktietz@redhat.com>

	* recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
	from old call-instruction.

2014-06-04  Bin Cheng  <bin.cheng@arm.com>

	* config/aarch64/aarch64.c (aarch64_classify_address)
	(aarch64_legitimize_reload_address): Support full addressing modes
	for vector modes.
	* config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
	(*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.

2014-06-03  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
	for OP0.

2014-06-03  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
	(aarch64_rtx_costs): Use aarch64_if_then_else_costs.

2014-06-03  Kai Tietz  <ktietz@redhat.com>

	* config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
	for 64-bit ms-abi.

2014-06-03  Dehao Chen  <dehao@google.com>

	* tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
	the same loop.

2014-06-03  Marek Polacek  <polacek@redhat.com>

	PR c/60439
	* doc/invoke.texi: Document -Wswitch-bool.
	* function.c (stack_protect_epilogue): Cast controlling expression of
	the switch to int.
	* gengtype.c (walk_type): Generate switch expression with its
	controlling expression cast to int.

2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>

	* config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
	and attiny841.
	* config/avr/avr-tables.opt: Regenerate.
	* config/avr/t-multilib: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
	    Pitchumani Sivanupandi  <pitchumani.s@atmel.com>

	* config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
	(ata6617c, ata664251): Add new avr35 devices.
	(ata6612c): Add new avr4 device.
	(ata6613c, ata6614q): Add new avr5 devices.
	* config/avr/avr-tables.opt: Regenerate.
	* config/avr/t-multilib: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>

	* gcc/config/aarch64/aarch64-builtins.c
	(aarch64_types_binop_ssu_qualifiers): New static data.
	(TYPES_BINOP_SSU): Define.
	* gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
	urshr_n, ushll_n): Use appropriate unsigned qualifiers.
	* gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
	vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
	vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
	vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
	vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
	vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
	vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
	suffix to builtin function name, remove cast.
	(vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
	vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
	vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.

2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>

	* gcc/config/aarch64/aarch64-builtins.c
	(aarch64_types_binop_uus_qualifiers,
	aarch64_types_shift_to_unsigned_qualifiers,
	aarch64_types_unsigned_shiftacc_qualifiers): Define.
	* gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
	uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
	sqshlu_n, uqshl_n): Update qualifiers.
	* gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
	vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
	vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
	vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
	vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
	vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
	vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
	vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
	vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
	vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
	vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
	vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
	vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
	vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
	vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
	vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
	vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
	vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
	vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
	vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
	vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
	vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
	vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
	vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
	vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
	vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
	vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.

2014-06-03  Teresa Johnson  <tejohnson@google.com>

	* tree-sra.c (modify_function): Record caller nodes after rebuild.

2014-06-02  Jason Merrill  <jason@redhat.com>

	PR c++/61020
	* varpool.c (ctor_for_folding): Handle uninitialized vtables.

2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
	location == 0.

2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
	New pattern.
	* config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
	(aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
	* config/aarch64/iterators.md (REVERSE): New iterator.
	(UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
	(rev_op): New int_attribute.
	* config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
	vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
	vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
	vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
	vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
	vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
	vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
	Replace temporary __asm__ with __builtin_shuffle.

2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>

	* config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
	mips64r5.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips.c (mips_compute_frame_info): Changed if statement
	to use mips_isa_rev rather than ISA_MIPS32R2.
	* config/mips/mips.h (ISA_MIPS32R3): New define.
	(ISA_MIPS32R5): New define.
	(ISA_MIPS64R3): New define.
	(ISA_MIPS64R5): New define.
	(TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
	ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
	(MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
	and mips64r5.
	(MIPS_ISA_SYNCI_SPEC): Likewise.
	(ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
	(LINK_SPEC): Added mips32r3 and mips32r5.
	* config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
	to mips32r2; and mips64r3 and mips64r5 to mips64r2.
	* config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
	* config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
	* config/mips/t-sde (MULTILIB_MATCHES): Likewise.
	* config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
	* doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.

2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>

	* doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
	options.
	* config/mips/mips.opt (mxpa): New option.
	* config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
	assembler.

2014-06-03  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61160
	* ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
	thunks.

2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/61328
	* tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
	initialization from find_bswap_or_nop_1.
	(find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
	in source_expr2 before using the size value the function sets. Also
	make use of init_symbolic_number () in both the old place and
	find_bswap_or_nop_load () to avoid reading uninitialized memory when
	doing recursion in the GIMPLE_BINARY_RHS case.

2014-06-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61383
	* tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
	stmts can't trap.

2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
	(EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
	(CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
	(REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
	in this file.
	(REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
	(CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
	* system.h: ...here and make it unconditional.
	* target.def (conditional_register_usage): Mention
	define_register_constraint instead of old-style constraint macros.
	* doc/tm.texi.in: Remove documentation for old-style constraint macros.
	* doc/tm.texi: Regenerate.
	* genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
	protected by !USE_MD_CONSTRAINTS.
	* config/frv/frv.md: Remove quote from old version of documentation.
	* config/frv/frv.c (frv_conditional_register_usage): Likewise.
	* config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
	CONST_DOUBLE_OK_FOR_LETTER.
	* config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.

2014-06-02  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
	/lib/ld-linux32-aarch64.so.1 is used for ILP32.
	(LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
	file whose name depends on -mabi= and -mbig-endian.
	* config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
	Handle LP64 better and handle ilp32 too.
	(MULTILIB_OPTIONS): Delete.
	(MULTILIB_DIRNAMES): Delete.

2014-06-02  Andrew MacLeod  <amacleod@redhat.com>

	* expr.h: Remove prototypes of functions defined in builtins.c.
	* tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
	Remove prototypes of functions defined in builtins.c.
	* builtins.h: Update prototype list to include all exported functions.
	* builtins.c: (default_libc_has_function, gnu_libc_has_function,
	no_c99_libc_has_function): Move to targhooks.c
	(build_string_literal, build_call_expr_loc_array,
	build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
	to tree.c.
	(expand_builtin_object_size, fold_builtin_object_size): Make static.
	* targhooks.c (default_libc_has_function, gnu_libc_has_function,
	no_c99_libc_has_function): Relocate from builtins.c.
	* tree.c: Include builtins.h.
	(build_call_expr_loc_array, build_call_expr_loc_vec,
	build_call_expr_loc, build_call_expr, build_string_literal): Relocate
	from builtins.c.
	* fold-const.h (fold_fma): Move prototype to builtins.h.
	* realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
	* asan.c: Include builtins.h.
	* cfgexpand.c: Likewise.
	* convert.c: Likewise.
	* emit-rtl.c: Likewise.
	* except.c: Likewise.
	* expr.c: Likewise.
	* fold-const.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* gimplify.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* stmt.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-streamer-in.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* config/aarch64/aarch64.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/cr16/cr16.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/epiphany/epiphany.c: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/lm32/lm32.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/microblaze/microblaze.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/msp430/msp430.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/picochip/picochip.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/score/score.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

2014-06-02  Jeff Law  <law@redhat.com>

	PR rtl-optimization/61094
	* ree.c (combine_reaching_defs): Do not reextend an insn if it
	was marked as do_no_reextend.  If a copy is needed to eliminate
	an extension, then mark it as do_not_reextend.

2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.

2014-06-02  Richard Henderson  <rth@redhat.com>

	PR target/61336
	* config/alpha/alpha.c (print_operand_address): Allow symbolic
	addresses inside asms.  Use output_operand_lossage instead of
	gcc_unreachable.

2014-06-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/61239
	* config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
	GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.

2014-06-02  Tom de Vries  <tom@codesourcery.com>

	* config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
	case that x has VOIDmode.

2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>

	* varasm.c (copy_constant): Delete function.
	(build_constant_desc): Don't call it.

2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/61154
	* config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
	* config/arm/arm.md (mov64 splitter): Replace const_double_operand
	with immediate_operand.

2014-06-02  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.c
	(ia64_first_cycle_multipass_dfa_lookahead_guard): Check
	pending_data_specs first.

2014-06-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61378
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
	valueized_anything.

2014-06-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/constraints.md (Bw): Rename from 'w'.
	(Bz): Rename from 'z'.
	* config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.

2014-06-01  Kai Tietz  <ktietz@redhat.com>

	PR target/61377
	* config/i386/constrains.md (define_constrain): New 'Bs' constraint.
	* config/i386/i386.md (sibcall_insn_operand): Use Bs
	instead of m constraint.

2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
	a separate alternative where the scratch operand 2 is marked as
	early clobber.

2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
	(arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
	(bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
	and __builtins_arm_get_fpscr.
	(arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
	__builtins_arm_get_fpscr.
	(arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
	__builtins_arm_ldfpscr.
	(arm_atomic_assign_expand_fenv): New function.
	* config/arm/vfp.md (set_fpscr): New pattern.
	(get_fpscr) : Likewise.
	* config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
	VUNSPEC_SET_FPSCR.
	* doc/extend.texi (AARCH64 Built-in Functions) : Document
	__builtins_arm_set_fpscr, __builtins_arm_get_fpscr.

2014-05-30  Jakub Jelinek  <jakub@redhat.com>

	* asan.c (report_error_func): Add SLOW_P argument, use
	BUILT_IN_ASAN_*_N if set.
	(build_check_stmt): Likewise.
	(instrument_derefs): If T has insufficient alignment,
	force same handling as for odd sizes.

	* sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
	BUILT_IN_ASAN_REPORT_STORE_N): New.
	* asan.c (struct asan_mem_ref): Change access_size type to
	HOST_WIDE_INT.
	(asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
	update_mem_ref_hash_table): Likewise.
	(asan_mem_ref_hasher::hash): Hash in a HWI.
	(report_error_func): Change size_in_bytes argument to HWI.
	Use *_N builtins if size_in_bytes is larger than 16 or not power of
	two.
	(build_shadow_mem_access): New function.
	(build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
	Handle size_in_bytes not power of two or larger than 16.
	(instrument_derefs): Don't give up if size_in_bytes is not
	power of two or is larger than 16.

2014-05-30  Kai Tietz  <ktietz@redhat.com>

	PR target/60104
	* config/i386/i386.c (x86_output_mi_thunk): Add memory case
	for sibling-tail-calls.
	* config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
	to its use.
	* config/i386/predicates.md (sibcall_memory_operand): New predicate.
	(sibcall_insn_operand): Add check for sibcall_memory_operand.

2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>

	* config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
	* config/avr/avr-tables.opt: Regenerate.
	* config/avr/t-multilib: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

2014-05-30  Ian Lance Taylor  <iant@google.com>

	* config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
	target("sse").

2014-05-30  Tom de Vries  <tom@codesourcery.com>

	* config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
	Redefine as true.

2014-05-30  Tom de Vries  <tom@codesourcery.com>

	* lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
	* lra.c (initialize_lra_reg_info_element): Add init of
	actual_call_used_reg_set field.
	(lra): Call lra_create_live_ranges before lra_inheritance for
	-fuse-caller-save.
	* lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
	-fuse-caller-save.
	* lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
	instead of call_used_reg_set for -fuse-caller-save.
	* lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.

2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
	to mov_imm.
	* config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.

2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.c (ira_get_dup_out_num): Check for output operands at
	the start of the loop.  Handle cases where an included alternative
	follows an excluded one.

2014-05-29  Mike Stump  <mikestump@comcast.net>

	PR debug/61352
	* collect2.c (maybe_run_lto_and_relink): Be sure to always run
	post ld passes when lto is used.

2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/61325
	* lra-constraints.c (process_address): Rename to process_address_1.
	(process_address): New function.

2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
	TYPES_BINOPV): New static data.
	* config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
	New builtin.
	* config/aarch64/aarch64-simd.md (aarch64_ext,
	aarch64_im_lane_boundsi): New patterns.
	* config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
	patterns for EXT.
	(aarch64_evpc_ext): New function.

	* config/aarch64/iterators.md (UNSPEC_EXT): New enum element.

	* config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
	vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
	vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
	vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
	vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.

2014-05-29  Tom de Vries  <tom@codesourcery.com>

	* rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.

2014-05-29  Richard Earnshaw <rearnsha@arm.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* arm/iterators.md (shiftable_ops): New code iterator.
	(t2_binop0, arith_shift_insn): New code attributes.
	* arm/predicates.md (shift_nomul_operator): New predicate.
	* arm/arm.md (insn_enabled): Delete.
	(enabled): Remove insn_enabled test.
	(*arith_shiftsi): Delete.  Replace with ...
	(*<arith_shift_insn>_multsi): ... new pattern.
	(*<arith_shift_insn>_shiftsi): ... new pattern.
	* config/arm/arm.c (arm_print_operand): Handle operand format 'b'.

2014-05-29  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* config/mips/mips.h (POST_CALL_TMP_REG): Define.
	* config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
	clobber.
	(mips_split_call): Use POST_CALL_TMP_REG.
	(TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.

2014-05-29  Tom de Vries  <tom@codesourcery.com>

	* final.c (collect_fn_hard_reg_usage): Guard variable declaration
	with #ifdef STACK_REGS.

2014-05-28  Jan Hubicka  <hubicka@ucw.cz>

	* varasm.c (get_variable_section): Walk aliases.
	(place_block_symbol): Walk aliases.

2014-05-28  Tom de Vries  <tom@codesourcery.com>

	Revert:
	2014-05-28  Tom de Vries  <tom@codesourcery.com>

	* lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
	* lra.c (initialize_lra_reg_info_element): Add init of
	actual_call_used_reg_set field.
	(lra): Call lra_create_live_ranges before lra_inheritance for
	-fuse-caller-save.
	* lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
	-fuse-caller-save.
	* lra-constraints.c (need_for_call_save_p): Use
	actual_call_used_reg_set instead of call_used_reg_set for
	-fuse-caller-save.
	* lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.

2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi: Document that the % constraint character must
	be at the beginning of the string.
	* genoutput.c (validate_insn_alternatives): Check that '=',
	'+' and '%' only appear at the beginning of a constraint.
	* ira.c (commutative_constraint_p): Delete.
	(ira_get_dup_out_num): Expect the '%' commutativity marker to be
	at the start of the string.
	* config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
	duplicate '='s.
	* config/arm/neon.md (bicdi3_neon): Likewise.
	* config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
	(slt_si, sltu_si): Likewise.
	* config/vax/vax.md (sbcdi3): Likewise.
	* config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
	* config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
	(mul64): Move '%' to beginning of constraint.
	* config/arm/arm.md (*xordi3_insn): Likewise.
	* config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
	(xorsi3): Likewise.

2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi: Document the restrictions on the "enabled" attribute.

2014-05-28  Jason Merrill  <jason@redhat.com>

	PR c++/47202
	* cgraph.h (symtab_node::get_comdat_group_id): New.
	* cgraphunit.c (analyze_functions): Call it.
	* symtab.c (dump_symtab_node): Likewise.
	* tree.c (decl_comdat_group_id): New.
	* tree.h: Declare it.
	* lto-streamer-out.c (write_symbol): Use it.
	* trans-mem.c (ipa_tm_create_version_alias): Likewise.

2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR bootstrap/PR61146
	* wide-int.cc: Do not include longlong.h when compiling with clang.

2014-05-28  Richard Biener  <rguenther@suse.de>

	* tree-ssa-propagate.c (add_control_edge): Print less vertical space.
	* tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
	(vrp_visit_assignment_or_call): Print less vertical space.
	(vrp_visit_stmt): Likewise.
	(vrp_visit_phi_node): Likewise.  For a PHI argument with
	VR_VARYING range consider recording it as copy.

2014-05-28  Richard Biener  <rguenther@suse.de>

	Revert
	2014-05-28  Richard Biener  <rguenther@suse.de>

	* hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.

2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* expr.c (expand_assignment): Fold the bitpos in the to_rtx if
	sufficiently aligned and an offset is used at the same time.
	(expand_expr_real_1): Likewise.

2014-05-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/61045
	* fold-const.c (fold_comparison): When folding
	X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
	the sign of the remaining constant operand stays the same.

2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>

	* config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
	__RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
	(ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
	to the assembler.
	(DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
	* gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
	(m32bit-doubles) Likewise.
	* gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
	* doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
	option for RL78.

2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac ($gcc_cv_ld_clearcap): New test.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/sol2.opt (mclear-hwcap): New option.
	* config/sol2.h (LINK_CLEARCAP_SPEC): Define.
	* config/sol2-clearcap.map: Moved here from
	testsuite/gcc.target/i386/clearcap.map.
	* config/sol2-clearcapv2.map: Move here from
	gcc.target/i386/clearcapv2.map.
	* config/t-sol2 (install): Depend on install-clearcap-map.
	(install-clearcap-map): New target.
	* doc/invoke.texi (Option Summary, Solaris 2 Options): Document
	-mclear-hwcap.

2014-05-28  Richard Biener  <rguenther@suse.de>

	* hwint.h (*_HALF_WIDE_INT*): Move to ...
	* wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
	... here and remove the rest.
	* hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.

2014-05-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61335
	* tree-vrp.c (vrp_visit_phi_node): If the compare of old and
	new range fails, drop to varying.

2014-05-28  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
	(CPP_SPEC): Add entry for -mcpu=8548.
	* config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
	* config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.

2014-05-28  Tom de Vries  <tom@codesourcery.com>

	* lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
	* lra.c (initialize_lra_reg_info_element): Add init of
	actual_call_used_reg_set field.
	(lra): Call lra_create_live_ranges before lra_inheritance for
	-fuse-caller-save.
	* lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
	-fuse-caller-save.
	* lra-constraints.c (need_for_call_save_p): Use
	actual_call_used_reg_set instead of call_used_reg_set for
	-fuse-caller-save.
	* lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.

2014-05-28  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
	to gccoptlist.
	(@item -fuse-caller-save): New item.

2014-05-28  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
	OPT_fuse_caller_save.

2014-05-28  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
	* caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
	get_call_reg_set_usage.
	* resource.c (mark_set_resources, mark_target_live_regs): Use
	get_call_reg_set_usage.
	* ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
	field.
	(ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
	* ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
	Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
	* ira-build.c (ira_create_allocno): Init
	ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
	(create_cap_allocno, propagate_allocno_info)
	(propagate_some_info_from_allocno)
	(copy_info_to_removed_store_destinations): Handle
	ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
	* ira-costs.c (ira_tune_allocno_costs): Use
	ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.

2014-05-28  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* cgraph.h (struct cgraph_rtl_info): Add function_used_regs
	and function_used_regs_valid fields.
	* final.c: Move include of hard-reg-set.h to before rtl.h to declare
	find_all_hard_reg_sets.
	(collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
	(get_call_reg_set_usage): New function.
	(rest_of_handle_final): Use collect_fn_hard_reg_usage.
	* regs.h (get_call_reg_set_usage): Declare.

2014-05-28  Georg-Johann Lay  <avr@gjlay.de>

	PR libgcc/61152
	* config/dbx.h (License): Add Runtime Library Exception.
	* config/newlib-stdint.h (License): Same.
	* config/rtems.h (License): Same
	* config/initfini-array.h (License): Same
	* config/v850/v850.h (License): Same.
	* config/v850/v850-opts.h (License): Same
	* config/v850/rtems.h (License): Same.

2014-05-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/61044
	* doc/extend.texi (Local Labels): Note that label differences are
	not supported for AVR.

2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
	    Olivier Hainque  <hainque@adacore.com>

	* rtl.h (set_for_reg_notes): Declare.
	* emit-rtl.c (set_for_reg_notes): New function.
	(set_unique_reg_note): Use it.
	* optabs.c (add_equal_note): Likewise

2014-05-27  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.md (stack_protect_set_<mode>):
	Use <w> for the register in assembly template.
	(stack_protect_test): Use the mode of operands[0] for the result.
	(stack_protect_test_<mode>): Use <w> for the register
	in assembly template.

2014-05-27  DJ Delorie  <dj@redhat.com>

	* config/rx/rx.c (add_vector_labels): New.
	(rx_output_function_prologue): Call it.
	(rx_handle_func_attribute): Don't require empty arguments.
	(rx_handle_vector_attribute): New.
	(rx_attribute_table): Add "vector" attribute.
	* doc/extend.texi (interrupt, vector): Document new/changed
	RX-specific attributes.

	* config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.

2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
	predicate to detect a negative quotient.

2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
	to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
	Add X - Y CMP 0 to X CMP Y transformation.
	(fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.

2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>

	* stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
	before printing.

2014-05-27  Steve Ellcey  <sellcey@mips.com>

	* config/mips/mips.c: Add include of cgraph.h.

2014-05-27  Richard Biener  <rguenther@suse.de>

	* system.h (__STDC_FORMAT_MACROS): Define as very first thing.

2014-05-27  Georg-Johann Lay  <avr@gjlay.de>

	PR libgcc/61152
	* config/arm/arm.h (License): Add note to COPYING.RUNTIME.
	* config/arm/arm-cores.def (License): Same.
	* config/arm/arm-opts.h (License): Same.
	* config/arm/aout.h (License): Same.
	* config/arm/bpabi.h (License): Same.
	* config/arm/elf.h (License): Same.
	* config/arm/linux-elf.h (License): Same.
	* config/arm/linux-gas.h (License): Same.
	* config/arm/netbsd-elf.h (License): Same.
	* config/arm/uclinux-eabi.h (License): Same.
	* config/arm/uclinux-elf.h (License): Same.
	* config/arm/vxworks.h (License): Same.

2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/neon.md (neon_bswap<mode>): New pattern.
	* config/arm/arm.c (neon_itype): Add NEON_BSWAP.
	(arm_init_neon_builtins): Handle NEON_BSWAP.
	Define required type nodes.
	(arm_expand_neon_builtin): Handle NEON_BSWAP.
	(arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
	* config/arm/arm_neon_builtins.def (bswap): Define builtins.
	* config/arm/iterators.md (VDQHSD): New mode iterator.

2014-05-27  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
	Try using literal operands when comparing value-ranges failed.

2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira.c (commutative_operand): Adjust for change to recog_data.
	[Missing from previous commit.]

2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* system.h (TEST_BIT): New macro.
	* recog.h (alternative_mask): New type.
	(ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
	(recog_data_d): Replace alternative_enabled_p array with
	enabled_alternatives.
	(target_recog): New structure.
	(default_target_recog, this_target_recog): Declare.
	(get_enabled_alternatives, recog_init): Likewise.
	* recog.c (default_target_recog, this_target_recog): New variables.
	(get_enabled_alternatives): New function.
	(extract_insn): Use it.
	(recog_init): New function.
	(preprocess_constraints, constrain_operands): Adjust for change to
	recog_data.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* reload.c (find_reloads): Likewise.
	* ira-costs.c (record_reg_classes): Likewise.
	* ira-lives.c (single_reg_class): Likewise.  Fix bug in which
	all alternatives after a disabled one would be skipped.
	(ira_implicitly_set_insn_hard_regs): Likewise.
	* ira.c (ira_setup_alts): Adjust for change to recog_data.
	* lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
	with enabled_alternatives.
	* lra.c (free_insn_recog_data): Update accordingly.
	(lra_update_insn_recog_data): Likewise.
	(lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
	* lra-constraints.c (process_alt_operands): Likewise.  Handle
	only_alternative as part of the enabled mask.
	* target-globals.h (this_target_recog): Declare.
	(target_globals): Add a recog field.
	(restore_target_globals): Restore this_target_recog.
	* target-globals.c: Include recog.h.
	(default_target_globals): Initialize recog field.
	(save_target_globals): Likewise.
	* reginfo.c (reinit_regs): Call recog_init.
	* toplev.c (backend_init_target): Likewise.

2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
	rather than any named insn's code.

2014-05-27  Georg-Johann Lay  <avr@gjlay.de>

	PR libgcc/61152
	* config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
	* config/arm/arm-cores.def (License): Same.

2014-05-26  Jan Hubicka  <hubicka@ucw.cz>

	* tree.h (decl_comdat_group): Declare.
	* cgraph.h (symtab_in_same_comdat_p): Move offline to ...
	* tree.c (decl_comdat_group): Here.

2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>

	PR rtl-optimization/61222
	* combine.c (simplify_shift_const_1): When moving a PLUS outside
	the shift, truncate the PLUS operand to the result mode.

2014-05-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/61271
	* config/i386/i386.c (ix86_rtx_costs)
	<case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
	Fix condition.

2014-05-26  Martin Jambor  <mjambor@suse.cz>

	* ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
	subreg uses.

2014-05-26  Richard Biener  <rguenther@suse.de>

	* wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
	wi::int_traits <long long>, wi::int_traits <unsigned long long>):
	Provide specializations.
	(wi::int_traits <HOST_WIDE_INT>,
	wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.

2014-05-26  Alan Modra  <amodra@gmail.com>

	PR target/61098
	* config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
	params and return a bool.  Remove dead code.  Update comment.
	Assert we have a const_int source.  Remove bogus code from
	32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
	handling of constants > 2G and reg_equal note, from..
	(rs6000_emit_set_long_const): ..here.  Remove unneeded param and
	return value.  Update comment.  If we can, use a new pseudo
	for intermediate calculations.
	* config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
	prototype.
	* config/rs6000/rs6000.md (movsi_internal1_single+1): Update
	call to rs6000_emit_set_const in splitter.
	(movdi_internal64+2, +3): Likewise.

2014-05-26  Richard Biener  <rguenther@suse.de>

	* system.h: Define __STDC_FORMAT_MACROS before
	including inttypes.h.
	* hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
	HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
	HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
	HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
	HOST_WIDEST_INT_C): Remove.
	(PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
	if C99 inttypes.h is not available.
	* coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
	* gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
	* gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
	* cfgloop.h (struct niter_desc): Use uint64_t for niter field.
	* bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
	(struct output_info): Likewise.
	(print_statistics): Adjust.
	(dump_bitmap_statistics): Likewise.
	* bt-load.c (migrate_btr_defs): Print with PRId64.
	* cfg.c (dump_edge_info, dump_bb_info): Likewise.
	(MAX_SAFE_MULTIPLIER): Adjust.
	* cfghooks.c (dump_bb_for_graph): Print with PRId64.
	* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
	dump_cgraph_node): Likewise.
	* final.c (dump_basic_block_info): Likewise.
	* gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
	* gcov.c (format_gcov): Likewise.
	* ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
	for calculation.
	(get_clone_agg_value): Use HOST_WIDE_INT for offset.
	* ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
	(inline_small_functions, dump_overall_stats, dump_inline_stats):
	Use PRId64 for dumping.
	* ipa-profile.c (dump_histogram, ipa_profile): Likewise.
	* ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
	(add_allocno_hard_regs): Adjust.
	* loop-doloop.c (doloop_modify): Print using PRId64.
	* loop-iv.c (inverse): Compute in uint64_t.
	(determine_max_iter, iv_number_of_iterations): Likewise.
	* loop-unroll.c (decide_peel_completely, decide_peel_simple):
	Print using PRId64.
	* lto-streamer-out.c (write_symbol): Use uint64_t.
	* mcf.c (CAP_INFINITY): Use int64_t maximum.
	(dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
	find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
	* modulo-sched.c (const_iteration_count): Use int64_t.
	(sms_schedule): Dump using PRId64.
	* predict.c (dump_prediction): Likewise.
	* pretty-print.h (pp_widest_integer): Remove.
	* profile.c (get_working_sets, is_edge_inconsistent,
	is_inconsistent, read_profile_edge_counts): Dump using PRId64.
	* tree-pretty-print.c (pp_double_int): Remove case handling
	HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
	* tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
	and adjust users.
	(pass_optimize_bswap::execute): Remove restriction on hosts.
	* tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
	* tree-streamer-out.c (streamer_write_tree_header): Likewise.
	* tree.c (widest_int_cst_value): Remove.
	* tree.h (widest_int_cst_value): Likewise.
	* value-prof.c (dump_histogram_value): Print using PRId64.
	* gengtype.c (main): Also inject int64_t.
	* ggc-page.c (struct max_alignment): Use int64_t.
	* alloc-pool.c (struct allocation_object_def): Likewise.
	* ira-conflicts.c (build_conflict_bit_table): Use uint64_t
	for computation.
	* doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
	* doc/tm.texi: Regenerated.
	* gengtype-lex.l (IWORD): Handle [u]int64_t.
	* config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
	* config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
	mmix_output_register_setting): Use [u]int64_t in prototypes.
	* config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
	mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
	mmix_output_octa, mmix_output_shifted_value): Adjust.
	(mmix_intval): Adjust.  Remove unreachable case.
	* config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.

2014-05-26  Richard Biener  <rguenther@suse.de>

	* configure.ac: Drop __int64 type check.  Insist that we
	found uint64_t and int64_t.
	* hwint.h (HOST_BITS_PER___INT64): Remove.
	(HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
	(HOST_WIDE_INT_PRINT_*): Remove 32bit case.
	(HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
	(HOST_WIDEST_FAST_INT): Remove __int64 case.
	* vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
	for dst_q_src_df_rms_cdt.
	* configure: Regenerate.
	* config.in: Likewise.

2014-05-26  Michael Tautschnig  <mt@debian.org>

	PR target/61249
	* doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
	__builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.

2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	PR rtl-optimization/61278
	* shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.

2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	PR rtl-optimization/61220
	Part of PR rtl-optimization/61225
	* shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
	insn; skip split_edge for a block with only one successor.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
	for variables.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
	(update_vtable_references): New function.
	(function_and_variable_visibility): Rewrite also vtable initializers.
	* varpool.c (cgraph_variable_initializer_availability): Remove assert.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* ggc.h (ggc_grow): New function.
	* ggc-none.c (ggc_grow): New function.
	* ggc-page.c (ggc_grow): Likewise.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
	address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
	comdat_can_be_unshared_p, cgraph_externally_visible_p,
	varpool_externally_visible_p, can_replace_by_local_alias,
	update_visibility_by_resolution_info, function_and_variable_visibility,
	pass_data_ipa_function_and_variable_visibility,
	make_pass_ipa_function_and_variable_visibility,
	whole_program_function_and_variable_visibility,
	pass_data_ipa_whole_program_visibility,
	make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
	* cgraph.h (cgraph_local_node_p): Declare.
	* ipa-visibility.c: New file.
	* Makefile.in (OBJS): Add ipa-visiblity.o

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
	that var decl is available.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* tree-core.h (tree_decl_with_vis): Replace comdat_group by
	symtab_node pointer.
	* tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
	(find_decls_types_r): Do not walk COMDAT_GROUP.
	* tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
	* varasm.c (make_decl_one_only): Use set_comdat_group;
	create node if needed.
	* ipa-inline-transform.c (save_inline_function_body): Update
	way we decl->symtab mapping.
	* symtab.c (symtab_hash, hash_node, eq_node
	symtab_insert_node_to_hashtable): Remove.
	(symtab_register_node): Update.
	(symtab_unregister_node): Update.
	(symtab_get_node): Reimplement as inline function.
	(symtab_add_to_same_comdat_group): Update.
	(symtab_dissolve_same_comdat_group_list): Update.
	(dump_symtab_base): Update.
	(verify_symtab_base): Update.
	(symtab_make_decl_local): Update.
	(fixup_same_cpp_alias_visibility): Update.
	(symtab_nonoverwritable_alias): Update.
	* cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
	* ipa.c (update_visibility_by_resolution_info): UPdate.
	* bb-reorder.c: Include cgraph.h
	* lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
	with comdat groups.
	* ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
	* cgraph.c (cgraph_get_create_node): Update.
	* cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
	and comdat_group_.
	(symtab_get_node): Make inline.
	(symtab_insert_node_to_hashtable): Remove.
	(symtab_can_be_discarded): Update.
	(decl_comdat_group): New function.
	* tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
	Update.
	* lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
	comdat group name.
	(read_comdat_group): New function.
	(input_node, input_varpool_node): Use it.
	* trans-mem.c (ipa_tm_create_version_alias): Update code creating
	comdat groups.
	* mips.c (mips_start_unique_function): Likewise.
	(ix86_code_end): Likewise.
	(rs6000_code_end): Likweise.
	* tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* gengtype-state.c (fatal_reading_state): Bring offline.
	* optabs.c (widening_optab_handler): Bring offline.
	* optabs.h (widening_optab_handler): Likewise.
	* final.c (get_attr_length_1): Likewise.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* sched-int.h (sd_iterator_cond): Manually tail recurse.

2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/440.md (ppc440-integer): Include shift without dot.
	(ppc440-compare): Include shift with dot.
	* config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
	* config/rs6000/e5500.md (e5500_sfx2): Include constant shift
	without dot.
	* config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
	without dot.
	(e6500_sfx2): Include it.
	* config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
	*zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
	*zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
	andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
	*extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
	*rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
	*rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
	*lshiftrt_internal1le, *lshiftrt_internal1be,
	*lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
	*rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
	*rotldi3_internal10le, *rotldi3_internal10be,
	*rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
	ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
	ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
	*anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
	define_insns): Use type "shift" in the appropriate alternatives.

2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (type): Add "logical".  Delete
	"fast_compare".
	(dot): Adjust comment.
	(andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
	*andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
	*boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
	anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
	*booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
	*boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
	*mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
	* config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.

	* config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
	* config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
	* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
	* config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
	* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
	* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
	* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
	* config/rs6000/8540.md (ppc8540_su): Adjust.
	* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
	cell-cmp-microcoded): Adjust.
	* config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
	* config/rs6000/e500mc.md (e500mc_su): Adjust.
	* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
	* config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
	* config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
	* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
	* config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
	* config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
	* config/rs6000/power6.md (power6-integer, power6-fast-compare):
	Adjust.
	* config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
	* config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
	Adjust.  Adjust comment.
	* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
	* config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.

2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (type): Add "add".
	(*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
	*add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
	define_insns): Use it.
	* config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.

	* config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
	* config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
	* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
	* config/rs6000/601.md (ppc601-integer): Adjust.
	* config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
	* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
	* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
	* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
	* config/rs6000/8540.md (ppc8540_su): Adjust.
	* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
	cell-cmp-microcoded): Adjust.
	* config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
	* config/rs6000/e500mc.md (e500mc_su): Adjust.
	* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
	* config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
	* config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
	* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
	* config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
	* config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
	* config/rs6000/power6.md (power6-integer, power6-fast-compare):
	Adjust.
	* config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
	* config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
	* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
	* config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.

2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
	"delayed_compare", "var_delayed_compare".
	(var_shift): New attribute.
	(cell_micro): Adjust.
	(*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
	*andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
	rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
	*rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
	*rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
	*rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
	*rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
	*rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
	*lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
	*lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
	*lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
	rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
	*rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
	*rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
	*rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
	*rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
	*rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
	*rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
	*rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
	*ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
	*lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
	*ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
	*anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
	* config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
	insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.

	* config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
	* config/rs6000/440.md (ppc440-integer): Adjust.
	* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
	* config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
	* config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
	* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
	* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
	* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
	* config/rs6000/8540.md (ppc8540_su): Adjust.
	* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
	cell-cmp-microcoded): Adjust.
	* config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
	* config/rs6000/e500mc.md (e500mc_su): Adjust.
	* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
	e500mc64_delayed): Adjust.
	* config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
	* config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
	* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
	* config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
	* config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
	* config/rs6000/power6.md (power6-shift, power6-var-rotate,
	power6-delayed-compare, power6-var-delayed-compare): Adjust.
	* config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
	* config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
	Adjust comment.
	* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
	* config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.

2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
	(bits): New mode_attr.
	(idiv_ldiv): Delete mode_attr.
	(udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
	* config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
	rs6000_adjust_priority, is_nonpipeline_insn,
	insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.

	* config/rs6000/40x.md (ppc403-idiv): Adjust.
	* config/rs6000/440.md (ppc440-idiv): Adjust.
	* config/rs6000/476.md (ppc476-idiv): Adjust.
	* config/rs6000/601.md (ppc601-idiv): Adjust.
	* config/rs6000/603.md (ppc603-idiv): Adjust.
	* config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
	ppc620-ldiv): Adjust.
	* config/rs6000/7450.md (ppc7450-idiv): Adjust.
	* config/rs6000/7xx.md (ppc750-idiv): Adjust.
	* config/rs6000/8540.md (ppc8540_divide): Adjust.
	* config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
	* config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
	* config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
	* config/rs6000/e500mc.md (e500mc_divide): Adjust.
	* config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
	* config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
	* config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
	* config/rs6000/mpc.md (mpccore-idiv): Adjust.
	* config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
	* config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
	* config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
	* config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
	* config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
	* config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
	* config/rs6000/titan.md (titan_fxu_div): Adjust.

2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (type): Delete "insert_word",
	"insert_dword".  Add "insert".
	(size): Update comment.
	* config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
	insn_must_be_first_in_group): Adjust.
	(insvsi_internal, *insvsi_internal1, *insvsi_internal2,
	*insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
	*insvsi_internal6, insvdi_internal): Adjust.

	* config/rs6000/40x.md (ppc403-integer): Adjust.
	* config/rs6000/440.md (ppc440-integer): Adjust.
	* config/rs6000/476.md (ppc476-simple-integer): Adjust.
	* config/rs6000/601.md (ppc601-integer): Adjust.
	* config/rs6000/603.md (ppc603-integer): Adjust.
	* config/rs6000/6xx.md (ppc604-integer): Adjust.
	* config/rs6000/7450.md (ppc7450-integer): Adjust.
	* config/rs6000/7xx.md (ppc750-integer): Adjust.
	* config/rs6000/8540.md (ppc8540_su): Adjust.
	* config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
	* config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
	* config/rs6000/e500mc.md (e500mc_su): Adjust.
	* config/rs6000/e500mc64.md (e500mc64_su): Adjust.
	* config/rs6000/e5500.md (e5500_sfx): Adjust.
	* config/rs6000/e6500.md (e6500_sfx): Adjust.
	* config/rs6000/mpc.md (mpccore-integer): Adjust.
	* config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
	* config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
	* config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
	* config/rs6000/power7.md (power7-integer): Adjust.
	* config/rs6000/power8.md (power8-1cyc): Adjust.
	* config/rs6000/rs64.md (rs64a-integer): Adjust.
	* config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.

2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
	"imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
	(size): New attribute.
	(dot): New attribute.
	(cell_micro): Adjust.
	(mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
	umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
	*muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
	umuldi3_highpart): Adjust.
	* config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
	rs6000_adjust_priority, is_nonpipeline_insn,
	insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.

	* config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
	ppc405-imul3): Adjust.
	* config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
	* config/rs6000/476.md (ppc476-imul): Adjust.
	* config/rs6000/601.md (ppc601-imul): Adjust.
	* config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
	* config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
	ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
	* config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
	* config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
	Adjust.
	* config/rs6000/8540.md (ppc8540_multiply): Adjust.
	* config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
	* config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
	cell-imul): Adjust.
	* config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
	* config/rs6000/e500mc.md (e500mc_multiply): Adjust.
	* config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
	* config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
	* config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
	* config/rs6000/mpc.md (mpccore-imul): Adjust.
	* config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
	power4-lmul, power4-imul, power4-imul3): Adjust.
	* config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
	power5-lmul, power5-imul, power5-imul3): Adjust.
	* config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
	power6-lmul, power6-imul, power6-imul3): Adjust.
	* config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
	* config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.

	* config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
	rs64a-lmul): Adjust.
	* config/rs6000/titan.md (titan_imul): Adjust.

2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (type): Add new value "halfmul".
	(*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
	*machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
	*nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
	*mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
	*mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
	* config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
	* config/rs6000/440.md (ppc440-imul2): Add type halfmul.
	* config/rs6000/476.md (ppc476-imul): Add type halfmul.
	* config/rs6000/titan.md: Delete nonsensical comment.
	(titan_imul): Add type imul3.
	(titan_mulhw): Remove type imul3; add type halfmul.

2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (type): Reorder, reformat.

2014-05-23  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/53787
	* params.def (PARAM_IPA_MAX_AA_STEPS): New param.
	* ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
	analysis_done, update all uses.
	* ipa-prop.c: Include domwalk.h
	(param_analysis_info): Removed.
	(param_aa_status): New type.
	(ipa_bb_info): Likewise.
	(func_body_info): Likewise.
	(ipa_get_bb_info): New function.
	(aa_overwalked): Likewise.
	(find_dominating_aa_status): Likewise.
	(parm_bb_aa_status_for_bb): Likewise.
	(parm_preserved_before_stmt_p): Changed to use new param AA info.
	(load_from_unmodified_param): Accept func_body_info as a parameter
	instead of parms_ainfo.
	(parm_ref_data_preserved_p): Changed to use new param AA info.
	(parm_ref_data_pass_through_p): Likewise.
	(ipa_load_from_parm_agg_1): Likewise.  Update callers.
	(compute_complex_assign_jump_func): Changed to use new param AA info.
	(compute_complex_ancestor_jump_func): Likewise.
	(ipa_compute_jump_functions_for_edge): Likewise.
	(ipa_compute_jump_functions): Removed.
	(ipa_compute_jump_functions_for_bb): New function.
	(ipa_analyze_indirect_call_uses): Likewise, moved variable
	declarations down.
	(ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
	and info, moved variable declarations down.
	(ipa_analyze_call_uses): Accept and pass on func_body_info instead of
	node and info.
	(ipa_analyze_stmt_uses): Likewise.
	(ipa_analyze_params_uses): Removed.
	(ipa_analyze_params_uses_in_bb): New function.
	(ipa_analyze_controlled_uses): Likewise.
	(free_ipa_bb_info): Likewise.
	(analysis_dom_walker): New class.
	(ipa_analyze_node): Handle node-specific forbidden analysis,
	initialize and free func_body_info, use dominator walker.
	(ipcp_modif_dom_walker): New class.
	(ipcp_transform_function): Create and free func_body_info, use
	ipcp_modif_dom_walker, moved a lot of functionality there.

2014-05-23  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
	* gcc.c (sanitize_spec_function): Likewise.
	* convert.c (convert_to_integer): Include "ubsan.h".  Add
	floating-point to integer instrumentation.
	* doc/invoke.texi: Document -fsanitize=float-cast-overflow.
	* flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
	SANITIZE_NONDEFAULT.
	* opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
	BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
	* ubsan.c: Include "realmpfr.h" and "dfp.h".
	(get_ubsan_type_info_for_type): Handle REAL_TYPEs.
	(ubsan_type_descriptor): Set tkind to 0xffff for types other than
	float/double/long double.
	(ubsan_instrument_float_cast): New function.
	* ubsan.h (ubsan_instrument_float_cast): Declare.

2014-05-23 Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/predicates.md (aarch64_call_insn_operand): New
	predicate.
	* config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
	* config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
	Adjust for tailcalling through registers.
	* config/aarch64/aarch64.h (enum reg_class): New caller save
	register class.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	* config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
	Allow tailcalling without decls.

2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>

	* gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
	Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.

	* omp-low.c (expand_omp_for_static_chunk): Rename variable si to
	gsi, and variables v_* to v*.

2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* varasm.c (output_constructor_bitfield): Fix thinkos in latest change.

2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>

	* gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
	* omp-low.c: Update accordingly.

	* gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
	for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
	GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
	GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
	GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
	GF_OMP_TARGET_KIND_UPDATE.

	* gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
	Explicitly enumerate the expected region types.

2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>

	PR other/56955
	* doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
	documentation; the old documentation didn't clearly state the
	constraints on the contents of the pointed-to storage.

2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	Fix bootstrap error on ia64
	* config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
	Return default value.

2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/54733
	* tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
	(CMPNOP): Define.
	(find_bswap_or_nop_load): New.
	(find_bswap_1): Renamed to ...
	(find_bswap_or_nop_1): This. Also add support for memory source.
	(find_bswap): Renamed to ...
	(find_bswap_or_nop): This. Also add support for memory source and
	detection of bitwise operations equivalent to load in target
	endianness.
	(execute_optimize_bswap): Likewise. Also move its leading comment back
	in place and split statement transformation into ...
	(bswap_replace): This.

2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/61215
	* lra-elelimination.c (lra_eliminate_regs_1): Don't use
	simplify_gen_subreg until final substitution.

2014-05-23  Alan Modra  <amodra@gmail.com>

	PR target/61231
	* config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
	* config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
	Use "Y" constraint rather than "m".

2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
	define.
	* config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
	New function declaration.
	* config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
	AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
	AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
	(aarch64_init_builtins) : Initialize builtins
	__builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
	__builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
	(aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
	__builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
	and __builtins_aarch64_set_fpsr.
	(aarch64_atomic_assign_expand_fenv): New function.
	* config/aarch64/aarch64.md (set_fpcr): New pattern.
	(get_fpcr) : Likewise.
	(set_fpsr) : Likewise.
	(get_fpsr) : Likewise.
	(unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
	and UNSPECV_SET_FPSR.
	* doc/extend.texi (AARCH64 Built-in Functions) : Document
	__builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
	__builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.

2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/60969
	* ira-costs.c (record_reg_classes): Process NO_REGS for matching
	constraints.  Set up mem cost for NO_REGS case.

2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>

	* builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.

2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>

	* config/darwin.c: Include "lto-section-names.h".
	(LTO_SEGMENT_NAME): Don't define.
	* config/i386/winnt.c: Include "lto-section-names.h".
	* lto-streamer.c: Include "lto-section-names.h".
	* lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
	* lto-wrapper.c: Include "lto-section-names.h".
	(LTO_SECTION_NAME_PREFIX): Don't define.
	* lto-section-names.h: New file.
	* cgraphunit.c: Include "lto-section-names.h".

2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/htm.md (ttest): Use correct shift value to get CR0.

2014-05-22  Richard Earnshaw  <rearnsha@arm.com>

	PR target/61208
	* arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.

2014-05-22  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.

2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
	-> (T)A transformation to integer types.

2014-05-22  Teresa Johnson  <tejohnson@google.com>

	* gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
	(gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
	(gcov_rewrite): Use gcov_nonruntime_assert.
	(gcov_open): Ditto.
	(gcov_write_words): Ditto.
	(gcov_write_length): Ditto.
	(gcov_read_words): Use gcov_nonruntime_assert, and remove
	gcc_assert from IN_LIBGCOV code.
	(gcov_read_summary): Use gcov_error to flag profile corruption.
	(gcov_sync): Use gcov_nonruntime_assert.
	(gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
	(gcov_histo_index): Use gcov_nonruntime_assert.
	(static void gcov_histogram_merge): Ditto.
	(compute_working_sets): Ditto.
	* gcov-io.h (gcov_nonruntime_assert): Define.
	(gcov_error): Define for !IN_LIBGCOV

2014-05-22  Richard Biener  <rguenther@suse.de>

	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
	BUILT_IN_REALLOC like BUILT_IN_STRDUP.
	(call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
	and deallocation site.
	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
	Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
	passing through the incoming points-to set.
	(handle_lhs_call): Use flags argument instead of recomputing it.
	(find_func_aliases_for_call): Call handle_lhs_call with proper
	call return flags.

2014-05-22  Jakub Jelinek  <jakub@redhat.com>

	* tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
	all padding bits in REAL_VALUE_TYPE are cleared.

2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	Cleanup and improve multipass_dfa_lookahead_guard
	* config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
	(core2i7_first_cycle_multipass_begin,)
	(core2i7_first_cycle_multipass_issue,)
	(core2i7_first_cycle_multipass_backtrack): Update signature.
	* config/ia64/ia64.c
	(ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
	(ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
	hook definition.
	(ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
	ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
	values.
	* config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
	return values.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
	* haifa-sched.c (ready_try): Make signed to allow negative values.
	(rebug_ready_list_1): Update.
	(choose_ready): Simplify.
	(sched_extend_ready_list): Update.

2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	Remove IA64 speculation tweaking flags
	* config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
	speculation tuning flags.
	(msched-prefer-non-data-spec-insns,)
	(msched-prefer-non-control-spec-insns): Obsolete options.
	* haifa-sched.c (choose_ready): Remove handling of
	PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
	* sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
	and PREFER_NON_DATA_SPEC.
	* sel-sched.c (process_spec_exprs): Remove handling of
	PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.

2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	Improve scheduling debug output
	* haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
	(advance_one_cycle): Update.
	(schedule_insn, queue_to_ready): Add debug printouts.
	(debug_ready_list_1): New static function.
	(debug_ready_list): Update.
	(max_issue): Add debug printouts.
	(dump_insn_stream): New static function.
	(schedule_block): Use it.  Also better indent printouts.

2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>

	Fix sched_insn debug counter
	* haifa-sched.c (schedule_insn): Update.
	(struct haifa_saved_data): Add nonscheduled_insns_begin.
	(save_backtrack_point, restore_backtrack_point): Update.
	(first_nonscheduled_insn): New static function.
	(queue_to_ready, choose_ready): Use it.
	(schedule_block): Init nonscheduled_insns_begin.
	(sched_emit_insn): Update.


2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
	to GENERAL_REGS.
	(aarch64_secondary_reload) : LikeWise.
	(aarch64_class_max_nregs) : Remove CORE_REGS.
	* config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
	(REG_CLASS_NAMES) : Likewise.
	(REG_CLASS_CONTENTS) : LikeWise.
	(INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.

2014-05-21  Guozhi Wei  <carrot@google.com>

	PR target/61202
	* config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
	constraint.
	(vqdmulhq_n_s16): Likewise.

2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/predicates.md (update_indexed_address_mem): Delete.

2014-05-21  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/61272
	* ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.

2014-05-21  Martin Jambor  <mjambor@suse.cz>

	* doc/invoke.texi (Optimize Options): Document parameters
	ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
	ipa-cp-array-index-hint-bonus.

2014-05-21  Mark Wielaard  <mjw@redhat.com>

	PR debug/16063
	* dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
	version >= 3 or not strict DWARF.
	* langhooks.h (struct lang_hooks_for_types): Add
	enum_underlying_base_type.
	* langhooks.c (lhd_enum_underlying_base_type): New function.
	* gcc/langhooks.h (struct lang_hooks_for_types): Add
	enum_underlying_base_type.
	* langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
	(LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.

2014-05-21  Richard Biener  <rguenther@suse.de>

	* doc/invoke.texi (-flto-partition=): Document one and none algorithms.

2014-05-21  John Marino  <gnugcc@marino.st>

	* config.gcc (*-*-dragonfly*): New target.
	* configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
	* configure: Regenerate.
	* config/dragonfly-stdint.h: New.
	* config/dragonfly.h: New.
	* config/dragonfly.opt: New.
	* config/i386/dragonfly.h: New.
	* ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.

2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* tree.def (VOID_CST): New.
	* tree-core.h (TI_VOID): New.
	* tree.h (void_node): New.
	* tree.c (tree_node_structure_for_code, tree_code_size)
	(iterative_hash_expr): Handle VOID_CST.
	(build_common_tree_nodes): Initialize void_node.

2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>

	* reload1.c (remove_init_insns, will_delete_init_insn_p): New static
	functions.
	(reload, calculate_needs_all_insns, reload_as_needed): Use them.

	* config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
	more places.

	* cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
	flag_reorder_blocks_and_partition.
	* hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.

2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54236
	* config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
	constraints.
	(*addc_r_t): Add new insn_and_split.

2014-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/61252
	* omp-low.c (handle_simd_reference): New function.
	(lower_rec_input_clauses): Use it.  Defer adding reference
	initialization even for reduction without placeholder if in simd,
	handle it properly later on.

2014-05-20  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/60899
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
	assume all static symbols will have definition wile parsing and
	check the do have definition later in compilation; check that
	variable referring symbol will be output before concluding that
	reference is safe; be conservative for referring local statics;
	be more precise about when comdat is output in other partition.

2014-05-20  Jan Hubicka  <hubicka@ucw.cz>

	PR bootstrap/60984
	* ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
	parameter.
	* ipa-inline.c (inline_to_all_callers): If callee was removed; return.
	(ipa_inline): Loop inline_to_all_callers until no more aliases
	are removed.

2014-05-20  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
	set writeonly flag only for vars actually written to.

2014-05-20  Dehao Chen  <dehao@google.com>

	* ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
	and callee count to get clone count.
	* tree-inline.c (expand_call_inline): Use callee count instead of bb
	count in copy_body.

2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/61243
	* emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.

2014-05-20  Xinliang David Li  <davidxl@google.com>

	* cgraphunit.c (walk_polymorphic_call_targets): Add
	dbgcnt and fopt-info support.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
	* ipa-devirt.c (ipa_devirt): Ditto.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
	* ipa.c (walk_polymorphic_call_targets): Ditto.
	* gimple-fold.c (fold_gimple_assign): Ditto.
	(gimple_fold_call): Ditto.
	* dbgcnt.def: New counter.

2014-05-20  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.md (split): Don't allow subregs when
	splitting SImode adds.
	(andneghi): Fix subtraction logic.
	* config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.

2014-05-20  Jan Hubicka  <hubicka@ucw.cz>

	* tree.h (DECL_ONE_ONLY): Return true only for externally visible
	symbols.
	* except.c (switch_to_exception_section, resolve_unique_section,
	get_named_text_section, default_function_rodata_section,
	align_variable, get_block_for_decl, default_section_type_flags):
	Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
	* symtab.c (symtab_add_to_same_comdat_group,
	symtab_make_decl_local, fixup_same_cpp_alias_visibility,
	symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
	Likewise.
	* cgraphclones.c (cgraph_create_virtual_clone): Likewise.
	* bb-reorder.c (pass_partition_blocks::gate): Likewise.
	* config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
	(c6x_function_in_section_p): Likewise.
	* config/darwin.c (machopic_select_section): Likewise.
	* config/arm/arm.c (arm_function_in_section_p): Likewise.
	* config/mips/mips.c (mips_function_rodata_section): Likewise.
	* config/mep/mep.c (mep_select_section): LIkewise.
	* config/i386/i386.c (x86_64_elf_unique_section): Likewise.

2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
	EH region of calls to pure functions that can throw an exception.
	* tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
	(copy_reference_ops_from_call): Also copy the EH region of the call if
	it can throw an exception.

2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* simplify-rtx.c (simplify_binary_operation_1): Optimize case of
	nested VEC_SELECTs that are inverses of each other.

2014-05-20  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
	(extract_and_process_scc_for_name): not here.
	(cond_dom_walker::before_dom_children): Only process
	stmts that end the BB in interesting ways.
	(run_scc_vn): Mark param uses as visited.

2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (arith_shiftsi): Do not predicate for
	arm_restrict_it.

2014-05-20  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
	(msp430_gimplify_va_arg_expr): New function.
	(msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).

	* config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
	operand 0 in order to prevent confusion about the number of
	registers involved.

2014-05-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61221
	* tree-ssa-pre.c (el_to_update): Remove.
	(eliminate_dom_walker::before_dom_children): Handle released
	VDEFs by value-numbering them to the associated VUSE.  Update
	stmt immediately for substituted call address.
	(eliminate): Remove delayed stmt updating code.
	* tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
	possibly late re-numbered vuses.
	(vn_reference_lookup_2): Adjust.
	(vn_reference_lookup_pieces): Likewise.
	(vn_reference_lookup): Likewise.

2014-05-20  Richard Biener  <rguenther@suse.de>

	* config.gcc: Remove need_64bit_hwint.
	* configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
	* hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
	it to be true.
	* config.in: Regenerate.
	* configure: Likewise.

2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>

	* doc/extend.texi: Create Label Attributes section,
	move all label attributes into it and reference it.

2014-05-19  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (thumb1_reorg): When scanning backwards skip anything
	that's not a proper insn.

2014-05-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61221
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Do nothing for unreachable blocks.
	* tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
	Improve unreachability detection.

2014-05-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61209
	* tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.

2014-05-19  Nick Clifton  <nickc@redhat.com>

	* except.c (init_eh): Fix computation of builtin setjmp buffer
	size to allow for targets where POINTER_SIZE > BITS_PER_WORD.

2014-05-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61184
	* tree-vrp.c (is_negative_overflow_infinity): Use
	TREE_OVERFLOW_P and do that check first.
	(is_positive_overflow_infinity): Likewise.
	(is_overflow_infinity): Likewise.
	(vrp_operand_equal_p): Properly treat operands with
	differing overflow as not equal.

2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>

	* simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
	shift simplification where it was intended.

2014-05-19  Christian Bruel  <christian.bruel@st.com>

	PR target/61195
	* config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.

2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>

	PR target/61084
	* config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
	than wide_int.

2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* reg-notes.def (CROSSING_JUMP): Likewise.
	* rtl.h (rtx_def): Update comment for jump flag.
	(CROSSING_JUMP_P): Define.
	* cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
	of a REG_CROSSING_JUMP note.
	* cfghooks.c (tidy_fallthru_edges): Likewise.
	* cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
	* emit-rtl.c (try_split): Likewise.
	* haifa-sched.c (sched_create_recovery_edges): Likewise.
	* ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
	* jump.c (redirect_jump_2): Likewise.
	* reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
	(relax_delay_slots): Likewise.
	* config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
	(bbit_di): Likewise.
	* config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
	* config/sh/sh.md (jump_compact): Likewise.
	* bb-reorder.c (rotate_loop): Likewise.
	(pass_duplicate_computed_gotos::execute): Likewise.
	(add_reg_crossing_jump_notes): Rename to...
	(update_crossing_jump_flags): ...this.
	(pass_partition_blocks::execute): Update accordingly.

2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* tree.h: Remove extraneous template <>.

2014-05-17  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (symtab_remove_unreachable_nodes): Remove
	symbol from comdat group if its body was eliminated.
	(comdat_can_be_unshared_p_1): Static symbols can always be privatized.
	* symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
	(symtab_unregister_node): ... this one.
	(verify_symtab_base): More strict checking of comdats.
	* cgraph.h (symtab_remove_from_same_comdat_group): Declare.

2014-05-17  Jan Hubicka  <hubicka@ucw.cz>

	* tree-pass.h (make_pass_ipa_comdats): New pass.
	* timevar.def (TV_IPA_COMDATS): New timevar.
	* passes.def (pass_ipa_comdats): Add.
	* Makefile.in (OBJS): Add ipa-comdats.o
	* ipa-comdats.c: New file.

2014-05-17  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (update_visibility_by_resolution_info): New function.
	(function_and_variable_visibility): Use it.

2014-05-17  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
	New functions.
	(FOR_EACH_DEFINED_SYMBOL): New macro.
	(varpool_first_static_initializer, varpool_next_static_initializer,
	varpool_first_defined_variable, varpool_next_defined_variable):
	Fix comments.
	(symtab_in_same_comdat_p): Correctly deal with inline functions.

2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>

	* ggc-page.c (ggc_handle_finalizers): Add comment.

2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>

	* ggc-common.c (ggc_internal_cleared_alloc): Adjust.
	* ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
	(ggc_internal_cleared_alloc): Likewise.
	* ggc-page.c (finalizer): New class.
	(vec_finalizer): Likewise.
	(globals::finalizers): New member.
	(globals::vec_finalizers): Likewise.
	(ggc_internal_alloc): Record the finalizer if any for the block being
	allocated.
	(ggc_handle_finalizers): New function.
	(ggc_collect): Call ggc_handle_finalizers.
	* ggc.h (ggc_internal_alloc): Add arguments to allow installing a
	finalizer.
	(ggc_internal_cleared_alloc): Likewise.
	(finalize): New function.
	(need_finalization_p): Likewise.
	(ggc_alloc): Install the type's destructor as the finalizer if it
	might do something.
	(ggc_cleared_alloc): Likewise.
	(ggc_vec_alloc): Likewise.
	(ggc_cleared_vec_alloc): Likewise.

2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>

	* ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.

2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>

	* alias.c (record_alias_subset): Adjust.
	* bitmap.c (bitmap_element_allocate): Likewise.
	(bitmap_gc_alloc_stat): Likewise.
	* cfg.c (init_flow): Likewise.
	(alloc_block): Likewise.
	(unchecked_make_edge): Likewise.
	* cfgloop.c (alloc_loop): Likewise.
	(flow_loops_find): Likewise.
	(rescan_loop_exit): Likewise.
	* cfgrtl.c (init_rtl_bb_info): Likewise.
	* cgraph.c (insert_new_cgraph_node_version): Likewise.
	(cgraph_allocate_node): Likewise.
	(cgraph_create_edge_1): Likewise.
	(cgraph_allocate_init_indirect_info): Likewise.
	* cgraphclones.c (cgraph_clone_edge): Likewise.
	* cgraphunit.c (add_asm_node): Likewise.
	(init_lowered_empty_function): Likewise.
	* config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
	* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
	(alpha_use_linkage): Likewise.
	* config/arc/arc.c (arc_init_machine_status): Likewise.
	* config/arm/arm.c (arm_init_machine_status): Likewise.
	* config/avr/avr.c (avr_init_machine_status): Likewise.
	* config/bfin/bfin.c (bfin_init_machine_status): Likewise.
	* config/c6x/c6x.c (c6x_init_machine_status): Likewise.
	* config/cris/cris.c (cris_init_machine_status): Likewise.
	* config/darwin.c (machopic_indirection_name): Likewise.
	(darwin_build_constant_cfstring): Likewise.
	(darwin_enter_string_into_cfstring_table): Likewise.
	* config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
	* config/frv/frv.c (frv_init_machine_status): Likewise.
	* config/i386/i386.c (get_dllimport_decl): Likewise.
	(ix86_init_machine_status): Likewise.
	(assign_386_stack_local): Likewise.
	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
	(i386_pe_maybe_record_exported_symbol): Likewise.
	(i386_pe_record_stub): Likewise.
	* config/ia64/ia64.c (ia64_init_machine_status): Likewise.
	* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
	* config/m32c/m32c.c (m32c_init_machine_status): Likewise.
	(m32c_note_pragma_address): Likewise.
	* config/mep/mep.c (mep_init_machine_status): Likewise.
	(mep_note_pragma_flag): Likewise.
	* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
	(mips16_local_alias): Likewise.
	(mips_init_machine_status): Likewise.
	* config/mmix/mmix.c (mmix_init_machine_status): Likewise.
	* config/moxie/moxie.c (moxie_init_machine_status): Likewise.
	* config/msp430/msp430.c (msp430_init_machine_status): Likewise.
	* config/nds32/nds32.c (nds32_init_machine_status): Likewise.
	* config/nios2/nios2.c (nios2_init_machine_status): Likewise.
	* config/pa/pa.c (pa_init_machine_status): Likewise.
	(pa_get_deferred_plabel): Likewise.
	* config/rl78/rl78.c (rl78_init_machine_status): Likewise.
	* config/rs6000/rs6000.c (builtin_function_type): Likewise.
	(rs6000_init_machine_status): Likewise.
	(output_toc): Likewise.
	* config/s390/s390.c (s390_init_machine_status): Likewise.
	* config/score/score.c (score_output_external): Likewise.
	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.
	* config/spu/spu.c (spu_init_machine_status): Likewise.
	* config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
	* config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
	* coverage.c (coverage_end_function): Likewise.
	* dbxout.c (dbxout_init): Likewise.
	* doc/gty.texi: Don't mention variable_size attribute.
	* dwarf2cfi.c (new_cfi): Adjust.
	(new_cfi_row): Likewise.
	(copy_cfi_row): Likewise.
	(create_cie_data): Likewise.
	* dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
	(new_loc_descr): Likewise.
	(find_AT_string_in_table): Likewise.
	(add_addr_table_entry): Likewise.
	(new_die): Likewise.
	(add_var_loc_to_decl): Likewise.
	(clone_die): Likewise.
	(clone_as_declaration): Likewise.
	(break_out_comdat_types): Likewise.
	(new_loc_list): Likewise.
	(add_loc_descr_to_each): Likewise.
	(add_location_or_const_value_attribute): Likewise.
	(add_linkage_name): Likewise.
	(lookup_filename): Likewise.
	(dwarf2out_var_location): Likewise.
	(new_line_info_table): Likewise.
	(dwarf2out_init): Likewise.
	(mem_loc_descriptor): Likewise.
	(loc_descriptor): Likewise.
	(add_const_value_attribute): Likewise.
	(tree_add_const_value_attribute): Likewise.
	(comp_dir_string): Likewise.
	(dwarf2out_vms_debug_main_pointer): Likewise.
	(string_cst_pool_decl): Likewise.
	* emit-rtl.c (set_mem_attrs): Likewise.
	(get_reg_attrs): Likewise.
	(start_sequence): Likewise.
	(init_emit): Likewise.
	(init_emit_regs): Likewise.
	* except.c (init_eh_for_function): Likewise.
	(gen_eh_region): Likewise.
	(gen_eh_region_catch): Likewise.
	(gen_eh_landing_pad): Likewise.
	(add_call_site): Likewise.
	* function.c (add_frame_space): Likewise.
	(insert_temp_slot_address): Likewise.
	(assign_stack_temp_for_type): Likewise.
	(get_hard_reg_initial_val): Likewise.
	(allocate_struct_function): Likewise.
	(prepare_function_start): Likewise.
	(types_used_by_var_decl_insert): Likewise.
	* gengtype.c (variable_size_p): Remove function.
	(enum alloc_quantity): Remove enum.
	(write_typed_alloc_def): Remove function.
	(write_typed_struct_alloc_def): Likewise.
	(write_typed_typedef_alloc_def): Likewise.
	(write_typed_alloc_defns): Likewise.
	(main): Adjust.
	* ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
	(ggc_cleared_alloc_ptr_array_two_args): Likewise.
	* ggc.h (ggc_alloc): new function.
	(ggc_cleared_alloc): Likewise.
	(ggc_vec_alloc): Template on type of vector element, and remove
	element size argument.
	(ggc_cleared_vec_alloc): Likewise.
	* gimple.c (gimple_build_omp_for): Adjust.
	(gimple_copy): Likewise.
	* ipa-cp.c (get_replacement_map): Likewise.
	(find_aggregate_values_for_callers_subset): Likewise.
	(known_aggs_to_agg_replacement_list): Likewise.
	* ipa-devirt.c (get_odr_type): Likewise.
	* ipa-prop.c (ipa_node_duplication_hook): Likewise.
	(read_agg_replacement_chain): Likewise.
	* loop-iv.c (get_simple_loop_desc): Likewise.
	* lto-cgraph.c (input_node_opt_summary): Likewise.
	* lto-section-in.c (lto_new_in_decl_state): Likewise.
	* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
	(input_eh_region): Likewise.
	(input_eh_lp): Likewise.
	(input_cfg): Likewise.
	* optabs.c (set_optab_libfunc): Likewise.
	(init_tree_optimization_optabs): Likewise.
	(set_conv_libfunc): Likewise.
	* passes.c (do_per_function_toporder): Likewise.
	* rtl.h: Don't use variable_size gty attribute.
	* sese.c (if_region_set_false_region): Adjust.
	* stringpool.c (gt_pch_save_stringpool): Likewise.
	* target-globals.c (save_target_globals): Likewise.
	* toplev.c (general_init): Likewise.
	* trans-mem.c (record_tm_replacement): Likewise.
	(split_bb_make_tm_edge): Likewise.
	* tree-cfg.c (move_sese_region_to_fn): Likewise.
	* tree-data-ref.h (lambda_vector_new): Likewise.
	* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
	* tree-iterator.c (tsi_link_before): Likewise.
	(tsi_link_after): Likewise.
	* tree-scalar-evolution.c (new_scev_info_str): Likewise.
	* tree-ssa-loop-niter.c (record_estimate): Likewise.
	* tree-ssa-operands.c (ssa_operand_alloc): Likewise.
	* tree-ssa-operands.h: Don't use variable_size gty attribute.
	* tree-ssa.c (init_tree_ssa): Adjust.
	* tree-ssanames.c (set_range_info): Likewise.
	(get_ptr_info): Likewise.
	(duplicate_ssa_name_ptr_info): Likewise.
	(duplicate_ssa_name_range_info): Likewise.
	* tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
	(unpack_ts_fixed_cst_value_fields): Likewise.
	* tree.c (build_fixed): Likewise.
	(build_real): Likewise.
	(build_string): Likewise.
	(decl_priority_info): Likewise.
	(decl_debug_expr_insert): Likewise.
	(decl_value_expr_insert): Likewise.
	(decl_debug_args_insert): Likewise.
	(type_hash_add): Likewise.
	(build_omp_clause): Likewise.
	* ubsan.c (decl_for_type_insert): Likewise.
	* varasm.c (get_unnamed_section): Likewise.
	(get_noswitch_section): Likewise.
	(get_section): Likewise.
	(get_block_for_section): Likewise.
	(create_block_symbol): Likewise.
	(build_constant_desc): Likewise.
	(create_constant_pool): Likewise.
	(force_const_mem): Likewise.
	(record_tm_clone_pair): Likewise.
	* varpool.c (varpool_create_empty_node): Likewise.

2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>

	* dwarf2out.c (tree_add_const_value_attribute): Call
	ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
	* gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
	instead of ggc_internal_<x>alloc_stat.
	* ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
	(ggc_realloc): Likewise.
	* ggc-none.c (ggc_internal_alloc): Likewise.
	(ggc_internal_cleared_alloc): Likewise.
	* ggc-page.c: Likewise.
	* ggc.h (ggc_internal_alloc_stat): Likewise.
	(ggc_internal_alloc): Remove macro.
	(ggc_internal_cleared_alloc_stat): Drop _stat suffix.
	(ggc_internal_cleared_alloc): Remove macro.
	(GGC_RESIZEVEC): Adjust.
	(ggc_resizevar): Remove macro.
	(ggc_internal_vec_alloc_stat): Drop _stat suffix.
	(ggc_internal_cleared_vec_alloc_stat): Likewise.
	(ggc_internal_vec_cleared_alloc): Remove macro.
	(ggc_alloc_atomic_stat): Drop _stat suffix.
	(ggc_alloc_atomic): Remove macro.
	(ggc_alloc_cleared_atomic): Remove macro.
	(ggc_alloc_string_stat): Drop _stat suffix.
	(ggc_alloc_string): Remove macro.
	(ggc_alloc_rtx_def_stat): Adjust.
	(ggc_alloc_tree_node_stat): Likewise.
	(ggc_alloc_cleared_tree_node_stat): Likewise.
	(ggc_alloc_cleared_gimple_statement_stat): Likewise.
	(ggc_alloc_cleared_simd_clone_stat): Likewise.
	* gimple.c (gimple_build_omp_for): Likewise.
	(gimple_copy): Likewise.
	* stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
	* toplev.c (realloc_for_line_map): Adjust.
	* tree-data-ref.h (lambda_vector_new): Likewise.
	* tree-phinodes.c (allocate_phi_node): Likewise.
	* tree.c (grow_tree_vec_stat): Likewise.
	* vec.h (va_gc::reserve): Adjust.

2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>

	* config/microblaze/microblaze.c (break_handler): New Declaration.
	(microblaze_break_function_p,microblaze_is_break_handler): New.
	(compute_frame_size): Use microblaze_break_function_p.
	Add the test of break_handler.
	(microblaze_function_prologue) : Add the test of variable
	break_handler.  Check the fnname by BREAK_HANDLER_NAME.
	(microblaze_function_epilogue) : Add the test of break_handler.
	(microblaze_globalize_label) : Add the test of break_handler.
	Check the name by BREAK_HANDLER_NAME.

	* config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro

	* config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
	microblaze_is_break_handler test.
	(call_internal1,call_value_intern): Use microblaze_break_function_p.
	Use SYMBOL_REF_DECL.

	* config/microblaze/microblaze-protos.h
	(microblaze_break_function_p,microblaze_is_break_handler):
	New Declaration.

	* doc/extend.texi (MicroBlaze break_handler Functions): Document
	new MicroBlaze break_handler functions.

2014-05-17  Uros Bizjak  <ubizjak@gmail.com>

	* doc/extend.texi (Size of an asm): Move node text according
	to its @menu entry position.

2014-05-17  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/61140
	PR tree-optimization/61150
	PR tree-optimization/61197
	* tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.

2014-05-17  Uros Bizjak  <ubizjak@gmail.com>

	* doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.

2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
	__SIZEOF_INT128__ is defined.

2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
	(rs6000_delegitimize_address): Use it.

2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
	inplace argument.  Store the new address in the original MEM when true.
	* emit-rtl.c (change_address_1): Likewise.
	(adjust_address_1, adjust_automodify_address_1, offset_address):
	Update accordingly.
	* rtl.h (plus_constant): Add an inplace argument.
	* explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
	when true.  Avoid generating (plus X (const_int 0)).
	* function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
	in-place.  Pass true to plus_constant.
	(instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.

2014-05-16  Dehao Chen  <dehao@google.com>

	* tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.

2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/54089
	* config/sh/predicates.md (negt_reg_shl31_operand): Match additional
	patterns.
	* config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.

2014-05-16  Dehao Chen  <dehao@google.com>

	* ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
	optimize_function_for_size_p.
	* regs.h (REG_FREQ_FROM_BB): Likewise.

2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/51244
	* config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
	negt_reg_operand cases.
	* config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
	predicate.
	* config/sh/predicates.md (cbranch_treg_value): Simplify.

2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
	target variants.

2014-05-16  David Malcolm  <dmalcolm@redhat.com>

	Revert:
	2014-04-29  David Malcolm  <dmalcolm@redhat.com>

	* tree-cfg.c (dump_function_to_file): Dump the return type of
	functions, in a line to itself before the function body, mimicking
	the layout of a C function.

2014-05-16  Dehao Chen  <dehao@google.com>

	* cfghooks.c (make_forwarder_block): Use direct computation to
	get fall-through edge's count and frequency.

2014-05-16  Benno Schulenberg  <bensberg@justemail.net>

	* config/arc/arc.c (arc_init): Fix typo in error message.
	* config/i386/i386.c (ix86_expand_builtin): Likewise.
	(split_stack_prologue_scratch_regno): Likewise.
	* fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
	word from error message.

2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>

	* ira-costs.c: Fix typo in comment.

2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>

	* doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref

2014-05-16  Jan Hubicka  <hubicka@ucw.cz>

	* varpool.c (dump_varpool_node): Dump write-only flag.
	* lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
	write-only flag.
	* tree-cfg.c (execute_fixup_cfg): Remove statements setting
	write-only variables.
	* ipa.c (process_references): New function.
	(set_readonly_bit): New function.
	(set_writeonly_bit): New function.
	(clear_addressable_bit): New function.
	(ipa_discover_readonly_nonaddressable_var): Mark write only variables;
	fix handling of aliases.
	* cgraph.h (struct varpool_node): Add writeonly flag.

2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/60969
	* ira-costs.c (record_reg_classes): Allow only memory for pseudo.
	Calculate costs for this case.

2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
	<CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.

2014-05-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61194
	* tree-vect-patterns.c (adjust_bool_pattern): Also handle
	bool patterns ending in a COND_EXPR.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
	where we were unable to cost an RTX.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
	HIGH, LO_SUM.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
	FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
	operators.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
	DIV/MOD.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
	(aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
	rotates and shifts.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
	ZERO_EXTEND and SIGN_EXTEND better.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
	logical operations.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
	costs when costing loads and stores to memory.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philip Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
	for SET RTX.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
	to...
	(aarch64_strip_extend): ...this, don't strip shifts, check RTX is
	well formed.
	(aarch64_rtx_mult_cost): New.
	(aarch64_rtx_costs): Use it, refactor as appropriate.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
	    Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
	emit instructions, return number of instructions which would
	be emitted.
	(aarch64_add_constant): Update call to aarch64_build_constant.
	(aarch64_output_mi_thunk): Likewise.
	(aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
	a CONST_DOUBLE.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
	(TARGET_RTX_COSTS): Call it.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
	(cortexa57_vector_cost): Likewise.
	(cortexa57_tunings): Use them.

2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
	(cpu_addrcost_table): Use it.
	* config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
	(aarch64_address_cost): Rewrite using aarch64_classify_address,
	move it.

2014-05-16  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
	(set_ssa_val_to): Handle unexpected sets to VN_TOP.
	(visit_phi): Ignore edges marked as not executable.
	(class cond_dom_walker): New.
	(cond_dom_walker::before_dom_children): Value-number
	control statements and mark successor edges as not
	executable if possible.
	(run_scc_vn): First walk all control statements in
	dominator order, marking edges as not executable.
	* tree-inline.c (copy_edges_for_bb): Be not confused
	about random edge flags.

2014-05-16  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (visit_use): Also constant-fold calls.

2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/61193
	* config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
	(__TM_simple_begin): Use it.
	(__TM_begin): Likewise.

2014-05-15  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61085
	* ipa-prop.c (update_indirect_edges_after_inlining): Check
	type_preserved flag when the indirect edge is polymorphic.

2014-05-15  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/61090
	* tree-sra.c (sra_modify_expr): Pass the current gsi to
	build_ref_for_model.

2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
	enum name for PARAM_SCHED_PRESSURE_ALGORITHM.

2014-05-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/61158
	* fold-const.c (fold_binary_loc): If X is zero-extended and
	shiftc >= prec, make sure zerobits is all ones instead of
	invoking undefined behavior.

2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* regcprop.h: New file.
	* regcprop.c (skip_debug_insn_p): New decl.
	(replace_oldest_value_reg): Check skip_debug_insn_p.
	(copyprop_hardreg_forward_bb_without_debug_insn): New function.
	* shrink-wrap.c: Include regcprop.h.
	(prepare_shrink_wrap): Call
	copyprop_hardreg_forward_bb_without_debug_insn.

2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* shrink-wrap.h: Update comment.
	* shrink-wrap.c: Update comment.
	(next_block_for_reg): Rename to live_edge_for_reg.
	(live_edge_for_reg): Allow live_edge->dest has two predecessors.
	(move_insn_for_shrink_wrap): Split live_edge.
	(prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.

2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
	Delete.
	* config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
	* config/sparc/sparc.md (fptype_ut699): New attribute.
	(in_branch_delay): Return false if -mfix-ut699 is specified and
	fptype_ut699 is set to single.
	(truncdfsf2): Add fptype_ut699 attribute.
	(fix_truncdfsi2): Likewise.
	(floatsisf2): Change fptype attribute.
	(fix_truncsfsi2): Likewise.
	(negtf2_notv9): Delete.
	(negtf2_v9): Likewise.
	(negtf2_hq): New instruction.
	(negtf2): New instruction and splitter.
	(negdf2_notv9): Rewrite.
	(abstf2_notv9): Delete.
	(abstf2_hq_v9): Likewise.
	(abstf2_v9): Likewise.
	(abstf2_hq): New instruction.
	(abstf2): New instruction and splitter.
	(absdf2_notv9): Rewrite.

2014-05-14  Cary Coutant  <ccoutant@google.com>

	PR debug/61013
	* opts.c (common_handle_option): Don't special-case "-g".
	(set_debug_level): Default to at least level 2 with "-g".

2014-05-14  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.c (msp430_builtin): Add
	MSP430_BUILTIN_DELAY_CYCLES.
	(msp430_init_builtins): Register void __delay_cycles(long long).
	(msp430_builtin_decl): Add it.
	(cg_magic_constant): New.
	(msp430_expand_delay_cycles): New.
	(msp430_expand_builtin): Call it.
	(msp430_print_operand_raw): Change integer printing from "int" to
	HOST_WIDE_INT.
	* config/msp430/msp430.md (define_constants): Add delay_cycles tags.
	(delay_cycles_start): New.
	(delay_cycles_end): New.
	(delay_cycles_32): New.
	(delay_cycles_32x): New.
	(delay_cycles_16): New.
	(delay_cycles_16x): New.
	(delay_cycles_2): New.
	(delay_cycles_1): New.
	* doc/extend.texi: Document __delay_cycles().

2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
	length attribute computation.

2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>

	PR debug/61188
	* print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.

2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	PR target/61084
	* config/sparc/sparc.md: Fix types of low and high in DI constant
	splitter.  Use gen_int_mode in some other splitters.

2014-05-14  Martin Jambor  <mjambor@suse.cz>

	PR ipa/60897
	* ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.

2014-05-14  James Norris  <jnorris@codesourcery.com>

	* omp-low.c (expand_parallel_call): Remove shadow variable.
	(expand_omp_taskreg): Likewise.

2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
	(OPTION_MASK_ISA_XSAVES_SET): Ditto.
	(OPTION_MASK_ISA_XSAVEC_SET): Ditto.
	(OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
	(OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
	(OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
	(ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
	* config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
	xsavecintrin.h, xsavesintrin.h.
	(x86_64-*-*): Ditto.
	* config/i386/clflushoptintrin.h: New.
	* config/i386/xsavecintrin.h: Ditto.
	* config/i386/xsavesintrin.h: Ditto.
	* config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
	(bit_XSAVES): Ditto.
	(bit_XSAVES): Ditto.
	* config/i386/driver-i386.c (host_detect_local_cpu): Handle
	-mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
	-mno-clflushopt.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
	OPTION_MASK_ISA_XSAVES.
	* config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
	-mxsavec, -mxsaves.
	(PTA_CLFLUSHOPT) Define.
	(PTA_XSAVEC): Ditto.
	(PTA_XSAVES): Ditto.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Ditto.
	(ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
	IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
	IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
	(bdesc_special_args): Add __builtin_ia32_xsaves,
	__builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
	__builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
	(ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
	(ix86_expand_builtin): Handle new builtins.
	* config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
	(TARGET_CLFLUSHOPT_P): Ditto.
	(TARGET_XSAVEC): Ditto.
	(TARGET_XSAVEC_P): Ditto.
	(TARGET_XSAVES): Ditto.
	(TARGET_XSAVES_P): Ditto.
	* config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
	(ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
	(attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
	(ANY_XRSTOR): New.
	(ANY_XRSTOR64): Ditto.
	(xrstor): Ditto.
	(xrstor): Change into <xrstor>.
	(xrstor_rex64): Change into <xrstor>_rex64.
	(xrstor64): Change into <xrstor>64
	(clflushopt): New.
	* config/i386/i386.opt (mclflushopt): New.
	(mxsavec): Ditto.
	(mxsaves): Ditto.
	* config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
	xsavecintrin.h.
	* doc/invoke.texi: Document new options.

2014-05-14  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/60866
	* sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
	Default it to -1.  Pass it down to init_simplejump_data.
	(init_simplejump_data): New parameter old_seqno.  Pass it down
	to get_seqno_for_a_jump.
	(get_seqno_for_a_jump): New parameter old_seqno.  Use it for
	initializing new jump seqno as a last resort.  Add comment.
	(sel_redirect_edge_and_branch): Save old seqno of the conditional
	jump and pass it down to sel_init_new_insn.
	(sel_redirect_edge_and_branch_force): Likewise.

2014-05-14  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
	shifted values to avoid build warning.

2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgcleanup.c (try_forward_edges): Use location_t for locations.
	* cfgrtl.c (rtl_merge_blocks): Fix comment.
	(cfg_layout_merge_blocks): Likewise.
	* except.c (emit_to_new_bb_before): Remove prev_bb local variable.

2014-05-14  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/60901
	* config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
	bb predecessor belongs to the same scheduling region.  Adjust comment.

2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>

	* doc/sourcebuild.texi: (dfp_hw): Document.
	(p8vector_hw): Likewise.
	(powerpc_eabi_ok): Likewise.
	(powerpc_elfv2): Likewise.
	(powerpc_htm_ok): Likewise.
	(ppc_recip_hw): Likewise.
	(vsx_hw): Likewise.

2014-05-13  Cary Coutant  <ccoutant@google.com>

	* opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.

2014-05-13  David Malcolm  <dmalcolm@redhat.com>

	* gengtype-parse.c (require3): Eliminate in favor of...
	(require4): New.
	(require_template_declaration): Update to support optional single *
	on a type.

	* gengtype.c (get_ultimate_base_class): Add a non-const overload.
	(create_user_defined_type): Handle a single level of explicit
	pointerness within template arguments.
	(struct write_types_data): Add field "kind".
	(filter_type_name): Handle "*" character.
	(write_user_func_for_structure_ptr): Require a write_types_data
	rather than just a prefix string, so that we can look up the kind
	of the wtd and use it as an index into wrote_user_func_for_ptr,
	ensuring that such functions are written at most once.  Support
	subclasses by invoking the marking function of the ultimate base class.
	(write_user_func_for_structure_body): Require a write_types_data
	rather than just a prefix string, so that we can pass this to
	write_user_func_for_structure_ptr.
	(write_func_for_structure): Likewise.
	(ggc_wtd): Add initializer of new "kind" field.
	(pch_wtd): Likewise.

	* gengtype.h (enum write_types_kinds): New.
	(struct type): Add field wrote_user_func_for_ptr to the "s"
	union member.

2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* fold-const.c (optimize_bit_field_compare): Use wi:: operations
	instead of const_binop.
	(fold_binary_loc): Likewise.

2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
	calculation to match get_ref_base_and_extent.

2014-05-13  Catherine Moore  <clm@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* configure.ac: Fix assembly for explicit JALR relocation check.
	* configure: Regenerate.

2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
	(arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
	Remove associated type declarations and initialisations.
	(arm_expand_neon_builtin): Likewise.
	(neon_emit_pair_result_insn): Delete.
	* config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
	* config/arm/neon.md (neon_vtrn<mode>): Delete.
	(neon_vzip<mode>): Likewise.
	(neon_vuzp<mode>): Likewise.

2014-05-13  Richard Biener  <rguenther@suse.de>

	PR ipa/60973
	* tree-inline.c (remap_gimple_stmt): Clear tail call flag,
	it needs revisiting whether the call still may be tail-called.

2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.def (SYMBOL_REF): Remove middle "0" field.
	* rtl.h (block_symbol): Reduce number of fields to 2.
	(rtx_def): Add u2.symbol_ref_flags.
	(SYMBOL_REF_FLAGS): Use it.
	(SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
	(SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
	* gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
	Lower index of SYMBOL_REF_DATA.
	* print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
	Print SYMBOL_REF_FLAGS at the same time.
	* genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.

2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.def (VAR_LOCATION): Remove "i" field.
	* rtl.h (rtx_def): Add u2.var_location_status.
	(PAT_VAR_LOCATION_STATUS): Use it.
	(gen_rtx_VAR_LOCATION): Declare.
	* gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
	* emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
	* var-tracking.c (emit_note_insn_var_location): Remove casts.

2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.def (scratch): Fix outdated comment and remove "0" field.
	* gengtype.c (adjust_field_rtx_def): Update accordingly.

2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
	(BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
	* rtl.h (rtx_def): Add insn_uid to u2 field.
	(RTX_FLAG_CHECK8): Delete in favor of...
	(RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
	(INSN_DELETED_P): Update accordingly.
	(INSN_UID): Use u2.insn_uid.
	(INSN_CHAIN_CODE_P): Define.
	(PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
	(INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
	(NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
	(NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
	(NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
	indices accordingly.
	* print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
	Update indices for insn-chain rtxes.
	* gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
	(adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
	* emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
	* caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
	* combine.c (try_combine): Likewise.
	* ira.c (setup_prohibited_mode_move_regs): Likewise.

2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.def (REG): Remove middle field.
	* rtl.h (rtx_def): Add orignal_regno to u2.
	(ORIGINAL_REGNO): Use it instead of field 1.
	(REG_ATTRS): Lower field index accordingly.
	* gengtype.c (adjust_field_rtx_def): Remove handling of
	ORIGINAL_REGNO.  Move REG_ATTRS index down.
	* print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
	code that prints the REGNO.

2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* print-rtl.c (print_rtx): Guard whole '0' block with ifndef
	GENERATOR_FILE.

2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (rtx_def): Mark u2 as GTY ((skip)).

2014-05-13  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
	(alloc_iv): Lower base expressions containing ADDR_EXPR.

2014-05-13  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_hard_regno_caller_save_mode): New prototype.
	* config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
	New function.
	* config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.

2014-05-13  Christian Bruel  <christian.bruel@st.com>

	* target.def (mode_switching): New hook vector.
	(mode_emit, mode_needed, mode_after, mode_entry): New hooks.
	(mode_exit, modepriority_to_mode): Likewise.
	* mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
	(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
	* target.h: Include tm.h and hard-reg-set.h.
	* doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
	(MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
	* doc/tm.texi Regenerate.
	* config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
	(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
	* config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
	(sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
	* config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
	(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
	* config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
	(ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
	* config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
	(ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
	(ix86_emit_mode_set): Hookify.
	* config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
	Delete.
	(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
	* config/epiphany/epiphany-protos.h (epiphany_mode_needed)
	(emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
	(epiphany_mode_priority_to_mode): Remove declaration.
	* config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
	(epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
	(epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
	Likewise.
	(epiphany_mode_priority_to_mode): Change priority type.  Hookify.
	(epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
	(epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.

2014-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/61060
	* config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
	is const0_rtx, return immediately.  Don't test count == 0 when
	it is always true.

2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* Makefile.in: add shrink-wrap.o.
	* config/i386/i386.c: include "shrink-wrap.h"
	* function.c: Likewise.
	(requires_stack_frame_p, next_block_for_reg,
	move_insn_for_shrink_wrap, prepare_shrink_wrap,
	dup_block_and_redirect): Move to shrink-wrap.c
	(thread_prologue_and_epilogue_insns): Extract three code segments
	as functions in shrink-wrap.c
	* function.h: Move #ifdef HAVE_simple_return ... #endif block to
	shrink-wrap.h
	* shrink-wrap.c: New file.
	* shrink-wrap.h: New file.

2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/extend.texi: Reflect current numbers of pragmas.  Remove
	reference to Solaris.

2014-05-12  Mike Stump  <mikestump@comcast.net>

	PR other/31778
	* genattrtab.c (filename): Add.
	(convert_set_attr_alternative): Improve error message.
	(check_defs): Restore read_md_filename for error messages.
	(gen_insn): Save filename.

2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>

	* doc/invoke.texi: Document new switches -Wno-shadow-ivar,
	-fno-local-ivars and -fivar-visibility.
	* c-family/c.opt: Make -Wshadow also implicitly enable
	-Wshadow-ivar.

2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>

	* doc/tm.texi: Remove reference to deleted macro.
	* doc/tm.texi.in: Likewise.

2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	PR target/60991
	* config/avr/avr.c (avr_out_store_psi): Use correct constant
	to restore Y.

2014-05-12  Georg-Johann Lay  <avr@gjlay.de>

	PR libgcc/61152
	* config/arm/arm.h (License): Add GCC Runtime Library Exception.
	* config/arm/aout.h (License): Same.
	* config/arm/bpabi.h (License): Same.
	* config/arm/elf.h (License): Same.
	* config/arm/linux-elf.h (License): Same.
	* config/arm/linux-gas.h (License): Same.
	* config/arm/netbsd-elf.h (License): Same.
	* config/arm/uclinux-eabi.h (License): Same.
	* config/arm/uclinux-elf.h (License): Same.
	* config/arm/vxworks.h (License): Same.

2014-05-11  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
	* tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
	number of operands to 3.
	(walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
	* gimplify.c (gimplify_scan_omp_clauses): Handle
	OMP_CLAUSE_LINEAR_STMT.
	* omp-low.c (lower_rec_input_clauses): Fix typo.
	(maybe_add_implicit_barrier_cancel, lower_omp_1): Add
	cast between Fortran boolean_type_node and C _Bool if
	needed.

2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>

	PR tree-optimization/61136
	* wide-int.h (multiple_of_p): Define a version that doesn't return
	the quotient.
	* fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
	integer_zerop/const_binop pair.
	(multiple_of_p): Likewise, converting both operands to widest_int
	precision.

2014-05-09  Teresa Johnson  <tejohnson@google.com>

	* cgraphunit.c (analyze_functions): Use correct dump file.

2014-05-09  Florian Weimer  <fweimer@redhat.com>

	* cfgexpand.c (stack_protect_decl_p): New function, extracted from
	expand_used_vars.
	(stack_protect_return_slot_p): New function.
	(expand_used_vars): Call stack_protect_decl_p and
	stack_protect_return_slot_p for -fstack-protector-strong.

2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
	Andrew Haley <aph@redhat.com>
	Richard Sandiford <rdsandiford@googlemail.com>

	* doc/extend.texi: Rewrite inline asm page / re-org asm-related
	pages.

2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR middle-end/61111
	* fold-const.c (fold_binary_loc): Changed width of mask.

2014-05-09  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
	unsigned int initializers for regno_in, regno_out.

2014-05-09  Georg-Johann Lay  <avr@gjlay.de>

	PR target/61055
	* config/avr/avr.md (cc): Add new attribute set_vzn.
	(addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
	Set cc insn attribute to set_vzn instead of set_zn for alternatives
	with INC, DEC or NEG.
	* config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
	(avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
	INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.

2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	Revert:
	2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* wide-int.cc (UTItype): Define.
	(UDWtype): Define for appropriate W_TYPE_SIZE.

2014-05-09  Richard Biener  <rguenther@suse.de>

	* Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
	* tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
	(interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
	(add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
	ssa_propagate): Adjust.

2014-05-08  Jeff Law  <law@redhat.com>

	PR tree-optimization/61009
	* tree-ssa-threadedge.c (thread_through_normal_block): Return a
	tri-state rather than a boolean.  When a block is too big to
	thread through, inform caller via negative return value.
	(thread_across_edge): If a block was too big for normal threading,
	then it's too big for a joiner too, so remove temporary equivalences
	and return immediately.

2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Matthias Klose  <doko@ubuntu.com>

	PR driver/61106
	* optc-gen.awk: Fix option handling for -Wunused-parameter.

2014-05-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59952
	* config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.

2014-05-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/61092
	* config/alpha/alpha.c: Include gimple-iterator.h.
	(alpha_gimple_fold_builtin): New function.  Move
	ALPHA_BUILTIN_UMULH folding from ...
	(alpha_fold_builtin): ... here.
	(TARGET_GIMPLE_FOLD_BUILTIN): New define.

2014-05-08  Wei Mi  <wmi@google.com>

	PR target/58066
	* config/i386/i386.c (ix86_compute_frame_layout): Update
	preferred_stack_boundary for call, expanded from tls descriptor.
	* config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
	to depend on SP register.
	(*tls_local_dynamic_base_32_gnu): Ditto.
	(*tls_local_dynamic_32_once): Ditto.
	(tls_global_dynamic_64_<mode>): Set
	ix86_tls_descriptor_calls_expanded_in_cfun.
	(tls_local_dynamic_base_64_<mode>): Ditto.
	(tls_global_dynamic_32): Set
	ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
	to depend on SP register.
	(tls_local_dynamic_base_32): Ditto.

2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm_neon.h: Update comment.
	* config/arm/neon-docgen.ml: Delete.
	* config/arm/neon-gen.ml: Delete.
	* doc/arm-neon-intrinsics.texi: Update comment.

2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
	and v4sf versions.
	(vand, vorr, veor, vorn, vbic): Remove.
	* config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
	iterator.
	(neon_vsub_unspec): Likewise.
	(neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.

2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm_neon.h (vadd_s8): GNU C implementation
	(vadd_s16): Likewise.
	(vadd_s32): Likewise.
	(vadd_f32): Likewise.
	(vadd_u8): Likewise.
	(vadd_u16): Likewise.
	(vadd_u32): Likewise.
	(vadd_s64): Likewise.
	(vadd_u64): Likewise.
	(vaddq_s8): Likewise.
	(vaddq_s16): Likewise.
	(vaddq_s32): Likewise.
	(vaddq_s64): Likewise.
	(vaddq_f32): Likewise.
	(vaddq_u8): Likewise.
	(vaddq_u16): Likewise.
	(vaddq_u32): Likewise.
	(vaddq_u64): Likewise.
	(vmul_s8): Likewise.
	(vmul_s16): Likewise.
	(vmul_s32): Likewise.
	(vmul_f32): Likewise.
	(vmul_u8): Likewise.
	(vmul_u16): Likewise.
	(vmul_u32): Likewise.
	(vmul_p8): Likewise.
	(vmulq_s8): Likewise.
	(vmulq_s16): Likewise.
	(vmulq_s32): Likewise.
	(vmulq_f32): Likewise.
	(vmulq_u8): Likewise.
	(vmulq_u16): Likewise.
	(vmulq_u32): Likewise.
	(vsub_s8): Likewise.
	(vsub_s16): Likewise.
	(vsub_s32): Likewise.
	(vsub_f32): Likewise.
	(vsub_u8): Likewise.
	(vsub_u16): Likewise.
	(vsub_u32): Likewise.
	(vsub_s64): Likewise.
	(vsub_u64): Likewise.
	(vsubq_s8): Likewise.
	(vsubq_s16): Likewise.
	(vsubq_s32): Likewise.
	(vsubq_s64): Likewise.
	(vsubq_f32): Likewise.
	(vsubq_u8): Likewise.
	(vsubq_u16): Likewise.
	(vsubq_u32): Likewise.
	(vsubq_u64): Likewise.
	(vand_s8): Likewise.
	(vand_s16): Likewise.
	(vand_s32): Likewise.
	(vand_u8): Likewise.
	(vand_u16): Likewise.
	(vand_u32): Likewise.
	(vand_s64): Likewise.
	(vand_u64): Likewise.
	(vandq_s8): Likewise.
	(vandq_s16): Likewise.
	(vandq_s32): Likewise.
	(vandq_s64): Likewise.
	(vandq_u8): Likewise.
	(vandq_u16): Likewise.
	(vandq_u32): Likewise.
	(vandq_u64): Likewise.
	(vorr_s8): Likewise.
	(vorr_s16): Likewise.
	(vorr_s32): Likewise.
	(vorr_u8): Likewise.
	(vorr_u16): Likewise.
	(vorr_u32): Likewise.
	(vorr_s64): Likewise.
	(vorr_u64): Likewise.
	(vorrq_s8): Likewise.
	(vorrq_s16): Likewise.
	(vorrq_s32): Likewise.
	(vorrq_s64): Likewise.
	(vorrq_u8): Likewise.
	(vorrq_u16): Likewise.
	(vorrq_u32): Likewise.
	(vorrq_u64): Likewise.
	(veor_s8): Likewise.
	(veor_s16): Likewise.
	(veor_s32): Likewise.
	(veor_u8): Likewise.
	(veor_u16): Likewise.
	(veor_u32): Likewise.
	(veor_s64): Likewise.
	(veor_u64): Likewise.
	(veorq_s8): Likewise.
	(veorq_s16): Likewise.
	(veorq_s32): Likewise.
	(veorq_s64): Likewise.
	(veorq_u8): Likewise.
	(veorq_u16): Likewise.
	(veorq_u32): Likewise.
	(veorq_u64): Likewise.
	(vbic_s8): Likewise.
	(vbic_s16): Likewise.
	(vbic_s32): Likewise.
	(vbic_u8): Likewise.
	(vbic_u16): Likewise.
	(vbic_u32): Likewise.
	(vbic_s64): Likewise.
	(vbic_u64): Likewise.
	(vbicq_s8): Likewise.
	(vbicq_s16): Likewise.
	(vbicq_s32): Likewise.
	(vbicq_s64): Likewise.
	(vbicq_u8): Likewise.
	(vbicq_u16): Likewise.
	(vbicq_u32): Likewise.
	(vbicq_u64): Likewise.
	(vorn_s8): Likewise.
	(vorn_s16): Likewise.
	(vorn_s32): Likewise.
	(vorn_u8): Likewise.
	(vorn_u16): Likewise.
	(vorn_u32): Likewise.
	(vorn_s64): Likewise.
	(vorn_u64): Likewise.
	(vornq_s8): Likewise.
	(vornq_s16): Likewise.
	(vornq_s32): Likewise.
	(vornq_s64): Likewise.
	(vornq_u8): Likewise.
	(vornq_u16): Likewise.
	(vornq_u32): Likewise.
	(vornq_u64): Likewise.

2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* wide-int.cc (UTItype): Define.
	(UDWtype): Define for appropriate W_TYPE_SIZE.

2014-05-08  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/59100
	* tree-ssa-phiopt.c: Include tree-inline.h.
	(neutral_element_p, absorbing_element_p): New functions.
	(value_replacement): Handle conditional binary operations with a
	neutral or absorbing element.

2014-05-08  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
	folding the expression.
	(valueize_expr): Remove.
	(visit_reference_op_load): Do not valueize the result of
	vn_get_expr_for.
	(simplify_binary_expression): Likewise.
	(simplify_unary_expression): Likewise.

2014-05-08  Richard Biener  <rguenther@suse.de>

	* gimplify.c (gimplify_call_expr): Use saved fnptrtype for
	looking at TYPE_ARG_TYPES.

2014-05-08  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
	pointer propagation special-case.

2014-05-08  Bin Cheng  <bin.cheng@arm.com>

	* tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
	core part of address expressions.

2014-05-08  Alan Modra  <amodra@gmail.com>

	PR target/60737
	* config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
	loads and stores when -mno-strict-align at any alignment.
	(expand_block_clear): Similarly.  Also correct calculation of
	instruction count.

2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR middle-end/39246
	* tree-complex.c (expand_complex_move): Keep line info when expanding
	complex move.
	* tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
	of complex expression. Use new argument to display correct location
	for values coming from phi statement.
	(warn_uninitialized_vars): Adapt to new signature of warn_uninit.
	(warn_uninitialized_phi): Pass location of phi argument to
	warn_uninit.
	* tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
	COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.

2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/predicates.md (indexed_address_mem): New.
	* config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
	load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
	fpstore_ux, fpstore_u.
	(sign_extend, indexed, update): New.
	(cell_micro): Adjust.
	(*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
	*extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
	*movsi_internal1, *movsi_internal1_single, *movhi_internal,
	*movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
	*mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
	*mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
	*mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
	*ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
	*movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
	*movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
	*movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
	*movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
	*movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
	*movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
	*stmw, *lmw, as well as 10 anonymous patterns): Adjust.

	* config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
	* config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
	*vsx_extract_<mode>_store): Adjust.
	* config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
	is_cracked_insn, insn_must_be_first_in_group,
	insn_must_be_last_in_group): Adjust.

	* config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
	Adjust.
	* config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
	ppc440-fpstore): Adjust.
	* config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
	ppc476-fpstore): Adjust.
	* config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
	ppc601-fpstore): Adjust.
	* config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
	Adjust.
	* config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
	Adjust.
	* config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
	ppc7450-fpstore): Adjust.
	* config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
	* config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
	* config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
	Adjust.
	* config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
	cell-fpload, cell-fpload-update, cell-store, cell-store-update,
	cell-fpstore, cell-fpstore-update): Adjust.
	* config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
	ppce300c3_store, ppce300c3_fpstore): Adjust.
	* config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
	e500mc_fpstore): Adjust.
	* config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
	e500mc64_store, e500mc64_fpstore): Adjust.
	* config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
	e5500_fpstore): Adjust.
	* config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
	e6500_fpstore): Adjust.
	* config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
	Adjust.
	* config/rs6000/power4.md (power4-load, power4-load-ext,
	power4-load-ext-update, power4-load-ext-update-indexed,
	power4-load-update-indexed, power4-load-update, power4-fpload,
	power4-fpload-update, power4-store, power4-store-update,
	power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
	Adjust.
	* config/rs6000/power5.md (power5-load, power5-load-ext,
	power5-load-ext-update, power5-load-ext-update-indexed,
	power5-load-update-indexed, power5-load-update, power5-fpload,
	power5-fpload-update, power5-store, power5-store-update,
	power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
	Adjust.
	* config/rs6000/power6.md (power6-load, power6-load-ext,
	power6-load-update, power6-load-update-indexed,
	power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
	power6-fpload-update, power6-store, power6-store-update,
	power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
	Adjust.
	* config/rs6000/power7.md (power7-load, power7-load-ext,
	power7-load-update, power7-load-update-indexed,
	power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
	power7-fpload-update, power7-store, power7-store-update,
	power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
	Adjust.
	* config/rs6000/power8.md (power8-load, power8-load-update,
	power8-load-ext, power8-load-ext-update, power8-fpload,
	power8-fpload-update, power8-store, power8-store-update-indexed,
	power8-fpstore, power8-fpstore-update): Adjust.
	* config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
	Adjust.
	* config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
	titan_lsu_store, titan_lsu_fpstore): Adjust.
	* config/rs6000/xfpu.md (fp-load, fp-store): Adjust.

2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/60884
	* config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
	unrolled byte insns.  Emit address increments after move insns.

2014-05-07  David Malcolm  <dmalcolm@redhat.com>

	* gimple.h (gimple_builtin_call_types_compatible_p): Accept a
	const_gimple, rather than a gimple.
	(gimple_call_builtin_p): Likewise, for the three variants.

	* gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
	(gimple_call_builtin_p): Likewise, for the three variants.

2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	PR tree-optimization/61095
	* tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.

2014-05-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61034
	* tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
	(maybe_skip_until): Use translate to take into account
	lattices when trying to do disambiguations.
	(get_continuation_for_phi_1): Likewise.
	(get_continuation_for_phi): Adjust for added translate arguments.
	(walk_non_aliased_vuses): Likewise.
	* tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
	(walk_non_aliased_vuses): Likewise.
	(call_may_clobber_ref_p_1): Declare.
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
	calls.  Stop early if we are only supposed to disambiguate.
	* tree-ssa-pre.c (translate_vuse_through_block): Adjust.

2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
	Emit an error when the function has arguments.

2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>

	* cfgloop.h (unswitch_loops): Remove.
	* doc/passes.texi: Remove references to loop-unswitch.c
	* timevar.def (TV_LOOP_UNSWITCH): Remove.

2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>

	* tree-vect-data-refs.c (vect_grouped_load_supported): New
	check for loads group of length 3.
	(vect_permute_load_chain): New permutations for loads group of
	length 3.
	* tree-vect-stmts.c (vect_model_load_cost): Change cost
	of vec_perm_shuffle for the new permutations.

2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
	vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
	vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
	vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
	vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
	vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
	vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
	vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.

2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>

	* loop-unswitch.c: Delete.

2014-05-07  Richard Biener  <rguenther@suse.de>

	* config.gcc: Always set need_64bit_hwint to yes.

2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
	of using optimize_size.

2014-05-06  Mike Stump  <mikestump@comcast.net>

	* wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.

2014-05-06  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/sse.md (*mov<mode>_internal)
	(*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
	(*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
	(<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
	(*<code><mode>3, *andnot<mode>3<mask_name>)
	(<mask_codefor><code><mode>3<mask_name>): Only consider
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.

2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>

	Revert:
	2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* lra-constraints.c (valid_address_p): Move earlier in file.
	Add a constraint argument to the address_info version.
	(satisfies_memory_constraint_p): New function.
	(satisfies_address_constraint_p): Likewise.
	(process_alt_operands, curr_insn_transform): Use them.
	(process_address): Pass the constraint to valid_address_p when
	checking address operands.

2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* lto-cgraph.c (compute_ltrans_boundary): Make node variables local
	to their respective blocks.  Fix inadvertent use of "node".

2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* emit-rtl.c (init_derived_machine_modes): New functionm, split
	out from...
	(init_emit_once): ...here.
	* rtl.h (init_derived_machine_modes): Declare.
	* toplev.c (do_compile): Call it even if no_backend.

2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
	    Mike Stump  <mikestump@comcast.net>
	    Richard Sandiford  <rdsandiford@googlemail.com>
	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* alias.c (ao_ref_from_mem): Use wide-int interfaces.
	(rtx_equal_for_memref_p): Update comment.
	(adjust_offset_for_component_ref): Use wide-int interfaces.
	* builtins.c (get_object_alignment_2): Likewise.
	(c_readstr): Likewise.
	(target_char_cast): Add comment.
	(determine_block_size): Use wide-int interfaces.
	(expand_builtin_signbit): Likewise.
	(fold_builtin_int_roundingfn): Likewise.
	(fold_builtin_bitop): Likewise.
	(fold_builtin_bswap): Likewise.
	(fold_builtin_logarithm): Use signop.
	(fold_builtin_pow): Likewise.
	(fold_builtin_memory_op): Use wide-int interfaces.
	(fold_builtin_object_size): Likewise.
	* cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
	nb_iterations_estimate.
	(record_niter_bound): Use wide-int interfaces.
	(get_estimated_loop_iterations_int): Likewise.
	(get_estimated_loop_iterations): Likewise.
	(get_max_loop_iterations): Likewise.
	* cfgloop.h: Include wide-int.h.
	(struct nb_iter_bound): Change bound to widest_int.
	(struct loop): Change nb_iterations_upper_bound and
	nb_iterations_estimate to widest_int.
	(record_niter_bound): Switch to use widest_int.
	(get_estimated_loop_iterations): Likewise.
	(get_max_loop_iterations): Likewise.
	(gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
	update for wide-int.
	* cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
	* combine.c (try_combine): Likewise.
	(subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
	* config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
	interfaces.
	(aarch64_float_const_representable_p): Likewise.
	* config/arc/arc.c: Include wide-int.h.
	(arc_can_use_doloop_p): Use wide-int interfaces.
	* config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
	(vfp3_const_double_index): Likewise.
	* config/avr/avr.c (avr_out_round): Likewise.
	(avr_fold_builtin): Likewise.
	* config/bfin/bfin.c (bfin_local_alignment): Likewise.
	(bfin_can_use_doloop_p): Likewise.
	* config/darwin.c (darwin_mergeable_constant_section): Likewise.
	(machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
	* config/i386/i386.c: Include wide-int.h.
	(ix86_data_alignment): Use wide-int interfaces.
	(ix86_local_alignment): Likewise.
	(ix86_emit_swsqrtsf): Update real_from_integer.
	* config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
	* config/nds32/nds32.c (nds32_insert_attributes): Likewise.
	* config/rs6000/predicates.md (any_operand): Add const_wide_int.
	(zero_constant): Likewise.
	(input_operand): Likewise.
	(splat_input_operand): Likewise.
	(non_logical_cint_operand): Change const_double to const_wide_int.
	* config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
	(easy_altivec_constant): Remove comment.
	(paired_expand_vector_init): Use CONSTANT_P.
	(rs6000_legitimize_address): Handle CONST_WIDE_INT.
	(rs6000_emit_move): Update checks.
	(rs6000_aggregate_candidate): Use wide-int interfaces.
	(rs6000_expand_ternop_builtin): Likewise.
	(rs6000_output_move_128bit): Handle CONST_WIDE_INT.
	(rs6000_assemble_integer): Likewise.
	(rs6000_hash_constant): Likewise.
	(output_toc): Likewise.
	(rs6000_rtx_costs): Likewise.
	(rs6000_emit_swrsqrt); Update call to real_from_integer.
	* config/rs6000/rs6000-c.c: Include wide-int.h.
	(altivec_resolve_overloaded_builtin): Use wide-int interfaces.
	* config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
	* config/rs6000/rs6000.md: Use const_scalar_int_operand.
	Handle CONST_WIDE_INT.
	* config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
	Use tree_fits_uhwi_p.
	* config/sparc/sparc.c: Include wide-int.h.
	(sparc_fold_builtin): Use wide-int interfaces.
	* config/vax/vax.c: Include wide-int.h.
	(vax_float_literal): Use real_from_integer.
	* coretypes.h (struct hwivec_def): New.
	(hwivec): New.
	(const_hwivec): New.
	* cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
	(equiv_constant): Handle CONST_WIDE_INT.
	* cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
	(cselib_hash_rtx): Handle CONST_WIDE_INT.
	* dbxout.c (stabstr_U): Use wide-int interfaces.
	(dbxout_type): Update to use cst_fits_shwi_p.
	* defaults.h (LOG2_BITS_PER_UNIT): Define.
	(TARGET_SUPPORTS_WIDE_INT): Add default.
	* dfp.c: Include wide-int.h.
	(decimal_real_to_integer2): Use wide-int interfaces and rename to
	decimal_real_to_integer.
	* dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
	decimal_real_to_integer.
	* doc/generic.texi (Constant expressions): Update for wide_int.
	* doc/rtl.texi (const_double): Likewise.
	(const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
	(CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
	* doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
	(REAL_VALUE_FROM_INT): Remove.
	(TARGET_SUPPORTS_WIDE_INT): New.
	* doc/tm.texi: Regenerate.
	* dojump.c (prefer_and_bit_test): Use wide-int interfaces.
	* double-int.h: Include wide-int.h.
	(struct wi::int_traits): New.
	* dwarf2out.c (get_full_len): New.
	(dw_val_equal_p): Add case dw_val_class_wide_int.
	(size_of_loc_descr): Likewise.
	(output_loc_operands): Likewise.
	(insert_double): Remove.
	(insert_wide_int): New.
	(add_AT_wide): New.
	(print_die): Add case dw_val_class_wide_int.
	(attr_checksum): Likewise.
	(attr_checksum_ordered): Likewise.
	(same_dw_val_p): Likewise.
	(size_of_die): Likewise.
	(value_format): Likewise.
	(output_die): Likewise.
	(double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
	Use wide-int.
	(clz_loc_descriptor): Use wide-int interfaces.
	(mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
	(loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
	(round_up_to_align): Use wide-int interfaces.
	(field_byte_offset): Likewise.
	(insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
	(add_const_value_attribute): Handle CONST_WIDE_INT.  Update
	CONST_DOUBLE handling.  Use wide-int interfaces.
	(add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
	(gen_enumeration_type_die): Use add_AT_wide.
	(hash_loc_operands): Add case dw_val_class_wide_int.
	(compare_loc_operands): Likewise.
	* dwarf2out.h: Include wide-int.h.
	(wide_int_ptr): New.
	(enum dw_val_class): Add dw_val_class_wide_int.
	(struct dw_val_struct): Add val_wide.
	* emit-rtl.c (const_wide_int_htab): New.
	(const_wide_int_htab_hash): New.
	(const_wide_int_htab_eq): New.
	(lookup_const_wide_int): New.
	(const_double_htab_hash): Use wide-int interfaces.
	(const_double_htab_eq): Likewise.
	(rtx_to_double_int): Conditionally compile for wide-int.
	(immed_double_int_const): Rename to immed_wide_int_const and
	update for wide-int.
	(immed_double_const): Conditionally compile for wide-int.
	(init_emit_once): Use wide-int interfaces.
	* explow.c (plus_constant): Likewise.
	* expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
	(lshift_value): Use wide-int interfaces.
	(expand_mult): Likewise.
	(choose_multiplier): Likewise.
	(expand_smod_pow2): Likewise.
	(make_tree): Likewise.
	* expr.c (convert_modes): Consolidate handling of constants.
	Use wide-int interfaces.
	(emit_group_load_1): Add note.
	(store_expr): Update comment.
	(get_inner_reference): Use wide-int interfaces.
	(expand_constructor): Update comment.
	(expand_expr_real_2): Use wide-int interfaces.
	(expand_expr_real_1): Likewise.
	(reduce_to_bit_field_precision): Likewise.
	(const_vector_from_tree): Likewise.
	* final.c: Include wide-int-print.h.
	(output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
	* fixed-value.c: Include wide-int.h.
	(fixed_from_string): Use wide-int interfaces.
	(fixed_to_decimal): Likewise.
	(fixed_convert_from_real): Likewise.
	(real_convert_from_fixed): Likewise.
	* fold-const.h (mem_ref_offset): Return an offset_int.
	(div_if_zero_remainder): Remove code parameter.
	* fold-const.c (div_if_zero_remainder): Remove code parameter.
	Use wide-int interfaces.
	(may_negate_without_overflow_p): Use wide-int interfaces.
	(negate_expr_p): Likewise.
	(fold_negate_expr): Likewise.
	(int_const_binop_1): Likewise.
	(const_binop): Likewise.
	(fold_convert_const_int_from_int): Likewise.
	(fold_convert_const_int_from_real): Likewise.
	(fold_convert_const_int_from_fixed): Likewise.
	(fold_convert_const_fixed_from_int): Likewise.
	(all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
	(sign_bit_p): Use wide-int interfaces.
	(make_range_step): Likewise.
	(build_range_check): Likewise.  Pass an integer of the correct type
	instead of using integer_one_node.
	(range_predecessor): Pass an integer of the correct type instead
	of using integer_one_node.
	(range_successor): Likewise.
	(merge_ranges): Likewise.
	(unextend): Use wide-int interfaces.
	(extract_muldiv_1): Likewise.
	(fold_div_compare): Likewise.
	(fold_single_bit_test): Likewise.
	(fold_sign_changed_comparison): Likewise.
	(try_move_mult_to_index): Update calls to div_if_zero_remainder.
	(fold_plusminus_mult_expr): Use wide-int interfaces.
	(native_encode_int): Likewise.
	(native_interpret_int): Likewise.
	(fold_unary_loc): Likewise.
	(pointer_may_wrap_p): Likewise.
	(size_low_cst): Likewise.
	(mask_with_tz): Likewise.
	(fold_binary_loc): Likewise.
	(fold_ternary_loc): Likewise.
	(multiple_of_p): Likewise.
	(tree_call_nonnegative_warnv_p): Update calls to
	tree_int_cst_min_precision and real_from_integer.
	(fold_negate_const): Use wide-int interfaces.
	(fold_abs_const): Likewise.
	(fold_relational_const): Use tree_int_cst_lt.
	(round_up_loc): Use wide-int interfaces.
	* genemit.c (gen_exp): Add CONST_WIDE_INT case.
	* gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
	* gengtype.c: Remove include of double-int.h.
	(do_typedef): Use wide-int interfaces.
	(open_base_files): Add wide-int.h.
	(main): Add offset_int and widest_int typedefs.
	* gengtype-lex.l: Handle "^".
	(CXX_KEYWORD): Add "static".
	* gengtype-parse.c (require3): New.
	(require_template_declaration): Handle constant template arguments
	and nested templates.
	* gengtype-state.c: Don't include "double-int.h".
	* genpreds.c (write_one_predicate_function): Update comment.
	(write_tm_constrs_h): Add check for hval and lval use in
	CONST_WIDE_INT.
	* genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
	(add_to_sequence): Likewise.
	* gensupport.c (struct std_pred_table): Add const_scalar_int_operand
	and const_double_operand.
	* gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
	interfaces.
	* gimple-fold.c (get_base_constructor): Likewise.
	(fold_array_ctor_reference): Likewise.
	(fold_nonarray_ctor_reference): Likewise.
	(fold_const_aggregate_ref_1): Likewise.
	(gimple_val_nonnegative_real_p): Likewise.
	(gimple_fold_indirect_ref): Likewise.
	* gimple-pretty-print.c (dump_ssaname_info): Likewise.
	* gimple-ssa-strength-reduction.c: Include wide-int-print.h.
	(struct slsr_cand_d): Change index to be widest_int.
	(struct incr_info_d): Change incr to be widest_int.
	(alloc_cand_and_find_basis): Use wide-int interfaces.
	(slsr_process_phi): Likewise.
	(backtrace_base_for_ref): Likewise.  Return a widest_int.
	(restructure_reference): Take a widest_int instead of a double_int.
	(slsr_process_ref): Use wide-int interfaces.
	(create_mul_ssa_cand): Likewise.
	(create_mul_imm_cand): Likewise.
	(create_add_ssa_cand): Likewise.
	(create_add_imm_cand): Take a widest_int instead of a double_int.
	(slsr_process_add): Use wide-int interfaces.
	(slsr_process_cast): Likewise.
	(slsr_process_copy): Likewise.
	(dump_candidate): Likewise.
	(dump_incr_vec): Likewise.
	(replace_ref): Likewise.
	(cand_increment): Likewise.  Return a widest_int.
	(cand_abs_increment): Likewise.
	(replace_mult_candidate): Take a widest_int instead of a double_int.
	(replace_unconditional_candidate): Use wide-int interfaces.
	(incr_vec_index): Take a widest_int instead of a double_int.
	(create_add_on_incoming_edge): Likewise.
	(create_phi_basis): Use wide-int interfaces.
	(replace_conditional_candidate): Likewise.
	(record_increment): Take a widest_int instead of a double_int.
	(record_phi_increments): Use wide-int interfaces.
	(phi_incr_cost): Take a widest_int instead of a double_int.
	(lowest_cost_path): Likewise.
	(total_savings): Likewise.
	(analyze_increments): Use wide-int interfaces.
	(ncd_with_phi): Take a widest_int instead of a double_int.
	(ncd_of_cand_and_phis): Likewise.
	(nearest_common_dominator_for_cands): Likewise.
	(insert_initializers): Use wide-int interfaces.
	(all_phi_incrs_profitable): Likewise.
	(replace_one_candidate): Likewise.
	(replace_profitable_candidates): Likewise.
	* godump.c: Include wide-int-print.h.
	(go_output_typedef): Use wide-int interfaces.
	* graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
	* graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
	(build_loop_iteration_domains): Likewise.
	* hooks.h: Include wide-int.h rather than double-int.h.
	(hook_bool_dint_dint_uint_bool_true): Delete.
	(hook_bool_wint_wint_uint_bool_true): Declare.
	* hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
	(hook_bool_wint_wint_uint_bool_true): New.
	* internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
	interfaces.
	(ubsan_expand_si_overflow_mul_check): Likewise.
	* ipa-devirt.c (get_polymorphic_call_info): Likewise.
	* ipa-prop.c (compute_complex_assign_jump_func): Likewise.
	(get_ancestor_addr_info): Likewise.
	(ipa_modify_call_arguments): Likewise.
	* loop-doloop.c (doloop_modify): Likewise.
	(doloop_optimize): Likewise.
	* loop-iv.c (iv_number_of_iterations): Likewise.
	* loop-unroll.c (decide_unroll_constant_iterations): Likewise.
	(unroll_loop_constant_iterations): Likewise.
	(decide_unroll_runtime_iterations): Likewise.
	(unroll_loop_runtime_iterations): Likewise.
	(decide_peel_simple): Likewise.
	(decide_unroll_stupid): Likewise.
	* lto-streamer-in.c (streamer_read_wi): Add.
	(input_cfg): Use wide-int interfaces.
	(lto_input_tree_1): Likewise.
	* lto-streamer-out.c (streamer_write_wi): Add.
	(hash_tree): Use wide-int interfaces.
	(output_cfg): Likewise.
	* Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
	(GTFILES): Add wide-int.h and signop.h.
	(TAGS): Look for .cc files too.
	* omp-low.c (scan_omp_1_op): Use wide-int interfaces.
	* optabs.c (expand_subword_shift): Likewise.
	(expand_doubleword_shift): Likewise.
	(expand_absneg_bit): Likewise.
	(expand_copysign_absneg): Likewise.
	(expand_copysign_bit): Likewise.
	* postreload.c (reload_cse_simplify_set): Likewise.
	* predict.c (predict_iv_comparison): Likewise.
	* pretty-print.h: Include wide-int-print.h.
	(pp_wide_int) New.
	* print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
	* print-tree.c: Include wide-int-print.h.
	(print_node_brief): Use wide-int interfaces.
	(print_node): Likewise.
	* read-rtl.c (validate_const_wide_int): New.
	(read_rtx_code): Add CONST_WIDE_INT case.
	* real.c: Include wide-int.h.
	(real_to_integer2): Delete.
	(real_to_integer): New function, returning a wide_int.
	(real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
	(ten_to_ptwo): Update call to real_from_integer.
	(real_digit): Likewise.
	* real.h: Include signop.h, wide-int.h and insn-modes.h.
	(real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
	(REAL_VALUE_TO_INT): Delete.
	(real_to_integer): Declare a wide-int form.
	(real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
	* recog.c (const_int_operand): Improve comment.
	(const_scalar_int_operand): New.
	(const_double_operand): Add a separate definition for CONST_WIDE_INT.
	* rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
	(split_double): Likewise.
	* rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
	(rtx_size): Likewise.
	(rtx_alloc_stat_v): New.
	(rtx_alloc_stat): Now calls rtx_alloc_stat_v.
	(cwi_output_hex): New.
	(iterative_hash_rtx): Handle CONST_WIDE_INT.
	(cwi_check_failed_bounds): New.
	* rtl.def (CONST_WIDE_INT): New.
	* rtl.h: Include <utility> and wide-int.h.
	(struct hwivec_def): New.
	(CWI_GET_NUM_ELEM): New.
	(CWI_PUT_NUM_ELEM): New.
	(struct rtx_def): Add num_elem and hwiv.
	(CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
	(CASE_CONST_UNIQUE): Likewise.
	(CASE_CONST_ANY): Likewise.
	(CONST_SCALAR_INT_P): Likewise.
	(CONST_WIDE_INT_P): New.
	(CWI_ELT): New.
	(HWIVEC_CHECK): New.
	(cwi_check_failed_bounds): New.
	(CWI_ELT): New.
	(HWIVEC_CHECK): New.
	(CONST_WIDE_INT_VEC) New.
	(CONST_WIDE_INT_NUNITS) New.
	(CONST_WIDE_INT_ELT) New.
	(rtx_mode_t): New type.
	(wi::int_traits <rtx_mode_t>): New.
	(wi::shwi): New.
	(wi::min_value): New.
	(wi::max_value): New.
	(rtx_alloc_v) New.
	(const_wide_int_alloc): New.
	(immed_wide_int_const): New.
	* sched-vis.c (print_value): Handle CONST_WIDE_INT.
	* sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
	* signop.h: New file.
	* simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
	(simplify_const_unary_operation): Use wide-int interfaces.
	(simplify_binary_operation_1): Likewise.
	(simplify_const_binary_operation): Likewise.
	(simplify_const_relational_operation): Likewise.
	(simplify_immed_subreg): Likewise.
	* stmt.c (expand_case): Likewise.
	* stor-layout.h (set_min_and_max_values_for_integral_type): Take a
	signop rather than a bool.
	* stor-layout.c (layout_type): Use wide-int interfaces.
	(initialize_sizetypes): Update calls to
	set_min_and_max_values_for_integral_type.
	(set_min_and_max_values_for_integral_type): Take a signop rather
	than a bool.  Use wide-int interfaces.
	(fixup_signed_type): Update accordingly.  Remove
	HOST_BITS_PER_DOUBLE_INT limit.
	(fixup_unsigned_type): Likewise.
	* system.h (STATIC_CONSTANT_P): New.
	(STATIC_ASSERT): New.
	* target.def (can_use_doloop_p): Take widest_ints rather than
	double_ints.
	* target.h: Include wide-int.h rather than double-int.h.
	* targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
	than double_ints.
	* targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
	rather than INT_CST_LT_UNSIGNED.
	(can_use_doloop_if_innermost): Take widest_ints rather than
	double_ints.
	* tree-affine.c: Include wide-int-print.h.
	(double_int_ext_for_comb): Delete.
	(wide_int_ext_for_comb): New.
	(aff_combination_zero): Use wide-int interfaces.
	(aff_combination_const): Take a widest_int instead of a double_int.
	(aff_combination_elt): Use wide-int interfaces.
	(aff_combination_scale): Take a widest_int instead of a double_int.
	(aff_combination_add_elt): Likewise.
	(aff_combination_add_cst): Likewise.
	(aff_combination_add): Use wide-int interfaces.
	(aff_combination_convert): Likewise.
	(tree_to_aff_combination): Likewise.
	(add_elt_to_tree): Take a widest_int instead of a double_int.
	(aff_combination_to_tree): Use wide-int interfaces.
	(aff_combination_remove_elt): Likewise.
	(aff_combination_add_product): Take a widest_int instead of
	a double_int.
	(aff_combination_mult): Use wide-int interfaces.
	(aff_combination_expand): Likewise.
	(double_int_constant_multiple_p): Delete.
	(wide_int_constant_multiple_p): New.
	(aff_combination_constant_multiple_p): Take a widest_int pointer
	instead of a double_int pointer.
	(print_aff): Use wide-int interfaces.
	(get_inner_reference_aff): Take a widest_int pointer
	instead of a double_int pointer.
	(aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
	* tree-affine.h: Include wide-int.h.
	(struct aff_comb_elt): Change type of coef to widest_int.
	(struct affine_tree_combination): Change type of offset to widest_int.
	(double_int_ext_for_comb): Delete.
	(wide_int_ext_for_comb): New.
	(aff_combination_const): Use widest_int instead of double_int.
	(aff_combination_scale): Likewise.
	(aff_combination_add_elt): Likewise.
	(aff_combination_constant_multiple_p): Likewise.
	(get_inner_reference_aff): Likewise.
	(aff_comb_cannot_overlap_p): Likewise.
	(aff_combination_zero_p): Use wide-int interfaces.
	* tree.c: Include tree.h.
	(init_ttree): Use make_int_cst.
	(tree_code_size): Removed code for INTEGER_CST case.
	(tree_size): Add INTEGER_CST case.
	(make_node_stat): Update comment.
	(get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
	(build_int_cst_type): Use wide-int interfaces.
	(double_int_to_tree): Likewise.
	(double_int_fits_to_tree_p): Delete.
	(force_fit_type_double): Delete.
	(force_fit_type): New.
	(int_cst_hash_hash): Use wide-int interfaces.
	(int_cst_hash_eq): Likewise.
	(build_int_cst_wide): Delete.
	(wide_int_to_tree): New.
	(cache_integer_cst): Use wide-int interfaces.
	(build_low_bits_mask): Likewise.
	(cst_and_fits_in_hwi): Likewise.
	(real_value_from_int_cst): Likewise.
	(make_int_cst_stat): New.
	(integer_zerop): Use wide_int interfaces.
	(integer_onep): Likewise.
	(integer_all_onesp): Likewise.
	(integer_pow2p): Likewise.
	(integer_nonzerop): Likewise.
	(tree_log2): Likewise.
	(tree_floor_log2): Likewise.
	(tree_ctz): Likewise.
	(int_size_in_bytes): Likewise.
	(mem_ref_offset): Return an offset_int rather than a double_int.
	(build_type_attribute_qual_variant): Use wide_int interfaces.
	(type_hash_eq): Likewise
	(tree_int_cst_equal): Likewise.
	(tree_int_cst_lt): Delete.
	(tree_int_cst_compare): Likewise.
	(tree_fits_shwi_p): Use wide_int interfaces.
	(tree_fits_uhwi_p): Likewise.
	(tree_int_cst_sign_bit): Likewise.
	(tree_int_cst_sgn): Likewise.
	(tree_int_cst_min_precision): Take a signop rather than a bool.
	(simple_cst_equal): Use wide_int interfaces.
	(compare_tree_int): Likewise.
	(iterative_hash_expr): Likewise.
	(int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
	INT_CST_LT.
	(get_type_static_bounds): Use wide_int interfaces.
	(tree_int_cst_elt_check_failed): New.
	(build_common_tree_nodes): Reordered to set prec before filling in
	value.
	(int_cst_value): Check cst_and_fits_in_hwi.
	(widest_int_cst_value): Use wide_int interfaces.
	(upper_bound_in_type): Likewise.
	(lower_bound_in_type): Likewise.
	(num_ending_zeros): Likewise.
	(drop_tree_overflow): Likewise.
	* tree-call-cdce.c (check_pow): Update call to real_from_integer.
	(gen_conditions_for_pow_cst_base): Likewise.
	* tree-cfg.c: Include wide-int.h and wide-int-print.h.
	(group_case_labels_stmt): Use wide-int interfaces.
	(verify_gimple_assign_binary): Likewise.
	(print_loop): Likewise.
	* tree-chrec.c (tree_fold_binomial): Likewise.
	* tree-core.h (struct tree_base): Add int_length.
	(struct tree_int_cst): Change rep of value.
	* tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
	(dr_may_alias_p): Likewise.
	(max_stmt_executions_tree): Likewise.
	* tree.def (INTEGER_CST): Update comment.
	* tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
	* tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
	* tree-dump.c: Include wide-int.h and wide-int-print.h.
	(dequeue_and_dump): Use wide-int interfaces.
	* tree.h: Include wide-int.h.
	(NULL_TREE): Moved to earlier loc in file.
	(TREE_INT_CST_ELT_CHECK): New.
	(tree_int_cst_elt_check_failed): New.
	(TYPE_SIGN): New.
	(TREE_INT_CST): Delete.
	(TREE_INT_CST_LOW): Use wide-int interfaces.
	(TREE_INT_CST_HIGH): Delete.
	(TREE_INT_CST_NUNITS): New.
	(TREE_INT_CST_EXT_NUNITS): Likewise.
	(TREE_INT_CST_OFFSET_NUNITS): Likewise.
	(TREE_INT_CST_ELT): Likewise.
	(INT_CST_LT): Delete.
	(tree_int_cst_elt_check): New (two forms).
	(type_code_size): Update comment.
	(make_int_cst_stat, make_int_cst): New.
	(tree_to_double_int): Delete.
	(double_int_fits_to_tree_p): Delete.
	(force_fit_type_double): Delete.
	(build_int_cstu): Replace with out-of-line function.
	(build_int_cst_wide): Delete.
	(tree_int_cst_lt): Define inline.
	(tree_int_cst_le): New.
	(tree_int_cst_compare): Define inline.
	(tree_int_cst_min_precision): Take a signop rather than a bool.
	(wi::int_traits <const_tree>): New.
	(wi::int_traits <tree>): New.
	(wi::extended_tree): New.
	(wi::int_traits <wi::extended_tree>): New.
	(wi::to_widest): New.
	(wi::to_offset): New.
	(wi::fits_to_tree_p): New.
	(wi::min_value): New.
	(wi::max_value): New.
	* tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
	(copy_tree_body_r): Likewise.
	* tree-object-size.c (compute_object_offset): Likewise.
	(addr_object_size): Likewise.
	* tree-predcom.c: Include wide-int-print.h.
	(struct dref_d): Change type of offset to widest_int.
	(dump_dref): Call wide-int printer.
	(aff_combination_dr_offset): Use wide-int interfaces.
	(determine_offset): Take a widest_int pointer rather than a
	double_int pointer.
	(split_data_refs_to_components): Use wide-int interfaces.
	(suitable_component_p): Likewise.
	(order_drefs): Likewise.
	(add_ref_to_chain): Likewise.
	(valid_initializer_p): Likewise.
	(determine_roots_comp): Likewise.
	* tree-pretty-print.c: Include wide-int-print.h.
	(dump_generic_node): Use wide-int interfaces.
	* tree-sra.c (sra_ipa_modify_expr): Likewise.
	* tree-ssa-address.c (addr_for_mem_ref): Likewise.
	(move_fixed_address_to_symbol): Likewise.
	(move_hint_to_base): Likewise.
	(move_pointer_to_base): Likewise.
	(move_variant_to_index): Likewise.
	(most_expensive_mult_to_index): Likewise.
	(addr_to_parts): Likewise.
	(copy_ref_info): Likewise.
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
	(indirect_refs_may_alias_p): Likewise.
	(stmt_kills_ref_p_1): Likewise.
	* tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
	* tree-ssa-ccp.c: Update comment at top of file.  Include
	wide-int-print.h.
	(struct prop_value_d): Change type of mask to widest_int.
	(extend_mask): New function.
	(dump_lattice_value): Use wide-int interfaces.
	(get_default_value): Likewise.
	(set_constant_value): Likewise.
	(set_value_varying): Likewise.
	(valid_lattice_transition): Likewise.
	(set_lattice_value): Likewise.
	(value_to_double_int): Delete.
	(value_to_wide_int): New.
	(get_value_from_alignment): Use wide-int interfaces.
	(get_value_for_expr): Likewise.
	(do_dbg_cnt): Likewise.
	(ccp_finalize): Likewise.
	(ccp_lattice_meet): Likewise.
	(bit_value_unop_1): Use widest_ints rather than double_ints.
	(bit_value_binop_1): Likewise.
	(bit_value_unop): Use wide-int interfaces.
	(bit_value_binop): Likewise.
	(bit_value_assume_aligned): Likewise.
	(evaluate_stmt): Likewise.
	(ccp_fold_stmt): Likewise.
	(visit_cond_stmt): Likewise.
	(ccp_visit_stmt): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
	(constant_pointer_difference): Likewise.
	(associate_pointerplus): Likewise.
	(combine_conversions): Likewise.
	* tree-ssa-loop.h: Include wide-int.h.
	(struct tree_niter_desc): Change type of max to widest_int.
	* tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
	(remove_redundant_iv_tests): Likewise.
	(canonicalize_loop_induction_variables): Likewise.
	* tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
	(constant_multiple_of): Take a widest_int pointer instead of
	a double_int pointer.
	(get_computation_aff): Use wide-int interfaces.
	(ptr_difference_cost): Likewise.
	(difference_cost): Likewise.
	(get_loop_invariant_expr_id): Likewise.
	(get_computation_cost_at): Likewise.
	(iv_elimination_compare_lt): Likewise.
	(may_eliminate_iv): Likewise.
	* tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
	instead of double_int.
	(max_loop_iterations): Likewise.
	(max_stmt_executions): Likewise.
	(estimated_stmt_executions): Likewise.
	* tree-ssa-loop-niter.c: Include wide-int-print.h.
	(split_to_var_and_offset): Use wide-int interfaces.
	(determine_value_range): Likewise.
	(bound_difference_of_offsetted_base): Likewise.
	(bounds_add): Take a widest_int instead of a double_int.
	(number_of_iterations_ne_max): Use wide-int interfaces.
	(number_of_iterations_ne): Likewise.
	(number_of_iterations_lt_to_ne): Likewise.
	(assert_loop_rolls_lt): Likewise.
	(number_of_iterations_lt): Likewise.
	(number_of_iterations_le): Likewise.
	(number_of_iterations_cond): Likewise.
	(number_of_iterations_exit): Likewise.
	(finite_loop_p): Likewise.
	(derive_constant_upper_bound_assign): Likewise.
	(derive_constant_upper_bound): Return a widest_int.
	(derive_constant_upper_bound_ops): Likewise.
	(do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
	(record_estimate): Take a widest_int rather than a double_int.
	(record_nonwrapping_iv): Use wide-int interfaces.
	(double_int_cmp): Delete.
	(wide_int_cmp): New.
	(bound_index): Take a widest_int rather than a double_int.
	(discover_iteration_bound_by_body_walk): Use wide-int interfaces.
	(maybe_lower_iteration_bound): Likewise.
	(estimate_numbers_of_iterations_loop): Likewise.
	(estimated_loop_iterations): Take a widest_int pointer than than
	a double_int pointer.
	(estimated_loop_iterations_int): Use wide-int interfaces.
	(max_loop_iterations): Take a widest_int pointer than than
	a double_int pointer.
	(max_loop_iterations_int): Use wide-int interfaces.
	(max_stmt_executions): Take a widest_int pointer than than
	a double_int pointer.
	(estimated_stmt_executions): Likewise.
	(n_of_executions_at_most): Use wide-int interfaces.
	(scev_probably_wraps_p): Likewise.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
	to real_to_integer.
	* tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
	interfaces.
	* tree-ssanames.c (set_range_info): Use wide_int_refs rather than
	double_ints.  Adjust for trailing_wide_ints <3> representation.
	(set_nonzero_bits): Likewise.
	(get_range_info): Return wide_ints rather than double_ints.
	Adjust for trailing_wide_ints <3> representation.
	(get_nonzero_bits): Likewise.
	(duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
	representation.
	* tree-ssanames.h (struct range_info_def): Replace min, max and
	nonzero_bits with a trailing_wide_ints <3>.
	(set_range_info): Use wide_int_refs rather than double_ints.
	(set_nonzero_bits): Likewise.
	(get_range_info): Return wide_ints rather than double_ints.
	(get_nonzero_bits): Likewise.
	* tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
	* tree-ssa-pre.c (phi_translate_1): Likewise.
	* tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
	(acceptable_pow_call): Likewise.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
	interfaces.
	(vn_reference_fold_indirect): Likewise.
	(vn_reference_maybe_forwprop_address): Likewise.
	(valueize_refs_1): Likewise.
	* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
	* tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
	tree_int_cst_lt and tree_int_cst_le.
	* tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
	interfaces.
	(streamer_alloc_tree): Likewise.
	* tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
	(streamer_write_tree_header): Likewise.
	(streamer_write_integer_cst): Likewise.
	* tree-switch-conversion.c (emit_case_bit_tests): Likewise.
	(build_constructors): Likewise.
	(array_value_type): Likewise.
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
	(vect_check_gather): Likewise.
	* tree-vect-generic.c (build_replicated_const): Likewise.
	(expand_vector_divmod): Likewise.
	* tree-vect-loop.c (vect_transform_loop): Likewise.
	* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
	(vect_do_peeling_for_alignment): Likewise.
	* tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
	* tree-vrp.c: Include wide-int.h.
	(operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
	(extract_range_from_assert): Use wide-int interfaces.
	(vrp_int_const_binop): Likewise.
	(zero_nonzero_bits_from_vr): Take wide_int pointers rather than
	double_int pointers.
	(ranges_from_anti_range): Use wide-int interfaces.
	(quad_int_cmp): Delete.
	(quad_int_pair_sort): Likewise.
	(extract_range_from_binary_expr_1): Use wide-int interfaces.
	(extract_range_from_unary_expr_1): Likewise.
	(adjust_range_with_scev): Likewise.
	(masked_increment): Take and return wide_ints rather than double_ints.
	(register_edge_assert_for_2): Use wide-int interfaces.
	(check_array_ref): Likewise.
	(search_for_addr_array): Likewise.
	(maybe_set_nonzero_bits): Likewise.
	(union_ranges): Pass an integer of the correct type instead of
	using integer_one_node.
	(intersect_ranges): Likewise.
	(simplify_truth_ops_using_ranges): Likewise.
	(simplify_bit_ops_using_ranges): Use wide-int interfaces.
	(range_fits_type_p): Likewise.
	(simplify_cond_using_ranges): Likewise.  Take a signop rather than
	a bool.
	(simplify_conversion_using_ranges): Use wide-int interfaces.
	(simplify_float_conversion_using_ranges): Likewise.
	(vrp_finalize): Likewise.
	* value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
	(gimple_stringops_transform): Likewise.
	* varasm.c (decode_addr_const): Likewise.
	(const_hash_1): Likewise.
	(const_rtx_hash_1): Likewise
	(output_constant): Likewise.
	(array_size_for_constructor): Likewise.
	(output_constructor_regular_field): Likewise.
	(output_constructor_bitfield): Likewise.
	* var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
	* mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
	GENERATOR_FILEs.
	* gencheck.c: Define BITS_PER_UNIT.
	* wide-int.cc: New.
	* wide-int.h: New.
	* wide-int-print.cc: New.
	* wide-int-print.h: New.

2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/avr/avr.c (avr_can_eliminate): Mark unused argument.

2014-05-06  Richard Biener  <rguenther@suse.de>

	* tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
	TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
	(TODO_verify_all): Adjust.
	* asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
	TODO_verify_stmts and TODO_verify_rtl_sharing.
	* bb-reorder.c: Likewise.
	* cfgexpand.c: Likewise.
	* cprop.c: Likewise.
	* cse.c: Likewise.
	* function.c: Likewise.
	* fwprop.c: Likewise.
	* gcse.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* ipa-split.c: Likewise.
	* loop-init.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* modulo-sched.c: Likewise.
	* postreload-gcse.c: Likewise.
	* predict.c: Likewise.
	* recog.c: Likewise.
	* sched-rgn.c: Likewise.
	* store-motion.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-emutls.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-pass.h: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* tsan.c: Likewise.
	* var-tracking.c: Likewise.
	* bt-load.c: Likewise.
	* cfgcleanup.c: Likewise.
	* combine-stack-adj.c: Likewise.
	* combine.c: Likewise.
	* compare-elim.c: Likewise.
	* config/epiphany/resolve-sw-modes.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh_treg_combine.cc: Likewise.
	* config/sparc/sparc.c: Likewise.
	* dce.c: Likewise.
	* dse.c: Likewise.
	* final.c: Likewise.
	* ifcvt.c: Likewise.
	* mode-switching.c: Likewise.
	* passes.c: Likewise.
	* postreload.c: Likewise.
	* ree.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* regrename.c: Likewise.
	* web.c: Likewise.

2014-05-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/61070
	* bitmap.c (debug_bitmap): Dump to stderr, not stdout.
	* tree-ssa-structalias.c (dump_solution_for_var): Likewise.

2014-05-05  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60965
	* ipa-devirt.c (get_class_context): Allow POD to change to non-POD.

2014-05-05  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* target.def (call_fusage_contains_non_callee_clobbers): New
	DEFHOOKPOD.
	* doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
	Hooks to @menu.
	(@node Miscellaneous Register Hooks): New node.
	(@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
	* doc/tm.texi: Regenerate.

2014-05-05  Marek Polacek  <polacek@redhat.com>

	PR driver/61065
	* opts.c (common_handle_option): Call error_at instead of warning_at.

2014-05-05  Richard Biener  <rguenther@suse.de>

	* passes.c (execute_function_todo): Don't reset TODO_verify_ssa
	from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
	under the TODO_verify_il umbrella.

2014-05-05  Richard Biener  <rguenther@suse.de>

	* passes.c (execute_function_todo): Move TODO_verify_flow under
	the TODO_verify_ul umbrella.

2014-05-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/61010
	* fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
	X & CST away from a CST that is the mask of a mode.

2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/picochip/picochip-protos.h (picochip_regno_nregs): Change
	int argument to enum machine_mode.
	(picochip_class_max_nregs): Ditto.
	* config/picochip/picochip.c (picochip_regno_nregs): Ditto.
	(picochip_class_max_nregs): Ditto.

2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* target.def: Add new target hook.
	* doc/tm.texi: Regenerate.
	* targhooks.h (default_keep_leaf_when_profiled): Add prototype.
	* targhooks.c (default_keep_leaf_when_profiled): New function.

	* config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
	(TARGET_KEEP_LEAF_WHEN_PROFILED): Define.

2014-05-05  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/60363
	* gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
	(copy_phi_args): New parameters.  Call get_value_locus_in_path.
	(update_destination_phis): New parameter.
	(create_edge_and_update_destination_phis): Ditto.
	(ssa_fix_duplicate_block_edges): Pass new arguments.
	(thread_single_edge): Ditto.

2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
	(RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
	(TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
	* config/rs6000/rs6000-builtin.def (BU_MISC_1):
	Use RS6000_BTM_HARD_FLOAT.
	(BU_MISC_2): Likewise.
	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
	RS6000_BTM_HARD_FLOAT.
	(rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
	is explicitly used.
	(rs6000_invalid_builtin): Add hard floating builtin support.
	(rs6000_expand_builtin): Relax the gcc_assert to allow the new
	hard float builtins.
	(rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.

2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
	Add missing function* argument.

2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* lra-constraints.c (valid_address_p): Move earlier in file.
	Add a constraint argument to the address_info version.
	(satisfies_memory_constraint_p): New function.
	(satisfies_address_constraint_p): Likewise.
	(process_alt_operands, curr_insn_transform): Use them.
	(process_address): Pass the constraint to valid_address_p when
	checking address operands.

2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_isa_rev): New variable.
	(mips_set_architecture): Set it.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
	from mips_isa_rev.
	(ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
	(ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
	(ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
	(ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
	(ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
	conditions in terms of mips_isa_rev.
	(mips_isa_rev): Declare.

2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh-mem.cc: Use tabs instead of spaces.
	(prob_unlikely, prob_likely): Make variables const.

2014-05-03  Denis Chertykov  <chertykov@gmail.com>

	* config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.

2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.

2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>

	* config/sh/sh.h (ROUND_ADVANCE): Delete macro.
	(ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
	* config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
	functions.
	(sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
	sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
	sh_pass_in_reg_p.
	Replace usage of ROUND_REG with sh_round_reg.
	Use CEIL instead of ROUND_ADVANCE.

2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/61026
	* config/sh/sh.c: Include stdlib headers before everything else.

2014-05-02  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (gimplify_adjust_omp_clauses_1): Handle
	GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
	(gimplify_adjust_omp_clauses): Simd region is never
	directly nested in combined parallel.  Instead, for linear
	with copyin/copyout, if in combined for simd loop, make decl
	firstprivate/lastprivate on OMP_FOR.
	* omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk): When setting endvar, also set
	fd->loop.v to the same value.

2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* hwint.h (zext_hwi): Fix signed overflow for prec == 63.

2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
	expression.

2014-05-02  Marek Polacek  <polacek@redhat.com>

	* doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.

2014-05-02  Kito Cheng  <kito@0xlab.org>

	* defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
	to a C expression marco.
	* ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
	* config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
	* config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
	* doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
	HONOR_REG_ALLOC_ORDER.
	* doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.

2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/arc/arc.c (TARGET_LRA_P): Undef before redefine.

2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/arc/arc.c (arc_select_cc_mode): Fix typo.

2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-if-conv.c (is_cond_scalar_reduction): New function.
	(convert_scalar_cond_reduction): Likewise.
	(predicate_scalar_phi): Add recognition and transformation
	of simple conditioanl reduction to be vectorizable.

2014-05-01  Marek Polacek  <polacek@redhat.com>

	PR c/43245
	* doc/invoke.texi: Document -Wdiscarded-qualifiers.

2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
	vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
	vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
	vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
	vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
	vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
	vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
	vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.

2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/arc/arc.opt (mlra): Move comment above option name
	to avoid mis-parsing as language options.

2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
	* config/sol2.h: ... here.
	* config/sol2-10.h: Remove.

	* config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
	(WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
	(DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
	(LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
	(LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
	* config/sol2.h: ... here.
	(SECTION_NAME_FORMAT): Don't redefine.
	(STARTFILE_ARCH32_SPEC): Rename to ...
	(STARTFILE_ARCH_SPEC): ... this.
	(ASM_OUTPUT_ALIGNED_COMMON): Move ...
	* config/sparc/sol2.h: ... here.
	(SECTION_NAME_FORMAT): Don't undef.
	* config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
	(SUBTARGET_EXTRA_SPECS): Remove.
	* config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.

	* config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
	(MD_STARTFILE_PREFIX): Remove.
	(SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
	(ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
	(ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
	(ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
	(ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
	(USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
	* config/i386/sol2.h: ... here.
	(TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
	* config/i386/sol2-bi.h: Remove.
	* config/sol2.h (MD_STARTFILE_PREFIX): Remove.
	(LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.

	* config/i386/t-sol2-64: Rename to ...
	* config/i386/t-sol2: ... this.
	* config/sparc/t-sol2-64: Rename to ...
	* config/sparc/t-sol2: ... this.

	* config.gcc (*-*-solaris2*): Split sol2_tm_file into
	sol2_tm_file_head, sol2_tm_file_tail.
	Include ${cpu_type}/sol2.h before sol2.h.
	Remove sol2-10.h.
	(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
	i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
	Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
	Reflect i386/t-sol2-64 renaming.
	(sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
	Reflect sparc/t-sol2-64 renaming.

2014-04-30  Richard Biener  <rguenther@suse.de>

	* passes.c (execute_function_todo): Move TODO_verify_stmts
	and TODO_verify_ssa under the TODO_verify_il umbrella.
	* tree-ssa.h (verify_ssa): Adjust prototype.
	* tree-ssa.c (verify_ssa): Add parameter to tell whether
	we should verify SSA operands.
	* tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
	* tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
	whether we should verify whether not throwing stmts have EH info.
	* graphite-scop-detection.c (create_sese_edges): Adjust.
	* tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
	* tree-eh.c (lower_try_finally_switch): Do not add the
	default case label twice.

2014-04-30  Marek Polacek  <polacek@redhat.com>

	* gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
	* builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
	* flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
	* opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.

2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
	vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
	vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
	vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
	vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
	vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
	vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
	vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.

2014-04-29  David Malcolm  <dmalcolm@redhat.com>

	* tree-cfg.c (dump_function_to_file): Dump the return type of
	functions, in a line to itself before the function body, mimicking
	the layout of a C function.

2014-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/60971
	* tree-tailcall.c (process_assignment): Reject conversions which
	reduce precision.

2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>

	* calls.c (initialize_argument_information): Always treat
	PUSH_ARGS_REVERSED as 1, simplify code accordingly.
	(expand_call): Likewise.
	(emit_library_call_calue_1): Likewise.
	* expr.c (PUSH_ARGS_REVERSED): Do not define.
	(emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
	code accordingly.

2014-04-29  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.md (umulsidi): Fix typo.
	(mulhisi3): Enable even inside interrupt handlers.
	* config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
	bigger return address pushed in large mode.

2014-04-29  Nick Clifton  <nickc@redhat.com>

	* config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
	(arc_init_reg_tables): Use a machine_mode enum to iterate over
	available modes.
	* config/m32r/m32r.c (init_reg_tables): Likewise.
	* config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
	enum to hold the modes.

2014-04-29  Richard Biener  <rguenther@suse.de>

	* dominance.c (free_dominance_info): Add overload with
	function parameter.
	(dom_info_state): Likewise.
	(dom_info_available_p): Likewise.
	* basic-block.h (free_dominance_info, dom_info_state,
	dom_info_available_p): Declare overloads.
	* passes.c (execute_function_todo): Verify that verifiers
	don't change dominator info state.  Drop dominator info
	for IPA pass invocations.
	* cgraph.c (release_function_body): Restore asserts that
	dominator information is released.

2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>

	* doc/invoke.texi: Fix typo.
	* tree-vrp.c: Fix typos.
	* gimple.c (infer_nonnull_range): Reorder operands of an && condition.

2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/aarch64.md (mov<mode>cc): New for GPF.

2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_types_storestruct_lane_qualifiers): New.
	(TYPES_STORESTRUCT_LANE): Likewise.
	* config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
	(st3_lane): Likewise.
	(st4_lane): Likewise.
	* config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
	(vec_store_lanesci_lane<mode>): Likewise.
	(vec_store_lanesxi_lane<mode>): Likewise.
	(aarch64_st2_lane<VQ:mode>): Likewise.
	(aarch64_st3_lane<VQ:mode>): Likewise.
	(aarch64_st4_lane<VQ:mode>): Likewise.
	* config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
	* config/aarch64/arm_neon.h
	(__ST2_LANE_FUNC): Rewrite using builtins, update use points to
	use new macro arguments.
	(__ST3_LANE_FUNC): Likewise.
	(__ST4_LANE_FUNC): Likewise.
	* config/aarch64/iterators.md (V_TWO_ELEM): New.
	(V_THREE_ELEM): Likewise.
	(V_FOUR_ELEM): Likewise.

2014-04-28  David Malcolm  <dmalcolm@redhat.com>

	* doc/gimple.texi: Replace the description of the now-defunct
	union gimple_statement_d with a diagram showing the
	gimple_statement_base class hierarchy and its relationships to
	the GSS_ and GIMPLE_ enums.

2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
	* config/aarch64/aarch64.c
	(aarch64_cannot_change_mode_class): Weaken conditions.
	(aarch64_modes_tieable_p): New.
	* config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.

2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
	(loadsync_<mode>): Change mode.
	(load_quadpti, store_quadpti): New.
	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.

2014-04-28  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (sra_modify_expr): Generate new memory accesses with
	same alias type as the original statement.
	(subreplacement_assignment_data): New type.
	(handle_unscalarized_data_in_subtree): New type of parameter,
	generate new memory accesses with same alias type as the original
	statement.
	(load_assign_lhs_subreplacements): Likewise.
	(sra_modify_constructor_assign): Generate new memory accesses with
	same alias type as the original statement.

2014-04-28  Richard Biener  <rguenther@suse.de>

	* tree-pass.h (TODO_verify_il): Define.
	(TODO_verify_all): Complete properly.
	* passes.c (execute_function_todo): Move existing loop-closed
	SSA verification under TODO_verify_il.
	(execute_one_pass): Trigger TODO_verify_il at todo-after time.
	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
	Fix tree sharing issue.

2014-04-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/60092
	* builtins.def (DEF_C11_BUILTIN): Add.
	(BUILT_IN_ALIGNED_ALLOC): Likewise.
	* coretypes.h (enum function_class): Add function_c11_misc.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
	BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
	(call_may_clobber_ref_p_1): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	(mark_all_reaching_defs_necessary_1): Likewise.
	(propagate_necessity): Likewise.
	(eliminate_unnecessary_stmts): Likewise.
	* tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.

2014-04-28  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (vrp_var_may_overflow): Remove.
	(vrp_visit_phi_node): Rather than bumping to +-INF possibly
	with overflow immediately bump to one before that value and
	let iteration figure out overflow status.

2014-04-28  Richard Biener  <rguenther@suse.de>

	* configure.ac: Do valgrind header checks unconditionally.
	Add --enable-valgrind-annotations.
	* system.h: Guard valgrind header inclusion with
	ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
	* alloc-pool.c (pool_alloc, pool_free): Use
	ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
	to guard possibly dead code.
	* config.in: Regenerated.
	* configure: Likewise.

2014-04-28  Jeff Law  <law@redhat.com>

	PR tree-optimization/60902
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Only iterate
	over real defs when invalidating outputs from statements that do not
	produce useful outputs for threading.

2014-04-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60979
	* graphite-scop-detection.c (scopdet_basic_block_info): Reject
	SCOPs that end in a block with a successor with abnormal
	predecessors.

2014-04-28  Richard Biener  <rguenther@suse.de>

	* tree-pass.h (execute_pass_list): Adjust prototype.
	* passes.c (pass_manager::execute_early_local_passes): Adjust.
	(do_per_function): Change callback signature, push all actual
	work to the callbals.
	(do_per_function_toporder): Likewise.
	(execute_function_dump): Adjust.
	(execute_function_todo): Likewise.
	(clear_last_verified): Likewise.
	(verify_curr_properties): Likewise.
	(update_properties_after_pass): Likewise.
	(execute_pass_list_1): Split out from ...
	(execute_pass_list): ... here.  Adjust.
	(execute_ipa_pass_list): Likewise.
	* cgraphunit.c (cgraph_add_new_function): Adjust.
	(analyze_function): Likewise.
	(expand_function): Likewise.
	* cgraph.c (release_function_body): Free dominance info
	here instead of asserting it was magically freed elsewhere.

2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac: Tweak GAS check for LEON instructions on SPARC.
	* configure: Regenerate.
	* config/sparc/sparc.opt (muser-mode): New option.
	* config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
	for LEON3.
	(atomic_compare_and_swap_leon3_1): New instruction for LEON3.
	* doc/invoke.texi (SPARC options): Document -muser-mode.

2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* cselib.c (find_slot_memmode): Delete.
	(cselib_hasher): Change compare_type to a struct.
	(cselib_hasher::equal): Update accordingly.  Don't expect wrapped
	constants.
	(preserve_constants_and_equivs): Adjust for new compare_type.
	(cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
	(wrap_constant): Delete.
	(cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.

2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* doc/install.texi (Building with profile feedback): Remove
	outdated sentence.

2014-04-26  Tom de Vries  <tom@codesourcery.com>

	* config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
	array accesses.

2014-04-25  Cary Coutant  <ccoutant@google.com>

	PR debug/60929
	* dwarf2out.c (should_move_die_to_comdat): A type definition
	can contain a subprogram definition, but don't move it to a
	comdat unit.
	(clone_as_declaration): Copy DW_AT_abstract_origin attribute.
	(generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
	from original DIE.
	(clone_tree_hash): Rename to...
	(clone_tree_partial): ...this; change callers.  Copy
	DW_TAG_subprogram DIEs as declarations.
	(copy_decls_walk): Don't copy children of a declaration into a
	type unit.

2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/60969
	* config/i386/i386.md (*movsf_internal): Set MODE to SI for
	alternative 12.

2014-04-25  Jiong Wang  <jiong.wang@arm.com>

	* config/arm/predicates.md (call_insn_operand): Add long_call check.
	* config/arm/arm.md (sibcall, sibcall_value): Force the address to
	reg for long_call.
	* config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
	restriction.

2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.

2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/60930
	* gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
	creating a multiply candidate by folding two constant
	multiplicands when the result overflows.

2014-04-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/60960
	* tree-vect-generic.c (expand_vector_operation): Only call
	expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.

2014-04-25  Tom de Vries  <tom@codesourcery.com>

	* expr.c (clobber_reg_mode): New function.
	* expr.h (clobber_reg): New function.

2014-04-25  Tom de Vries  <tom@codesourcery.com>

	* rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
	clobbers.

2014-04-25  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
	handle.
	* rtl.h (find_all_hard_reg_sets): Add bool parameter.
	* haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
	new argument to find_all_hard_reg_sets call.

2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
	Use HOST_WIDE_INT_C for mask literal.
	(aarch_rev16_shleft_mask_imm_p): Likewise.

2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/60941
	* config/sparc/sparc.md (ashlsi3_extend): Delete.

2014-04-25  Marc Glisse  <marc.glisse@inria.fr>

	PR preprocessor/56540
	* config/i386/i386-c.c (ix86_target_macros): Define
	__SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.

2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (tga_func): Remove.
	(LIB_TLS_SPEC): Remove.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.

2014-04-25  Richard Biener  <rguenther@suse.de>

	PR ipa/60912
	* tree-ssa-structalias.c (ipa_pta_execute): Compute direct
	call stmt use/clobber sets during stmt walk instead of
	walking the possibly incomplete set of caller edges.

2014-04-25  Richard Biener  <rguenther@suse.de>

	PR ipa/60911
	* passes.c (apply_ipa_transforms): Inline into only caller ...
	(execute_one_pass): ... here.  Properly bring in function
	bodies for nodes we want to apply IPA transforms to.

2014-04-24  Cong Hou  <congh@google.com>

	PR tree-optimization/60896
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
	all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
	(vect_mark_pattern_stmts): Set the def type of all statements in
	PATTERN_DEF_SEQ as vect_internal_def.

2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/extend.texi (PowerPC Built-in Functions): Document new
	powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
	(PowerPC AltiVec/VSX Built-in Functions): Likewise.

	* config/rs6000/predicates.md (const_0_to_3_operand): New
	predicate to match 0..3 integer constants.

	* config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
	to support adding miscellaneous builtin functions.
	(BU_DFP_MISC_2): Likewise.
	(BU_P7_MISC_1): Likewise.
	(BU_P7_MISC_2): Likewise.
	(BU_P8V_MISC_3): Likewise.
	(BU_MISC_1): Likewise.
	(BU_MISC_2): Likewise.
	(DIVWE): Add extended divide builtin functions.
	(DIVWEO): Likewise.
	(DIVWEU): Likewise.
	(DIVWEUO): Likewise.
	(DIVDE): Likewise.
	(DIVDEO): Likewise.
	(DIVDEU): Likewise.
	(DIVDEUO): Likewise.
	(DXEX): Add decimal floating-point builtin functions.
	(DXEXQ): Likewise.
	(DDEDPD): Likewise.
	(DDEDPDQ): Likewise.
	(DENBCD): Likewise.
	(DENBCDQ): Likewise.
	(DIEX): Likewise.
	(DIEXQ): Likewise.
	(DSCLI): Likewise.
	(DSCLIQ): Likewise.
	(DSCRI): Likewise.
	(DSCRIQ): Likewise.
	(CDTBCD): Add new BCD builtin functions.
	(CBCDTD): Likewise.
	(ADDG6S): Likewise.
	(BCDADD): Likewise.
	(BCDADD_LT): Likewise.
	(BCDADD_EQ): Likewise.
	(BCDADD_GT): Likewise.
	(BCDADD_OV): Likewise.
	(BCDSUB): Likewise.
	(BCDSUB_LT): Likewise.
	(BCDSUB_EQ): Likewise.
	(BCDSUB_GT): Likewise.
	(BCDSUB_OV): Likewise.
	(PACK_TD): Add new pack/unpack 128-bit type builtin functions.
	(UNPACK_TD): Likewise.
	(PACK_TF): Likewise.
	(UNPACK_TF): Likewise.
	(UNPACK_TF_0): Likewise.
	(UNPACK_TF_1): Likewise.
	(PACK_V1TI): Likewise.
	(UNPACK_V1TI): Likewise.

	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
	support for decimal floating point builtin functions.
	(rs6000_expand_ternop_builtin): Add checks for the new builtin
	functions that take constant arguments.
	(rs6000_invalid_builtin): Add decimal floating point builtin support.
	(rs6000_init_builtins): Setup long double, _Decimal64, and
	_Decimal128 types for new builtin functions.
	(builtin_function_type): Set the unsigned flags appropriately for
	the new builtin functions.
	(rs6000_opt_masks): Add support for decimal floating point builtin
	functions.

	* config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
	floating point builtin functions.
	(RS6000_BTM_COMMON): Likewise.
	(RS6000_BTI_long_double): Likewise.
	(RS6000_BTI_dfloat64): Likewise.
	(RS6000_BTI_dfloat128): Likewise.
	(long_double_type_internal_node): Likewise.
	(dfloat64_type_internal_node): Likewise.
	(dfloat128_type_internal_node): Likewise.

	* config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
	2.07 bcd arithmetic instructions.
	(UNSPEC_BCDSUB): Likewise.
	(UNSPEC_BCD_OVERFLOW): Likewise.
	(UNSPEC_BCD_ADD_SUB): Likewise.
	(bcd_add_sub): Likewise.
	(BCD_TEST): Likewise.
	(bcd<bcd_add_sub>): Likewise.
	(bcd<bcd_add_sub>_test): Likewise.
	(bcd<bcd_add_sub>_test2): Likewise.
	(bcd<bcd_add_sub>_<code>): Likewise.
	(peephole2 for combined bcd ops): Likewise.

	* config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
	decimal floating point builtin functions.
	(UNSPEC_DENBCD): Likewise.
	(UNSPEC_DXEX): Likewise.
	(UNSPEC_DIEX): Likewise.
	(UNSPEC_DSCLI): Likewise.
	(UNSPEC_DSCRI): Likewise.
	(D64_D128): Likewise.
	(dfp_suffix): Likewise.
	(dfp_ddedpd_<mode>): Likewise.
	(dfp_denbcd_<mode>): Likewise.
	(dfp_dxex_<mode>): Likewise.
	(dfp_diex_<mode>): Likewise.
	(dfp_dscli_<mode>): Likewise.
	(dfp_dscri_<mode>): Likewise.

	* config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
	builtin functions.
	(UNSPEC_CDTBCD): Likewise.
	(UNSPEC_CBCDTD): Likewise.
	(UNSPEC_DIVE): Add support for new extended divide builtin functions.
	(UNSPEC_DIVEO): Likewise.
	(UNSPEC_DIVEU): Likewise.
	(UNSPEC_DIVEUO): Likewise.
	(UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
	pack/unpack 128-bit types.
	(UNSPEC_PACK_128BIT): Likewise.
	(idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
	(udiv<mode>3): Use idiv_ldiv mode attribute.
	(div<mode>3): Likewise.
	(addg6s): Add new BCD builtin functions.
	(cdtbcd): Likewise.
	(cbcdtd): Likewise.
	(UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
	(div_extend): Likewise.
	(div<div_extend>_<mode>"): Likewise.
	(FP128_64): Add support for new builtin functions to pack/unpack
	128-bit types.
	(unpack<mode>): Likewise.
	(unpacktf_0): Likewise.
	(unpacktf_1): Likewise.
	(unpack<mode>_dm): Likewise.
	(unpack<mode>_nodm): Likewise.
	(pack<mode>): Likewise.
	(unpackv1ti): Likewise.
	(packv1ti): Likewise.

2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>

	* gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
	is disabled.

2014-04-24  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
	* gimplify.c (omp_is_private): Change last argument's type to int.
	Only diagnose lastprivate if the simd argument is 1, only diagnose
	linear if the simd argument is 2.
	(gimplify_omp_for): Adjust omp_is_private callers.  When adding
	lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
	GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
	create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
	If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
	increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
	* omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
	OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.

2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/60822
	* config/m68k/m68k.md (extendplussidi): Don't allow memory for
	operand 1.

2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>

	* flag-types.h (enum ivar_visibility): Add.

2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>

	* config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
	function * argument.

2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.

2014-04-24  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
	* calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
	reg-note.
	* combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
	* emit-rtl.c (try_split): Same.

2014-04-24  Radovan Obradovic  <robradovic@mips.com>
	    Tom de Vries  <tom@codesourcery.com>

	* common.opt (fuse-caller-save): New option.

2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
	elements for big-endian.

2014-04-24  Richard Biener  <rguenther@suse.de>

	* expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
	during TER and instead use the sepops interface for expanding
	non-GIMPLE_SINGLE_RHS.

2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
	if not HAVE_AS_IX86_DIFF_SECT_DELTA.

2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
	assembler 64-bit option.
	* configure: Regenerate.

2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
	TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
	(TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
	(TARGET_FLOAT): Take AARCH64_ISA_FP into account.
	(TARGET_CRYPTO): Take TARGET_SIMD into account.

2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
	BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
	* config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
	* config/aarch64/aarch64-simd-builtins.def: Define vector bswap
	builtins.
	* config/aarch64/iterator.md (VDQHSD): New mode iterator.
	(Vrevsuff): New mode attribute.

2014-04-24  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.h (machine_function): Define variable
	after_arm_reorg here.
	* config/arm/arm.c (after_arm_reorg): Remove the definition.
	(arm_split_constant): Update the way to access variable
	after_arm_reorg.
	(arm_reorg): Ditto.
	(arm_output_function_epilogue): Remove the reset of after_arm_reorg.

2014-04-23  Tom de Vries  <tom@codesourcery.com>

	* target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.

2014-04-23  David Malcolm  <dmalcolm@redhat.com>

	* is-a.h: Update comments to reflect the following changes to the
	"pointerness" of the API, making the template parameter match the
	return type, allowing use of is-a.h with typedefs of pointers.
	(is_a_helper::cast): Return a T rather then a pointer to a T, so
	that the return type matches the parameter to the is_a_helper.
	(as_a): Likewise.
	(dyn_cast): Likewise.

	* cgraph.c (cgraph_node_for_asm): Update for removal of implicit
	pointer from the is-a.h API.

	* cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
	(is_a_helper <cgraph_node *>::test): ...this, matching change to
	is-a.h API.
	(is_a_helper <varpool_node>::test): Likewise, convert to...
	(is_a_helper <varpool_node *>::test): ...this.

	(varpool_first_variable): Update for removal of implicit pointer
	from the is-a.h API.
	(varpool_next_variable): Likewise.
	(varpool_first_static_initializer): Likewise.
	(varpool_next_static_initializer): Likewise.
	(varpool_first_defined_variable): Likewise.
	(varpool_next_defined_variable): Likewise.
	(cgraph_first_defined_function): Likewise.
	(cgraph_next_defined_function): Likewise.
	(cgraph_first_function): Likewise.
	(cgraph_next_function): Likewise.
	(cgraph_first_function_with_gimple_body): Likewise.
	(cgraph_next_function_with_gimple_body): Likewise.
	(cgraph_alias_target): Likewise.
	(varpool_alias_target): Likewise.
	(cgraph_function_or_thunk_node): Likewise.
	(varpool_variable_node): Likewise.
	(symtab_real_symbol_p): Likewise.
	* cgraphunit.c (referred_to_p): Likewise.
	(analyze_functions): Likewise.
	(handle_alias_pairs): Likewise.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
	* gimple-ssa.h (gimple_vuse_op): Likewise.
	(gimple_vdef_op): Likewise.
	* gimple-streamer-in.c (input_gimple_stmt): Likewise.
	* gimple.c (gimple_build_asm_1): Likewise.
	(gimple_build_try): Likewise.
	(gimple_build_resx): Likewise.
	(gimple_build_eh_dispatch): Likewise.
	(gimple_build_omp_for): Likewise.
	(gimple_omp_for_set_clauses): Likewise.

	* gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
	(is_a_helper <gimple_statement_asm *>::test): ...this.
	(is_a_helper <gimple_statement_bind>::test): Convert to...
	(is_a_helper <gimple_statement_bind *>::test): ...this.
	(is_a_helper <gimple_statement_call>::test): Convert to...
	(is_a_helper <gimple_statement_call *>::test): ...this.
	(is_a_helper <gimple_statement_catch>::test): Convert to...
	(is_a_helper <gimple_statement_catch *>::test): ...this.
	(is_a_helper <gimple_statement_resx>::test): Convert to...
	(is_a_helper <gimple_statement_resx *>::test): ...this.
	(is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
	(is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
	(is_a_helper <gimple_statement_eh_else>::test): Convert to...
	(is_a_helper <gimple_statement_eh_else *>::test): ...this.
	(is_a_helper <gimple_statement_eh_filter>::test): Convert to...
	(is_a_helper <gimple_statement_eh_filter *>::test): ...this.
	(is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
	(is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
	(is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
	(is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
	(is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
	(is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
	(is_a_helper <gimple_statement_omp_return>::test): Convert to...
	(is_a_helper <gimple_statement_omp_return *>::test): ...this.
	(is_a_helper <gimple_statement_omp_continue>::test): Convert to...
	(is_a_helper <gimple_statement_omp_continue *>::test): ...this.
	(is_a_helper <gimple_statement_omp_critical>::test): Convert to...
	(is_a_helper <gimple_statement_omp_critical *>::test): ...this.
	(is_a_helper <gimple_statement_omp_for>::test): Convert to...
	(is_a_helper <gimple_statement_omp_for *>::test): ...this.
	(is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
	(is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
	(is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
	(is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
	(is_a_helper <gimple_statement_omp_target>::test): Convert to...
	(is_a_helper <gimple_statement_omp_target *>::test): ...this.
	(is_a_helper <gimple_statement_omp_sections>::test): Convert to...
	(is_a_helper <gimple_statement_omp_sections *>::test): ...this.
	(is_a_helper <gimple_statement_omp_single>::test): Convert to...
	(is_a_helper <gimple_statement_omp_single *>::test): ...this.
	(is_a_helper <gimple_statement_omp_teams>::test): Convert to...
	(is_a_helper <gimple_statement_omp_teams *>::test): ...this.
	(is_a_helper <gimple_statement_omp_task>::test): Convert to...
	(is_a_helper <gimple_statement_omp_task *>::test): ...this.
	(is_a_helper <gimple_statement_phi>::test): Convert to...
	(is_a_helper <gimple_statement_phi *>::test): ...this.
	(is_a_helper <gimple_statement_transaction>::test): Convert to...
	(is_a_helper <gimple_statement_transaction *>::test): ...this.
	(is_a_helper <gimple_statement_try>::test): Convert to...
	(is_a_helper <gimple_statement_try *>::test): ...this.
	(is_a_helper <gimple_statement_wce>::test): Convert to...
	(is_a_helper <gimple_statement_wce *>::test): ...this.
	(is_a_helper <const gimple_statement_asm>::test): Convert to...
	(is_a_helper <const gimple_statement_asm *>::test): ...this.
	(is_a_helper <const gimple_statement_bind>::test): Convert to...
	(is_a_helper <const gimple_statement_bind *>::test): ...this.
	(is_a_helper <const gimple_statement_call>::test): Convert to...
	(is_a_helper <const gimple_statement_call *>::test): ...this.
	(is_a_helper <const gimple_statement_catch>::test): Convert to...
	(is_a_helper <const gimple_statement_catch *>::test): ...this.
	(is_a_helper <const gimple_statement_resx>::test): Convert to...
	(is_a_helper <const gimple_statement_resx *>::test): ...this.
	(is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
	(is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
	(is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
	(is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_atomic_load>::test):
	Convert to...
	(is_a_helper <const gimple_statement_omp_atomic_load *>::test):
	...this.
	(is_a_helper <const gimple_statement_omp_atomic_store>::test):
	Convert to...
	(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
	...this.
	(is_a_helper <const gimple_statement_omp_return>::test): Convert to...
	(is_a_helper <const gimple_statement_omp_return *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_continue>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_critical>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_for>::test): Convert to...
	(is_a_helper <const gimple_statement_omp_for *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
	(is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_parallel>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_target>::test): Convert to...
	(is_a_helper <const gimple_statement_omp_target *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_sections>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_single>::test): Convert to...
	(is_a_helper <const gimple_statement_omp_single *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
	(is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_task>::test): Convert to...
	(is_a_helper <const gimple_statement_omp_task *>::test): ...this.
	(is_a_helper <const gimple_statement_phi>::test): Convert to...
	(is_a_helper <const gimple_statement_phi *>::test): ...this.
	(is_a_helper <const gimple_statement_transaction>::test): Convert to...
	(is_a_helper <const gimple_statement_transaction *>::test): ...this.
	(is_a_helper <const gimple_statement_with_ops>::test): Convert to...
	(is_a_helper <const gimple_statement_with_ops *>::test): ...this.
	(is_a_helper <gimple_statement_with_ops>::test): Convert to...
	(is_a_helper <gimple_statement_with_ops *>::test): ...this.
	(is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
	to...
	(is_a_helper <const gimple_statement_with_memory_ops *>::test):
	...this.
	(is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
	(is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.

	(gimple_use_ops): Update for removal of implicit pointer from the
	is-a.h API.
	(gimple_set_use_ops): Likewise.
	(gimple_vuse): Likewise.
	(gimple_vdef): Likewise.
	(gimple_vuse_ptr): Likewise.
	(gimple_vdef_ptr): Likewise.
	(gimple_set_vuse): Likewise.
	(gimple_set_vdef): Likewise.
	(gimple_omp_return_set_lhs): Likewise.
	(gimple_omp_return_lhs): Likewise.
	(gimple_omp_return_lhs_ptr): Likewise.
	(gimple_call_fntype): Likewise.
	(gimple_call_set_fntype): Likewise.
	(gimple_call_set_internal_fn): Likewise.
	(gimple_call_use_set): Likewise.
	(gimple_call_clobber_set): Likewise.
	(gimple_bind_vars): Likewise.
	(gimple_bind_set_vars): Likewise.
	(gimple_bind_body_ptr): Likewise.
	(gimple_bind_set_body): Likewise.
	(gimple_bind_add_stmt): Likewise.
	(gimple_bind_block): Likewise.
	(gimple_bind_set_block): Likewise.
	(gimple_asm_ninputs): Likewise.
	(gimple_asm_noutputs): Likewise.
	(gimple_asm_nclobbers): Likewise.
	(gimple_asm_nlabels): Likewise.
	(gimple_asm_input_op): Likewise.
	(gimple_asm_input_op_ptr): Likewise.
	(gimple_asm_output_op): Likewise.
	(gimple_asm_output_op_ptr): Likewise.
	(gimple_asm_set_output_op): Likewise.
	(gimple_asm_clobber_op): Likewise.
	(gimple_asm_set_clobber_op): Likewise.
	(gimple_asm_label_op): Likewise.
	(gimple_asm_set_label_op): Likewise.
	(gimple_asm_string): Likewise.
	(gimple_catch_types): Likewise.
	(gimple_catch_types_ptr): Likewise.
	(gimple_catch_handler_ptr): Likewise.
	(gimple_catch_set_types): Likewise.
	(gimple_catch_set_handler): Likewise.
	(gimple_eh_filter_types): Likewise.
	(gimple_eh_filter_types_ptr): Likewise.
	(gimple_eh_filter_failure_ptr): Likewise.
	(gimple_eh_filter_set_types): Likewise.
	(gimple_eh_filter_set_failure): Likewise.
	(gimple_eh_must_not_throw_fndecl): Likewise.
	(gimple_eh_must_not_throw_set_fndecl): Likewise.
	(gimple_eh_else_n_body_ptr): Likewise.
	(gimple_eh_else_e_body_ptr): Likewise.
	(gimple_eh_else_set_n_body): Likewise.
	(gimple_eh_else_set_e_body): Likewise.
	(gimple_try_eval_ptr): Likewise.
	(gimple_try_cleanup_ptr): Likewise.
	(gimple_try_set_eval): Likewise.
	(gimple_try_set_cleanup): Likewise.
	(gimple_wce_cleanup_ptr): Likewise.
	(gimple_wce_set_cleanup): Likewise.
	(gimple_phi_capacity): Likewise.
	(gimple_phi_num_args): Likewise.
	(gimple_phi_result): Likewise.
	(gimple_phi_result_ptr): Likewise.
	(gimple_phi_set_result): Likewise.
	(gimple_phi_arg): Likewise.
	(gimple_phi_set_arg): Likewise.
	(gimple_resx_region): Likewise.
	(gimple_resx_set_region): Likewise.
	(gimple_eh_dispatch_region): Likewise.
	(gimple_eh_dispatch_set_region): Likewise.
	(gimple_omp_critical_name): Likewise.
	(gimple_omp_critical_name_ptr): Likewise.
	(gimple_omp_critical_set_name): Likewise.
	(gimple_omp_for_clauses): Likewise.
	(gimple_omp_for_clauses_ptr): Likewise.
	(gimple_omp_for_set_clauses): Likewise.
	(gimple_omp_for_collapse): Likewise.
	(gimple_omp_for_index): Likewise.
	(gimple_omp_for_index_ptr): Likewise.
	(gimple_omp_for_set_index): Likewise.
	(gimple_omp_for_initial): Likewise.
	(gimple_omp_for_initial_ptr): Likewise.
	(gimple_omp_for_set_initial): Likewise.
	(gimple_omp_for_final): Likewise.
	(gimple_omp_for_final_ptr): Likewise.
	(gimple_omp_for_set_final): Likewise.
	(gimple_omp_for_incr): Likewise.
	(gimple_omp_for_incr_ptr): Likewise.
	(gimple_omp_for_set_incr): Likewise.
	(gimple_omp_for_pre_body_ptr): Likewise.
	(gimple_omp_for_set_pre_body): Likewise.
	(gimple_omp_parallel_clauses): Likewise.
	(gimple_omp_parallel_clauses_ptr): Likewise.
	(gimple_omp_parallel_set_clauses): Likewise.
	(gimple_omp_parallel_child_fn): Likewise.
	(gimple_omp_parallel_child_fn_ptr): Likewise.
	(gimple_omp_parallel_set_child_fn): Likewise.
	(gimple_omp_parallel_data_arg): Likewise.
	(gimple_omp_parallel_data_arg_ptr): Likewise.
	(gimple_omp_parallel_set_data_arg): Likewise.
	(gimple_omp_task_clauses): Likewise.
	(gimple_omp_task_clauses_ptr): Likewise.
	(gimple_omp_task_set_clauses): Likewise.
	(gimple_omp_task_child_fn): Likewise.
	(gimple_omp_task_child_fn_ptr): Likewise.
	(gimple_omp_task_set_child_fn): Likewise.
	(gimple_omp_task_data_arg): Likewise.
	(gimple_omp_task_data_arg_ptr): Likewise.
	(gimple_omp_task_set_data_arg): Likewise.
	(gimple_omp_taskreg_clauses): Likewise.
	(gimple_omp_taskreg_clauses_ptr): Likewise.
	(gimple_omp_taskreg_set_clauses): Likewise.
	(gimple_omp_taskreg_child_fn): Likewise.
	(gimple_omp_taskreg_child_fn_ptr): Likewise.
	(gimple_omp_taskreg_set_child_fn): Likewise.
	(gimple_omp_taskreg_data_arg): Likewise.
	(gimple_omp_taskreg_data_arg_ptr): Likewise.
	(gimple_omp_taskreg_set_data_arg): Likewise.
	(gimple_omp_task_copy_fn): Likewise.
	(gimple_omp_task_copy_fn_ptr): Likewise.
	(gimple_omp_task_set_copy_fn): Likewise.
	(gimple_omp_task_arg_size): Likewise.
	(gimple_omp_task_arg_size_ptr): Likewise.
	(gimple_omp_task_set_arg_size): Likewise.
	(gimple_omp_task_arg_align): Likewise.
	(gimple_omp_task_arg_align_ptr): Likewise.
	(gimple_omp_task_set_arg_align): Likewise.
	(gimple_omp_single_clauses): Likewise.
	(gimple_omp_single_clauses_ptr): Likewise.
	(gimple_omp_single_set_clauses): Likewise.
	(gimple_omp_target_clauses): Likewise.
	(gimple_omp_target_clauses_ptr): Likewise.
	(gimple_omp_target_set_clauses): Likewise.
	(gimple_omp_target_child_fn): Likewise.
	(gimple_omp_target_child_fn_ptr): Likewise.
	(gimple_omp_target_set_child_fn): Likewise.
	(gimple_omp_target_data_arg): Likewise.
	(gimple_omp_target_data_arg_ptr): Likewise.
	(gimple_omp_target_set_data_arg): Likewise.
	(gimple_omp_teams_clauses): Likewise.
	(gimple_omp_teams_clauses_ptr): Likewise.
	(gimple_omp_teams_set_clauses): Likewise.
	(gimple_omp_sections_clauses): Likewise.
	(gimple_omp_sections_clauses_ptr): Likewise.
	(gimple_omp_sections_set_clauses): Likewise.
	(gimple_omp_sections_control): Likewise.
	(gimple_omp_sections_control_ptr): Likewise.
	(gimple_omp_sections_set_control): Likewise.
	(gimple_omp_for_set_cond): Likewise.
	(gimple_omp_for_cond): Likewise.
	(gimple_omp_atomic_store_set_val): Likewise.
	(gimple_omp_atomic_store_val): Likewise.
	(gimple_omp_atomic_store_val_ptr): Likewise.
	(gimple_omp_atomic_load_set_lhs): Likewise.
	(gimple_omp_atomic_load_lhs): Likewise.
	(gimple_omp_atomic_load_lhs_ptr): Likewise.
	(gimple_omp_atomic_load_set_rhs): Likewise.
	(gimple_omp_atomic_load_rhs): Likewise.
	(gimple_omp_atomic_load_rhs_ptr): Likewise.
	(gimple_omp_continue_control_def): Likewise.
	(gimple_omp_continue_control_def_ptr): Likewise.
	(gimple_omp_continue_set_control_def): Likewise.
	(gimple_omp_continue_control_use): Likewise.
	(gimple_omp_continue_control_use_ptr): Likewise.
	(gimple_omp_continue_set_control_use): Likewise.
	(gimple_transaction_body_ptr): Likewise.
	(gimple_transaction_label): Likewise.
	(gimple_transaction_label_ptr): Likewise.
	(gimple_transaction_set_body): Likewise.
	(gimple_transaction_set_label): Likewise.

	* ipa-devirt.c (build_type_inheritance_graph): Likewise.
	* ipa-inline-analysis.c (inline_write_summary): Likewise.
	* ipa-ref.c (ipa_record_reference): Likewise.
	* ipa-reference.c (analyze_function): Likewise.
	(ipa_reference_write_optimization_summary): Likewise.
	* ipa.c (symtab_remove_unreachable_nodes): Likewise.
	(address_taken_from_non_vtable_p): Likewise.
	(comdat_can_be_unshared_p_1): Likewise.
	* lto-cgraph.c (lto_output_ref): Likewise.
	(add_references): Likewise.
	(compute_ltrans_boundary): Likewise.
	(output_symtab): Likewise.
	(input_ref): Likewise.
	(input_cgraph_1): Likewise.
	(output_cgraph_opt_summary): Likewise.
	* lto-streamer-out.c (lto_output): Likewise.
	(output_symbol_p): Likewise.
	* lto-streamer.h (lsei_next_function_in_partition): Likewise.
	(lsei_start_function_in_partition): Likewise.
	(lsei_next_variable_in_partition): Likewise.
	(lsei_start_variable_in_partition): Likewise.
	* symtab.c (insert_to_assembler_name_hash): Likewise.
	(unlink_from_assembler_name_hash): Likewise.
	(symtab_unregister_node): Likewise.
	(symtab_remove_node): Likewise.
	(dump_symtab_node): Likewise.
	(verify_symtab_base): Likewise.
	(verify_symtab_node): Likewise.
	(symtab_make_decl_local): Likewise.
	(symtab_alias_ultimate_target): Likewise.
	(symtab_resolve_alias): Likewise.
	(symtab_get_symbol_partitioning_class): Likewise.
	* tree-phinodes.c (allocate_phi_node): Likewise.
	(reserve_phi_args_for_new_edge): Likewise.
	(remove_phi_args): Likewise.
	* varpool.c (varpool_node_for_asm): Likewise.
	(varpool_remove_unreferenced_decls): Likewise.

2014-04-23  Jeff Law  <law@redhat.com>

	PR tree-optimization/60902
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Make sure to
	invalidate outputs from statements that do not produce useful
	outputs for threading.

2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>

	* config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
	(stack_protect_set_<mode>, stack_protect_test_<mode>): Add
	machine descriptions for Stack Smashing Protector.

2014-04-23  Richard Earnshaw  <rearnsha@arm.com>

	* aarch64.md (<optab>_rol<mode>3): New pattern.
	(<optab>_rolsi3_uxtw): Likewise.
	* aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.

2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
	(arm_cortex_a12_tune): Likewise.

2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.

2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.md (arm_rev16si2): New pattern.
	(arm_rev16si2_alt): Likewise.
	* config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.

2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.md (rev16<mode>2): New pattern.
	(rev16<mode>2_alt): Likewise.
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
	* config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
	(aarch_rev16_shleft_mask_imm_p): Likewise.
	(aarch_rev16_p_1): Likewise.
	(aarch_rev16_p): Likewise.
	* config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
	(aarch_rev16_shright_mask_imm_p): Likewise.
	(aarch_rev16_shleft_mask_imm_p): Likewise.

2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
	* config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
	rev cost.
	(cortex_a53_extra_costs): Likewise.
	(cortex_a57_extra_costs): Likewise.
	* config/arm/arm.c (cortexa9_extra_costs): Likewise.
	(cortexa7_extra_costs): Likewise.
	(cortexa8_extra_costs): Likewise.
	(cortexa12_extra_costs): Likewise.
	(cortexa15_extra_costs): Likewise.
	(v7m_extra_costs): Likewise.
	(arm_new_rtx_costs): Handle BSWAP.

2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (cortexa8_extra_costs): New table.
	(arm_cortex_a8_tune): New tuning struct.
	* config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.

2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_new_rtx_costs): Handle FMA.

2014-04-23  Richard Biener  <rguenther@suse.de>

	* Makefile.in (OBJS): Remove loop-unswitch.o.
	* tree-pass.h (make_pass_rtl_unswitch): Remove.
	* passes.def (pass_rtl_unswitch): Likewise.
	* loop-init.c (gate_rtl_unswitch): Likewise.
	(rtl_unswitch): Likewise.
	(pass_data_rtl_unswitch): Likewise.
	(pass_rtl_unswitch): Likewise.
	(make_pass_rtl_unswitch): Likewise.
	* rtl.h (reversed_condition): Likewise.
	(compare_and_jump_seq): Likewise.
	* loop-iv.c (reversed_condition): Move here from loop-unswitch.c
	and make static.
	* loop-unroll.c (compare_and_jump_seq): Likewise.

2014-04-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60903
	* tree-ssa-loop-im.c (analyze_memory_references): Remove
	commented code block.
	(execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
	loop flags to newly created BBs and edges.

2014-04-23  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.c (msp430_handle_option): Move function
	to msp430-common.c
	(msp430_option_override): Simplify mcu and mcpu option handling.
	(msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
	support for -mhwmult command line option.
	(has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
	-mhwmult command line option.
	(msp430_hwmult_enabled): Delete.
	(msp43o_output_labelref): Add support for -mhwmult command line option.
	* config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
	(umulsidi3): Likewise.
	* config/msp430/msp430.opt (mmcu): Add Report attribute.
	(mcpu, mlarge, msmall): Likewise.
	(mhwmult): New option.
	* config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
	prototype.
	(msp430_is_f5_mcu): Remove prototype.
	(msp430_use_f5_series_hwmult): Add prototype.
	* config/msp430/msp430-opts.h: New file.
	* common/config/msp430: New directory.
	* common/config/msp430/msp430-common.c: New file.
	* config.gcc (msp430): Remove target_has_targetm_common.
	* doc/invoke.texi: Document -mhwmult command line option.

2014-04-23  Nick Clifton  <nickc@redhat.com>

	* config/i386/cygwin.h (ENDFILE_SPEC): Include
	default-manifest.o if it can be found in the search path.
	* config/i386/mingw32.h (ENDFILE_SPEC): Likewise.

2014-04-23  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.

2014-04-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/60895
	* tree-inline.c (declare_return_variable): Use mark_addressable.

2014-04-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/60891
	* loop-init.c (loop_optimizer_init): Make sure to apply
	LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.

2014-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/60275
	* common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
	New options.
	* gcc.c (sanitize_spec_function): Don't return "" for "undefined"
	if flag_sanitize_undefined_trap_on_error.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
	BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
	BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
	BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
	* ubsan.c (ubsan_instrument_unreachable): Return
	__builtin_trap () if flag_sanitize_undefined_trap_on_error.
	(ubsan_expand_null_ifn): Emit __builtin_trap ()
	if flag_sanitize_undefined_trap_on_error and
	__ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
	(ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
	instrument_bool_enum_load): Emit __builtin_trap () if
	flag_sanitize_undefined_trap_on_error and
	__builtin_handle_*_abort () if !flag_sanitize_recover.
	* doc/invoke.texi (-fsanitize-recover,
	-fsanitize-undefined-trap-on-error): Document.

2014-04-22  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.md (mov<mode>): Replace movQIHI.
	Force immediates to SImode.

2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.md (UNSPEC_ROUND): New.
	(lroundsfsi2): New.
	* config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
	* config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
	* config/nios2/nios2.c (N2F_NO_ERRNO): Define.
	(nios2_fpu_insn): Add entry for round.
	(N2FPU_NO_ERRNO_P): Define.
	(nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
	flag_errno_math.
	* doc/invoke.texi (Nios II Options): Document -mcustom-round.

2014-04-22  Richard Henderson  <rth@redhat.com>

	* config/aarch64/aarch64 (addti3, subti3): New expanders.
	(add<GPI>3_compare0): Remove leading * from name.
	(add<GPI>3_carryin): Likewise.
	(sub<GPI>3_compare0): Likewise.
	(sub<GPI>3_carryin): Likewise.
	(<su_optab>mulditi3): New expander.
	(multi3): New expander.
	(madd<GPI>): Remove leading * from name.

2014-04-22  Martin Jambor  <mjambor@suse.cz>

	* cgraphclones.c (cgraph_function_versioning): Copy
	ipa_transforms_to_apply instead of asserting it is empty.

2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/60868
	* config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
	on count_exp to get mode.

2014-04-22  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
	Handle TLS for ILP32.
	* config/aarch64/aarch64.md (tlsie_small): Rename to ...
	(tlsie_small_<mode>): this and handle PTR.
	(tlsie_small_sidi): New pattern.
	(tlsle_small): Change to an expand to handle ILP32.
	(tlsle_small_<mode>): New pattern.
	(tlsdesc_small): Rename to ...
	(tlsdesc_small_<mode>): this and handle PTR.

2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.

2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
	(aarch64_types_signed_unsigned_qualifiers): Qualifier added.
	(aarch64_types_signed_poly_qualifiers): Likewise.
	(aarch64_types_unsigned_signed_qualifiers): Likewise.
	(aarch64_types_poly_signed_qualifiers): Likewise.
	(TYPES_REINTERP_SS): Type macro added.
	(TYPES_REINTERP_SU): Likewise.
	(TYPES_REINTERP_SP): Likewise.
	(TYPES_REINTERP_US): Likewise.
	(TYPES_REINTERP_PS): Likewise.
	(aarch64_fold_builtin): New expression folding added.
	* config/aarch64/aarch64-simd-builtins.def (REINTERP):
	Declarations removed.
	(REINTERP_SS): Declarations added.
	(REINTERP_US): Likewise.
	(REINTERP_PS): Likewise.
	(REINTERP_SU): Likewise.
	(REINTERP_SP): Likewise.
	* config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
	(vreinterpretq_p8_f64): Likewise.
	(vreinterpret_p16_f64): Likewise.
	(vreinterpretq_p16_f64): Likewise.
	(vreinterpret_f32_f64): Likewise.
	(vreinterpretq_f32_f64): Likewise.
	(vreinterpret_f64_f32): Likewise.
	(vreinterpret_f64_p8): Likewise.
	(vreinterpret_f64_p16): Likewise.
	(vreinterpret_f64_s8): Likewise.
	(vreinterpret_f64_s16): Likewise.
	(vreinterpret_f64_s32): Likewise.
	(vreinterpret_f64_s64): Likewise.
	(vreinterpret_f64_u8): Likewise.
	(vreinterpret_f64_u16): Likewise.
	(vreinterpret_f64_u32): Likewise.
	(vreinterpret_f64_u64): Likewise.
	(vreinterpretq_f64_f32): Likewise.
	(vreinterpretq_f64_p8): Likewise.
	(vreinterpretq_f64_p16): Likewise.
	(vreinterpretq_f64_s8): Likewise.
	(vreinterpretq_f64_s16): Likewise.
	(vreinterpretq_f64_s32): Likewise.
	(vreinterpretq_f64_s64): Likewise.
	(vreinterpretq_f64_u8): Likewise.
	(vreinterpretq_f64_u16): Likewise.
	(vreinterpretq_f64_u32): Likewise.
	(vreinterpretq_f64_u64): Likewise.
	(vreinterpret_s64_f64): Likewise.
	(vreinterpretq_s64_f64): Likewise.
	(vreinterpret_u64_f64): Likewise.
	(vreinterpretq_u64_f64): Likewise.
	(vreinterpret_s8_f64): Likewise.
	(vreinterpretq_s8_f64): Likewise.
	(vreinterpret_s16_f64): Likewise.
	(vreinterpretq_s16_f64): Likewise.
	(vreinterpret_s32_f64): Likewise.
	(vreinterpretq_s32_f64): Likewise.
	(vreinterpret_u8_f64): Likewise.
	(vreinterpretq_u8_f64): Likewise.
	(vreinterpret_u16_f64): Likewise.
	(vreinterpretq_u16_f64): Likewise.
	(vreinterpret_u32_f64): Likewise.
	(vreinterpretq_u32_f64): Likewise.

2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
	* config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
	(vreinterpret_p8_s8): Likewise.
	* config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
	(vreinterpret_p8_s16): Likewise.
	(vreinterpret_p8_s32): Likewise.
	(vreinterpret_p8_s64): Likewise.
	(vreinterpret_p8_f32): Likewise.
	(vreinterpret_p8_u8): Likewise.
	(vreinterpret_p8_u16): Likewise.
	(vreinterpret_p8_u32): Likewise.
	(vreinterpret_p8_u64): Likewise.
	(vreinterpret_p8_p16): Likewise.
	(vreinterpretq_p8_s8): Likewise.
	(vreinterpretq_p8_s16): Likewise.
	(vreinterpretq_p8_s32): Likewise.
	(vreinterpretq_p8_s64): Likewise.
	(vreinterpretq_p8_f32): Likewise.
	(vreinterpretq_p8_u8): Likewise.
	(vreinterpretq_p8_u16): Likewise.
	(vreinterpretq_p8_u32): Likewise.
	(vreinterpretq_p8_u64): Likewise.
	(vreinterpretq_p8_p16): Likewise.
	(vreinterpret_p16_s8): Likewise.
	(vreinterpret_p16_s16): Likewise.
	(vreinterpret_p16_s32): Likewise.
	(vreinterpret_p16_s64): Likewise.
	(vreinterpret_p16_f32): Likewise.
	(vreinterpret_p16_u8): Likewise.
	(vreinterpret_p16_u16): Likewise.
	(vreinterpret_p16_u32): Likewise.
	(vreinterpret_p16_u64): Likewise.
	(vreinterpret_p16_p8): Likewise.
	(vreinterpretq_p16_s8): Likewise.
	(vreinterpretq_p16_s16): Likewise.
	(vreinterpretq_p16_s32): Likewise.
	(vreinterpretq_p16_s64): Likewise.
	(vreinterpretq_p16_f32): Likewise.
	(vreinterpretq_p16_u8): Likewise.
	(vreinterpretq_p16_u16): Likewise.
	(vreinterpretq_p16_u32): Likewise.
	(vreinterpretq_p16_u64): Likewise.
	(vreinterpretq_p16_p8): Likewise.
	(vreinterpret_f32_s8): Likewise.
	(vreinterpret_f32_s16): Likewise.
	(vreinterpret_f32_s32): Likewise.
	(vreinterpret_f32_s64): Likewise.
	(vreinterpret_f32_u8): Likewise.
	(vreinterpret_f32_u16): Likewise.
	(vreinterpret_f32_u32): Likewise.
	(vreinterpret_f32_u64): Likewise.
	(vreinterpret_f32_p8): Likewise.
	(vreinterpret_f32_p16): Likewise.
	(vreinterpretq_f32_s8): Likewise.
	(vreinterpretq_f32_s16): Likewise.
	(vreinterpretq_f32_s32): Likewise.
	(vreinterpretq_f32_s64): Likewise.
	(vreinterpretq_f32_u8): Likewise.
	(vreinterpretq_f32_u16): Likewise.
	(vreinterpretq_f32_u32): Likewise.
	(vreinterpretq_f32_u64): Likewise.
	(vreinterpretq_f32_p8): Likewise.
	(vreinterpretq_f32_p16): Likewise.
	(vreinterpret_s64_s8): Likewise.
	(vreinterpret_s64_s16): Likewise.
	(vreinterpret_s64_s32): Likewise.
	(vreinterpret_s64_f32): Likewise.
	(vreinterpret_s64_u8): Likewise.
	(vreinterpret_s64_u16): Likewise.
	(vreinterpret_s64_u32): Likewise.
	(vreinterpret_s64_u64): Likewise.
	(vreinterpret_s64_p8): Likewise.
	(vreinterpret_s64_p16): Likewise.
	(vreinterpretq_s64_s8): Likewise.
	(vreinterpretq_s64_s16): Likewise.
	(vreinterpretq_s64_s32): Likewise.
	(vreinterpretq_s64_f32): Likewise.
	(vreinterpretq_s64_u8): Likewise.
	(vreinterpretq_s64_u16): Likewise.
	(vreinterpretq_s64_u32): Likewise.
	(vreinterpretq_s64_u64): Likewise.
	(vreinterpretq_s64_p8): Likewise.
	(vreinterpretq_s64_p16): Likewise.
	(vreinterpret_u64_s8): Likewise.
	(vreinterpret_u64_s16): Likewise.
	(vreinterpret_u64_s32): Likewise.
	(vreinterpret_u64_s64): Likewise.
	(vreinterpret_u64_f32): Likewise.
	(vreinterpret_u64_u8): Likewise.
	(vreinterpret_u64_u16): Likewise.
	(vreinterpret_u64_u32): Likewise.
	(vreinterpret_u64_p8): Likewise.
	(vreinterpret_u64_p16): Likewise.
	(vreinterpretq_u64_s8): Likewise.
	(vreinterpretq_u64_s16): Likewise.
	(vreinterpretq_u64_s32): Likewise.
	(vreinterpretq_u64_s64): Likewise.
	(vreinterpretq_u64_f32): Likewise.
	(vreinterpretq_u64_u8): Likewise.
	(vreinterpretq_u64_u16): Likewise.
	(vreinterpretq_u64_u32): Likewise.
	(vreinterpretq_u64_p8): Likewise.
	(vreinterpretq_u64_p16): Likewise.
	(vreinterpret_s8_s16): Likewise.
	(vreinterpret_s8_s32): Likewise.
	(vreinterpret_s8_s64): Likewise.
	(vreinterpret_s8_f32): Likewise.
	(vreinterpret_s8_u8): Likewise.
	(vreinterpret_s8_u16): Likewise.
	(vreinterpret_s8_u32): Likewise.
	(vreinterpret_s8_u64): Likewise.
	(vreinterpret_s8_p8): Likewise.
	(vreinterpret_s8_p16): Likewise.
	(vreinterpretq_s8_s16): Likewise.
	(vreinterpretq_s8_s32): Likewise.
	(vreinterpretq_s8_s64): Likewise.
	(vreinterpretq_s8_f32): Likewise.
	(vreinterpretq_s8_u8): Likewise.
	(vreinterpretq_s8_u16): Likewise.
	(vreinterpretq_s8_u32): Likewise.
	(vreinterpretq_s8_u64): Likewise.
	(vreinterpretq_s8_p8): Likewise.
	(vreinterpretq_s8_p16): Likewise.
	(vreinterpret_s16_s8): Likewise.
	(vreinterpret_s16_s32): Likewise.
	(vreinterpret_s16_s64): Likewise.
	(vreinterpret_s16_f32): Likewise.
	(vreinterpret_s16_u8): Likewise.
	(vreinterpret_s16_u16): Likewise.
	(vreinterpret_s16_u32): Likewise.
	(vreinterpret_s16_u64): Likewise.
	(vreinterpret_s16_p8): Likewise.
	(vreinterpret_s16_p16): Likewise.
	(vreinterpretq_s16_s8): Likewise.
	(vreinterpretq_s16_s32): Likewise.
	(vreinterpretq_s16_s64): Likewise.
	(vreinterpretq_s16_f32): Likewise.
	(vreinterpretq_s16_u8): Likewise.
	(vreinterpretq_s16_u16): Likewise.
	(vreinterpretq_s16_u32): Likewise.
	(vreinterpretq_s16_u64): Likewise.
	(vreinterpretq_s16_p8): Likewise.
	(vreinterpretq_s16_p16): Likewise.
	(vreinterpret_s32_s8): Likewise.
	(vreinterpret_s32_s16): Likewise.
	(vreinterpret_s32_s64): Likewise.
	(vreinterpret_s32_f32): Likewise.
	(vreinterpret_s32_u8): Likewise.
	(vreinterpret_s32_u16): Likewise.
	(vreinterpret_s32_u32): Likewise.
	(vreinterpret_s32_u64): Likewise.
	(vreinterpret_s32_p8): Likewise.
	(vreinterpret_s32_p16): Likewise.
	(vreinterpretq_s32_s8): Likewise.
	(vreinterpretq_s32_s16): Likewise.
	(vreinterpretq_s32_s64): Likewise.
	(vreinterpretq_s32_f32): Likewise.
	(vreinterpretq_s32_u8): Likewise.
	(vreinterpretq_s32_u16): Likewise.
	(vreinterpretq_s32_u32): Likewise.
	(vreinterpretq_s32_u64): Likewise.
	(vreinterpretq_s32_p8): Likewise.
	(vreinterpretq_s32_p16): Likewise.
	(vreinterpret_u8_s8): Likewise.
	(vreinterpret_u8_s16): Likewise.
	(vreinterpret_u8_s32): Likewise.
	(vreinterpret_u8_s64): Likewise.
	(vreinterpret_u8_f32): Likewise.
	(vreinterpret_u8_u16): Likewise.
	(vreinterpret_u8_u32): Likewise.
	(vreinterpret_u8_u64): Likewise.
	(vreinterpret_u8_p8): Likewise.
	(vreinterpret_u8_p16): Likewise.
	(vreinterpretq_u8_s8): Likewise.
	(vreinterpretq_u8_s16): Likewise.
	(vreinterpretq_u8_s32): Likewise.
	(vreinterpretq_u8_s64): Likewise.
	(vreinterpretq_u8_f32): Likewise.
	(vreinterpretq_u8_u16): Likewise.
	(vreinterpretq_u8_u32): Likewise.
	(vreinterpretq_u8_u64): Likewise.
	(vreinterpretq_u8_p8): Likewise.
	(vreinterpretq_u8_p16): Likewise.
	(vreinterpret_u16_s8): Likewise.
	(vreinterpret_u16_s16): Likewise.
	(vreinterpret_u16_s32): Likewise.
	(vreinterpret_u16_s64): Likewise.
	(vreinterpret_u16_f32): Likewise.
	(vreinterpret_u16_u8): Likewise.
	(vreinterpret_u16_u32): Likewise.
	(vreinterpret_u16_u64): Likewise.
	(vreinterpret_u16_p8): Likewise.
	(vreinterpret_u16_p16): Likewise.
	(vreinterpretq_u16_s8): Likewise.
	(vreinterpretq_u16_s16): Likewise.
	(vreinterpretq_u16_s32): Likewise.
	(vreinterpretq_u16_s64): Likewise.
	(vreinterpretq_u16_f32): Likewise.
	(vreinterpretq_u16_u8): Likewise.
	(vreinterpretq_u16_u32): Likewise.
	(vreinterpretq_u16_u64): Likewise.
	(vreinterpretq_u16_p8): Likewise.
	(vreinterpretq_u16_p16): Likewise.
	(vreinterpret_u32_s8): Likewise.
	(vreinterpret_u32_s16): Likewise.
	(vreinterpret_u32_s32): Likewise.
	(vreinterpret_u32_s64): Likewise.
	(vreinterpret_u32_f32): Likewise.
	(vreinterpret_u32_u8): Likewise.
	(vreinterpret_u32_u16): Likewise.
	(vreinterpret_u32_u64): Likewise.
	(vreinterpret_u32_p8): Likewise.
	(vreinterpret_u32_p16): Likewise.
	(vreinterpretq_u32_s8): Likewise.
	(vreinterpretq_u32_s16): Likewise.
	(vreinterpretq_u32_s32): Likewise.
	(vreinterpretq_u32_s64): Likewise.
	(vreinterpretq_u32_f32): Likewise.
	(vreinterpretq_u32_u8): Likewise.
	(vreinterpretq_u32_u16): Likewise.
	(vreinterpretq_u32_u64): Likewise.
	(vreinterpretq_u32_p8): Likewise.
	(vreinterpretq_u32_p16): Likewise.

2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>

	* gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
	Pattern extended.
	* config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
	(sqabs): Likewise.
	* config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
	(vqnegd_s64): Likewise.
	(vqabs_s64): Likewise.
	(vqabsd_s64): Likewise.

2014-04-22  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
	computation to the top of the loop.

2014-04-22  Renlin  <renlin.li@arm.com>
	    Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
	* config/aarch64/aarch64.c (aarch64_layout_frame)
	(aarch64_initial_elimination_offset): Likewise.

2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
	Fix indentation.

2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>

	* machmode.h (bitwise_mode_for_mode): Declare.
	* stor-layout.h (bitwise_type_for_mode): Likewise.
	* stor-layout.c (bitwise_mode_for_mode): New function.
	(bitwise_type_for_mode): Likewise.
	* builtins.c (fold_builtin_memory_op): Use it instead of
	int_mode_for_mode and build_nonstandard_integer_type.

2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
	(*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
	(*-*-solaris2*): Simplify.
	(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
	(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
	*-*-solaris2.9* handling.

	* configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
	as bug.
	(gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
	(ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
	handling, simplify.
	(gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
	* configure: Regenerate.

	* config/i386/sol2-9.h: Remove.

	* doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
	(Specific, *-*-solaris2*): Mention Solaris 9 support removal.
	Remove Solaris 9 references.

2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>

	* aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
	(floatuns<GPI:mode><GPF:mode>2): Remove.
	(<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
	and floatuns conversions.
	(<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
	and floatuns conversions.
	* iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
	(w1,w2): New mode attributes for inequal width conversions.

2014-04-22  Renlin Li  <Renlin.Li@arm.com>

	* config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
	the output asm format.

2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_cm<optab>di): Always split.
	(*aarch64_cm<optab>di): New.
	(aarch64_cmtstdi): Always split.
	(*aarch64_cmtstdi): New.

2014-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/60823
	* omp-low.c (ipa_simd_modify_function_body): Go through
	all SSA_NAMEs and for those refering to vector arguments
	which are going to be replaced adjust SSA_NAME_VAR and,
	if it is a default definition, change it into a non-default
	definition assigned at the beginning of function from new_decl.
	(ipa_simd_modify_stmt_ops): Rewritten.
	* tree-dfa.c (set_ssa_default_def): When removing default def,
	check for NULL loc instead of NULL *loc.

2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
	restrictions on core registers for DImode values in Thumb2.

2014-04-22  Ian Bolton  <ian.bolton@arm.com>

	* config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
	* config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.

2014-04-22  Ian Bolton  <ian.bolton@arm.com>

	* config/arm/thumb2.md (*iordi_notdi_di): New pattern.
	(*iordi_notzesidi_di): Likewise.
	(*iordi_notsesidi_di): Likewise.

2014-04-22  Ian Bolton  <ian.bolton@arm.com>

	* config/arm/arm-protos.h (tune_params): New struct members.
	* config/arm/arm.c: Initialise tune_params per processor.
	(thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
	for speed, based on new tune_params.

2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
	* config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
	* config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
	* config/aarch64/aarch64.md (<frint_pattern>): Likewise.
	* config/aarch64/arm_neon.h (vrnd_f64): Added.
	(vrnda_f64): Likewise.
	(vrndi_f64): Likewise.
	(vrndm_f64): Likewise.
	(vrndn_f64): Likewise.
	(vrndp_f64): Likewise.
	(vrndx_f64): Likewise.

2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
	GET_MODE_SIZE argument is enum machine_mode.

2014-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/60910
	* config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
	value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.

2014-04-22  Lin Zuojian  <manjian2006@gmail.com>

	PR middle-end/60281
	* asan.c (asan_emit_stack_protection): Force the base to align to
	appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
	appropriate bits if STRICT_ALIGNMENT.
	* cfgexpand.c (expand_stack_vars): Set base_align appropriately
	when asan is on.
	(expand_used_vars): Leave a space in the stack frame for alignment
	if STRICT_ALIGNMENT.

2014-04-21  David Malcolm  <dmalcolm@redhat.com>

	* gimple.h (gimple_assign_single_p): Accept a const_gimple rather
	than a gimple.
	(gimple_store_p): Likewise.
	(gimple_assign_load_p): Likewise.
	(gimple_assign_cast_p): Likewise.
	(gimple_clobber_p): Likewise.

	* doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
	rather than a gimple.
	(gimple_assign_cast_p): Likewise.

2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60735
	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
	If mode is DDmode and TARGET_E500_DOUBLE allow move.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
	more debug information for E500 if -mdebug=reg.

2014-04-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/60909
	* config/i386/i386.c (ix86_expand_builtin)
	<case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
	register for target RTX.
	<case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.

2014-04-18  Cong Hou  <congh@google.com>

	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
	the widen-mult pattern by handling two operands with different sizes,
	and operands whose size is smaller than half of the result type.

2014-04-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.h (INLINE_HINT_known_hot): New hint.
	* ipa-inline-analysis.c (dump_inline_hints): Dump it.
	(do_estimate_edge_time): Compute it.
	* ipa-inline.c (want_inline_small_function_p): Bypass
	INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.

2014-04-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (spec_rem): New static variable.
	(dump_overall_stats): New function.
	(dump_inline_stats): New function.

2014-04-18  Richard Henderson  <rth@redhat.com>

	* config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
	to GET_MODE_SIZE, not a reg_class_t.

2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
	(vsx_xxmrglw_<mode>): Likewise.

2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60876
	* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
	GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
	(rs6000_init_hard_regno_mode_ok): Likewise.

2014-04-17  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.c (inline_small_functions): Account only non-cold
	functions.
	* doc/invoke.texi (inline-unit-growth): Update documentation.

2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.md (addti3, subti3): New.

2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/60863
	* config/i386/i386.c (ix86_expand_clear): Remove outdated
	comment.  Check optimize_insn_for_size_p instead of
	optimize_insn_for_speed_p.

2014-04-17  Martin Jambor  <mjambor@suse.cz>

	* gimple-iterator.c (gsi_start_edge): New function.
	* gimple-iterator.h (gsi_start_edge): Declare.
	* tree-sra.c (single_non_eh_succ): New function.
	(disqualify_ops_if_throwing_stmt): Renamed to
	disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
	having one non-EH successor BB.
	(sra_modify_expr): If stmt ends bb, use single non-EH successor to
	generate loads into replacements.
	(sra_modify_assign): Likewise and and also use the simple path for
	such statements.
	(sra_modify_function_body): Commit statements on edges.

2014-04-17  Richard Biener  <rguenther@suse.de>

	PR middle-end/60849
	* tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
	comparison results and add clarifying comment.

2014-04-17  Jakub Jelinek  <jakub@redhat.com>

	* genmodes.c (struct mode_data): Add need_bytesize_adj field.
	(blank_mode): Initialize it.
	(emit_mode_size_inline, emit_mode_nunits_inline,
	emit_mode_inner_inline): New functions.
	(emit_insn_modes_h): Call them and surround their output with
	#if GCC_VERSION >= 4001 ... #endif.
	* machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
	For GCC_VERSION >= 4001 use mode_*_inline routines instead of
	mode_* arrays if the argument is __builtin_constant_p.
	* lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
	is enum machine_mode.

2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>

	* passes.c (opt_pass::execute): Adjust.
	(pass_manager::execute_pass_mode_switching): Likewise.
	(early_local_passes::execute): Likewise.
	(execute_one_pass): Pass cfun to the pass's execute method.
	* tree-pass.h (opt_pass::execute): Add function * argument.
	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
	config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
	except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
	gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
	graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
	ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
	ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
	lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
	postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
	reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
	store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
	tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
	tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
	tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.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-ch.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
	Adjust.

2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>

	* passes.c (opt_pass::gate): Take function * argument.
	(gate_all_early_local_passes): Merge into
	(early_local_passes::gate): this.
	(gate_all_early_optimizations): Merge into
	(all_early_optimizations::gate): this.
	(gate_all_optimizations): Mege into
	(all_optimizations::gate): this.
	(gate_all_optimizations_g): Merge into
	(all_optimizations_g::gate): this.
	(gate_rest_of_compilation): Mege into
	(rest_of_compilation::gate): this.
	(gate_postreload): Merge into
	(postreload::gate): this.
	(dump_one_pass): Pass cfun to the pass's gate method.
	(execute_ipa_summary_passes): Likewise.
	(execute_one_pass): Likewise.
	(ipa_write_summaries_2): Likewise.
	(ipa_write_optimization_summaries_1): Likewise.
	(ipa_read_summaries_1): Likewise.
	(ipa_read_optimization_summaries_1): Likewise.
	(execute_ipa_stmt_fixups): Likewise.
	* tree-pass.h (opt_pass::gate): Add function * argument.
	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
	combine-stack-adj.c, combine.c, compare-elim.c,
	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
	config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
	config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
	dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
	gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
	graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
	loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
	omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
	reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
	store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
	tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
	tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
	tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
	tree-sra.c, tree-ssa-ccp.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-ch.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
	tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
	tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
	var-tracking.c, vtable-verify.c, web.c: Adjust.

2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>

	* configure.ac: Check for -Woverloaded-virtual and enable it if found.
	* configure: Regenerate.

2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>

	* passes.c (dump_one_pass): don't check pass->has_gate.
	(execute_ipa_summary_passes): Likewise.
	(execute_one_pass): Likewise.
	(ipa_write_summaries_2): Likewise.
	(ipa_write_optimization_summaries_1): Likewise.
	(ipa_read_optimization_summaries_1): Likewise.
	(execute_ipa_stmt_fixups): Likewise.
	* tree-pass.h (pass_data::has_gate): Remove.
	* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
	cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
	compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
	config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
	config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
	config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
	config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
	dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
	gimple-low.c, gimple-ssa-isolate-paths.c,
	gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
	ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
	ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
	modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
	recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
	reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
	trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
	tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
	tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
	tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
	tree-sra.c, tree-ssa-ccp.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-ch.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
	tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
	tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
	tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
	Adjust.

2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>

	* pass_manager.h (pass_manager::register_dump_files_1): Remove
	declaration.
	* passes.c (pass_manager::register_dump_files_1): Merge into
	(pass_manager::register_dump_files): this, and remove its handling of
	properties since the pass always has the properties anyway.
	(pass_manager::pass_manager): Adjust.

2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>

	* pass_manager.h (pass_manager::register_dump_files_1): Adjust.
	* passes.c (pass_manager::register_dump_files_1): Remove dead code
	dealing with properties.
	(pass_manager::register_dump_files): Adjust.

2014-03-20  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
	then represent the bound as normal constant value.

2014-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/60847
	Forward port from 4.8 branch
	2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/bmiintrin.h (_blsi_u32): New.
	(_blsi_u64): Ditto.
	(_blsr_u32): Ditto.
	(_blsr_u64): Ditto.
	(_blsmsk_u32): Ditto.
	(_blsmsk_u64): Ditto.
	(_tzcnt_u32): Ditto.
	(_tzcnt_u64): Ditto.

2014-04-17  Kito Cheng  <kito@0xlab.org>

	* gcc.c (used_arg): Prevent out of bound access for multilib_options.

2014-04-17  Richard Biener  <rguenther@suse.de>

	PR middle-end/60849
	* tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
	boolean results for comparisons.

2014-04-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60836
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Force
	initial PHI args to be gimple values.

2014-04-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60841
	* tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
	* tree-vect-loop.c (vect_analyze_loop_2): Pass down number
	of stmts to SLP build.
	* tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
	(vect_analyze_slp): Likewise.
	(vect_analyze_slp_instance): Likewise.
	(vect_build_slp_tree): Limit overall SLP tree growth.
	* tree-vectorizer.h (vect_analyze_data_refs,
	vect_analyze_slp): Adjust prototypes.

2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
	Silvermont.

2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
	* config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
	* config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
	for TARGET_SLOW_PSHUFB

2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>

	* config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
	* config/i386/i386.c (intel_cost): Ditto.

2014-04-17  Joey Ye  <joey.ye@arm.com>

	* opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.

2014-04-16  Jan Hubicka  <hubicka@ucw.cz>

	* opts.c (common_handle_option): Disable -fipa-reference coorectly
	with -fuse-profile.

2014-04-16  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (odr_type_d): Add field all_derivations_known.
	(type_all_derivations_known_p): New predicate.
	(type_all_ctors_visible_p): New predicate.
	(type_possibly_instantiated_p): New predicate.
	(get_odr_type): Compute all_derivations_known.
	(dump_odr_type): Dump the flag.
	(maybe_record_type): Cleanup.
	(record_target_from_binfo): Add bases_to_consider array;
	record bases for types w/o instances and skip CXX destructor.
	(possible_polymorphic_call_targets_1): Add bases_to_consider
	and consider_construction parameters; check if type may have instance.
	(get_polymorphic_call_info): Set maybe_in_construction to true
	when we know nothing.
	(record_targets_from_bases): Skip CXX destructors; they are
	never called for types in construction.
	(possible_polymorphic_call_targets): Do not record target when
	type may not have instance.

2014-04-16  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60854
	* ipa.c (symtab_remove_unreachable_nodes): Mark targets of
	external aliases alive, too.

2014-04-16  Andrew  Pinski  <apinski@cavium.com>

	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
	definition.

2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>

	* final.c (compute_alignments): Do not apply loop alignment to a block
	falling through to the exit.

2014-04-16  Catherine Moore  <clm@codesourcery.com>

	* mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
	Adjust constraints for microMIPS store patterns.

2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>

	* config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.

2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
	(append_use): Run at -O0.
	(append_vdef): Likewise.
	* tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
	* tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.

2014-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/60844
	* tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
	(propagate_op_to_single_use, remove_visited_stmt_chain,
	linearize_expr, repropagate_negates, reassociate_bb): Use it
	instead of gsi_remove.

2014-04-16  Martin Jambor  <mjambor@suse.cz>

	* cgraphclones.c (cgraph_create_virtual_clone): Duplicate
	ipa_transforms_to_apply.
	(cgraph_function_versioning): Assert that old_node has empty
	ipa_transforms_to_apply.
	* trans-mem.c (ipa_tm_create_version): Likewise.
	* tree-inline.c (tree_function_versioning): Do not duplicate
	ipa_transforms_to_apply.

2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/60817
	* configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
	x86_64-*-* cases.
	Pass necessary as flags on 64-bit Solaris/x86.
	Use lowercase relocs for x86_64-*-*.
	* configure: Regenerate.

2014-04-15  Jan Hubicka  <jh@suse.cz>

	* ipa-devirt.c (referenced_from_vtable_p): New predicate.
	(maybe_record_node, likely_target_p): Use it.

2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/60839
	Revert following patch

	2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60735
	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
	software floating point or no floating point registers, do not
	allow any type in the FPRs.  Eliminate a test for SPE SIMD types
	in GPRs that occurs after we tested for GPRs that would never be
	true.

	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
	Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
	since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
	specifically allow DDmode, since that does not use the SPE SIMD
	instructions.

2014-04-15  Mark Wielaard  <mjw@redhat.com>

	* dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
	as unsigned or int depending on type and value used.

2014-04-15  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/56965
	* alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
	* tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
	... here.
	* alias.c (true_dependence_1): Do not call
	nonoverlapping_component_refs_p.
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
	nonoverlapping_component_refs_p.
	(indirect_refs_may_alias_p): Likewise.

2014-04-15  Teresa Johnson  <tejohnson@google.com>

	* cfg.c (dump_bb_info): Fix flags check.
	* tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.

2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR rtl-optimization/60663
	* config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
	avoid 0 cost.

2014-04-15  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (LTO_major_version): Bump to 4.

2014-04-15  Richard Biener  <rguenther@suse.de>

	* common.opt (lto_partition_model): New enum.
	(flto-partition=): Merge separate options with a single with argument,
	add -flto-partition=one support.
	* flag-types.h (enum lto_partition_model): Declare.
	* opts.c (finish_options): Remove duplicate -flto-partition=
	option check.
	* lto-wrapper.c (run_gcc): Adjust.

2014-04-15  Richard Biener  <rguenther@suse.de>

	* alias.c (ncr_compar): New function.
	(nonoverlapping_component_refs_p): Re-implement in O (n log n).

2014-04-15  Richard Biener  <rguenther@suse.de>

	* alias.c (record_component_aliases): Do not walk BINFOs.

2014-04-15  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
	Add struct function argument and adjust.
	(find_func_aliases_for_call): Likewise.
	(find_func_aliases): Likewise.
	(find_func_clobbers): Likewise.
	(intra_create_variable_infos): Likewise.
	(compute_points_to_sets): Likewise.
	(ipa_pta_execute): Adjust.  Do not push/pop cfun.

2014-04-15  Richard Biener  <rguenther@suse.de>

	* tree.c (iterative_hash_expr): Use enum tree_code_class
	to store TREE_CODE_CLASS.
	(tree_block): Likewise.
	(tree_set_block): Likewise.
	* tree.h (fold_build_pointer_plus_loc): Use
	convert_to_ptrofftype_loc.

2014-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR plugins/59335
	* Makefile.in (PLUGIN_HEADERS): Add various headers that have been
	added in 4.9.

2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgloop.h (struct loop): Move force_vectorize down.
	* gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
	(gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
	* lto-streamer-in.c (input_cfg): Read dont_vectorize field.
	* lto-streamer-out.c (output_cfg): Write dont_vectorize field.
	* tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
	* tree-core.h (enum annot_expr_kind): Add new kind values.
	* tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
	* tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
	kinds.
	* tree.def (ANNOTATE_EXPR): Tweak comment.

2014-04-14  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
	cxa_pure_virtual).

2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* tree.h (TYPE_IDENTIFIER): Declare.
	* tree.c (subrange_type_for_debug_p): Use it.
	* godump.c (go_format_type): Likewise.
	* dwarf2out.c (is_cxx_auto, modified_type_die,
	gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
	* dbxout.c (dbxout_type, dbxout_symbol): Likewise.

2014-04-14  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/60820
	* varpool.c (varpool_remove_node): Do not alter decls when streaming.

2014-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (examine_argument): Return bool.  Return true if
	parameter should be passed in memory.
	<case X86_64_COMPLEX_X87_CLASS>: Adjust.
	(construct_container): Update calls to examine_argument.
	(function_arg_advance_64): Ditto.
	(return_in_memory_32): Merge with ix86_return_in_memory.
	(return_in_memory_64): Ditto.
	(return_in_memory_ms_64): Ditto.

2014-04-14  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-utils.c (ipa_merge_profiles): Merge profile_id.
	* coverage.c (coverage_compute_profile_id): Handle externally visible
	symbols.

2014-04-14  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (ipa_sra_preliminary_function_checks): Skip
	DECL_DISREGARD_INLINE_LIMITS functions.

2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/60827
	* config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.

2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/60827
	* config/i386/i386.md (*fixuns_trunc<mode>_1): Check
	optimize_insn_for_speed_p instead of
	optimize_function_for_speed_p.

2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>

	* doc/invoke.texi (free): Document AArch64.

2014-04-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60042
	* tree-ssa-pre.c (inhibit_phi_insertion): Remove.
	(insert_into_preds_of_block): Do not prevent PHI insertion
	for REFERENCE exprs here ...
	(eliminate_dom_walker::before_dom_children): ... but prevent
	their use here under similar conditions when applied to the
	IL after PRE optimizations.

2014-04-14  Richard Biener  <rguenther@suse.de>

	* passes.def: Move early points-to after early SRA.

2014-04-14  Richard Biener  <rguenther@suse.de>

	* tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
	check for which sign-changes we allow when forwarding
	a converted value into a switch.

2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (place_field): Finalize non-constant offset for the
	field, if any.

2014-04-14  Richard Biener  <rguenther@suse.de>

	* tree-switch-conversion.c (lshift_cheap_p): Get speed_p
	as argument.
	(expand_switch_using_bit_tests_p): Likewise.
	(process_switch): Compute and pass on speed_p based on the
	switch stmt.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
	optimize_bb_for_speed_p.

2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgloop.h (struct loop): Rename force_vect into force_vectorize.
	* function.h (struct function): Rename has_force_vect_loops into
	has_force_vectorize_loops.
	* lto-streamer-in.c (input_cfg): Adjust for renaming.
	(input_struct_function_base): Likewise.
	* lto-streamer-out.c (output_cfg): Likewise.
	(output_struct_function_base): Likewise.
	* omp-low.c (expand_omp_simd): Likewise.
	* tree-cfg.c (move_sese_region_to_fn): Likewise.
	* tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
	(version_loop_for_if_conversion): Likewise.
	(tree_if_conversion): Likewise.
	(main_tree_if_conversion): Likewise.
	(gate_tree_if_conversion): Likewise.
	* tree-inline.c (copy_loops): Likewise.
	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
	* tree-ssa-loop.c (tree_loop_vectorize): Likewise.
	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
	* tree-vectorizer.c (vectorize_loops): Likewise.
	* tree-vectorizer.h (unlimited_cost_model): Likewise.

2014-04-14  Richard Biener  <rguenther@suse.de>

	PR lto/60720
	* lto-streamer-out.c (wrap_refs): New function.
	(lto_output): Wrap symbol references in global initializes in
	type-preserving MEM_REFs.

2014-04-14  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.

2014-04-14  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.md (setmemqi): New expand pattern.
	* config/sh/sh.h (CLEAR_RATIO): Define.
	* config/sh/sh-mem.cc (sh_expand_setmem): Define.
	* config/sh/sh-protos.h (sh_expand_setmem): Declare.

2014-04-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/55022
	* fold-const.c (negate_expr_p): Don't negate directional rounding
	division.
	(fold_negate_expr): Likewise.

2014-04-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59817
	PR tree-optimization/60453
	* graphite-scop-detection.c (graphite_can_represent_scev): Complete
	recursion to catch all CHRECs in the scalar evolution and restrict
	the predicate for the remains appropriately.

2014-04-12  Catherine Moore  <clm@codesourcery.com>

	* config/mips/constraints.md: Add new register constraint "kb".
	* config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
	(*movhi_internal): Likewise.
	(*movqi_internal): Likewise.
	* config/mips/mips.h (M16_STORE_REGS): New register class.
	(REG_CLASS_NAMES): Add M16_STORE_REGS.
	(REG_CLASS_CONTENTS): Likewise.
	* config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.

2014-04-11  Tobias Burnus  <burnus@net-b.de>

	PR c/60194
	* doc/invoke.texi (-Wformat-signedness): Document it.
	(Wformat=2): Mention that this enables -Wformat-signedness.

2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>

	* common/config/epiphany/epiphany-common.c
	(epiphany_option_optimization_table): Enable section anchors by
	default at -O1 or higher.
	* config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
	(TARGET_MIN_ANCHOR_OFFSET): Likewise.
	(epiphany_rtx_costs) <SET>: For binary operators, the set as such
	carries no extra cost.
	(epiphany_legitimate_address_p): For BLKmode, apply SImode check.
	* config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
	* config/epiphany/predicates.md (memclob_operand): New predicate.
	* config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
	Use memclob_operand predicate and X constraint for operand 3.

2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
	with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
	its operands.

2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR rtl-optimization/60651
	* mode-switching.c (optimize_mode_switching): Make sure to emit
	sets of a lower numbered entity before sets of a higher numbered
	entity to a mode of the same or lower priority.
	When creating a seginfo for a basic block that starts with a code
	label, move the insertion point past the code label.
	(new_seginfo): Document and enforce requirement that
	NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
	* doc/tm.texi.in: Document ordering constraint for emitted mode sets.
	* doc/tm.texi: Regenerate.

2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR target/60811
	* config/arc/arc.c (arc_save_restore): Fix assert typo.

2013-04-11  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 4.10.0.

2014-04-11  Tobias Burnus  <burnus@net-b.de>

	PR other/59055
	* doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
	* doc/gcc.texi (Service): Update description in the @menu
	* doc/invoke.texi (Option Summary): Remove misplaced and
	duplicated @menu.

2014-04-11  Steve Ellcey  <sellcey@mips.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/60556
	* expr.c (convert_move): Use emit_store_flag_force instead of
	emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
	argument to it.

2014-04-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/60797
	* varasm.c (assemble_alias): Avoid endless error reporting
	recursion by setting TREE_ASM_WRITTEN.

2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md: Add a splitter for NOT rtx.

2014-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/60663
	* cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.

2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR lto/60567
	* ipa.c (function_and_variable_visibility): Copy forced_by_abi
	flag from decl_node to node.

2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR debug/60655
	* config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
	(arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
	ameliorating the cases where it can be.

2014-04-09  David Edelsohn  <dje.gcc@gmail.com>

	Revert
	2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
	(loadsync_<mode>): Change mode.
	(load_quadpti, store_quadpti): New.
	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
	* config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.

2014-04-09  Cong Hou  <congh@google.com>

	PR testsuite/60773
	* doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
	documentation.

2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
	instead of vnor to exploit possible fusion opportunity in the
	future.
	(altivec_expand_vec_perm_const_le): Likewise.

2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/sync.md (AINT mode_iterator): Move definition.
	(loadsync_<mode>): Change mode.
	(load_quadpti, store_quadpti): New.
	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.

2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/60763
	* config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
	* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
	Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.

2014-04-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/60706
	* tree-pretty-print.c (pp_double_int): For HWI32 hosts with
	a 64bit widest int print double-int similar to on HWI64 hosts.

2014-04-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60785
	* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
	default defs properly.

2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/invoke (Wnon-virtual-dtor): Update to match implementation.
	(Weffc++): Likewise.

2014-04-07  Jan Hubicka  <hubcika@ucw.cz>

	* ipa-devirt.c (maybe_record_node): When node is not recorded,
	set completep to false rather than true.

2014-04-07  Douglas B Rupp  <rupp@adacore.com>

	PR target/60504
	* config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
	ARM_TARGET2_DWARF_FORMAT.

2014-04-07  Charles Baylis  <charles.baylis@linaro.org>

	PR target/60609
	* config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
	(LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
	ADDR_DIFF_VEC.

2014-04-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60766
	* tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
	(may_eliminate_iv): Convert cand_value_at result to desired type.

2014-04-07  Jason Merrill  <jason@redhat.com>

	PR c++/60731
	* common.opt (-fno-gnu-unique): Add.
	* config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.

2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* haifa-sched.c: Fix outdated function reference and minor
	grammar errors in introductory comment.

2014-04-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/60750
	* tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
	for noreturn calls.
	* tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.

2014-04-06  John David Anglin  <danglin@gcc.gnu.org>

	PR debug/55794
	* config/pa/pa.c (pa_output_function_epilogue): Skip address and code
	size accounting for thunks.
	(pa_asm_output_mi_thunk): Use final_start_function() and
	final_end_function() to output function start and end directives.

2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>

	* config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
	device specific ISA/ feature information. Remove short_sp and
	errata_skip ds.  Add avr_device_specific_features enum to have device
	specific info.
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
	errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
	* config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
	updated device specific info.
	* config/avr/avr-mcus.def: Merge device specific details to
	dev_attribute field.
	* config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
	errata_skip.
	* config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
	* config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
	assembler if RMW isa supported by current device.
	* config/avr/genmultilib.awk: Update as device info structure changed.
	* doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro

2014-04-04  Cong Hou  <congh@google.com>

	PR tree-optimization/60656
	* tree-vect-stmts.c (supportable_widening_operation):
	Fix a bug that elements in a vector with vect_used_by_reduction
	property are incorrectly reordered when the operation on it is not
	consistant with the one in reduction operation.

2014-04-04  John David Anglin  <danglin@gcc.gnu.org>

	PR rtl-optimization/60155
	* gcse.c (record_set_data): New function.
	(single_set_gcse): New function.
	(gcse_emit_move_after): Use single_set_gcse instead of single_set.
	(hoist_code): Likewise.
	(get_pressure_class_and_nregs): Likewise.

2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>

	* explow.c (probe_stack_range): Emit a final optimization blockage.

2014-04-04  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
	typos.

2014-04-04  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/59626
	* lto-cgraph.c (input_overwrite_node): Check that partitioning
	flags are set only during streaming.
	* ipa.c (process_references, walk_polymorphic_call_targets,
	symtab_remove_unreachable_nodes): Drop bodies of always inline
	after early inlining.
	(symtab_remove_unreachable_nodes): Remove always_inline attribute.

2014-04-04  Jakub Jelinek  <jakub@redhat.com>
	Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR debug/60655
	* dwarf2out.c (const_ok_for_output_1): Reject expressions
	containing a NOT.

2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR bootstrap/60743
	* config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
	duration.
	(cortex_a53_fdivd): Likewise.

2014-04-04  Martin Jambor  <mjambor@suse.cz>

	PR ipa/60640
	* cgraph.h (cgraph_clone_node): New parameter added to declaration.
	Adjust all callers.
	* cgraph.c (clone_of_p): Also return true if thunks match.
	(verify_edge_corresponds_to_fndecl): Removed extraneous call to
	cgraph_function_or_thunk_node and an obsolete comment.
	* cgraphclones.c (build_function_type_skip_args): Moved upwards in the
	file.
	(build_function_decl_skip_args): Likewise.
	(set_new_clone_decl_and_node_flags): New function.
	(duplicate_thunk_for_node): Likewise.
	(redirect_edge_duplicating_thunks): Likewise.
	(cgraph_clone_node): New parameter args_to_skip, pass it to
	redirect_edge_duplicating_thunks which is called instead of
	cgraph_redirect_edge_callee.
	(cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
	moved setting of a lot of flags to set_new_clone_decl_and_node_flags.

2014-04-04  Jeff Law  <law@redhat.com>

	PR target/60657
	* config/arm/predicates.md (const_int_I_operand): New predicate.
	(const_int_M_operand): Similarly.
	* config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
	const_int_operand.
	(insv_t2, extv_reg, extzv_t2): Likewise.
	(load_multiple_with_writeback): Similarly for const_int_I_operand.
	(pop_multiple_with_writeback_and_return): Likewise.
	(vfp_pop_multiple_with_writeback): Likewise

2014-04-04  Richard Biener  <rguenther@suse.de>

	PR ipa/60746
	* tree-ssanames.c (make_ssa_name_fn): Fix assert.
	* gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
	non-GIMPLE_LABELs.
	* gimplify.h (gimple_add_tmp_var_fn): Declare.
	* gimplify.c (gimple_add_tmp_var_fn): New function.
	* gimple-expr.h (create_tmp_reg_fn): Declare.
	* gimple-expr.c (create_tmp_reg_fn): New function.
	* gimple-low.c (record_vars_into): Don't change cfun.
	* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
	code generation without cfun.

2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>

	PR bootstrap/60719
	* Makefile.in (install-driver): Fix shell scripting.

2014-04-03  Cong Hou  <congh@google.com>

	PR tree-optimization/60505
	* tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
	threshold of number of iterations below which no vectorization
	will be done.
	* tree-vect-loop.c (new_loop_vec_info):
	Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
	* tree-vect-loop.c (vect_analyze_loop_operations):
	Set LOOP_VINFO_COST_MODEL_THRESHOLD.
	* tree-vect-loop.c (vect_transform_loop):
	Use LOOP_VINFO_COST_MODEL_THRESHOLD.
	* tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
	of iterations of the loop and see if we should build the epilogue.

2014-04-03  Richard Biener  <rguenther@suse.de>

	* tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
	(streamer_tree_cache_create): Adjust.
	* tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
	to allow optional nodes array.
	(streamer_tree_cache_insert_1): Use next_idx to assign idx.
	(streamer_tree_cache_append): Likewise.
	(streamer_tree_cache_create): Create nodes array optionally
	as specified by parameter.
	* lto-streamer-out.c (create_output_block): Avoid maintaining
	the node array in the writer cache.
	(DFS_write_tree): Remove assertion.
	(produce_asm_for_decls): Free the out decl state hash table early.
	* lto-streamer-in.c (lto_data_in_create): Adjust for
	streamer_tree_cache_create prototype change.

2014-04-03  Richard Biener  <rguenther@suse.de>

	* tree-streamer-out.c (streamer_write_chain): Do not temporarily
	set TREE_CHAIN to NULL_TREE.

2014-04-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60740
	* graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
	over all GIMPLE_COND operands.

2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
	(Weffc++): Remove Scott's numbering, merge lists and reference
	Wnon-virtual-dtor.

2014-04-03  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
	properly.

2014-04-03  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
	mention gcc_unreachable before failing.
	* ipa.c (symtab_remove_unreachable_nodes): Also print order of
	removed symbols.

2014-04-02  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60659
	* ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
	inconsistent code and instead mark the context inconsistent.
	(possible_polymorphic_call_targets): For inconsistent contexts
	return empty complete list.

2014-04-02  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
	(extendqisi2, extendhisi2): Define.
	* config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
	(WCHAR_TYPE): Change to unsigned int.

2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/60733
	* gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
	insertion point for PHI candidates to be the end of the feeding
	block for the PHI argument.

2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/60650
	* lra-constraints.c (process_alt_operands): Decrease reject for
	earlyclobber matching.

2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.

2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (pad_bb): Do not crash when the last
	insn is CODE_FOR_blockage.

2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
	lies outside the target mode.

2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60735
	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
	software floating point or no floating point registers, do not
	allow any type in the FPRs.  Eliminate a test for SPE SIMD types
	in GPRs that occurs after we tested for GPRs that would never be
	true.

	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
	Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
	since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
	specifically allow DDmode, since that does not use the SPE SIMD
	instructions.

2014-04-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/60729
	* optabs.c (expand_abs_nojump): Honor flag_trapv only for
	MODE_INTs.  Properly use negv_optab.
	(expand_abs): Likewise.

2014-04-02  Richard Biener  <rguenther@suse.de>

	PR bootstrap/60719
	* Makefile.in (install-driver): Guard extra installs with special
	names properly.

2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
	Document vec_vgbbd.

2014-04-01  Richard Henderson  <rth@redhat.com>

	PR target/60704
	* config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
	alternative enabled before register allocation.

2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
	* config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
	typo.
	(nios2_large_got_address): Remove unneeded 'sym' parameter.
	(nios2_got_address): Update nios2_large_got_address call site.
	(nios2_delegitimize_address): New function.
	(TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
	* config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.

2014-04-01  Martin Husemann  <martin@duskware.de>

	* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
	for -mabi=32.

2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/60604
	* recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
	check from register_operand.
	(register_operand): Redefine in terms of general_operand.
	(nonmemory_operand): Use register_operand for the non-constant cases.

2014-04-01  Richard Biener  <rguenther@suse.de>

	* gimple.h (struct gimple_statement_base): Align subcode to 16 bits.

2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* doc/invoke.texi (mapp-regs): Clarify.

2014-03-31  Ulrich Drepper  <drepper@gmail.com>

	* config/i386/avx512fintrin.h (__v32hi): Define type.
	(__v64qi): Likewise.
	(_mm512_set1_epi8): Define.
	(_mm512_set1_epi16): Define.
	(_mm512_set4_epi32): Define.
	(_mm512_set4_epi64): Define.
	(_mm512_set4_pd): Define.
	(_mm512_set4_ps): Define.
	(_mm512_setr4_epi64): Define.
	(_mm512_setr4_epi32): Define.
	(_mm512_setr4_pd): Define.
	(_mm512_setr4_ps): Define.
	(_mm512_setzero_epi32): Define.

2014-03-31  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/60647
	* tree-sra.c (callsite_has_enough_arguments_p): Renamed to
	callsite_arguments_match_p.  Updated all callers.  Also check types of
	corresponding formal parameters and actual arguments.
	(not_all_callers_have_enough_arguments_p) Renamed to
	some_callers_have_mismatched_arguments_p.

2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>

	* tree-inline.c (copy_loops): Add missed copy of 'safelen'.

2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR target/60034
	* aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
	section anchor.

2014-03-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
	(<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
	Split out
	<sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
	Use FMAMODE_NOVF512 mode iterator.
	(<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
	(<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
	(<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
	(<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
	Split out
	<sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
	Use VF_128_256 mode iterator.
	(<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
	Ditto.

2014-03-28  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
	static chain if needed.

2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/60697
	* lra-constraints.c (index_part_to_reg): New.
	(process_address): Use it.

2014-03-27  Jeff Law  <law@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/60648
	* expr.c (do_tablejump): Use simplify_gen_binary rather than
	gen_rtx_{PLUS,MULT} to build up the address expression.

	* i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
	creating non-canonical RTL.

2014-03-28  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60243
	* ipa-inline.c (want_inline_small_function_p): Short circuit large
	functions; reorganize to make cheap checks first.
	(inline_small_functions): Do not estimate growth when dumping;
	it is expensive.
	* ipa-inline.h (inline_summary): Add min_size.
	(growth_likely_positive): New function.
	* ipa-inline-analysis.c (dump_inline_summary): Add min_size.
	(set_cond_stmt_execution_predicate): Cleanup.
	(estimate_edge_size_and_time): Compute min_size.
	(estimate_calls_size_and_time): Likewise.
	(estimate_node_size_and_time): Likewise.
	(inline_update_overall_summary): Update min_size.
	(do_estimate_edge_time): Likewise.
	(do_estimate_edge_size): Update.
	(do_estimate_edge_hints): Update.
	(growth_likely_positive): New function.

2014-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/60693
	* config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
	also if addr has VOIDmode.

2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
	* config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
	Declare extern.
	* config/arm/cortex-a53.md: Add reservations and bypass for crypto
	instructions as well as AdvancedSIMD loads.

2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
	Use crypto_aese type.
	(aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
	* config/arm/arm.md (is_neon_type): Replace crypto_aes with
	crypto_aese, crypto_aesmc.  Move to types.md.
	* config/arm/types.md (crypto_aes): Split into crypto_aese,
	crypto_aesmc.
	* config/arm/iterators.md (crypto_type): Likewise.

2014-03-28  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c: Include expr.h and tree-dfa.h.
	(cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
	remove LHS.

2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/60675
	* lra-assigns.c (find_hard_regno_for): Remove unavailable hard
	regs from checking multi-reg pseudos.

2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.

2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
	if it would clobber the stack pointer, even temporarily.

2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>

	* mode-switching.c: Make small adjustments to the top comment.

2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/constraints.md (wD constraint): New constraint to
	match the constant integer to get the top DImode/DFmode out of a
	vector in a VSX register.

	* config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
	match the constant integer to get the top DImode/DFmode out of a
	vector in a VSX register.

	* config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
	for ISA 2.07.

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	vbpermq builtins.

	* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
	-mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.

	* config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
	Optimize vec_extract of 64-bit values, where the value being
	extracted is in the top word, where we can use scalar
	instructions.  Add direct move and store support.  Combine the big
	endian/little endian vector select load support into a single insn.
	(vsx_extract_<mode>_internal1): Likewise.
	(vsx_extract_<mode>_internal2): Likewise.
	(vsx_extract_<mode>_load): Likewise.
	(vsx_extract_<mode>_store): Likewise.
	(vsx_extract_<mode>_zero): Delete, big and little endian insns are
	combined into vsx_extract_<mode>_load.
	(vsx_extract_<mode>_one_le): Likewise.

	* config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
	define the top 64-bit vector element.

	* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
	constraint.

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
	Document vec_vbpermq builtin.

	PR target/60672
	* config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
	enable use of xxsldwi and xxpermdi builtin functions.
	(vec_xxpermdi): Likewise.

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
	Document use of vec_xxsldwi and vec_xxpermdi builtins.

2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/60650
	* lra-assign.c (find_hard_regno_for, spill_for): Add parameter
	first_p.  Use it.
	(find_spills_for): New.
	(assign_by_spills): Pass the new parameter to find_hard_regno_for.
	Spill all pseudos on the second iteration.

2014-03-27  Marek Polacek  <polacek@redhat.com>

	PR c/50347
	* doc/extend.texi (ffs Builtins): Change unsigned types to signed
	types.

2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_can_use_return_insn): Check for
	call-saved FPRs on 31 bit.

2014-03-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/60682
	* omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
	if they need regimplification, just drop them instead of
	calling gimple_regimplify_operands on them.

2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	PR target/60580
	* config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
	(aarch64_frame_pointer_required): Adjust logic.
	(aarch64_can_eliminate): Adjust logic.
	(aarch64_override_options_after_change): Adjust logic.

2014-03-27  Dehao Chen  <dehao@google.com>

	* ipa-inline.c (early_inliner): Update node's inline info.

2014-03-26  Dehao Chen  <dehao@google.com>

	* dojump.c (do_compare_rtx_and_jump): Sets correct probability for
	compiler inserted conditional jumps for NAN float check.

2014-03-26  Jakub Jelinek  <jakub@redhat.com>

	* ubsan.h (ubsan_create_data): Change second argument's type
	to const location_t *.
	* ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
	_("<unknown>").
	(ubsan_create_data): Change second argument to const location_t *PLOC.
	Create Loc field whenever PLOC is non-NULL.
	(ubsan_instrument_unreachable, ubsan_expand_null_ifn,
	ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
	callers.

	PR other/59545
	* real.c (real_to_integer2): Change type of low to UHWI.

2014-03-26  Tobias Burnus  <burnus@net-b.de>

	* gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
	(CILK_SELF_SPECS): New define.
	(driver_self_specs): Use it.

2014-03-26  Richard Biener  <rguenther@suse.de>

	* tree-pretty-print.c (percent_K_format): Implement special
	case for LTO and its stripped down BLOCK tree.

2014-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/60636
	* ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.

	* tree-vrp.c (simplify_internal_call_using_ranges): If only
	one range is range_int_cst_p, but not both, at least optimize
	addition/subtraction of 0 and multiplication by 0 or 1.
	* gimple-fold.c (gimple_fold_call): Fold
	IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
	(gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
	INTEGER_CSTs, try to fold at least x * 0 and y - y.

2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/60452
	* rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
	<case REG>: Return 1 for invalid offsets from the frame pointer.

2014-03-26  Marek Polacek  <polacek@redhat.com>

	PR c/37428
	* doc/extend.texi (C Extensions): Mention variable-length arrays in
	a structure/union.

2014-03-26  Marek Polacek  <polacek@redhat.com>

	PR c/39525
	* doc/extend.texi (Designated Inits): Describe what happens to omitted
	field members.

2014-03-26  Marek Polacek  <polacek@redhat.com>

	PR other/59545
	* ira-color.c (update_conflict_hard_regno_costs): Perform the
	multiplication in unsigned type.

2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>

	* doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.

2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>

	* doc/contrib.texi: Add myself as Andes nds32 port contributor.

2014-03-25  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60315
	* cif-code.def (UNREACHABLE) New code.
	* ipa-inline.c (inline_small_functions): Skip edges to
	__builtlin_unreachable.
	(estimate_edge_growth): Allow edges to __builtlin_unreachable.
	* ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
	predicate to __bulitin_unreachable.
	(set_cond_stmt_execution_predicate): Fix issue when
	invert_tree_comparison returns ERROR_MARK.
	* ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
	propagate to inline clones.
	* cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
	to unreachable.
	* ipa-cp.c (create_specialized_node): Be ready for new node to appear.
	* cgraphclones.c (cgraph_clone_node): If call destination is already
	ureachable, do not redirect it back.
	* tree-inline.c (fold_marked_statements): Hanlde calls becoming
	unreachable.

2014-03-25  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
	Do not modify inline clones.

2014-03-25  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (general_sext_operand): New mode attr.
	(addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
	don't generate (sign_extend (const_int)).
	(*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
	operands[2].  Use We constraint instead of <i> and
	<general_sext_operand> predicate instead of <general_operand>.
	(*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
	* config/i386/constraints.md (We): New constraint.
	* config/i386/predicates.md (x86_64_sext_operand,
	sext_operand): New predicates.

2014-03-25  Martin Jambor  <mjambor@suse.cz>

	PR ipa/60600
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
	inconsistent devirtualizations to __builtin_unreachable.

2014-03-25  Marek Polacek  <polacek@redhat.com>

	PR c/35449
	* doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.

2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
	order of elements for big-endian.

2014-03-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/60635
	* gimplify-me.c (gimple_regimplify_operands): Update the
	re-gimplifed stmt.

2014-03-25  Martin Jambor  <mjambor@suse.cz>

	PR ipa/59176
	* lto-cgraph.c (lto_output_node): Stream body_removed flag.
	(lto_output_varpool_node): Likewise.
	(input_overwrite_node): Likewise.
	(input_varpool_node): Likewise.

2014-03-25  Richard Biener  <rguenther@suse.de>

	* lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
	(run_gcc): Likewise.

2014-03-25  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (simplify_compare_const): Add MODE argument.
	Handle mode_width 0 as very large mode_width.
	(try_combine, simplify_comparison): Adjust callers.

	* cselib.c (cselib_hash_rtx): Perform addition in unsigned
	type to avoid signed integer overflow.
	* explow.c (plus_constant): Likewise.

2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* doc/generic.texi: Correct typos.

2014-03-24  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-flto): Expand section about
	using static libraries with LTO.

2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR rtl-optimization/60501
	* optabs.def (addptr3_optab): New optab.
	* optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
	* doc/md.texi ("addptrm3"): Document new RTL standard expander.
	* expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.

	* lra.c (emit_add3_insn): Use the addptr pattern if available.

	* config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.

2014-03-24  Ulrich Drepper  <drepper@gmail.com>

	* config/i386/avx512fintrin.h: Define _mm512_set1_ps and
	_mm512_set1_pd.

	* config/i386/avxintrin.h (_mm256_undefined_si256): Define.
	(_mm256_undefined_ps): Define.
	(_mm256_undefined_pd): Define.
	* config/i386/emmintrin.h (_mm_undefined_si128): Define.
	(_mm_undefined_pd): Define.
	* config/i386/xmmintrin.h (_mm_undefined_ps): Define.
	* config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
	(_mm512_undefined_ps): Define.
	(_mm512_undefined_pd): Define.
	Use _mm*_undefined_*.
	* config/i386/avx2intrin.h: Use _mm*_undefined_*.

2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
	(lshr_simd): DI mode added.
	* config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
	(aarch64_ushr_simddi): Likewise.
	* config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
	* config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
	(vshrd_n_u64): Likewise.

2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Makefile.in (s-macro_list): Depend on cc1.

2014-03-23  Teresa Johnson  <tejohnson@google.com>

	* ipa-utils.c (ipa_print_order): Use specified dump file.

2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/60601
	* bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.

	* gcc.c (eval_spec_function): Initialize save_growing_value.

2014-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/60613
	* internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
	code == MINUS_EXPR, never swap op0 with op1.

	* toplev.c (init_local_tick): Avoid signed integer multiplication
	overflow.
	* genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
	shift by first operand's bitsize.

2014-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/60610
	* config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
	redefine to 1 or 0.
	* config/i386/darwin.h (TARGET_64BIT_P): Redefine to
	TARGET_ISA_64BIT_P(x).

2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
	pattern for vector nor instead of subtract from splat(-1).
	(altivec_expand_vec_perm_const_le): Likewise.

2014-03-21  Richard Henderson  <rth@twiddle.net>

	PR target/60598
	* ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
	related insns after epilogue_completed.

2014-03-21  Martin Jambor  <mjambor@suse.cz>

	PR ipa/59176
	* cgraph.h (symtab_node): New flag body_removed.
	* ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
	when removing bodies.
	* symtab.c (dump_symtab_base): Dump body_removed flag.
	* cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
	had their bodies removed.

2014-03-21  Martin Jambor  <mjambor@suse.cz>

	PR ipa/60419
	* ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
	in the border.

2014-03-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60577
	* tree-core.h (struct tree_base): Document nothrow_flag use
	in DECL_NONALIASED.
	* tree.h (DECL_NONALIASED): New.
	(may_be_aliased): Adjust.
	* coverage.c (build_var): Set DECL_NONALIASED.

2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1): Remove outdated comment.

2014-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/60597
	* ira.c (adjust_cleared_regs): Call copy_rtx on
	*reg_equiv[REGNO (loc)].src_p before passing it to
	simplify_replace_fn_rtx.

	PR target/60568
	* config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
	into CONST, put pic register as first operand of PLUS.  Use
	gen_const_mem for both 32-bit and 64-bit PIC got loads.

2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.

2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
	around for store forwarding issue in the FPU on the UT699.
	* config/sparc/sparc.md (in_branch_delay): Return false for single FP
	loads and operations if -mfix-ut699 is specified.
	(divtf3_hq): Tweak attribute.
	(sqrttf2_hq): Likewise.

2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>

	* calls.c (store_one_arg): Remove incorrect const qualification on the
	type of the temporary.
	* cfgexpand.c (expand_return): Likewise.
	* expr.c (expand_constructor): Likewise.
	(expand_expr_real_1): Likewise.

2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/arm/arm.c (arm_dwarf_register_span): Update the element number
	of parts.

2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/60039
	* config/sh/sh.md (udivsi3_i1): Clobber R1 register.

2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/aarch-common-protos.h
	(alu_cost_table): Fix spelling of "extend".
	* config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".

2014-03-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/60553
	* tree-core.h (tree_type_common): Re-order pointer members
	to reduce recursion depth during GC walks.

2014-03-19  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/60569
	* ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
	before accessing it.

2014-03-19  Richard Biener  <rguenther@suse.de>

	PR lto/59543
	* lto-streamer-in.c (input_function): In WPA stage do not drop
	debug stmts.

2014-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/60559
	* vectorizable_mask_load_store): Replace scalar MASK_LOAD
	with build_zero_cst assignment.

2014-03-18  Kai Tietz  <ktietz@redhat.com>

	PR rtl-optimization/56356
	* sdbout.c (sdbout_parms): Verify that parms'
	incoming argument is valid.
	(sdbout_reg_parms): Likewise.

2014-03-18  Richard Henderson  <rth@redhat.com>

	PR target/60562
	* config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
	be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
	(*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.

2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>

	* plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
	* doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
	Italicize plugin event names in description.  Explain that
	PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
	Remind that no GCC functions should be called after PLUGIN_FINISH.
	Explain what pragmas with expansion are.

2014-03-18  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
	gimple call statement is update.
	* gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
	GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.

2014-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/60557
	* ubsan.c (ubsan_instrument_unreachable): Call
	initialize_sanitizer_builtins.
	(ubsan_pass): Likewise.

	PR sanitizer/60535
	* ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
	varpool_finalize_decl instead of rest_of_decl_compilation.

2014-03-18  Richard Biener  <rguenther@suse.de>

	* df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
	by using bitmap_and_compl instead of bitmap_and_compl_into.
	(df_rd_transfer_function): Likewise.

2014-03-18  Richard Biener  <rguenther@suse.de>

	* doc/lto.texi (fresolution): Fix typo.

2014-03-18  Richard Biener  <rguenther@suse.de>

	* doc/invoke.texi (flto): Update for changes in 4.9.

2014-03-18  Richard Biener  <rguenther@suse.de>

	* doc/loop.texi: Remove section on the removed lambda framework.
	Update loop docs with recent changes in preserving loop structure.

2014-03-18  Richard Biener  <rguenther@suse.de>

	* doc/lto.texi (-fresolution): Document.

2014-03-18  Richard Biener  <rguenther@suse.de>

	* doc/contrib.texi: Adjust my name.

2014-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/58721
	* internal-fn.c: Include diagnostic-core.h.
	(expand_BUILTIN_EXPECT): New function.
	* gimplify.c (gimplify_call_expr): Use false instead of FALSE.
	(gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
	IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
	* ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
	IFN_BUILTIN_EXPECT.
	* predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
	Revert 3 argument __builtin_expect code.
	(strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
	* gimple-fold.c (gimple_fold_call): Likewise.
	* tree.h (fold_builtin_expect): New prototype.
	* builtins.c (build_builtin_expect_predicate): Add predictor
	argument, if non-NULL, create 3 argument __builtin_expect.
	(fold_builtin_expect): No longer static.  Add ARG2 argument,
	pass it through to build_builtin_expect_predicate.
	(fold_builtin_2): Adjust caller.
	(fold_builtin_3): Handle BUILT_IN_EXPECT.
	* internal-fn.def (BUILTIN_EXPECT): New.

2014-03-18  Tobias Burnus  <burnus@net-b.de>

	PR ipa/58721
	* predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
	PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
	PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.

2014-03-18  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/58721
	* predict.c (combine_predictions_for_bb): Fix up formatting.
	(expr_expected_value_1, expr_expected_value): Add predictor argument,
	fill what it points to if non-NULL.
	(tree_predict_by_opcode): Adjust caller, use the predictor.
	* predict.def (PRED_COMPARE_AND_SWAP): Add.

2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
	proper constant for the store mode.

2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>

	* symtab.c (change_decl_assembler_name): Fix transparent alias
	chain construction.

2014-03-16  Renlin Li  <Renlin.Li@arm.com>

	* config/aarch64/aarch64.c: Correct the comments about the
	aarch64 stack layout.

2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>

	* omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
	check for GF_OMP_FOR_KIND_FOR.

2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
	ymm and zmm register names.

2014-03-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/60516
	* config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
	note creation for the 2010-08-31 changes.

2014-03-17  Marek Polacek  <polacek@redhat.com>

	PR middle-end/60534
	* omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
	as -fno-tree-loop-vectorize.
	(expand_omp_simd): Likewise.

2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc-protos.h (tls_call_delay): Delete.
	(eligible_for_call_delay): New prototype.
	* config/sparc/sparc.c (tls_call_delay): Rename into...
	(eligible_for_call_delay): ...this.  Return false if the instruction
	cannot be put in the delay slot of a branch.
	(eligible_for_restore_insn): Simplify.
	(eligible_for_return_delay): Return false if the instruction cannot be
	put in the delay slot of a branch and simplify.
	(eligible_for_sibcall_delay): Return false if the instruction cannot be
	put in the delay slot of a branch.
	* config/sparc/sparc.md (fix_ut699): New attribute.
	(tls_call_delay): Delete.
	(in_call_delay): Reimplement.
	(eligible_for_sibcall_delay): Rename into...
	(in_sibcall_delay): ...this.
	(eligible_for_return_delay): Rename into...
	(in_return_delay): ...this.
	(in_branch_delay): Reimplement.
	(in_uncond_branch_delay): Delete.
	(in_annul_branch_delay): Delete.

2014-03-14  Richard Henderson  <rth@redhat.com>

	PR target/60525
	* config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
	define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
	(*floathi<X87MODEF>2_i387_with_temp): Remove.
	(floathi splitters): Remove.
	(float<SWI48x>xf2): New pattern.
	(float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
	code that tried to handle DImode for 32-bit, but which was excluded
	by the pattern's condition.  Drop allocation of stack temporary.
	(*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
	(*float<SWI48><MODEF>2_mixed_with_temp): Remove.
	(*float<SWI48><MODEF>2_mixed_interunit): Remove.
	(*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
	(*floatsi<MODEF>2_vector_sse_with_temp): Remove.
	(*float<SWI48><MODEF>2_sse_with_temp): Remove.
	(*float<SWI48><MODEF>2_sse_interunit): Remove.
	(*float<SWI48><MODEF>2_sse_nointerunit): Remove.
	(*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
	(*float<SWI48x><X87MODEF>2_i387): Remove.
	(all float _with_temp splitters): Remove.
	(*float<SWI48x><MODEF>2_i387): New pattern.
	(*float<SWI48><MODEF>2_sse): New pattern.
	(float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
	(float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.

2014-03-14  Jakub Jelinek  <jakub@redhat.com>
	    Marek Polacek  <polacek@redhat.com>

	PR middle-end/60484
	* common.opt (dump_base_name_prefixed): New Variable.
	* opts.c (finish_options): Don't prepend directory to x_dump_base_name
	if x_dump_base_name_prefixed is already set, set it at the end.

2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/60508
	* lra-constraints.c (get_reload_reg): Add new parameter
	in_subreg_p.
	(process_addr_reg, simplify_operand_subreg, curr_insn_transform):
	Pass the new parameter values.

2014-03-14  Richard Biener  <rguenther@suse.de>

	* common.opt: Revert unintented changes from r205065.
	* opts.c: Likewise.

2014-03-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/60518
	* cfghooks.c (split_block): Properly adjust all loops the
	block was a latch of.

2014-03-14  Martin Jambor  <mjambor@suse.cz>

	PR lto/60461
	* ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
	and simplify it.

2014-03-14  Georg-Johann Lay  <avr@gjlay.de>

	PR target/59396
	* config/avr/avr.c (avr_set_current_function): Pass function name
	through default_strip_name_encoding before sanity checking instead
	of skipping the first char of the assembler name.

2014-03-13  Richard Henderson  <rth@redhat.com>

	PR debug/60438
	* config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
	(ix86_force_to_memory, ix86_free_from_memory): Remove.
	* config/i386/i386-protos.h: Likewise.
	* config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
	in the expander instead of a splitter.
	(float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
	any possibility of requiring a memory.
	(*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
	(*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
	(fp branch splitters): Update for ix86_split_fp_branch.
	(*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
	(*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
	(splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
	(*fop_<MODEF>_2_i387): Remove f/r alternative.
	(*fop_<MODEF>_3_i387): Likewise.
	(*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
	(splitters for the fop_* register patterns): Remove.
	(fscalexf4_i387): Rename from *fscalexf4_i387.
	(ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.

2014-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/59779
	* tree-dfa.c (get_ref_base_and_extent): Use double_int
	type for bitsize and maxsize instead of HOST_WIDE_INT.

2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/57320
	* function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
	the CFG after thread_prologue_and_epilogue_insns.

2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/57189
	* lra-constraints.c (process_alt_operands): Disfavor spilling
	vector pseudos.

2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>

	* lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.

2014-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/59025
	PR middle-end/60418
	* tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
	same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.

2014-03-13  Georg-Johann Lay  <avr@gjlay.de>

	PR target/60486
	* config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
	calls of avr_out_plus_1.

2014-03-13  Bin Cheng  <bin.cheng@arm.com>

	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
	BB's single pred and update the father loop's latch info later.

2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
	(VEC_M): Likewise.
	(VEC_N): Likewise.
	(VEC_R): Likewise.
	(VEC_base): Likewise.
	(mov<MODE>, VEC_M modes): If we are loading TImode into VSX
	registers, we need to swap double words in little endian mode.

	* config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
	to be a container mode for 128-bit integer operations added in ISA
	2.07.  Unlike TImode and PTImode, the preferred register set is
	the Altivec/VMX registers for the 128-bit operations.

	* config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
	declarations.
	(rs6000_split_128bit_ok_p): Likewise.

	* config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
	macros for creating ISA 2.07 normal and overloaded builtin
	functions with 3 arguments.
	(BU_P8V_OVERLOAD_3): Likewise.
	(VPERM_1T): Add support for V1TImode in 128-bit vector operations
	for use as overloaded functions.
	(VPERM_1TI_UNS): Likewise.
	(VSEL_1TI): Likewise.
	(VSEL_1TI_UNS): Likewise.
	(ST_INTERNAL_1ti): Likewise.
	(LD_INTERNAL_1ti): Likewise.
	(XXSEL_1TI): Likewise.
	(XXSEL_1TI_UNS): Likewise.
	(VPERM_1TI): Likewise.
	(VPERM_1TI_UNS): Likewise.
	(XXPERMDI_1TI): Likewise.
	(SET_1TI): Likewise.
	(LXVD2X_V1TI): Likewise.
	(STXVD2X_V1TI): Likewise.
	(VEC_INIT_V1TI): Likewise.
	(VEC_SET_V1TI): Likewise.
	(VEC_EXT_V1TI): Likewise.
	(EQV_V1TI): Likewise.
	(NAND_V1TI): Likewise.
	(ORC_V1TI): Likewise.
	(VADDCUQ): Add support for 128-bit integer arithmetic instructions
	added in ISA 2.07.  Add both normal 'altivec' builtins, and the
	overloaded builtin.
	(VADDUQM): Likewise.
	(VSUBCUQ): Likewise.
	(VADDEUQM): Likewise.
	(VADDECUQ): Likewise.
	(VSUBEUQM): Likewise.
	(VSUBECUQ): Likewise.

	* config/rs6000/rs6000-c.c (__int128_type): New static to hold
	__int128_t and __uint128_t types.
	(__uint128_type): Likewise.
	(altivec_categorize_keyword): Add support for vector __int128_t,
	vector __uint128_t, vector __int128, and vector unsigned __int128
	as a container type for TImode operations that need to be done in
	VSX/Altivec registers.
	(rs6000_macro_to_expand): Likewise.
	(altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
	to support 128-bit integer instructions vaddcuq, vadduqm,
	vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
	(altivec_resolve_overloaded_builtin): Add support for V1TImode.

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
	for V1TImode, and set up preferences to use VSX/Altivec registers.
	Setup VSX reload handlers.
	(rs6000_debug_reg_global): Likewise.
	(rs6000_init_hard_regno_mode_ok): Likewise.
	(rs6000_preferred_simd_mode): Likewise.
	(vspltis_constant): Do not allow V1TImode as easy altivec constants.
	(easy_altivec_constant): Likewise.
	(output_vec_const_move): Likewise.
	(rs6000_expand_vector_set): Convert V1TImode set and extract to
	simple move.
	(rs6000_expand_vector_extract): Likewise.
	(reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
	addressing.
	(rs6000_const_vec): Add support for V1TImode.
	(rs6000_emit_le_vsx_load): Swap double words when loading or
	storing TImode/V1TImode.
	(rs6000_emit_le_vsx_store): Likewise.
	(rs6000_emit_le_vsx_move): Likewise.
	(rs6000_emit_move): Add support for V1TImode.
	(altivec_expand_ld_builtin): Likewise.
	(altivec_expand_st_builtin): Likewise.
	(altivec_expand_vec_init_builtin): Likewise.
	(altivec_expand_builtin): Likewise.
	(rs6000_init_builtins): Add support for V1TImode type.  Add
	support for ISA 2.07 128-bit integer builtins.  Define type names
	for the VSX/Altivec vector types.
	(altivec_init_builtins): Add support for overloaded vector
	functions with V1TImode type.
	(rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
	(rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
	external function.
	(rs6000_split_128bit_ok_p): Likewise.
	(rs6000_handle_altivec_attribute): Create V1TImode from vector
	__int128_t and vector __uint128_t.

	* config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
	and mode attributes.
	(VSX_M): Likewise.
	(VSX_M2): Likewise.
	(VSm): Likewise.
	(VSs): Likewise.
	(VSr): Likewise.
	(VSv): Likewise.
	(VS_scalar): Likewise.
	(VS_double): Likewise.
	(vsx_set_v1ti): New builtin function to create V1TImode from TImode.

	* config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
	we support the ISA 2.07 128-bit integer arithmetic instructions.
	(ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
	(enum rs6000_builtin_type_index): Add fields to hold V1TImode
	and TImode types for use with the builtin functions.
	(V1TI_type_node): Likewise.
	(unsigned_V1TI_type_node): Likewise.
	(intTI_type_internal_node): Likewise.
	(uintTI_type_internal_node): Likewise.

	* config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
	128-bit builtin functions.
	(UNSPEC_VADDEUQM): Likewise.
	(UNSPEC_VADDECUQ): Likewise.
	(UNSPEC_VSUBCUQ): Likewise.
	(UNSPEC_VSUBEUQM): Likewise.
	(UNSPEC_VSUBECUQ): Likewise.
	(VM): Add V1TImode to vector mode iterators.
	(VM2): Likewise.
	(VI_unit): Likewise.
	(altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
	(altivec_vaddcuq): Likewise.
	(altivec_vsubuqm): Likewise.
	(altivec_vsubcuq): Likewise.
	(altivec_vaddeuqm): Likewise.
	(altivec_vaddecuq): Likewise.
	(altivec_vsubeuqm): Likewise.
	(altivec_vsubecuq): Likewise.

	* config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
	mode iterators.
	(BOOL_128): Likewise.
	(BOOL_REGS_OUTPUT): Likewise.
	(BOOL_REGS_OP1): Likewise.
	(BOOL_REGS_OP2): Likewise.
	(BOOL_REGS_UNARY): Likewise.
	(BOOL_REGS_AND_CR0): Likewise.

	* config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
	128-bit integer builtin support.
	(vec_vadduqm): Likewise.
	(vec_vaddecuq): Likewise.
	(vec_vaddeuqm): Likewise.
	(vec_vsubecuq): Likewise.
	(vec_vsubeuqm): Likewise.
	(vec_vsubcuq): Likewise.
	(vec_vsubuqm): Likewise.

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
	Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
	vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
	128-bit integer add/subtract to ISA 2.07.

2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/arc/arc.c (arc_predicate_delay_insns):
	Fix third argument passed to conditionalize_nonjump.

2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
	BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
	* config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
	instead of __builtin_lfloor.
	(vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.

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

	* tree-ssa-ifcombine.c (forwarder_block_to): New function.
	(tree_ssa_ifcombine_bb_1): New function.
	(tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
	is an empty forwarder block to then_bb or vice versa and then_bb
	and else_bb are effectively swapped.

2014-03-12  Christian Bruel  <christian.bruel@st.com>

	PR target/60264
	* config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
	REG_CFA_DEF_CFA note.
	(arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
	(arm_unwind_emit): Allow REG_CFA_DEF_CFA.

2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR tree-optimization/60454
	* tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.

2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
	Do not define target_cpu_default2 to generic.
	* config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
	* config/aarch64/aarch64.c (aarch64_override_options): Update comment.
	* config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.

2014-03-12  Jakub Jelinek  <jakub@redhat.com>
	    Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/60502
	* tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
	instead of build_low_bits_mask.

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

	PR middle-end/60482
	* tree-vrp.c (register_edge_assert_for_1): Don't add assert
	if there are multiple uses, but op doesn't live on E edge.
	* tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
	clobber stmts before __builtin_unreachable.

2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* builtins.c (expand_builtin_setjmp_receiver): Use and clobber
	hard_frame_pointer_rtx.
	* cse.c (cse_insn): Remove volatile check.
	* cselib.c (cselib_process_insn): Likewise.
	* dse.c (scan_insn): Likewise.

2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/arc/arc.c (conditionalize_nonjump): New function,
	broken out of ...
	(arc_ifcvt): ... this.
	(arc_predicate_delay_insns): Use it.

2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/arc/predicates.md (extend_operand): During/after reload,
	allow const_int_operand.
	* config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
	(umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
	(mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
	to "i".
	(umulsi3_highpart_i): Likewise.

2014-03-11  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (get_constraint_for_ptr_offset):
	Add asserts to guard possible wrong-code bugs.

2014-03-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60429
	PR tree-optimization/60485
	* tree-ssa-structalias.c (set_union_with_increment): Properly
	take into account all fields that overlap the shifted vars.
	(do_sd_constraint): Likewise.
	(do_ds_constraint): Likewise.
	(get_constraint_for_ptr_offset): Likewise.

2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/nios2/nios2.c (machine_function): Add fp_save_offset field.
	(nios2_compute_frame_layout):
	Add calculation of cfun->machine->fp_save_offset.
	(nios2_expand_prologue): Correct setting of frame pointer register
	in prologue.
	(nios2_expand_epilogue): Update recovery of stack pointer from
	frame pointer accordingly.
	(nios2_initial_elimination_offset): Update calculation of offset
	for eliminating to HARD_FRAME_POINTER_REGNUM.

2014-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/60457
	* ipa.c (symtab_remove_unreachable_nodes): Don't call
	cgraph_get_create_node on VAR_DECLs.

2014-03-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/60474
	* tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.

2014-03-08  Douglas B Rupp  <rupp@gnat.com>

	* config/vms/vms.opt (vms_float_format): New variable.

2014-03-08  Tobias Burnus  <burnus@net-b.de>

	* doc/invoke.texi (-fcilkplus): Update implementation status.

2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
	    Richard Biener  <rguenther@suse.de>

	* lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
	consistently accross all TUs.
	(run_gcc): Enable -fshort-double automatically at link at link-time
	and disallow override.

2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/58271
	* config/mips/mips.c (mips_option_override): Promote -mpaired-single
	warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
	if they can't be used.

2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
	for Solaris 11/x86 ld.
	* configure: Regenerate.

2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
	(LIB_TLS_SPEC): Save as ld_tls_libs.
	(HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
	(HAVE_AS_IX86_TLSLDM): New test.
	* configure, config.in: Regenerate.
	* config/i386/i386.c (legitimize_tls_address): Fall back to
	TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
	cannot support TLS_MODEL_LOCAL_DYNAMIC.
	* config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
	instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.

2014-03-07  Paulo Matos  <paulo@matos-sorge.com>

	* common.opt (fira-loop-pressure): Mark as optimization.

2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>

	* langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
	an OpenMP mappable type.

2014-03-06  Matthias Klose  <doko@ubuntu.com>

	* Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
	MULTILIB_OSDIRNAMES is not defined.

2014-03-06  Jakub Jelinek  <jakub@redhat.com>
	    Meador Inge  <meadori@codesourcery.com>

	PR target/58595
	* config/arm/arm.c (arm_tls_symbol_p): Remove.
	(arm_legitimize_address): Call legitimize_tls_address for any
	arm_tls_referenced_p expression, handle constant addend.  Call it
	before testing for !TARGET_ARM.
	(thumb_legitimize_address): Don't handle arm_tls_symbol_p here.

2014-03-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/60445
	PR lto/60424
	PR lto/60427
	Revert
	2014-03-04  Paulo Matos  <paulo@matos-sorge.com>

	* tree-streamer.c (record_common_node): Assert we don't record
	nodes with type double.
	(preload_common_node): Skip type double, complex double and double
	pointer since it is now frontend dependent due to fshort-double option.

2014-03-06  Richard Biener  <rguenther@suse.de>

	* gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
	or -fno-lto is specified and the linker has full plugin support.
	* collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
	(main): Remove -flto processing, adjust lto_mode using use_plugin late.
	* lto-wrapper.c (merge_and_complain): Merge compile-time
	optimization levels.
	(run_gcc): And pass it through to the link options.

2014-03-06  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/60381
	Revert:
	2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
	PR debug/59992
	* cselib.c (remove_useless_values): Skip to avoid quadratic
	behavior if the condition moved from...
	(cselib_process_insn): ... here holds.

2014-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR plugins/59335
	* Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
	ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.

	PR plugins/59335
	* config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
	(TM_H): Add x86-tune.def.

2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (generic_tunings):
	Use cortexa57_extra_costs.

2014-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR lto/60404
	* cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
	of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
	* tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
	cost for in_lto_p.

2014-03-04  Heiher  <r@hev.cc>

	* config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.

2014-03-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (const2356_operand): Change to ...
	(const2367_operand): ... this.
	* config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
	const2367_operand.
	(*avx512pf_scatterpf<mode>sf_mask): Ditto.
	(*avx512pf_scatterpf<mode>sf): Ditto.
	(avx512pf_scatterpf<mode>df): Ditto.
	(*avx512pf_scatterpf<mode>df_mask): Ditto.
	(*avx512pf_scatterpf<mode>df): Ditto.
	* config/i386/i386.c (ix86_expand_builtin): Update
	incorrect hint operand error message.

2014-03-04  Richard Biener  <rguenther@suse.de>

	* lto-section-in.c (lto_get_section_data): Fix const cast.

2014-03-04  Paulo Matos  <paulo@matos-sorge.com>

	* tree-streamer.c (record_common_node): Assert we don't record
	nodes with type double.
	(preload_common_node): Skip type double, complex double and double
	pointer since it is now frontend dependent due to fshort-double option.

2014-03-04  Richard Biener  <rguenther@suse.de>

	PR lto/60405
	* lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
	(lto_input_toplevel_asms): Likewise.
	* lto-section-in.c (lto_get_section_data): Instead do it here
	for every section.

2014-03-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60382
	* tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
	dead PHIs a reduction.

2014-03-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
	hint value.
	(_mm_prefetch): Move out of GCC target("sse") pragma.
	* config/i386/prfchwintrin.h (_m_prefetchw): Move out of
	GCC target("prfchw") pragma.
	* config/i386/i386.md (prefetch): Emit prefetchwt1 only
	for locality <= 2.
	* config/i386/i386.c (ix86_option_override_internal): Enable
	-mprfchw with -mprefetchwt1.

2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/arc/arc.md (casesi_load) <length attribute alternative 0>:
	Mark as varying.

2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>

	* opts.h (CL_PCH_IGNORE): Define.
	* targhooks.c (option_affects_pch_p):
	Return false for options that have CL_PCH_IGNORE set.
	* opt-functions.awk: Process PchIgnore.
	* doc/options.texi: Document PchIgnore.

	* config/arc/arc.opt (misize): Add PchIgnore property.

2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
	reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
	constraint on constants to permit them being loaded into
	GENERAL_REGS or BASE_REGS.

2014-03-03  Nick Clifton  <nickc@redhat.com>

	* config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
	anti-cacnonical alternatives.
	(negandhi3_real): New pattern.
	* config/rl78/rl78-virt.md (negandhi3_virt): New pattern.

2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* config/avr/avr-mcus.def: Remove atxmega16x1.
	* config/avr/avr-tables.opt: Regenerate.
	* config/avr/t-multilib: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.

2014-03-03  Tobias Grosser  <tobias@grosser.es>
	    Mircea Namolaru  <mircea.namolaru@inria.fr>

	PR tree-optimization/58028
	* graphite-clast-to-gimple.c (set_cloog_options): Don't remove
	scalar dimensions.

2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
	not handled by recognizers.

2014-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/60175
	* function.c (expand_function_end): Don't emit
	clobber_return_register sequence if clobber_after is a BARRIER.
	* cfgexpand.c (construct_exit_block): Append instructions before
	return_label to prev_bb.

2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/constraints.md: Document reserved use of "wc".

2014-03-02  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60150
	* ipa.c (function_and_variable_visibility): When dissolving comdat
	group, also set all symbols to local.

2014-03-02  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/60306

	Revert:
	2013-12-14  Jan Hubicka  <jh@suse.cz>
	PR middle-end/58477
	* ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.

2014-03-02  Jon Beniston  <jon@beniston.com>

	PR bootstrap/48230
	PR bootstrap/50927
	PR bootstrap/52466
	PR target/46898
	* config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
	(TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
	* config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
	(simple_return, *simple_return): New patterns
	* config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
	* configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.

2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>

	* dwarf2out.c (gen_subprogram_die): Tidy.

2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>

	PR target/60071
	* config/sh/sh.md (*mov_t_msb_neg): Split into ...
	(*mov_t_msb_neg_negc): ... this new insn.

2014-02-28  Jason Merrill  <jason@redhat.com>

	PR c++/58678
	* ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
	function.

2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60314
	* dwarf2out.c (decltype_auto_die): New static.
	(gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
	(gen_type_die_with_usage): Handle 'decltype(auto)'.
	(is_cxx_auto): Likewise.

2014-02-28  Ian Bolton  <ian.bolton@arm.com>

	* config/aarch64/aarch64.h: Define __ARM_NEON by default if
	we are not using general regs only.

2014-02-28  Richard Biener  <rguenther@suse.de>

	PR target/60280
	* tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
	previous fix and only allow to remove trivial pre-headers
	and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
	(remove_forwarder_block): Properly update the latch of a loop.

2014-02-28  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/59992
	* cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
	(cselib_preserved_hash_table): New.
	(preserve_constants_and_equivs): Move preserved vals to it.
	(cselib_find_slot): Look it up first.
	(cselib_init): Initialize it.
	(cselib_finish): Release it.
	(dump_cselib_table): Dump it.

2014-02-28  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/59992
	* cselib.c (remove_useless_values): Skip to avoid quadratic
	behavior if the condition moved from...
	(cselib_process_insn): ... here holds.

2014-02-28  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/57232
	* var-tracking.c (vt_initialize): Apply the same condition to
	preserve the CFA base value.

2014-02-28  Joey Ye  <joey.ye@arm.com>

	PR target/PR60169
	* config/arm/arm.c (thumb_far_jump_used_p): Don't change
	if reload in progress or completed.

2014-02-28  Tobias Burnus  <burnus@net-b.de>

	PR middle-end/60147
	* tree-pretty-print.c (dump_generic_node, print_declaration): Handle
	NAMELIST_DECL.

2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/tm.texi.in (Condition Code Status): Update documention for
	relative locations of cc0-setter and cc0-user.

2014-02-27  Jeff Law  <law@redhat.com>

	PR rtl-optimization/52714
	* combine.c (try_combine): When splitting an unrecognized PARALLEL
	into two independent simple sets, if I3 is a jump, ensure the
	pattern we place into I3 is a (set (pc) ...).

2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
	    Jeff Law  <law@redhat.com>

	PR rtl-optimization/49847
	* cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
	are in different blocks.
	* doc/tm.texi (Condition Code Status): Update documention for
	relative locations of cc0-setter and cc0-user.

2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/59222
	* lra.c (lra_emit_add): Check SUBREG too.

2014-02-27  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.c (m68k_option_override): Disable
	-flive-range-shrinkage for classic m68k.
	(m68k_override_options_after_change): Likewise.

2014-02-27  Marek Polacek  <polacek@redhat.com>

	PR middle-end/59223
	* tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
	-Wmaybe-uninitialized.

2014-02-27  Alan Modra  <amodra@gmail.com>

	PR target/57936
	* reload1.c (emit_input_reload_insns): When reload_override_in,
	set old to rl->in_reg when rl->in_reg is a subreg.

2014-02-26  Richard Biener  <rguenther@suse.de>

	PR bootstrap/60343
	* lra-assigns.c (spill_for): Avoid mixed-sign comparison.

2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>

	* common/config/i386/predicates.md (const1256_operand): Remove.
	(const2356_operand): New.
	(const_1_to_2_operand): Remove.
	* config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
	(*avx512pf_gatherpf<mode>sf_mask): Ditto.
	(*avx512pf_gatherpf<mode>sf): Ditto.
	(avx512pf_gatherpf<mode>df): Ditto.
	(*avx512pf_gatherpf<mode>df_mask): Ditto.
	(*avx512pf_gatherpf<mode>df): Ditto.
	(avx512pf_scatterpf<mode>sf): Ditto.
	(*avx512pf_scatterpf<mode>sf_mask): Ditto.
	(*avx512pf_scatterpf<mode>sf): Ditto.
	(avx512pf_scatterpf<mode>df): Ditto.
	(*avx512pf_scatterpf<mode>df_mask): Ditto.
	(*avx512pf_scatterpf<mode>df): Ditto.
	* common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.

2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
	(_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
	(_mm512_mask_testn_epi64_mask): Move to ...
	* config/i386/avx512cdintrin.h: Here.
	* config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
	* config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
	(avx512f_scalef<mode><mask_name><round_name>): Ditto.
	(avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
	TARGET_AVX512F from TARGET_AVX512CD.

2014-02-26  Richard Biener  <rguenther@suse.de>

	PR ipa/60327
	* ipa.c (walk_polymorphic_call_targets): Properly guard
	call to inline_update_overall_summary.

2014-02-26  Bin Cheng  <bin.cheng@arm.com>

	PR target/60280
	* tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
	and latches only if requested.  Fix latch if it is removed.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
	LOOPS_HAVE_PREHEADERS.

2014-02-25  Andrew Pinski  <apinski@cavium.com>

	* builtins.c (expand_builtin_thread_pointer): Create a new target
	when the target is NULL.

2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/60317
	* params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
	* params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
	* lra-assigns.c: Include params.h.
	(spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
	other reload pseudos considerations.

2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vector.md (*vector_unordered<mode>): Change split
	to use canonical form for nor<mode>3.

2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/55426
	* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
	conversions.

2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
	(OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
	(ix86_handle_option): Handle OPT_mprefetchwt1.
	* config/i386/cpuid.h (bit_PREFETCHWT1): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	PREFETCHWT1 CPUID.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	OPTION_MASK_ISA_PREFETCHWT1.
	* config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
	(PTA_PREFETCHWT1): New.
	(ix86_option_override_internal): Handle PTA_PREFETCHWT1.
	(ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
	* config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
	* config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
	(*prefetch_avx512pf_<mode>_: Change into ...
	(*prefetch_prefetchwt1_<mode>: This.
	* config/i386/i386.opt (mprefetchwt1): New.
	* config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
	(_mm_prefetch): Handle intent to write.
	* doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.

2014-02-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/60291
	* emit-rtl.c (mem_attrs_htab): Remove.
	(mem_attrs_htab_hash): Likewise.
	(mem_attrs_htab_eq): Likewise.
	(set_mem_attrs): Always allocate new mem-attrs when something changed.
	(init_emit_once): Do not allocate mem_attrs_htab.

2014-02-25  Richard Biener  <rguenther@suse.de>

	PR lto/60319
	* lto-opts.c (lto_write_options): Output non-explicit conservative
	-fwrapv, -fno-trapv and -fno-strict-overflow.
	* lto-wrapper.c (merge_and_complain): Handle merging those options.
	(run_gcc): And pass them through.

2014-02-25  Andrey Belevantsev  <abel@ispras.ru>

	* sel-sched.c (calculate_new_fences): New parameter ptime.
	Calculate it as a maximum over all fence cycles.
	(sel_sched_region_2): Adjust the call to calculate_new_fences.
	Print the final schedule timing when sched_verbose.

2014-02-25  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/60292
	* sel-sched.c (fill_vec_av_set): Do not reset target availability
	bit fot the fence instruction.

2014-02-24  Alangi Derick  <alangiderick@gmail.com>

	* calls.h: Fix typo in comment.

2014-02-24  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_output_move_double): Don't valididate when
	adjusting offsetable addresses.

2014-02-24  Guozhi Wei  <carrot@google.com>

	* sparseset.h (sparseset_pop): Fix the wrong index.

2014-02-24  Walter Lee  <walt@tilera.com>

	* config.gcc (tilepro-*-*): Change to tilepro*-*-*.
	(tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
	triplet.
	* common/config/tilegx/tilegx-common.c
	(TARGET_DEFAULT_TARGET_FLAGS): Define.
	* config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
	(LINK_SPEC): Ditto.
	* config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
	* config/tilegx/tilegx.c (tilegx_return_in_msb): New.
	(tilegx_gimplify_va_arg_expr): Handle big endian.
	(tilegx_expand_unaligned_load): Ditto.
	(tilegx_expand_unaligned_store): Ditto.
	(TARGET_RETURN_IN_MSB): New.
	* config/tilegx/tilegx.h (TARGET_DEFAULT): New.
	(TARGET_ENDIAN_DEFAULT): New.
	(TARGET_BIG_ENDIAN): Handle big endian.
	(BYTES_BIG_ENDIAN): Ditto.
	(WORDS_BIG_ENDIAN): Ditto.
	(FLOAT_WORDS_BIG_ENDIAN): Ditto.
	(ENDIAN_SPEC): New.
	(EXTRA_SPECS): New.
	* config/tilegx/tilegx.md (extv): Handle big endian.
	(extzv): Ditto.
	(insn_st<n>): Ditto.
	(insn_st<n>_add<bitsuffix>): Ditto.
	(insn_stnt<n>): Ditto.
	(insn_stnt<n>_add<bitsuffix>):Ditto.
	(vec_interleave_highv8qi): Handle big endian.
	(vec_interleave_highv8qi_be): New.
	(vec_interleave_highv8qi_le): New.
	(insn_v1int_h): Handle big endian.
	(vec_interleave_lowv8qi): Handle big endian.
	(vec_interleave_lowv8qi_be): New.
	(vec_interleave_lowv8qi_le): New.
	(insn_v1int_l): Handle big endian.
	(vec_interleave_highv4hi): Handle big endian.
	(vec_interleave_highv4hi_be): New.
	(vec_interleave_highv4hi_le): New.
	(insn_v2int_h): Handle big endian.
	(vec_interleave_lowv4hi): Handle big endian.
	(vec_interleave_lowv4hi_be): New.
	(vec_interleave_lowv4hi_le): New.
	(insn_v2int_l): Handle big endian.
	(vec_interleave_highv2si): Handle big endian.
	(vec_interleave_highv2si_be): New.
	(vec_interleave_highv2si_le): New.
	(insn_v4int_h): Handle big endian.
	(vec_interleave_lowv2si): Handle big endian.
	(vec_interleave_lowv2si_be): New.
	(vec_interleave_lowv2si_le): New.
	(insn_v4int_l): Handle big endian.
	* config/tilegx/tilegx.opt (mbig-endian): New option.
	(mlittle-endian): New option.
	* doc/install.texi: Document tilegxbe-linux.
	* doc/invoke.texi: Document -mbig-endian and -mlittle-endian.

2014-02-24  Martin Jambor  <mjambor@suse.cz>

	PR ipa/60266
	* ipa-cp.c (propagate_constants_accross_call): Bail out early if
	there are no parameter descriptors.

2014-02-24  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/60268
	* sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
	initialization to ...
	(sched_rgn_init): ... here.
	(schedule_region): Check for SCHED_PRESSURE_NONE earlier.

2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
	names.

2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>

	* config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
	definition.

2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>

	* /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
	define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.

2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>

	* config/microblaze/predicates.md: Add cmp_op predicate.
	* config/microblaze/microblaze.md: Add branch_compare instruction
	which uses cmp_op predicate and emits cmp insn before branch.
	* config/microblaze/microblaze.c (microblaze_emit_compare): Rename
	to microblaze_expand_conditional_branch and consolidate logic.
	(microblaze_expand_conditional_branch): emit branch_compare
	insn instead of handling cmp op separate from branch insn.

2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
	to permit subregs.

2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
	define_insn with define_expand and new define_insn
	*altivec_lve<VI_char>x_internal.
	(altivec_stve<VI_char>x): Replace define_insn with define_expand
	and new define_insn *altivec_stve<VI_char>x_internal.
	* config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
	prototype.
	* config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
	lve*x built-ins.
	(altivec_expand_stvex_be): New function.

2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>

	* config/avr/avr.c (avr_can_eliminate): Allow elimination from
	ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
	* config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
	ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.

2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/60298
	* lra-constraints.c (inherit_reload_reg): Use lra_emit_move
	instead of emit_move_insn.

2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_vsumsws): Replace second
	vspltw with vsldoi.
	(reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
	gen_altivec_vsumsws.

2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_lvxl): Rename as
	*altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
	(altivec_lvxl_<mode>): New define_expand incorporating
	-maltivec=be semantics where needed.
	(altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
	(altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
	semantics where needed.
	(altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
	(altivec_stvx_<mode>): New define_expand incorporating
	-maltivec=be semantics where needed.
	(altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
	VM2 iterator instead of V4SI.
	(altivec_stvxl_<mode>): New define_expand incorporating
	-maltivec=be semantics where needed.
	* config/rs6000/rs6000-builtin.def: Add new built-in definitions
	LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
	LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
	STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
	STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
	ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
	similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
	ALTIVEC_BUILTIN_STVXL.
	* config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
	(altivec_expand_stvx_be): Likewise.
	* config/rs6000/rs6000.c (swap_selector_for_mode): New function.
	(altivec_expand_lvx_be): Likewise.
	(altivec_expand_stvx_be): Likewise.
	(altivec_expand_builtin): Add cases for
	ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
	ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
	(altivec_init_builtins): Add definitions for
	__builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
	__builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.

2014-02-21  Catherine Moore  <clm@codesourcery.com>

	* doc/invoke.texi (mvirt, mno-virt): Document.
	* config/mips/mips.opt (mvirt): New option.
	* config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.

2014-02-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60276
	* tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
	(STMT_VINFO_MIN_NEG_DIST): New macro.
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
	STMT_VINFO_MIN_NEG_DIST.
	* tree-vect-stmts.c (vectorizable_load): Verify if assumptions
	made for negative dependence distances still hold.

2014-02-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/60291
	* tree-ssa-live.c (mark_all_vars_used_1): Do not walk
	DECL_INITIAL for globals not in the current function context.

2014-02-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/56490
	* params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
	* tree-ssa-uninit.c: Include params.h.
	(compute_control_dep_chain): Add num_calls argument, return false
	if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
	num_calls to recursive call.
	(find_predicates): Change dep_chain into normal array,
	cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
	variable and adjust compute_control_dep_chain caller.
	(find_def_preds): Likewise.

2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>

	* gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
	<case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.

2014-02-21  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
	(pushhi1): Likewise.
	(popqi1): Add mode to pre_dec.
	(pophi1): Likewise.

2014-02-21  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
	mode for mask of V8SFmode permutation.

2014-02-20  Richard Henderson  <rth@redhat.com>

	PR c++/60272
	* builtins.c (expand_builtin_atomic_compare_exchange): Always make
	a new pseudo for OLDVAL.

2014-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/57896
	* config/i386/i386.c (expand_vec_perm_interleave2): Don't call
	gen_reg_rtx if d->testing_p.
	(expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
	if d->testing_p and we will certainly return true.
	(expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
	if d->testing_p.

2014-02-20  Uros Bizjak  <ubizjak@gmail.com>

	* emit-rtl.c (gen_reg_rtx): Assert that
	crtl->emit.regno_pointer_align_length is non-zero.

2014-02-20  Richard Henderson  <rth@redhat.com>

	PR c++/60272
	* builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
	on failure the store back into EXPECT.

2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
	* config/nios2/nios2.c (nios2_function_profiler): Add
	-fPIC (flag_pic == 2) support.
	(nios2_handle_custom_fpu_cfg): Fix warning parameter.
	(nios2_large_offset_p): New function.
	(nios2_unspec_reloc_p): Move up position, update to use
	nios2_large_offset_p.
	(nios2_unspec_address): Remove function.
	(nios2_unspec_offset): New function.
	(nios2_large_got_address): New function.
	(nios2_got_address): Add large offset support.
	(nios2_legitimize_tls_address): Update usage of removed and new
	functions.
	(nios2_symbol_binds_local_p): New function.
	(nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
	(nios2_legitimize_address): Update to use nios2_large_offset_p.
	(nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
	(nios2_print_operand): Merge H/L processing, add hiadj/lo
	processing for (const (unspec ...)).
	(nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.

2014-02-20  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (replace_uses_by): Mark altered BBs before
	doing the substitution.
	(verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.

2014-02-20  Martin Jambor  <mjambor@suse.cz>

	PR ipa/55260
	* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
	info when checking whether lattices are bottom.

2014-02-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/60221
	* tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
	regions at -O0.

2014-02-20  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/58555
	* ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
	parameter specifying the scaling.
	(inline_call): Update.
	(want_inline_recursively): Guard division by zero.
	(recursive_inlining): Update.
	* ipa-inline.h (clone_inlined_nodes): Update.

2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>

	PR target/60204
	* config/i386/i386.c (classify_argument): Pass structures of size
	64 bytes or less in register.

2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
	    Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
	(_mm_rcp28_round_ss): Ditto.
	(_mm_rsqrt28_round_sd): Ditto.
	(_mm_rsqrt28_round_ss): Ditto.
	* config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
	(_mm_rcp14_round_ss): Ditto.
	(_mm_rsqrt14_round_sd): Ditto.
	(_mm_rsqrt14_round_ss): Ditto.
	* config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
	the first input operand, get rid of match_dup.
	(avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
	attribute to sse.
	(<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
	Ditto.
	(avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
	operand as the first input operand, set type attribute.
	(<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
	Set type attribute.
	(avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
	operand as the first input operand, set type attribute.

2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (vspltis_constant): Fix most significant
	bit of zero.

2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/60207
	* config/i386/i386.c (construct_container): Remove TFmode check
	for X86_64_INTEGER_CLASS.

2014-02-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59794
	* config/i386/i386.c (type_natural_mode): Warn for ABI changes
	only when -Wpsabi is enabled.

2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>

	PR target/59799
	* config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
	passing arrays in registers are the same as for structs, so remove the
	special case for them.

2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
	destination type, extract only the valid bits if the source type is not
	integral and has a different mode.

2014-02-19  Richard Biener  <rguenther@suse.de>

	PR ipa/60243
	* tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
	for all calls.

2014-02-19  Richard Biener  <rguenther@suse.de>

	PR ipa/60243
	* ipa-prop.c: Include stringpool.h and tree-ssanames.h.
	(ipa_modify_call_arguments): Emit an argument load explicitely and
	preserve virtual SSA form there and for the replacement call.
	Do not update SSA form nor free dominance info.

2014-02-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (function_and_variable_visibility): Also clear WEAK
	flag when disolving COMDAT_GROUP.

2014-02-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
	* ipa-prop.c (ipa_set_jf_known_type): Return early when
	not devirtualizing.
	(ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
	do more sanity checks.
	(detect_type_change): Return true when giving up early.
	(compute_complex_assign_jump_func): Fix type parameter of
	ipa_set_ancestor_jf.
	(compute_complex_ancestor_jump_func): Likewise.
	(update_jump_functions_after_inlining): Fix updating of
	ancestor function.
	* ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.

2014-02-18  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
	inline clones when edge disappears.

2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60203
	* config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
	Split 64-bit moves into 2 patterns.  Do not allow the use of
	direct move for TDmode in little endian, since the decimal value
	has little endian bytes within a word, but the 64-bit pieces are
	ordered in a big endian fashion, and normal subreg's of TDmode are
	not allowed.
	(mov<mode>_64bit_dm): Likewise.
	(movtd_64bit_nodm): Likewise.

2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/60174
	* tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
	statement of an SSA_NAME that occurs in an abnormal PHI node.

2014-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/60142
	* final.c (SEEN_BB): Remove.
	(SEEN_NOTE, SEEN_EMITTED): Renumber.
	(final_scan_insn): Don't force_source_line on second
	NOTE_INSN_BASIC_BLOCK.

2014-02-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/60205
	* config/i386/i386.h (struct ix86_args): Add warn_avx512f.
	* config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
	(type_natural_mode): Warn ABI change when %zmm register is not
	available for AVX512F vector value passing.

2014-02-18  Kai Tietz  <ktietz@redhat.com>

	PR target/60193
	* config/i386/i386.c (ix86_expand_prologue): Use value in
	rax register as displacement when restoring %r10 or %rax.
	Fix wrong offset when restoring both registers.

2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
	assertion with conditional return.

2014-02-18  Jakub Jelinek  <jakub@redhat.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR driver/60233
	* config/i386/driver-i386.c (host_detect_local_cpu): If
	YMM state is not saved by the OS, also clear has_f16c.  Move
	CPUID 0x80000001 handling before YMM state saving checking.

2014-02-18  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/58960
	* haifa-sched.c (alloc_global_sched_pressure_data): New,
	factored out from ...
	(sched_init): ... here.
	(free_global_sched_pressure_data): New, factored out from ...
	(sched_finish): ... here.
	* sched-int.h (free_global_sched_pressure_data): Declare.
	* sched-rgn.c (nr_regions_initial): New static global.
	(haifa_find_rgns): Initialize it.
	(schedule_region): Disable sched-pressure for the newly
	generated regions.

2014-02-17  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
	release SSA defs of pattern stmts.

2014-02-17  Richard Biener  <rguenther@suse.de>

	* tree-inline.c (expand_call_inline): Release the virtual
	operand defined by the call we are about to inline.

2014-02-17  Richard Biener  <rguenther@suse.de>

	* tree-ssa.c (verify_ssa): If verify_def found an error, ICE.

2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
	arguments order in builtin.
	(_mm512_permutexvar_epi64): Ditto.
	(_mm512_mask_permutexvar_epi64): Ditto
	(_mm512_maskz_permutexvar_epi32): Ditto
	(_mm512_permutexvar_epi32): Ditto
	(_mm512_mask_permutexvar_epi32): Ditto

2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
	(p8_vmrgow): Likewise.

2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
	endian targets.

2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60203
	* config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
	(mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
	into 64-bit and 32-bit moves.  On 64-bit moves, add support for
	using direct move instructions on ISA 2.07.  Also adjust
	instruction length for 64-bit.
	(mov<mode>_64bit, TFmode/TDmode): Likewise.
	(mov<mode>_32bit, TFmode/TDmode): Likewise.

2014-02-15  Alan Modra  <amodra@gmail.com>

	PR target/58675
	PR target/57935
	* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
	find_replacement on parts of insn rtl that might be reloaded.

2014-02-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60183
	* tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
	(tree_ssa_phiprop): Calculate and free post-dominators.

2014-02-14  Jeff Law  <law@redhat.com>

	PR rtl-optimization/60131
	* ree.c (get_extended_src_reg): New function.
	(combine_reaching_defs): Use it rather than assuming location of REG.
	(find_and_remove_re): Verify first operand of extension is
	a REG before adding the insns to the copy list.

2014-02-14  Roland McGrath  <mcgrathr@google.com>

	* configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
	* configure: Regenerated.
	* config.in: Regenerated.
	* config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
	instead of ASM_SHORT.

2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
	    Richard Earnshaw  <rearnsha@arm.com>

	PR rtl-optimization/59535
	* lra-constraints.c (process_alt_operands): Encourage alternative
	when unassigned pseudo class is superset of the alternative class.
	(inherit_reload_reg): Don't inherit when optimizing for code size.
	* config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
	returning CORE_REGS for anything but Thumb1 and BASE_REGS for
	modes not less than 4 for Thumb1.

2014-02-14  Kyle McMartin  <kyle@redhat.com>

	PR pch/60010
	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.

2014-02-14  Richard Biener  <rguenther@suse.de>

	* cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
	(get_frame_arg): Drop the assert with langhook types_compatible_p.
	Do not strip INDIRECT_REFs.

2014-02-14  Richard Biener  <rguenther@suse.de>

	PR lto/60179
	* lto-streamer-out.c (DFS_write_tree_body): Do not follow
	DECL_FUNCTION_SPECIFIC_TARGET.
	(hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
	* tree-streamer-out.c (pack_ts_target_option): Remove.
	(streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
	(write_ts_function_decl_tree_pointers): Do not stream
	DECL_FUNCTION_SPECIFIC_TARGET.
	* tree-streamer-in.c (unpack_ts_target_option): Remove.
	(unpack_value_fields): Do not stream TS_TARGET_OPTION.
	(lto_input_ts_function_decl_tree_pointers): Do not stream
	DECL_FUNCTION_SPECIFIC_TARGET.

2014-02-14  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
	(get_initial_def_for_induction, vectorizable_induction): Ignore
	debug stmts when looking for exit_phi.
	(vectorizable_live_operation): Fix up condition.

2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
	nreverse() because it changes the content of original tree list.

2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
	* config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.

2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>

	* config/nds32/nds32.c (nds32_naked_function_p): Follow the
	GNU coding standards.

2014-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/60152
	* dwarf2out.c (gen_subprogram_die): Don't call
	add_calling_convention_attribute if subr_die is old_die.

2014-02-13  Sharad Singhai  <singhai@google.com>

	* doc/optinfo.texi: Fix order of nodes.

2014-02-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
	operands[2], not operands[3].

2014-02-13  Richard Biener  <rguenther@suse.de>

	PR bootstrap/59878
	* doc/install.texi (ISL): Update recommended version to 0.12.2,
	mention the possibility of an in-tree build.
	(CLooG): Update recommended version to 0.18.1, mention the
	possibility of an in-tree build and clarify that the ISL
	bundled with CLooG does not work.

2014-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/43546
	* expr.c (compress_float_constant): If x is a hard register,
	extend into a pseudo and then move to x.

2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_asm_output_function_label): Fix crash
	caused by bad second argument to warning_at() with -mhotpatch and
	nested functions (e.g. with gfortran).

2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* opts.c (option_name): Remove "enabled by default" rider.

2014-02-12  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_option_override): Remove auto increment FIXME.

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

	PR target/60151
	* configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
	* configure: Regenerated.

2014-02-12  Richard Biener  <rguenther@suse.de>

	* vec.c (vec_prefix::calculate_allocation): Move as
	inline variant to vec.h.
	(vec_prefix::calculate_allocation_1): New out-of-line version.
	* vec.h (vec_prefix::calculate_allocation_1): Declare.
	(vec_prefix::m_has_auto_buf): Rename to ...
	(vec_prefix::m_using_auto_storage): ... this.
	(vec_prefix::calculate_allocation): Inline the easy cases
	and dispatch to calculate_allocation_1 which doesn't need the
	prefix address.
	(va_heap::reserve): Use gcc_checking_assert.
	(vec<T, A, vl_embed>::embedded_init): Add argument to initialize
	m_using_auto_storage.
	(auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
	member and adjust.
	(vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
	(vec<T, va_heap, vl_ptr>::release): Avoid casting.
	(vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.

2014-02-12  Richard Biener  <rguenther@suse.de>

	* gcse.c (compute_transp): break from loop over canon_modify_mem_list
	when we found a dependence.

2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>

	* gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
	common code...
	(maybe_fold_stmt): ... into this new function.
	* omp-low.c (lower_omp): Update comment.

	* omp-low.c (lower_omp_target): Add clobber for sizes array, after
	last use.

	* omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
	dereference.

2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
	identifiers in comments.
	(cortexa53_extra_costs): Likewise.
	* config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
	(cortexa7_extra_costs): Likewise.
	(cortexa12_extra_costs): Likewise.
	(cortexa15_extra_costs): Likewise.
	(v7m_extra_costs): Likewise.

2014-02-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/60092
	* gimple-low.c (lower_builtin_posix_memalign): Lower conditional
	of posix_memalign being successful.
	(lower_stmt): Restrict lowering of posix_memalign to when
	-ftree-bit-ccp is enabled.

2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

	* config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
	arg_loc.
	* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.

2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/60116
	* combine.c (try_combine): Also remove dangling REG_DEAD notes on the
	other_insn once the combination has been validated.

2014-02-11  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/59468
	* ipa-utils.h (possible_polymorphic_call_targets): Update prototype
	and wrapper.
	* ipa-devirt.c: Include demangle.h
	(odr_violation_reported): New static variable.
	(add_type_duplicate): Update odr_violations.
	(maybe_record_node): Add completep parameter; update it.
	(record_target_from_binfo): Add COMPLETEP parameter;
	update it as needed.
	(possible_polymorphic_call_targets_1): Likewise.
	(struct polymorphic_call_target_d): Add nonconstruction_targets;
	rename FINAL to COMPLETE.
	(record_targets_from_bases): Sanity check we found the binfo;
	fix COMPLETEP updating.
	(possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
	parameter, fix computing of COMPLETEP.
	(dump_possible_polymorphic_call_targets): Imrove readability of dump;
	at LTO time do demangling.
	(ipa_devirt): Use nonconstruction_targets; Improve dumps.
	* gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
	parameter.
	(gimple_get_virt_method_for_binfo): Likewise.
	* gimple-fold.h (gimple_get_virt_method_for_binfo,
	gimple_get_virt_method_for_vtable): Update prototypes.

2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/49008
	* genautomata.c (add_presence_absence): Fix typo with
	{final_}presence_list.

2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60137
	* config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
	for VSX/Altivec vectors that land in GPR registers.

2014-02-11  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR debug/59776
	* tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
	around drhs if type conversion to lacc->type is not useless.

2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
	tuning struct.
	(cortex-a57.cortex-a53): Likewise.
	* config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.

2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
	arm_restrict_it.

2014-02-11  Renlin Li  <Renlin.Li@arm.com>

	* doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
	add_options_for_arm_vfp3.

2014-02-11  Jeff Law  <law@redhat.com>

	PR middle-end/54041
	* expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
	object with an undesirable mode.

2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libgomp/60107
	* config/i386/sol2-9.h: New file.
	* config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
	*-*-solaris2.9*): Use it.

2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>

	* config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
	* config/microblaze/predicates.md: Add reg_or_mem_operand predicate.

2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>

	* config/microblaze/microblaze.c: Extend mcpu version format

2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.

2014-02-10  Richard Henderson  <rth@redhat.com>

	PR target/59927
	* calls.c (expand_call): Don't double-push for reg_parm_stack_space.
	* config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
	ms-abi vs -mno-accumulate-outgoing-args.
	(ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
	* config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
	respect to ms-abi.

2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR middle-end/60080
	* cfgexpand.c (expand_asm_operands): Attach source location to
	ASM_INPUT rtx objects.
	* print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.

2014-02-10  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c (popcount): New function.
	(mn10300_expand_prologue): Include saved registers in stack usage
	count.

2014-02-10  Jeff Law  <law@redhat.com>

	PR middle-end/52306
	* reload1.c (emit_input_reload_insns): Do not create invalid RTL
	when changing the SET_DEST of a prior insn to avoid an input reload.

2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
	big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
	-mcall-openbsd, or -mcall-linux.
	(CC1_ENDIAN_BIG_SPEC): Remove.
	(CC1_ENDIAN_LITTLE_SPEC): Remove.
	(CC1_ENDIAN_DEFAULT_SPEC): Remove.
	(CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
	(SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
	and %cc1_endian_default.
	* config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.

2014-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60115
	* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
	MEM_REF handling.  Properly verify that the accesses are not
	out of the objects bound.

2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
	coretex to cortex.

2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
	proper constants and fix formatting.
	(possible_polymorphic_call_targets): Fix formatting.

2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
	(_mm512_loadu_epi32): Renamed into...
	(_mm512_loadu_si512): This.
	(_mm512_storeu_epi32): Renamed into...
	(_mm512_storeu_si512): This.
	(_mm512_maskz_ceil_ps): Removed.
	(_mm512_maskz_ceil_pd): Ditto.
	(_mm512_maskz_floor_ps): Ditto.
	(_mm512_maskz_floor_pd): Ditto.
	(_mm512_floor_round_ps): Ditto.
	(_mm512_floor_round_pd): Ditto.
	(_mm512_ceil_round_ps): Ditto.
	(_mm512_ceil_round_pd): Ditto.
	(_mm512_mask_floor_round_ps): Ditto.
	(_mm512_mask_floor_round_pd): Ditto.
	(_mm512_mask_ceil_round_ps): Ditto.
	(_mm512_mask_ceil_round_pd): Ditto.
	(_mm512_maskz_floor_round_ps): Ditto.
	(_mm512_maskz_floor_round_pd): Ditto.
	(_mm512_maskz_ceil_round_ps): Ditto.
	(_mm512_maskz_ceil_round_pd): Ditto.
	(_mm512_expand_pd): Ditto.
	(_mm512_expand_ps): Ditto.
	* config/i386/i386.c (ix86_builtins): Remove
	IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
	(bdesc_args): Ditto.
	* config/i386/predicates.md (const1256_operand): New.
	(const_1_to_2_operand): Ditto.
	* config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
	(*avx512pf_gatherpf<mode>sf_mask): Ditto.
	(*avx512pf_gatherpf<mode>sf): Ditto.
	(avx512pf_gatherpf<mode>df): Ditto.
	(*avx512pf_gatherpf<mode>df_mask): Ditto.
	(*avx512pf_gatherpf<mode>df): Ditto.
	(avx512pf_scatterpf<mode>sf): Ditto.
	(*avx512pf_scatterpf<mode>sf_mask): Ditto.
	(*avx512pf_scatterpf<mode>sf): Ditto.
	(avx512pf_scatterpf<mode>df): Ditto.
	(*avx512pf_scatterpf<mode>df_mask): Ditto.
	(*avx512pf_scatterpf<mode>df): Ditto.
	(avx512f_expand<mode>): Removed.
	(<shift_insn><mode>3<mask_name>): Change predicate type.

2014-02-08  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
	not at the end of datarefs vector use ordered_remove to avoid
	reordering datarefs vector.

	PR c/59984
	* gimplify.c (gimplify_bind_expr): In ORT_SIMD region
	mark local addressable non-static vars as GOVD_PRIVATE
	instead of GOVD_LOCAL.
	* omp-low.c (lower_omp_for): Move gimple_bind_vars
	and BLOCK_VARS of gimple_bind_block to new_stmt rather
	than copying them.

	PR middle-end/60092
	* tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
	if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
	assume_aligned or alloc_align attributes.
	(bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
	arguments.  Handle also assume_aligned and alloc_align attributes.
	(evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
	calls to functions with assume_aligned or alloc_align attributes.
	* doc/extend.texi: Document assume_aligned and alloc_align attributes.

2014-02-08  Terry Guo  <terry.guo@arm.com>

	* doc/invoke.texi: Document ARM -march=armv7e-m.

2014-02-08  Jakub Jelinek  <jakub@redhat.com>

	* cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
	flag on __cilkrts_rethrow builtin.

	PR ipa/60026
	* ipa-cp.c (determine_versionability): Fail at -O0
	or __attribute__((optimize (0))) or -fno-ipa-cp functions.
	* tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.

	Revert:
	2014-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/60026
	* tree-inline.c (copy_forbidden): Fail for
	__attribute__((optimize (0))) functions.

2014-02-07  Jan Hubicka  <hubicka@ucw.cz>

	* varpool.c: Include pointer-set.h.
	(varpool_remove_unreferenced_decls): Variables in other partitions
	will not be output; be however careful to not lose information
	about partitioning.

2014-02-07  Jan Hubicka  <hubicka@ucw.cz>

	* gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
	lookup in the vtable constructor.

2014-02-07  Jeff Law  <law@redhat.com>

	PR target/40977
	* config/m68k/m68k.md (ashldi_extsi): Turn into a
	define_insn_and_split.

	* ipa-inline.c (inline_small_functions): Fix typos.

2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* config/s390/s390-protos.h (s390_can_use_simple_return_insn)
	(s390_can_use_return_insn): Declare.
	* config/s390/s390.h (EPILOGUE_USES): Define.
	* config/s390/s390.c (s390_mainpool_start): Allow two main_pool
	instructions.
	(s390_chunkify_start): Handle return JUMP_LABELs.
	(s390_early_mach): Emit a main_pool instruction on the entry edge.
	(s300_set_up_by_prologue, s390_can_use_simple_return_insn)
	(s390_can_use_return_insn): New functions.
	(s390_fix_long_loop_prediction): Handle conditional returns.
	(TARGET_SET_UP_BY_PROLOGUE): Define.
	* config/s390/s390.md (ANY_RETURN): New code iterator.
	(*creturn, *csimple_return, return, simple_return): New patterns.

2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
	notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
	(s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
	REG_CFA_RESTORE list when deciding not to restore a register.

2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* config/s390/s390.c: Include tree-pass.h and context.h.
	(s390_early_mach): New function, split out from...
	(s390_emit_prologue): ...here.
	(pass_data_s390_early_mach): New pass structure.
	(pass_s390_early_mach): New class.
	(s390_option_override): Create and register early_mach pass.
	Move to end of file.

2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
	to match for the exit block.

2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
	("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
	Reject misaligned operands.

2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.

2014-02-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/60092
	* gimple-low.c (lower_builtin_posix_memalign): New function.
	(lower_stmt): Call it to lower posix_memalign in a way
	to make alignment info accessible.

2014-02-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/60082
	* tree.c (build_common_builtin_nodes): Set ECF_LEAF for
	__builtin_setjmp_receiver.

2014-02-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/60092
	* builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
	* builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
	Handle BUILT_IN_POSIX_MEMALIGN.
	(find_func_clobbers): Likewise.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
	(call_may_clobber_ref_p_1): Likewise.

2014-02-06  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/59918
	* ipa-devirt.c (record_target_from_binfo): Remove overactive
	sanity check.

2014-02-06  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/59469
	* lto-cgraph.c (lto_output_node): Use
	symtab_get_symbol_partitioning_class.
	(lto_output_varpool_node): likewise.
	(symtab_get_symbol_partitioning_class): Move here from
	lto/lto-partition.c
	* cgraph.h (symbol_partitioning_class): Likewise.
	(symtab_get_symbol_partitioning_class): Declare.

2014-02-06  Jan Hubicka  <hubicka@ucw.cz>

	* ggc.h (ggc_internal_cleared_alloc): New macro.
	* vec.h (vec_safe_copy): Handle memory stats.
	* omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
	* target-globals.c (save_target_globals): Likewise.

2014-02-06  Jan Hubicka  <hubicka@ucw.cz>

	PR target/60077
	* expr.c (emit_move_resolve_push): Export; be bit more selective
	on when to clear alias set.
	* expr.h (emit_move_resolve_push): Declare.
	* function.h (struct function): Add tail_call_marked.
	* tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
	* config/i386/i386-protos.h (ix86_expand_push): Remove.
	* config/i386/i386.md (TImode move expander): De not call
	ix86_expand_push.
	(FP push expanders): Preserve memory attributes.
	* config/i386/sse.md (push<mode>1): Remove.
	* config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
	(ix86_expand_push): Remove.
	* config/i386/mmx.md (push<mode>1): Remove.

2014-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/60030
	* internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
	lopart with paradoxical subreg before shifting it up by hprec.

2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
	Remove extra newline at end of file.
	* config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
	(arm_issue_rate): Handle cortexa57.
	* config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
	(cortex-a57.cortex-a53): Likewise.

2014-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/59575
	* config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
	don't record in REG_FRAME_RELATED_EXPR registers not set in that
	bitmask.
	(arm_expand_prologue): Adjust all callers.
	(arm_unwind_emit_sequence): Allow saved, but not important for unwind
	info, registers also at the lowest numbered registers side.  Use
	gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
	XEXP.

	PR debug/59992
	* var-tracking.c (adjust_mems): Before adding a SET to
	amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.

2014-02-06  Alan Modra  <amodra@gmail.com>

	PR target/60032
	* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
	change SDmode to DDmode when lra_in_progress.

2014-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/59150
	* tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
	free_data_ref on the dr first, and before goto again also set dr
	to the next dr.  For simd_lane_access, free old datarefs[i] before
	overwriting it.  For get_vectype_for_scalar_type failure, don't
	free_data_ref if simd_lane_access.

	* Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).

	PR target/60062
	* tree.h (opts_for_fn): New inline function.
	(opt_for_fn): Define.
	* config/i386/i386.c (ix86_function_regparm): Use
	opt_for_fn (decl, optimize) instead of optimize.

2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
	for SYMBOL_REF in large memory model.

2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
	and crypto support.
	(cortex-a57): Likewise.
	(cortex-a57.cortex-a53): Likewise.

2014-02-06  Yury Gribov  <y.gribov@samsung.com>
	    Kugan Vivekanandarajah  <kuganv@linaro.org>

	* config/arm/arm.c (arm_vector_alignment_reachable): Check
	unaligned_access.
	* config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.

2014-02-06  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
	set_loop_copy and initialize_original_copy_tables.

2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_ashr_simddi): Change QI to SI.

2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/60013
	* ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
	of the dataflow.

2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
	CODE_FOR_altivec_vpku[hw]um to
	CODE_FOR_altivec_vpku[hw]um_direct.
	* config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
	UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
	(vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
	UNSPEC_VUNPACK_LO_SIGN_DIRECT.

2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
	generation for -maltivec=be.
	(altivec_vsumsws): Simplify redundant test.

2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
	(UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
	(UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
	(mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
	gen_altivec_vpkuwum.
	(altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
	BYTES_BIG_ENDIAN.
	(altivec_vpks<VI_char>ss): Likewise.
	(altivec_vpks<VI_char>us): Likewise.
	(altivec_vpku<VI_char>us): Likewise.
	(altivec_vpku<VI_char>um): Likewise.
	(altivec_vpku<VI_char>um_direct): New (copy of
	altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
	internal use).
	(altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
	target is little endian and -maltivec=be is not specified.
	(*altivec_vupkhs<VU_char>_direct): New (copy of
	altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
	(altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
	target is little endian and -maltivec=be is not specified.
	(*altivec_vupkls<VU_char>_direct): New (copy of
	altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
	(altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
	little endian and -maltivec=be is not specified.
	(altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
	little endian and -maltivec=be is not specified.

2014-02-05  Richard Henderson  <rth@redhat.com>

	PR debug/52727
	* combine-stack-adj.c: Revert r206943.
	* sched-int.h (struct deps_desc): Add last_args_size.
	* sched-deps.c (init_deps): Initialize it.
	(sched_analyze_insn): Add OUTPUT dependencies between insns that
	contain REG_ARGS_SIZE notes.

2014-02-05  Jan Hubicka  <hubicka@ucw.cz>

	* lto-cgraph.c (asm_nodes_output): Make global.
	* lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
	* gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
	(driver_handle_option): Handle OPT_fwpa.

2014-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/59947
	* ipa-devirt.c (possible_polymorphic_call_targets): Fix
	a comment typo and formatting issue.  If odr_hash hasn't been
	created, return vNULL and set *completep to false.

	PR middle-end/57499
	* tree-eh.c (cleanup_empty_eh): Bail out on totally empty
	bb with no successors.

2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>

	PR target/59718
	* doc/invoke.texi (-march): Clarify documentation for ARM.
	(-mtune): Likewise.
	(-mcpu): Likewise.

2014-02-05  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_analyze_loop_2): Be more informative
	when not vectorizing because of too many alias checks.
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.

2014-02-05  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
	accept extended registers in any mode when compiling for the MN10300.

2014-02-05  Yury Gribov  <y.gribov@samsung.com>

	* cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
	* ipa-inline.c (report_inline_failed_reason): Handle mismatched
	sanitization attributes.
	(can_inline_edge_p): Likewise.
	(sanitize_attrs_match_for_inline_p): New function.

2014-02-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (detect_type_change): Shor circuit testing of
	type changes on THIS pointer.

2014-02-04  John David Anglin  <danglin@gcc.gnu.org>

	PR target/59777
	* config/pa/pa.c (legitimize_tls_address): Return original address
	if not passed a SYMBOL_REF rtx.
	(hppa_legitimize_address): Call legitimize_tls_address for all TLS
	addresses.
	(pa_emit_move_sequence): Simplify TLS source operands.
	(pa_legitimate_constant_p): Reject all TLS constants.
	* config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
	(CONSTANT_ADDRESS_P): Reject TLS CONST addresses.

2014-02-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
	groups when we know they are controlled by LTO.
	* varasm.c (default_binds_local_p_1): If object is in other partition,
	it will be resolved locally.

2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* config/host-linux.c (linux_gt_pch_use_address): Don't
	use SSIZE_MAX because it is not always defined.

2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/59913
	* lra-constraints.c (need_for_split_p): Use more 3 reloads as
	threshold for pseudo splitting.
	(update_ebb_live_info): Process call argument hard registers and
	hard registers from insn definition too.
	(max_small_class_regs_num): New constant.
	(inherit_in_ebb): Update live hard regs through EBBs.  Update
	reloads_num only for small register classes.  Don't split for
	outputs of jumps.

2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>

	PR ipa/60058
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
	is non-null.

2014-02-04  Jan Hubicka  <hubicka@ucw.cz>

	* gimple-fold.c (can_refer_decl_in_current_unit_p): Default
	visibility is safe.

2014-02-04  Marek Polacek  <polacek@redhat.com>

	* gdbinit.in (pel): Define.

2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
	behavior.

2014-02-04  Richard Biener  <rguenther@suse.de>

	PR lto/59723
	* lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
	in function context local.
	(lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
	* lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
	similar to LTO_imported_decl_ref.

2014-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/60002
	* cgraphclones.c (build_function_decl_skip_args): Clear
	DECL_LANG_SPECIFIC.

	PR tree-optimization/60023
	* tree-if-conv.c (predicate_mem_writes): Pass true instead of
	false to gsi_replace.
	* tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
	has been in some EH region and vec_stmt could throw, add
	vec_stmt into the same EH region.
	* tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
	has no lhs, ignore it.
	* internal-fn.c (expand_MASK_LOAD): Likewise.

	PR ipa/60026
	* tree-inline.c (copy_forbidden): Fail for
	__attribute__((optimize (0))) functions.

	PR other/58712
	* omp-low.c (simd_clone_struct_copy): If from->inbranch
	is set, copy one less argument.
	(expand_simd_clones): Don't subtract clone_info->inbranch
	from simd_clone_struct_alloc argument.

	PR rtl-optimization/57915
	* recog.c (simplify_while_replacing): If all unary/binary/relational
	operation arguments are constant, attempt to simplify those.

	PR middle-end/59261
	* expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
	if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.

2014-02-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60012
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
	TBAA disambiguation to all DDRs.

2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/59788
	* config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
	(LINK_SPEC): Use it for -shared, -shared-libgcc.

2014-02-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/59882
	* tree.c (get_binfo_at_offset): Do not get confused by empty classes;

2014-02-03  Jan Hubicka  <hubicka@ucw.cz>

	* gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
	* gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.

2014-02-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/59831
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
	to figure out targets of polymorphic calls with known decl.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
	* ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
	* ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
	(get_polymorphic_call_info): ... here.
	(get_polymorphic_call_info_from_invariant): New function.

2014-02-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
	lookup via vtable pointer; check for type consistency
	and turn inconsitent facts into UNREACHABLE.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
	* gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
	type inconsistent querries; return UNREACHABLE instead.

2014-02-03  Richard Henderson  <rth@twiddle.net>

	PR tree-opt/59924
	* tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
	already processed this node.
	(normalize_one_pred_1): Pass along mark_set.
	(normalize_one_pred): Create and destroy a pointer_set_t.
	(normalize_one_pred_chain): Likewise.

2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>

	PR gcov-profile/58602
	* gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.

2014-02-03  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/59831
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
	-fno-devirtualize; try to devirtualize by the knowledge of
	virtual table pointer given by aggregate propagation.
	* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
	(ipa_print_node_jump_functions): Dump also offset that
	is relevant for polymorphic calls.
	(determine_known_aggregate_parts): Add arg_type parameter; use it
	instead of determining the type from pointer type.
	(ipa_compute_jump_functions_for_edge): Update call of
	determine_known_aggregate_parts.
	* gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
	(gimple_get_virt_method_for_binfo): ... here; simplify using
	vtable_pointer_value_to_vtable.
	* gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
	* ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
	to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
	(vtable_pointer_value_to_vtable): Break out from ...; handle also
	POINTER_PLUS_EXPR.
	(vtable_pointer_value_to_binfo): ... here.
	* ipa-utils.h (vtable_pointer_value_to_vtable): Declare.

2014-02-03  Teresa Johnson  <tejohnson@google.com>

	* tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
	redef of outer loop index variable.

2014-02-03  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/53017
	PR c++/59211
	* doc/extend.texi (Function Attributes): Typo.

2014-02-03  Cong Hou  <congh@google.com>

	PR tree-optimization/60000
	* tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
	if the vectorized statement is a store.  A store statement can only
	appear at the end of pattern statements.

2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (flag_opts): Add -mlong-double-128.
	(ix86_option_override_internal): Default long double to 64-bit for
	32-bit Bionic and to 128-bit for 64-bit Bionic.

	* config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
	TARGET_LONG_DOUBLE_128 is true.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.

	* config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
	(mlong-double-64): Negate -mlong-double-128.
	(mlong-double-128): New option.

	* config/i386/i386-c.c (ix86_target_macros): Define
	__LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.

	* doc/invoke.texi: Document -mlong-double-128.

2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/60024
	* sel-sched.c (init_regs_for_mode): Check if mode is OK first.

2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* doc/invoke.texi (fprofile-reorder-functions): Fix typo.

2014-02-03  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/57662
	* sel-sched.c (code_motion_path_driver): Do not mark already not
	existing blocks in the visiting bitmap.

2014-02-03  Andrey Belevantsev  <abel@ispras.ru>

	* sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
	on the insn being emitted.

2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
	    Will Deacon  <will.deacon@arm.com>

	* doc/gimple.texi (gimple_asm_clear_volatile): Remove.

2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm-tables.opt: Regenerate.

2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
	for vector types other than V16QImode.
	* config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
	define_expand, and call altivec_expand_vec_perm_le when producing
	code with little endian element order.
	(*altivec_vperm_<mode>_internal): New insn having previous
	behavior of altivec_vperm_<mode>.
	(altivec_vperm_<mode>_uns): Change to a define_expand, and call
	altivec_expand_vec_perm_le when producing code with little endian
	element order.
	(*altivec_vperm_<mode>_uns_internal): New insn having previous
	behavior of altivec_vperm_<mode>_uns.

2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
	(altivec_vsumsws): Add handling for -maltivec=be with a little
	endian target.
	(altivec_vsumsws_direct): New.
	(reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
	gen_altivec_vsumsws.

2014-02-02  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-devirt.c (subbinfo_with_vtable_at_offset,
	vtable_pointer_value_to_binfo): New functions.
	* ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
	* ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.

2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.md (load_got_register): Initialize GOT
	pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
	* config/nios2/nios2.c (nios2_function_profiler): Likewise.

2014-02-02  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-prop.c (update_jump_functions_after_inlining): When type is not
	preserverd by passthrough, do not propagate the type.

2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
	(mips_atomic_assign_expand_fenv): New function.
	(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.

2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/extend.texi (__builtin_mips_get_fcsr): Document.
	(__builtin_mips_set_fcsr): Likewise.
	* config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
	MIPS_USI_FTYPE_VOID.
	* config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
	(mips16_expand_set_fcsr): Likewise.
	* config/mips/mips.c (mips16_get_fcsr_stub): New variable.
	(mips16_set_fcsr_stub): Likewise.
	(mips16_get_fcsr_one_only_stub): New class.
	(mips16_set_fcsr_one_only_stub): Likewise.
	(mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
	(mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
	(BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
	(hard_float): New availability predicate.
	(mips_builtins): Add get_fcsr and set_fcsr.
	(mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
	* config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
	(GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
	(mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
	(mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
	patterns.

2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_one_only_stub): New class.
	(mips_need_mips16_rdhwr_p): Replace with...
	(mips16_rdhwr_stub): ...this new variable.
	(mips16_stub_call_address): New function.
	(mips16_rdhwr_one_only_stub): New class.
	(mips_expand_thread_pointer): Use mips16_stub_call_address.
	(mips_output_mips16_rdhwr): Delete.
	(mips_finish_stub): New function.
	(mips_code_end): Use it to handle rdhwr stubs.

2014-02-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/60017
	* config/i386/i386.c (classify_argument): Fix handling of bit_offset
	when calculating size of integer atomic types.

2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>

	* ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.

2014-02-01  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/60003
	* gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
	* profile.c (branch_prob): Use gimple_call_builtin_p
	to check for BUILT_IN_SETJMP_RECEIVER.
	* tree-inline.c (copy_bb): Call notice_special_calls.

2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/59985
	* lra-constraints.c (process_alt_operands): Update reload_sum only
	on the first pass.

2014-01-31  Richard Henderson  <rth@redhat.com>

	PR middle-end/60004
	* tree-eh.c (lower_try_finally_switch): Delay lowering finally block
	until after else_eh is processed.

2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
	(_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
	(_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
	in smmintrin.h, remove them.
	(_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
	* config/i386/i386.c (ix86_print_operand): Split sae and rounding.
	* config/i386/i386.md (ROUND_SAE): Fix value.
	* config/i386/predicates.md (const_4_or_8_to_11_operand): New.
	(const48_operand): New.
	* config/i386/subst.md (round), (round_expand): Use
	const_4_or_8_to_11_operand.
	(round_saeonly), (round_saeonly_expand): Use const48_operand.

2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/constraints.md (Yk): Swap meaning with k.
	* config/i386/i386.md (movhi_internal): Change Yk to k.
	(movqi_internal): Ditto.
	(*k<logic><mode>): Ditto.
	(*andhi_1): Ditto.
	(*andqi_1): Ditto.
	(kandn<mode>): Ditto.
	(*<code>hi_1): Ditto.
	(*<code>qi_1): Ditto.
	(kxnor<mode>): Ditto.
	(kortestzhi): Ditto.
	(kortestchi): Ditto.
	(kunpckhi): Ditto.
	(*one_cmplhi2_1): Ditto.
	(*one_cmplqi2_1): Ditto.
	* config/i386/sse.md (): Change k to Yk.
	(avx512f_load<mode>_mask): Ditto.
	(avx512f_blendm<mode>): Ditto.
	(avx512f_store<mode>_mask): Ditto.
	(avx512f_storeu<ssemodesuffix>512_mask): Ditto.
	(avx512f_storedqu<mode>_mask): Ditto.
	(avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
	Ditto.
	(avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
	(avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
	(avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
	(avx512f_maskcmp<mode>3): Ditto.
	(avx512f_fmadd_<mode>_mask<round_name>): Ditto.
	(avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
	(avx512f_fmsub_<mode>_mask<round_name>): Ditto.
	(avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
	(avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
	(avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
	(avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
	(avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
	(avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
	(avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
	(avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
	(avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
	(avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
	(vec_extract_lo_<mode>_maskm): Ditto.
	(vec_extract_hi_<mode>_maskm): Ditto.
	(avx512f_vternlog<mode>_mask): Ditto.
	(avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
	(avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
	(avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
	(avx512f_<code>v8div16qi2_mask): Ditto.
	(avx512f_<code>v8div16qi2_mask_store): Ditto.
	(avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
	(avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
	(avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
	(avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
	(*avx512pf_gatherpf<mode>sf_mask): Ditto.
	(*avx512pf_gatherpf<mode>df_mask): Ditto.
	(*avx512pf_scatterpf<mode>sf_mask): Ditto.
	(*avx512pf_scatterpf<mode>df_mask): Ditto.
	(avx512cd_maskb_vec_dupv8di): Ditto.
	(avx512cd_maskw_vec_dupv16si): Ditto.
	(avx512f_vpermi2var<mode>3_maskz): Ditto.
	(avx512f_vpermi2var<mode>3_mask): Ditto.
	(avx512f_vpermi2var<mode>3_mask): Ditto.
	(avx512f_vpermt2var<mode>3_maskz): Ditto.
	(*avx512f_gathersi<mode>): Ditto.
	(*avx512f_gathersi<mode>_2): Ditto.
	(*avx512f_gatherdi<mode>): Ditto.
	(*avx512f_gatherdi<mode>_2): Ditto.
	(*avx512f_scattersi<mode>): Ditto.
	(*avx512f_scatterdi<mode>): Ditto.
	(avx512f_compress<mode>_mask): Ditto.
	(avx512f_compressstore<mode>_mask): Ditto.
	(avx512f_expand<mode>_mask): Ditto.
	* config/i386/subst.md (mask): Change k to Yk.
	(mask_scalar_merge): Ditto.
	(sd): Ditto.

2014-01-31  Marc Glisse  <marc.glisse@inria.fr>

	* doc/extend.texi (Vector Extensions): Document ?: in C++.

2014-01-31  Richard Biener  <rguenther@suse.de>

	PR middle-end/59990
	* builtins.c (fold_builtin_memory_op): Make sure to not
	use a floating-point mode or a boolean or enumeral type for
	the copy operation.

2014-01-30  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.h (LIB_SPEC): Add -lcrt
	* config/msp430/msp430.md (msp430_refsym_need_exit): New.
	* config/msp430/msp430.c (msp430_expand_epilogue): Call it
	whenever main() has an epilogue.

2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
	unused variable "field".
	* config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
	(vsx_mergeh_<mode>): Likewise.
	* config/rs6000/altivec.md (altivec_vmrghb): Likewise.
	(altivec_vmrghh): Likewise.
	(altivec_vmrghw): Likewise.
	(altivec_vmrglb): Likewise.
	(altivec_vmrglh): Likewise.
	(altivec_vmrglw): Likewise.
	(altivec_vspltb): Add missing uses.
	(altivec_vsplth): Likewise.
	(altivec_vspltw): Likewise.
	(altivec_vspltsf): Likewise.

2014-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR target/59923
	* ifcvt.c (cond_exec_process_insns): Don't conditionalize
	frame related instructions.

2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59959
	* lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
	any reload of register whose subreg is invalid.

2014-01-30  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
	* config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
	Add missing return type - void.

2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
	gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
	remove element index adjustment for endian (now handled in vsx.md
	and altivec.md).
	(altivec_expand_vec_perm_const): Use
	gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
	* gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
	(vsx_xxspltw_<mode>): Adjust element index for little endian.
	* gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
	define_expand and a new define_insn *altivec_vspltb_internal;
	adjust for -maltivec=be on a little endian target.
	(altivec_vspltb_direct): New.
	(altivec_vsplth): Divide into a define_expand and a new
	define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
	little endian target.
	(altivec_vsplth_direct): New.
	(altivec_vspltw): Divide into a define_expand and a new
	define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
	little endian target.
	(altivec_vspltw_direct): New.
	(altivec_vspltsf): Divide into a define_expand and a new
	define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
	a little endian target.

2014-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59993
	* tree-ssa-forwprop.c (associate_pointerplus): Check we
	can propagate form the earlier stmt and avoid the transform
	when the intermediate result is needed.

2014-01-30  Alangi Derick  <alangiderick@gmail.com>

	* README.Portability: Fix typo.

2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
	comparison_operator with ordered_comparison_operator.

2014-01-30  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
	Rename to mn10300_store_multiple_regs.
	* config/mn10300/mn10300.c: Likewise.
	* config/mn10300/mn10300.md (store_movm): Fix typo: call
	store_multiple_regs.
	* config/mn10300/predicates.md (mn10300_store_multiple_operation):
	Call mn10300_store_multiple_regs.

2014-01-30  Nick Clifton  <nickc@redhat.com>
	    DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.c (register_sizes): Make the "upper half" of
	%fp 2 to keep registers after it properly word-aligned.
	(rl78_alloc_physical_registers_umul): Handle the case where both
	input operands are the same.

2014-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59903
	* tree-vect-loop.c (vect_transform_loop): Guard multiple-types
	check properly.

2014-01-30  Jason Merrill  <jason@redhat.com>

	PR c++/59633
	* tree.c (walk_type_fields): Handle VECTOR_TYPE.

	PR c++/59645
	* cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.

2014-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59951
	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.

2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>

	PR target/59784
	* config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
	SFmode to DFmode case.

2014-01-29  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.opt (-minrt): New.
	* config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
	if -minrt given.
	(ENDFILE_SPEC): Likewise.

2014-01-29  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
	(estimate_function_body_sizes): Use it.

2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58561
	* dwarf2out.c (is_cxx_auto): New.
	(is_base_type): Use it.
	(gen_type_die_with_usage): Likewise.

2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
	CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
	* config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
	-maltivec=be with LE targets.
	(vsx_mergeh_<mode>): Likewise.
	* config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
	(mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
	(altivec_vmrghb): Replace with define_expand and new
	*altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
	(altivec_vmrghb_direct): New define_insn.
	(altivec_vmrghh): Replace with define_expand and new
	*altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
	(altivec_vmrghh_direct): New define_insn.
	(altivec_vmrghw): Replace with define_expand and new
	*altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
	(altivec_vmrghw_direct): New define_insn.
	(*altivec_vmrghsf): Adjust for endianness.
	(altivec_vmrglb): Replace with define_expand and new
	*altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
	(altivec_vmrglb_direct): New define_insn.
	(altivec_vmrglh): Replace with define_expand and new
	*altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
	(altivec_vmrglh_direct): New define_insn.
	(altivec_vmrglw): Replace with define_expand and new
	*altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
	(altivec_vmrglw_direct): New define_insn.
	(*altivec_vmrglsf): Adjust for endianness.
	(vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
	(vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
	(vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
	(vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
	(vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
	(vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
	(vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
	(vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.

2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
	(aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
	whitespace.

2014-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58742
	* tree-ssa-forwprop.c (associate_pointerplus): Rename to
	associate_pointerplus_align.
	(associate_pointerplus_diff): New function.
	(associate_pointerplus): Likewise.  Call associate_pointerplus_align
	and associate_pointerplus_diff.

2014-01-29  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (LTO_major_version): Bump to 3.
	(LTO_minor_version): Reset to 0.

2014-01-29  Renlin Li  <Renlin.Li@arm.com>

	* config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
	* config/arm/arm.c (FL_FOR_ARCH7VE): New.
	(arm_file_start): Generate correct asm header for armv7ve.
	* config/arm/bpabi.h: Add multilib support for armv7ve.
	* config/arm/driver-arm.c: Change the architectures of cortex-a7
	and cortex-a15 to armv7ve.
	* config/arm/t-aprofile: Add multilib support for armv7ve.
	* doc/invoke.texi: Document -march=armv7ve.

2014-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58742
	* tree-ssa-forwprop.c (associate_plusminus): Return true
	if we changed sth, defer EH cleanup to ...
	(ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
	(simplify_mult): New function.

2014-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/59917
	PR tree-optimization/59920
	* tree.c (build_common_builtin_nodes): Remove
	__builtin_setjmp_dispatcher initialization.
	* omp-low.h (make_gimple_omp_edges): Add a new int * argument.
	* profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
	instead of gsi_after_labels + manually skipping debug stmts.
	Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
	ignore bbs with IFN_ABNORMAL_DISPATCHER.
	* tree-inline.c (copy_edges_for_bb): Remove
	can_make_abnormal_goto argument, instead add abnormal_goto_dest
	argument.  Ignore computed_goto_p stmts.  Don't call
	make_abnormal_goto_edges.  If a call might need abnormal edges
	for non-local gotos, see if it already has an edge to
	IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
	with true argument, don't do anything then, otherwise add
	EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
	(copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
	caller.
	* gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
	(lower_function_body): Don't emit __builtin_setjmp_dispatcher.
	(lower_stmt): Don't set data->calls_builtin_setjmp.
	(lower_builtin_setjmp): Adjust comment.
	* builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
	* tree-cfg.c (found_computed_goto): Remove.
	(factor_computed_gotos): Remove.
	(make_goto_expr_edges): Return bool, true for computed gotos.
	Don't call make_abnormal_goto_edges.
	(build_gimple_cfg): Don't set found_computed_goto, don't call
	factor_computed_gotos.
	(computed_goto_p): No longer static.
	(make_blocks): Don't set found_computed_goto.
	(get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
	(make_edges): If make_goto_expr_edges returns true, push bb
	into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
	instead of calling make_abnormal_goto_edges push bb into ab_edge_call
	vector.  Record mapping between bbs and OpenMP regions if there
	are any, adjust make_gimple_omp_edges caller.  Call
	handle_abnormal_edges.
	(make_abnormal_goto_edges): Remove.
	* tree-cfg.h (make_abnormal_goto_edges): Remove.
	(computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
	* internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
	* builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
	* internal-fn.def (ABNORMAL_DISPATCHER): New.
	* omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
	filling *region also set *region_idx to (*region)->entry->index.

	PR other/58712
	* read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
	For REGs set ORIGINAL_REGNO.

2014-01-29  Bingfeng Mei  <bmei@broadcom.com>

	* doc/md.texi: Mention that a target shouldn't implement
	vec_widen_(s|u)mul_even/odd pair if it is less efficient
	than hi/lo pair.

2014-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/59594
	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
	a copy of the datarefs vector rather than the vector itself.

2014-01-28  Jason Merrill  <jason@redhat.com>

	PR c++/53756
	* dwarf2out.c (auto_die): New static.
	(gen_type_die_with_usage): Handle C++1y 'auto'.
	(gen_subprogram_die): If in-class DIE had 'auto', emit type again
	on definition.

2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59672
	* config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
	(SPEC_X32): Likewise.
	(SPEC_64): Likewise.
	* config/i386/i386.c (ix86_option_override_internal): Turn off
	OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
	for TARGET_16BIT.
	(x86_file_start): Output .code16gcc for TARGET_16BIT.
	* config/i386/i386.h (TARGET_16BIT): New macro.
	(TARGET_16BIT_P): Likewise.
	* config/i386/i386.opt: Add m16.
	* doc/invoke.texi: Document -m16.

2014-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/59935
	* input.c (location_get_source_line): Bail out on when line number
	is zero, and test the return value of lookup_or_add_file_to_cache_tab.

2014-01-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58742
	* tree-ssa-forwprop.c (associate_plusminus): Handle
	pointer subtraction of the form (T)(P + A) - (T)P.

2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
	at const_int_cost.

2014-01-28  Richard Biener  <rguenther@suse.de>

	Revert
	2014-01-28  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/45364
	PR rtl-optimization/59890
	* var-tracking.c (local_get_addr_clear_given_value): Handle
	already cleared slot.
	(val_reset): Handle not allocated local_get_addr_cache.
	(vt_find_locations): Use post-order on the inverted CFG.

2014-01-28  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.

2014-01-28  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/45364
	PR rtl-optimization/59890
	* var-tracking.c (local_get_addr_clear_given_value): Handle
	already cleared slot.
	(val_reset): Handle not allocated local_get_addr_cache.
	(vt_find_locations): Use post-order on the inverted CFG.

2014-01-28  Alan Modra  <amodra@gmail.com>

	* Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
	* configure.ac <recursive call for build != host>: Define
	GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
	and LD_FOR_BUILD too.
	* configure: Regenerate.

2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>

	* config/i386/i386.c (get_builtin_code_for_version): Separate
	Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
	Broadwell from Haswell.

2014-01-27  Steve Ellcey  <sellcey@mips.com>

	* common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
	Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
	* config/mips/mips.c (mips_option_override): Change setting
	of TARGET_DSP.
	* config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
	* config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
	Change from Mask to Var.

2014-01-27  Jeff Law  <law@redhat.com>

	* ipa-inline.c (inline_small_functions): Fix typo.

2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
	(_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
	(_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
	(_mm512_mask_cvtepi32_storeu_epi16): Ditto.
	(_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
	(_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
	(_mm512_mask_cvtepi64_storeu_epi32): Ditto.
	(_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
	(_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
	(_mm512_mask_cvtepi64_storeu_epi16): Ditto.
	(_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
	(_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
	(_mm512_mask_cvtepi64_storeu_epi8): Ditto.
	(_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
	(_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
	(_mm512_storeu_epi64): Ditto.
	(_mm512_cmpge_epi32_mask): Ditto.
	(_mm512_cmpge_epu32_mask): Ditto.
	(_mm512_cmpge_epi64_mask): Ditto.
	(_mm512_cmpge_epu64_mask): Ditto.
	(_mm512_cmple_epi32_mask): Ditto.
	(_mm512_cmple_epu32_mask): Ditto.
	(_mm512_cmple_epi64_mask): Ditto.
	(_mm512_cmple_epu64_mask): Ditto.
	(_mm512_cmplt_epi32_mask): Ditto.
	(_mm512_cmplt_epu32_mask): Ditto.
	(_mm512_cmplt_epi64_mask): Ditto.
	(_mm512_cmplt_epu64_mask): Ditto.
	(_mm512_cmpneq_epi32_mask): Ditto.
	(_mm512_cmpneq_epu32_mask): Ditto.
	(_mm512_cmpneq_epi64_mask): Ditto.
	(_mm512_cmpneq_epu64_mask): Ditto.
	(_mm512_expand_pd): Ditto.
	(_mm512_expand_ps): Ditto.
	* config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
	VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
	VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
	* config/i386/i386.c (ix86_builtins): Add
	IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
	IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
	IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
	IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
	IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
	IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
	IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
	IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
	IX86_BUILTIN_PMOVUSQW512_MEM.
	(bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
	__builtin_ia32_pmovsqd512mem_mask,
	__builtin_ia32_pmovqd512mem_mask,
	__builtin_ia32_pmovusqw512mem_mask,
	__builtin_ia32_pmovsqw512mem_mask,
	__builtin_ia32_pmovqw512mem_mask,
	__builtin_ia32_pmovusdw512mem_mask,
	__builtin_ia32_pmovsdw512mem_mask,
	__builtin_ia32_pmovdw512mem_mask,
	__builtin_ia32_pmovqb512mem_mask,
	__builtin_ia32_pmovusqb512mem_mask,
	__builtin_ia32_pmovsqb512mem_mask,
	__builtin_ia32_pmovusdb512mem_mask,
	__builtin_ia32_pmovsdb512mem_mask,
	__builtin_ia32_pmovdb512mem_mask.
	(bdesc_args): Add __builtin_ia32_expanddf512,
	__builtin_ia32_expandsf512.
	(ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
	VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
	VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
	* config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
	(avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
	(*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
	(avx512f_<code>v8div16qi2_mask_store): This.
	(avx512f_expand<mode>): New.

2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
	New.
	(_mm512_mask_prefetch_i64gather_pd): Ditto.
	(_mm512_prefetch_i32scatter_pd): Ditto.
	(_mm512_mask_prefetch_i32scatter_pd): Ditto.
	(_mm512_prefetch_i64scatter_pd): Ditto.
	(_mm512_mask_prefetch_i64scatter_pd): Ditto.
	(_mm512_mask_prefetch_i32gather_ps): Fix operand type.
	(_mm512_mask_prefetch_i64gather_ps): Ditto.
	(_mm512_prefetch_i32scatter_ps): Ditto.
	(_mm512_mask_prefetch_i32scatter_ps): Ditto.
	(_mm512_prefetch_i64scatter_ps): Ditto.
	(_mm512_mask_prefetch_i64scatter_ps): Ditto.
	* config/i386/i386-builtin-types.def: Define
	VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
	and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
	* config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
	IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
	IX86_BUILTIN_SCATTERPFQPD.
	(ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
	__builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
	__builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
	__builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
	__builtin_ia32_scatterpfqps.
	(ix86_expand_builtin): Expand new built-ins.
	* config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
	fix memory access data type.
	(*avx512pf_gatherpf<mode>_mask): Ditto.
	(*avx512pf_gatherpf<mode>): Ditto.
	(avx512pf_scatterpf<mode>): Ditto.
	(*avx512pf_scatterpf<mode>_mask): Ditto.
	(*avx512pf_scatterpf<mode>): Ditto.
	(GATHER_SCATTER_SF_MEM_MODE): New.
	(avx512pf_gatherpf<mode>df): Ditto.
	(*avx512pf_gatherpf<mode>df_mask): Ditto.
	(*avx512pf_scatterpf<mode>df): Ditto.

2014-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/59934
	* expmed.h (expmed_mode_index): Rework so that analysis and optimziers
	know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
	reached.

2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>

	* common/config/arm/arm-common.c
	(arm_rewrite_mcpu): Handle multiple names.
	* config/arm/arm.h
	(BIG_LITTLE_SPEC): Do not discard mcpu switches.

2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>

	* gimple-builder.h (create_gimple_tmp): Delete.

2014-01-27  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
	words comparisons.

2014-01-26  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.md (call): Generate indirect long calls to non-local
	functions when outputing 32-bit code.
	(call_value): Likewise except for special call to buggy powf function.

	* config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
	portable runtime and PIC indirect calls.
	(pa_output_indirect_call): Remove unnecessary nop from portable runtime
	and PIC call sequences.  Use ldo instead of blr to set return register
	in PIC call sequence.

2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
	avoid clobbering a live register.

2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
	Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
	* config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
	Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.

2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
	arguments on even registers.
	(tilegx_gimplify_va_arg_expr): Align 16-byte var args to
	STACK_BOUNDARY.
	* config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
	(BIGGEST_ALIGNMENT): Ditto.
	(BIGGEST_FIELD_ALIGNMENT): Ditto.

2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
	insns before bundling.
	* config/tilegx/tilegx.md (tile_network_barrier): Update comment.

2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_expand_builtin): Set
	PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
	* config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.

2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/constraints.md (kl): Delete.
	* config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
	define expands, using...
	(divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
	instructions for MIPS16.
	(*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
	non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.

2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
	(clzdi2): Ditto.
	(ffsdi2): Ditto.

2014-01-25  Walter Lee  <walt@tilera.com>

	* config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
	(TARGET_EXPAND_TO_RTL_HOOK): Define.

2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtlanal.c (canonicalize_condition): Split out duplicated mode check.
	Handle XOR.

2014-01-25  Jakub Jelinek  <jakub@redhat.com>

	* print-rtl.c (in_call_function_usage): New var.
	(print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
	EXPR_LIST mode as mode and not as reg note name.

	PR middle-end/59561
	* cfgloopmanip.c (copy_loop_info): If
	loop->warned_aggressive_loop_optimizations, make sure
	the flag is set in target loop too.

2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
	flag_cilkplus.
	* builtins.def: Likewise.
	* cilk.h (fn_contains_cilk_spawn_p): Likewise.
	* cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
	* ira.c (ira_setup_eliminable_regset): Likewise.
	* omp-low.c (gate_expand_omp): Likewise.
	(execute_lower_omp): Likewise.
	(diagnose_sb_0): Likewise.
	(gate_diagnose_omp_blocks): Likewise.
	(simd_clone_clauses_extract): Likewise.
	(gate): Likewise.

2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
	correction for little endian...
	* config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
	here.

2014-01-24  Jeff Law  <law@redhat.com>

	PR tree-optimization/59919
	* tree-vrp.c (find_assert_locations_1): Do not register asserts
	for non-returning calls.

2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>

	* common/config/aarch64/aarch64-common.c
	(aarch64_rewrite_mcpu): Handle multiple names.
	* config/aarch64/aarch64.h
	(BIG_LITTLE_SPEC): Do not discard mcpu switches.

2014-01-24  Dodji Seketeli  <dodji@redhat.com>

	* input.c (add_file_to_cache_tab): Handle the case where fopen
	returns NULL.

2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59929
	* config/i386/i386.md (pushsf splitter): Get stack adjustment
	from push operand if code of push isn't PRE_DEC.

2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/59909
	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mquad-memory-atomic.  Update -mquad-memory documentation to say
	it is only used for non-atomic loads/stores.

	* config/rs6000/predicates.md (quad_int_reg_operand): Allow either
	-mquad-memory or -mquad-memory-atomic switches.

	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
	-mquad-memory-atomic to ISA 2.07 support.

	* config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
	to separate support of normal quad word memory operations (ldq, stq)
	from the atomic quad word memory operations.

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
	support to separate non-atomic quad word operations from atomic
	quad word operations.  Disable non-atomic quad word operations in
	little endian mode so that we don't have to swap words after the
	load and before the store.
	(quad_load_store_p): Add comment about atomic quad word support.
	(rs6000_opt_masks): Add -mquad-memory-atomic to the list of
	options printed with -mdebug=reg.

	* config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
	-mquad-memory-atomic as the test for whether we have quad word
	atomic instructions.
	(TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
	or -mp8-vector are used, allow byte/half-word atomic operations.

	* config/rs6000/sync.md (load_lockedti): Insure that the address
	is a proper indexed or indirect address for the lqarx instruction.
	On little endian systems, swap the hi/lo registers after the lqarx
	instruction.
	(load_lockedpti): Use indexed_or_indirect_operand predicate to
	insure the address is valid for the lqarx instruction.
	(store_conditionalti): Insure that the address is a proper indexed
	or indirect address for the stqcrx. instruction.  On little endian
	systems, swap the hi/lo registers before doing the stqcrx.
	instruction.
	(store_conditionalpti): Use indexed_or_indirect_operand predicate to
	insure the address is valid for the stqcrx. instruction.

	* gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
	Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
	type of quad memory support is available.

2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>

	PR regression/59915
	* lra-constraints.c (simplify_operand_subreg): Spill pseudo if
	there is a danger of looping.

2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
	force flag_ira_loop_pressure if set via command line.

2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
	(ashr_simd): New builtin handling DI mode.
	* config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
	(aarch64_sshr_simddi): New match pattern.
	* config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
	(vshrd_n_s64): Likewise.
	* config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.

2014-01-23  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
	(LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
	favour of mcu specific scripts.
	* config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
	430x multilibs.

2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
	    Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
	(vaddv_s16): Likewise.
	(vaddv_s32): Likewise.
	(vaddv_u8): Likewise.
	(vaddv_u16): Likewise.
	(vaddv_u32): Likewise.
	(vaddvq_s8): Likewise.
	(vaddvq_s16): Likewise.
	(vaddvq_s32): Likewise.
	(vaddvq_s64): Likewise.
	(vaddvq_u8): Likewise.
	(vaddvq_u16): Likewise.
	(vaddvq_u32): Likewise.
	(vaddvq_u64): Likewise.
	(vaddv_f32): Likewise.
	(vaddvq_f32): Likewise.
	(vaddvq_f64): Likewise.
	(vmaxv_f32): Likewise.
	(vmaxv_s8): Likewise.
	(vmaxv_s16): Likewise.
	(vmaxv_s32): Likewise.
	(vmaxv_u8): Likewise.
	(vmaxv_u16): Likewise.
	(vmaxv_u32): Likewise.
	(vmaxvq_f32): Likewise.
	(vmaxvq_f64): Likewise.
	(vmaxvq_s8): Likewise.
	(vmaxvq_s16): Likewise.
	(vmaxvq_s32): Likewise.
	(vmaxvq_u8): Likewise.
	(vmaxvq_u16): Likewise.
	(vmaxvq_u32): Likewise.
	(vmaxnmv_f32): Likewise.
	(vmaxnmvq_f32): Likewise.
	(vmaxnmvq_f64): Likewise.
	(vminv_f32): Likewise.
	(vminv_s8): Likewise.
	(vminv_s16): Likewise.
	(vminv_s32): Likewise.
	(vminv_u8): Likewise.
	(vminv_u16): Likewise.
	(vminv_u32): Likewise.
	(vminvq_f32): Likewise.
	(vminvq_f64): Likewise.
	(vminvq_s8): Likewise.
	(vminvq_s16): Likewise.
	(vminvq_s32): Likewise.
	(vminvq_u8): Likewise.
	(vminvq_u16): Likewise.
	(vminvq_u32): Likewise.
	(vminnmv_f32): Likewise.
	(vminnmvq_f32): Likewise.
	(vminnmvq_f64): Likewise.

2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_dup_lane<mode>): Correct lane number on big-endian.
	(aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
	(*aarch64_mul3_elt<mode>): Likewise.
	(*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
	(*aarch64_mul3_elt_to_64v2df): Likewise.
	(*aarch64_mla_elt<mode>): Likewise.
	(*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_mls_elt<mode>): Likewise.
	(*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_fma4_elt<mode>): Likewise.
	(*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_fma4_elt_to_64v2df): Likewise.
	(*aarch64_fnma4_elt<mode>): Likewise.
	(*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_fnma4_elt_to_64v2df): Likewise.
	(aarch64_sq<r>dmulh_lane<mode>): Likewise.
	(aarch64_sq<r>dmulh_laneq<mode>): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
	(aarch64_sqdmull_lane<mode>_internal): Likewise.
	(aarch64_sqdmull2_lane<mode>_internal): Likewise.

2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_be_checked_get_lane<mode>): New define_expand.
	* config/aarch64/aarch64-simd-builtins.def
	(BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
	New builtin definition.
	* config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
	Use new safe be builtin.

2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
	New define_insn.
	(aarch64_be_st1<mode>): Likewise.
	(aarch_ld1<VALL:mode>): Define_expand modified.
	(aarch_st1<VALL:mode>): Likewise.
	* config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
	(UNSPEC_ST1): Likewise.

2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.md: Add trap insn and attribute

2014-01-23  Dodji Seketeli  <dodji@redhat.com>

	PR preprocessor/58580
	* input.h (location_get_source_line): Take an additional line_size
	parameter.
	(void diagnostics_file_cache_fini): Declare new function.
	* input.c (struct fcache): New type.
	(fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
	New static constants.
	(diagnostic_file_cache_init, total_lines_num)
	(lookup_file_in_cache_tab, evicted_cache_tab_entry)
	(add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
	(needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
	(get_next_line, read_next_line, goto_next_line, read_line_num):
	New static function definitions.
	(diagnostic_file_cache_fini): New function.
	(location_get_source_line): Take an additional output line_len
	parameter.  Re-write using lookup_or_add_file_to_cache_tab and
	read_line_num.
	* diagnostic.c (diagnostic_finish): Call
	diagnostic_file_cache_fini.
	(adjust_line): Take an additional input parameter for the length
	of the line, rather than calculating it with strlen.
	(diagnostic_show_locus): Adjust the use of
	location_get_source_line and adjust_line with respect to their new
	signature.  While displaying a line now, do not stop at the first
	null byte.  Rather, display the zero byte as a space and keep
	going until we reach the size of the line.
	* Makefile.in: Add vec.o to OBJS-libcommon

2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>

	* config/i386/avx512fintrin.h (_mm512_kmov): New.
	* config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
	(__builtin_ia32_kmov16): Ditto.
	* config/i386/i386.md (UNSPEC_KMOV): New.
	(kmovw): Ditto.

2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
	(_mm512_storeu_si512): Ditto.

2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/52125
	* rtl.h (get_referenced_operands): Declare.
	* recog.c (get_referenced_operands): New function.
	* config/mips/mips.c (mips_reorg_process_insns): Check which asm
	operands have been referenced when recording LO_SUM references.

2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.md: Correct bswaphi2 insn.

2014-01-22  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
	Enable for generic and recent AMD targets.

2014-01-22  Jan Hubicka  <hubicka@ucw.cz>

	* combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
	ARG_SIZE note when adjustment was eliminated.

2014-01-22  Jeff Law  <law@redhat.com>

	PR tree-optimization/59597
	* tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
	in file.  Accept new argument REGISTERING and use it to modify
	dump output appropriately.
	(register_jump_thread): Corresponding changes.
	(mark_threaded_blocks): Reinstate code to cancel unprofitable
	thread paths involving joiner blocks.  Add code to dump cancelled
	jump threading paths.

2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59477
	* lra-constraints.c (inherit_in_ebb): Process call for living hard
	regs.  Update reloads_num and potential_reload_hard_regs for all insns.

2014-01-22  Tom Tromey  <tromey@redhat.com>

	* config/i386/i386-interix.h (i386_pe_unique_section): Don't use
	PARAMS.
	* config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.

2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59896
	* lra-constraints.c (process_alt_operands): Check unused note for
	matched operands of insn with no output reloads.

2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
	(mips_move_from_gpr_cost): Likewise.

2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59858
	* lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
	ira_class_hard_regs_num.
	(process_alt_operands): Increase reject for dying matched operand.

2014-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/59003
	* config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
	smaller than size, perform several stores or loads and stores
	at dst + count - size to store or copy all of size bytes, rather
	than just last modesize bytes.

2014-01-20  DJ Delorie  <dj@redhat.com>

	* config/rl78/rl78.c (rl78_propogate_register_origins): Verify
	that CLOBBERs are REGs before propogating their values.

2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/59789
	* cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
	(cgraph_inline_failed_type): New function.
	* cgraph.h (DEFCIFCODE): Add type.
	(cgraph_inline_failed_type_t): New enum.
	(cgraph_inline_failed_type): New prototype.
	* cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
	FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
	FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
	LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
	MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
	RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
	OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
	INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
	Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
	FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
	EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
	OPTIMIZATION_MISMATCH.
	* tree-inline.c (expand_call_inline): Emit errors during
	early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.

2014-01-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/59685
	* config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
	mode attribute in insn output.

2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>

	* output.h (output_constant): Delete.
	* varasm.c (output_constant): Make private.

2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.

2014-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/59860
	* tree.h (fold_builtin_strcat): New prototype.
	* builtins.c (fold_builtin_strcat): No longer static.  Add len
	argument, if non-NULL, don't call c_strlen.  Optimize
	directly into __builtin_memcpy instead of __builtin_strcpy.
	(fold_builtin_2): Adjust fold_builtin_strcat caller.
	* gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.

2014-01-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
	for SImode_address_operand operands, having only a REG argument.

2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
	loader name using mbig-endian.
	(LINUX_TARGET_LINK_SPEC): Pass linker -m flag.

2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>

	* doc/invoke.texi (-march): Clarify documentation for AArch64.
	(-mtune): Likewise.
	(-mcpu): Likewise.

2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_cannot_change_mode_class_ptr): Declare.
	* config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
	aarch64_cannot_change_mode_class_ptr): New.
	* config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
	backend hook aarch64_cannot_change_mode_class.

2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>

	* common/config/aarch64/aarch64-common.c
	(aarch64_handle_option): Don't handle any option order logic here.
	* config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
	selected_cpu, warn on architecture version mismatch.
	(aarch64_override_options): Fix parsing order for option strings.

2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
	    Iain Sandoe  <iain@codesourcery.com>

	PR bootstrap/59496
	* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
	warning.  Amend comment to reflect current functionality.

2014-01-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/59860
	* builtins.c (fold_builtin_strcat): Remove case better handled
	by tree-ssa-strlen.c.

2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.opt
	(mcpu, march, mtune): Make case-insensitive.

2014-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/59880
	* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
	if operands[1] is a REG or ZERO_EXTEND of a REG.

2014-01-19  Jan Hubicka  <hubicka@ucw.cz>

	* varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.

2014-01-19  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
	long non-pic millicode calls.

2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.

2014-01-19  Kito Cheng  <kito@0xlab.org>

	* builtins.c (expand_movstr): Check movstr expand done or fail.

2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59379
	* config/i386/i386.md (*lea<mode>): Zero-extend return register
	to DImode for zero-extended addresses.

2014-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/57763
	* bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
	on the new indirect jump_insn and increment LABEL_NUSES (label).

2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/59580
	PR bootstrap/59583
	* config.gcc (x86_archs): New variable.
	(x86_64_archs): Likewise.
	(x86_cpus): Likewise.
	Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
	--with-arch/--with-cpu= options.
	Support --with-arch=/--with-cpu={nehalem,westmere,
	sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.

2014-01-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
	and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.

2014-01-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*swap<mode>): Rename from swap<mode>.

2014-01-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/58944
	* config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
	clear cpp_get_options (parse_in)->warn_unused_macros for
	ix86_target_macros_internal with cpp_define.

2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* jump.c (delete_related_insns): Keep (use (insn))s.
	* reorg.c (redundant_insn): Check for barriers too.

2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.

2014-01-17  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
	call to $$dyncall when TARGET_LONG_CALLS is true.

2014-01-17  Jeff Law  <law@redhat.com>

	* ree.c (combine_set_extension): Temporarily disable test for
	changing number of hard registers.

2014-01-17  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/58125
	* ipa-inline-analysis.c (inline_free_summary):
	Do not free summary of aliases.

2014-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/59706
	* gimplify.c (gimplify_expr): Use create_tmp_var
	instead of create_tmp_var_raw.  If cond doesn't have
	integral type, don't add the IFN_ANNOTATE builtin at all.

2014-01-17  Martin Jambor  <mjambor@suse.cz>

	PR ipa/59736
	* ipa-cp.c (prev_edge_clone): New variable.
	(grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
	Also resize prev_edge_clone vector.
	(ipcp_edge_duplication_hook): Also update prev_edge_clone.
	(ipcp_edge_removal_hook): New function.
	(ipcp_driver): Register ipcp_edge_removal_hook.

2014-01-17  Andrew Pinski  <apinski@cavium.com>
	    Steve Ellcey  <sellcey@mips.com>

	PR target/59462
	* config/mips/mips.c (mips_print_operand): Check operand mode instead
	of operator mode.

2014-01-17  Jeff Law  <law@redhat.com>

	PR middle-end/57904
	* passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
	so that pass_ccp runs first.

2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
	(ix86_adjust_cost): Use !TARGET_XXX.
	(do_reorder_for_imul): Likewise.
	(swap_top_of_ready_list): Likewise.
	(ix86_sched_reorder): Likewise.

2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
	* config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
	(intel_memset): New.  Duplicate slm_memset.
	(intel_cost): New.  Duplicate slm_cost.
	(m_INTEL): New macro.
	(processor_target_table): Add "intel".
	(ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
	with PROCESSOR_INTEL for "intel".
	(ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
	PROCESSOR_SILVERMONT.
	(ix86_issue_rate): Likewise.
	(ix86_adjust_cost): Likewise.
	(ia32_multipass_dfa_lookahead): Likewise.
	(swap_top_of_ready_list): Likewise.
	(ix86_sched_reorder): Likewise.
	(ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
	instead of TARGET_OPT_AGU.
	* config/i386/i386.h (TARGET_INTEL): New.
	(TARGET_AVOID_LEA_FOR_ADDR): Likewise.
	(processor_type): Add PROCESSOR_INTEL.
	* config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
	Add X86_TUNE_AVOID_LEA_FOR_ADDR.

2014-01-17  Marek Polacek  <polacek@redhat.com>

	PR c/58346
	* gimple-fold.c (fold_array_ctor_reference): Don't fold if element
	size is zero.

2014-01-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/46590
	* opts.c (default_options_table): Add entries for
	OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
	all enabled at -O1 but not for -Og.
	* common.opt (fbranch-count-reg): Remove Init(1).
	(fmove-loop-invariants): Likewise.
	(ftree-pta): Likewise.

2014-01-17  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_data_alignment): For compatibility with
	(incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
	decls to at least the GCC 4.8 used alignments.

	PR fortran/59440
	* tree-nested.c (convert_nonlocal_reference_stmt,
	convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
	of GIMPLE_BIND stmts, adjust associated decls.

2014-01-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/46590
	* vec.h (vec<>::bseach): New member function implementing
	binary search according to C89 bsearch.
	(vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
	* tree-ssa-loop-im.c (struct mem_ref): Make stored member a
	bitmap pointer again.  Make accesses_in_loop a flat array.
	(mem_ref_obstack): New global.
	(outermost_indep_loop): Adjust for mem_ref->stored changes.
	(mark_ref_stored): Likewise.
	(ref_indep_loop_p_2): Likewise.
	(set_ref_stored_in_loop): New helper function.
	(mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
	(memref_free): Adjust.
	(record_mem_ref_loc): Simplify.
	(gather_mem_refs_stmt): Adjust.
	(sort_locs_in_loop_postorder_cmp): New function.
	(analyze_memory_references): Sort accesses_in_loop after
	loop postorder number.
	(find_ref_loc_in_loop_cmp): New function.
	(for_all_locs_in_loop): Find relevant cluster of locs in
	accesses_in_loop and iterate without recursion.
	(execute_sm): Avoid uninit warning.
	(struct ref_always_accessed): Simplify.
	(ref_always_accessed::operator ()): Likewise.
	(ref_always_accessed_p): Likewise.
	(tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
	loop postorder numbers here.
	(tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
	numbers.

2014-01-17  Jan Hubicka  <hubicka@ucw.cz>

	PR c++/57945
	* passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
	on decls for which assemble_alias has been called.

2014-01-17  Nick Clifton  <nickc@redhat.com>

	* config/msp430/msp430.opt: (mcpu): New option.
	* config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
	(msp430_option_override): Parse target_cpu.  If the MCU name
	matches a generic string, clear target_mcu.
	(msp430_attr): Allow numeric interrupt values up to 63.
	(msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
	* config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
	option.
	* config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
	Add mcpu matches.
	* config/msp430/msp430.md (popm): Use %J rather than %I.
	(addsi3): Use msp430_nonimmediate_operand for operand 2.
	(addhi_cy_i): Use immediate_operand for operand 2.
	* doc/invoke.texi: Document -mcpu option.

2014-01-17  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/38518
	* df.h (df_analyze_loop): Declare.
	* df-core.c: Include cfgloop.h.
	(df_analyze_1): Split out main part of df_analyze.
	(df_analyze): Adjust.
	(loop_inverted_post_order_compute): New function.
	(loop_post_order_compute): Likewise.
	(df_analyze_loop): New function avoiding whole-function
	postorder computes.
	* loop-invariant.c (find_defs): Use df_analyze_loop.
	(find_invariants): Adjust.
	* loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.

2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	* config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
	(thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.

2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-ref.c (ipa_remove_stmt_references): Fix references
	traversal when removing references.

2014-01-16  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/59775
	* tree.c (get_binfo_at_offset): Look harder for virtual bases.

2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>

	PR middle-end/56791
	* reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
	pushing a reload for an autoinc when we had previously reloaded an
	inner part of the address.

2014-01-16  Jakub Jelinek  <jakub@redhat.com>

	* tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
	field.
	(LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
	when not giving up or versioning for alias only because of
	loop->safelen.
	(vect_analyze_data_ref_dependences): Set to true.
	* tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
	is a GIMPLE_PHI.
	(vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
	LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
	to the condition.

	PR middle-end/58344
	* expr.c (expand_expr_real_1): Handle init == NULL_TREE.

	PR target/59839
	* config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
	operand 0 predicate for gathers, use a new pseudo as subtarget.

2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/59609
	* lra-constraints.c (process_alt_operands): Add printing debug info.
	Check absence of input/output reloads for matched operands too.

2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59835
	* ira.c (ira_init_register_move_cost): Increase cost for
	impossible modes.

2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>

	* config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.

2014-01-16  Richard Earnshaw  <rearnsha@arm.com>

	PR target/59780
	* aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
	non-register objects.  Use gen_(high/low)part more consistently.
	Fix assertions.

2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/59844
	* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
	endian support, remove tests for WORDS_BIG_ENDIAN.
	(p8_mfvsrd_3_<mode>): Likewise.
	(reload_gpr_from_vsx<mode>): Likewise.
	(reload_gpr_from_vsxsf): Likewise.
	(p8_mfvsrd_4_disf): Likewise.

2014-01-16  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/46590
	* lcm.c (compute_antinout_edge): Use postorder iteration.
	(compute_laterin): Use inverted postorder iteration.

2014-01-16  Nick Clifton  <nickc@redhat.com>

	PR middle-end/28865
	* varasm.c (output_constant): Return the number of bytes actually
	emitted.
	(output_constructor_array_range): Update the field size with the
	number of bytes emitted by output_constant.
	(output_constructor_regular_field): Likewise.  Also do not
	complain if the total number of bytes emitted is now greater
	than the expected fieldpos.
	* output.h (output_constant): Update prototype and descriptive comment.

2014-01-16  Marek Polacek  <polacek@redhat.com>

	PR middle-end/59827
	* cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
	it is error_mark_node.

2014-01-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_hard_regno_mode_ok): Use
	VALID_AVX256_REG_OR_OI_MODE.

2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
	current procedure should be profiled.

2014-01-15  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
	of moving from/to the STACK_REG register class.

2014-01-15  Richard Henderson  <rth@redhat.com>

	PR debug/54694
	* reginfo.c (global_regs_decl): Globalize.
	* rtl.h (global_regs_decl): Declare.
	* ira.c (do_reload): Diagnose frame_pointer_needed and it
	reserved via global_regs.

2014-01-15  Teresa Johnson  <tejohnson@google.com>

	* tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.

2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

	* config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
	and vmulosh rather than call gen_vec_widen_smult_*.
	(vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
	than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
	(vec_widen_smult_even_v16qi): Likewise.
	(vec_widen_umult_even_v8hi): Likewise.
	(vec_widen_smult_even_v8hi): Likewise.
	(vec_widen_umult_odd_v16qi): Likewise.
	(vec_widen_smult_odd_v16qi): Likewise.
	(vec_widen_umult_odd_v8hi): Likewise.
	(vec_widen_smult_odd_v8hi): Likewise.
	(vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
	vmuloub rather than call gen_vec_widen_umult_*.
	(vec_widen_umult_lo_v16qi): Likewise.
	(vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
	vmulosb rather than call gen_vec_widen_smult_*.
	(vec_widen_smult_lo_v16qi): Likewise.
	(vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
	rather than call gen_vec_widen_umult_*.
	(vec_widen_umult_lo_v8hi): Likewise.
	(vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
	rather than call gen_vec_widen_smult_*.
	(vec_widen_smult_lo_v8hi): Likewise.

2014-01-15  Jeff Law  <law@redhat.com>

	PR tree-optimization/59747
	* ree.c (find_and_remove_re): Properly handle case where a second
	eliminated extension requires widening a copy created for elimination
	of a prior extension.
	(combine_set_extension): Ensure that the number of hard regs needed
	for a destination register does not change when we widen it.

2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
	(arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
	(arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
	(arm*-*-rtems*): Use t-rtems from existing tmake_file.
	(avr-*-rtems*): Likewise.
	(bfin*-rtems*): Likewise.
	(moxie-*-rtems*): Likewise.
	(h8300-*-rtems*): Likewise.
	(i[34567]86-*-rtems*): Likewise.
	(lm32-*-rtems*): Likewise.
	(m32r-*-rtems*): Likewise.
	(m68k-*-rtems*): Likewise.
	(microblaze*-*-rtems*): Likewise.
	(mips*-*-rtems*): Likewise.
	(powerpc-*-rtems*): Likewise.
	(sh-*-rtems*): Likewise.
	(sparc-*-rtems*): Likewise.
	(sparc64-*-rtems*): Likewise.
	(v850-*-rtems*): Likewise.
	(m32c-*-rtems*): Likewise.

2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/59511
	* ira.c (ira_init_register_move_cost): Use memory costs for some
	cases of register move cost calculations.
	* lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
	instead of BB frequency.
	* lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
	* lra-assigns.c (find_hard_regno_for): Ditto.

2014-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59822
	* tree-vect-stmts.c (hoist_defs_of_uses): New function.
	(vectorizable_load): Use it to hoist defs of uses of invariant
	loads out of the loop.

2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
	    Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR target/59695
	* config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
	truncation.

2014-01-15  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/59802
	* lcm.c (compute_available): Use inverted postorder to seed
	the initial worklist.

2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/59803
	* config/s390/s390.c (s390_preferred_reload_class): Don't return
	ADDR_REGS for invalid symrefs in non-PIC code.

2014-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR other/58712
	* builtins.c (determine_block_size): Initialize *probable_max_size
	even if len_rtx is CONST_INT.

2014-01-14  Andrew Pinski  <apinski@cavium.com>

	* config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
	* config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
	(cortexa53_tunings): Likewise.
	(aarch64_sched_issue_rate): New function.
	(TARGET_SCHED_ISSUE_RATE): Define.

2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-costs.c (find_costs_and_classes): Add missed
	ira_init_register_move_cost_if_necessary.

2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/59787
	* config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.

2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/59794
	* config/i386/i386.c (type_natural_mode): Add a bool parameter
	to indicate if type is used for function return value.  Warn ABI
	change if the vector mode isn't available for function return value.
	(ix86_function_arg_advance): Pass false to type_natural_mode.
	(ix86_function_arg): Likewise.
	(ix86_gimplify_va_arg): Likewise.
	(function_arg_32): Don't warn ABI change.
	(ix86_function_value): Pass true to type_natural_mode.
	(ix86_return_in_memory): Likewise.
	(ix86_struct_value_rtx): Removed.
	(TARGET_STRUCT_VALUE_RTX): Likewise.

2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>

	* jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
	converting a conditional jump into a conditional return.

2014-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58921
	PR tree-optimization/59006
	* tree-vect-loop-manip.c (vect_loop_versioning): Remove code
	hoisting invariant stmts.
	* tree-vect-stmts.c (vectorizable_load): Insert the splat of
	invariant loads on the preheader edge if possible.

2014-01-14  Joey Ye  <joey.ye@arm.com>

	* doc/plugin.texi (Building GCC plugins): Update to C++.

2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>

	* config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
	(_mm_rcp28_round_ss): Ditto.
	(_mm_rsqrt28_round_sd): Ditto.
	(_mm_rsqrt28_round_ss): Ditto.
	(_mm_rcp28_sd): Ditto.
	(_mm_rcp28_ss): Ditto.
	(_mm_rsqrt28_sd): Ditto.
	(_mm_rsqrt28_ss): Ditto.
	* config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
	* config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
	* config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
	(IX86_BUILTIN_RCP28SD): Ditto.
	(IX86_BUILTIN_RCP28SS): Ditto.
	(IX86_BUILTIN_RSQRT28SD): Ditto.
	(IX86_BUILTIN_RSQRT28SS): Ditto.
	(bdesc_special_args): Define __builtin_ia32_movntdqa512,
	__builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
	__builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
	(ix86_expand_special_args_builtin): Expand new FTYPE.
	* config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
	(srcp14<mode>): Make insn unary.
	(avx512f_vmscalef<mode><round_name>): Use substed predicate.
	(avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
	(avx512f_rndscale<mode><round_saeonly_name>): Ditto.
	(<sse4_1_avx2>_movntdqa): Extend to 512 bits.
	(avx512er_exp2<mode><mask_name><round_saeonly_name>):
	Fix rounding: make it SAE only.
	(<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
	Ditto.
	(<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
	Ditto.
	(avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
	(avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
	(avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
	* config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
	(round_saeonly_mask_scalar_operand4): Ditto.
	(round_saeonly_mask_scalar_op3): Ditto.
	(round_saeonly_mask_scalar_op4): Ditto.

2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Implement -maltivec=be for vec_insert and vec_extract.

2014-01-10  DJ Delorie  <dj@redhat.com>

	* config/msp430/msp430.md (call_internal): Don't allow memory
	references with SP as the base register.
	(call_value_internal): Likewise.
	* config/msp430/constraints.md (Yc): New.  For memory references
	that don't use SP as a base register.

	* config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
	"an integer without a # prefix"
	* config/msp430/msp430.md (epilogue_helper): Use it.

2014-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/59617
	* config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
	AVX512F gather builtins.
	* tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
	on gather decls with INTEGER_TYPE masktype.
	(vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
	directly into the builtin rather than hoisting it before loop.

	PR tree-optimization/59387
	* tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
	(scev_const_prop): If folded_casts and type has undefined overflow,
	use force_gimple_operand instead of force_gimple_operand_gsi and
	for each added stmt if it is assign with
	arith_code_with_undefined_signed_overflow, call
	rewrite_to_defined_overflow.
	* tree-ssa-loop-im.c: Don't include gimplify-me.h, include
	gimple-fold.h instead.
	(arith_code_with_undefined_signed_overflow,
	rewrite_to_defined_overflow): Moved to ...
	* gimple-fold.c (arith_code_with_undefined_signed_overflow,
	rewrite_to_defined_overflow): ... here.  No longer static.
	Include gimplify-me.h.
	* gimple-fold.h (arith_code_with_undefined_signed_overflow,
	rewrite_to_defined_overflow): New prototypes.

2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.

2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>

	* builtins.c (get_object_alignment_2): Minor tweak.
	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.

2014-01-13  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
	optimized non constant lengths.

2014-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/59194
	* omp-low.c (expand_omp_atomic_pipeline): Expand the initial
	load as __atomic_load_N if possible.

2014-01-11  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
	target parameter.
	(rs6000_expand_builtin): Adjust call.

2014-01-11  David Edelsohn  <dje.gcc@gmail.com>

	PR target/58115
	* config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
	* config/rs6000/rs6000.c: Include target-globals.h.
	(rs6000_set_current_function): Instead of doing target_reinit
	unconditionally, use save_target_globals_default_opts and
	restore_target_globals.

	* config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
	FPSCR.
	* config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
	(rs6000_expand_builtin): Handle mffs and mtfsf.
	(rs6000_init_builtins): Define mffs and mtfsf.
	* config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
	(rs6000_mffs): New pattern.
	(rs6000_mtfsf): New pattern.

2014-01-11  Bin Cheng  <bin.cheng@arm.com>

	* tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
	Start narrowing with START.  Apply candidate-use pair
	and check overall cost in narrowing.
	(iv_ca_prune): Pass new argument.

2014-01-10  Jeff Law  <law@redhat.com>

	PR middle-end/59743
	* ree.c (combine_reaching_defs): Ensure the defining statement
	occurs before the extension when optimizing extensions with
	different source and destination hard registers.

2014-01-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/58585
	* ipa-devirt.c (build_type_inheritance_graph): Also add types of
	vtables into the type inheritance graph.

2014-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/59754
	* ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
	modes in the REGNO != REGNO case.

2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.

2014-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/59745
	* tree-predcom.c (tree_predictive_commoning_loop): Call
	free_affine_expand_cache if giving up because components is NULL.

	* target-globals.c (save_target_globals): Allocate < 4KB structs using
	GC in payload of target_globals struct instead of allocating them on
	the heap and the larger structs separately using GC.
	* target-globals.h (struct target_globals): Make regs, hard_regs,
	reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
	of GTY((skip)) and change type to void *.
	(reset_target_globals): Cast loads from those fields to corresponding
	types.

2014-01-10  Steve Ellcey  <sellcey@mips.com>

	PR plugins/59335
	* Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
	gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
	tree-ssanames.h, print-tree.h, varasm.h, and context.h.

2014-01-10  Richard Earnshaw  <rearnsha@arm.com>

	PR target/59744
	* aarch64-modes.def (CC_Zmode): New flags mode.
	* aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
	represents an equality.
	(aarch64_get_condition_code): Handle CC_Zmode.
	* aarch64.md (compare_neg<mode>): Restrict to equality operations.

2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
	extraction in good case.

2014-01-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59374
	* tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
	checking after SLP discovery.  Mark stmts not participating
	in any SLP instance properly.

2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_new_rtx_costs): Use destination mode
	when handling a SET rtx.

2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
	(cortex-a57): Likewise.
	(cortex-a57.cortex-a53): Likewise. Remove redundant flags.

2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
	non-iwmmxt builtins.

2014-01-10  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/58252
	PR ipa/59226
	* ipa-devirt.c record_target_from_binfo): Take as argument
	stack of binfos and lookup matching one for virtual inheritance.
	(possible_polymorphic_call_targets_1): Update.

2014-01-10  Huacai Chen  <chenhc@lemote.com>

	* config/mips/driver-native.c (host_detect_local_cpu): Handle new
	kernel strings for Loongson-2E/2F/3A.

2014-01-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/59670
	* tree-vect-data-refs.c (vect_analyze_data_refs): Check
	is_gimple_call before calling gimple_call_internal_p.

2014-01-09  Steve Ellcey  <sellcey@mips.com>

	* Makefile.in (TREE_FLOW_H): Remove.
	(TREE_SSA_H): Add file names from tree-flow.h.
	* doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
	* tree.h: Remove tree-flow.h reference.
	* hash-table.h: Remove tree-flow.h reference.
	* tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
	reference with tree-ssa-loop.h.

2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* doc/invoke.texi: Add -maltivec={be,le} options, and document
	default element-order behavior for -maltivec.
	* config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
	that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
	when targeting big endian, at least for now.
	* config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.

2014-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/47735
	* cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
	var satisfies use_register_for_decl, just take into account type
	alignment, rather than decl alignment.

	PR tree-optimization/59622
	* gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
	__builtin_unreachable replace the OBJ_TYPE_REF call with a call to
	__builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
	Don't devirtualize for inplace at all.  For targets.length () == 1,
	if the call is noreturn and cfun isn't in SSA form yet, clear lhs.

2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (cpu): Remove the unused btver1.

2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>

	* gdbasan.in: Put a breakpoint on __sanitizer::Report.

2014-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/58115
	* tree-core.h (struct target_globals): New forward declaration.
	(struct tree_target_option): Add globals field.
	* tree.h (TREE_TARGET_GLOBALS): Define.
	(prepare_target_option_nodes_for_pch): New prototype.
	* target-globals.h (struct target_globals): Define even if
	!SWITCHABLE_TARGET.
	* tree.c (prepare_target_option_node_for_pch,
	prepare_target_option_nodes_for_pch): New functions.
	* config/i386/i386.h (SWITCHABLE_TARGET): Define.
	* config/i386/i386.c: Include target-globals.h.
	(ix86_set_current_function): Instead of doing target_reinit
	unconditionally, use save_target_globals_default_opts and
	restore_target_globals.

2014-01-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59715
	* tree-cfg.h (split_critical_edges): Declare.
	* tree-cfg.c (split_critical_edges): Export.
	* tree-ssa-sink.c (execute_sink_code): Split critical edges.

2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* cfgexpand.c (expand_stack_vars): Optionally disable
	asan stack protection.
	(expand_used_vars): Likewise.
	(partition_stack_vars): Likewise.
	* asan.c (asan_emit_stack_protection): Optionally disable
	after return stack usage.
	(instrument_derefs): Optionally disable memory access instrumentation.
	(instrument_builtin_call): Likewise.
	(instrument_strlen_call): Likewise.
	(asan_protect_global): Optionally disable global variables protection.
	* doc/invoke.texi: Added doc for new options.
	* params.def: Added new options.
	* params.h: Likewise.

2014-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/59724
	* ifcvt.c (cond_exec_process_if_block): Don't call
	flow_find_head_matching_sequence with 0 longest_match.
	* cfgcleanup.c (flow_find_head_matching_sequence): Count even
	non-active insns if !stop_after.
	(try_head_merge_bb): Revert 2014-01-07 changes.

2014-01-08  Jeff Law  <law@redhat.com>

	* ree.c (get_sub_rtx): New function, extracted from...
	(merge_def_and_ext): Here.
	(combine_reaching_defs): Use get_sub_rtx.

2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>

	* cgraph.h (varpool_variable_node): Do not choke on null node.

2014-01-08  Catherine Moore  <clm@codesourcery.com>

	* config/mips/mips.md (simple_return): Attempt to use JRC
	for microMIPS.
	* config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.

2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/59137
	* reorg.c (steal_delay_list_from_target): Call update_block for
	elided insns.
	(steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.

2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
	two duplicate entries.

2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>

	Revert:
	2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* 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-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
	(*baddu_si): ...this new pattern.

2014-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/59722
	* ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.

2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR middle-end/57748
	* expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
	inner_reference_p.
	(expand_expr, expand_normal): Adjust.
	* expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
	inner_reference_p. Use inner_reference_p to expand inner references.
	(store_expr): Adjust.
	* cfgexpand.c (expand_call_stmt): Adjust.

2014-01-08  Rong Xu  <xur@google.com>

	* gcov-io.c (gcov_var): Move from gcov-io.h.
	(gcov_position): Ditto.
	(gcov_is_error): Ditto.
	(gcov_rewrite): Ditto.
	* gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
	only part to libgcc/libgcov.h.

2014-01-08  Marek Polacek  <polacek@redhat.com>

	PR middle-end/59669
	* omp-low.c (simd_clone_adjust): Don't crash if def is NULL.

2014-01-08  Marek Polacek  <polacek@redhat.com>

	PR sanitizer/59667
	* ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.

2014-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/59649
	* stor-layout.c (get_mode_bounds): For BImode return
	0 and STORE_FLAG_VALUE.

2014-01-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/59630
	* gimple.h (is_gimple_builtin_call): Remove.
	(gimple_builtin_call_types_compatible_p): New.
	(gimple_call_builtin_p): New overload.
	* gimple.c (is_gimple_builtin_call): Remove.
	(validate_call): Rename to ...
	(gimple_builtin_call_types_compatible_p): ... this and export.  Also
	check return types.
	(validate_type): New static function.
	(gimple_call_builtin_p): New overload and adjust.
	* gimple-fold.c (gimple_fold_builtin): Fold the return value.
	(gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
	(gimple_fold_stmt_to_constant_1): Likewise.
	* tsan.c (instrument_gimple): Use gimple_call_builtin_p.

2014-01-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/59471
	* gimplify.c (gimplify_expr): Gimplify register-register type
	VIEW_CONVERT_EXPRs to separate stmts.

2014-01-07  Jeff Law  <law@redhat.com>

	PR middle-end/53623
	* ree.c (combine_set_extension): Handle case where source
	and destination registers in an extension insn are different.
	(combine_reaching_defs): Allow source and destination registers
	in extension to be different under limited circumstances.
	(add_removable_extension): Remove restriction that the
	source and destination registers in the extension are the same.
	(find_and_remove_re): Emit a copy from the extension's
	destination to its source after the defining insn if
	the source and destination registers are different.

	PR middle-end/59285
	* ifcvt.c (merge_if_block): If we are merging a block with more than
	one successor with a block with no successors, remove any BARRIER
	after the second block.

2014-01-07  Dan Xio Qiang  <ziyan01@163.com>

	* hw-doloop.c (reorg_loops): Release the bitmap obstack.

2014-01-07  John David Anglin  <danglin@gcc.gnu.org>

	PR target/59652
	* config/pa/pa.c (pa_legitimate_address_p): Return false before reload
	for 14-bit register offsets when INT14_OK_STRICT is false.

2014-01-07  Roland Stigge  <stigge@antcom.de>
	    Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR 57386/target
	* config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
	Only check TFmode for SPE constants.  Don't check TImode or TDmode.

2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
	-mcpu.

2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/arm/arm.c (arm_expand_neon_args): Call expand_expr
	with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
	rtx is const0_rtx or not.

2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/58115
	* target-globals.c (save_target_globals): Remove this_fn_optab
	handling.
	* toplev.c: Include optabs.h.
	(target_reinit): Temporarily restore the global options if another
	set of options are in force.

2014-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/58668
	* cfgcleanup.c (flow_find_cross_jump): Don't count
	any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
	to determine what is counted.
	(flow_find_head_matching_sequence): Use active_insn_p to determine
	what is counted.
	(try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
	counting change.
	* ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
	determine what is counted.

	PR tree-optimization/59643
	* tree-predcom.c (split_data_refs_to_components): If one dr is
	read and one write, determine_offset fails and the write isn't
	in the bad component, just put the read into the bad component.

2014-01-07  Mike Stump  <mikestump@comcast.net>
	    Jakub Jelinek  <jakub@redhat.com>

	PR pch/59436
	* tree-core.h (struct tree_optimization_option): Change optabs
	type from unsigned char * to void *.
	* optabs.c (init_tree_optimization_optabs): Adjust
	TREE_OPTIMIZATION_OPTABS initialization.

2014-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/59644
	* config/i386/i386.h (struct machine_function): Add
	no_drap_save_restore field.
	* config/i386/i386.c (ix86_save_reg): Use
	!cfun->machine->no_drap_save_restore instead of
	crtl->stack_realign_needed.
	(ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
	this function clears frame_pointer_needed.  Set
	cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
	and DRAP reg is needed.

2014-01-06  Marek Polacek  <polacek@redhat.com>

	PR c/57773
	* doc/implement-c.texi: Mention that other integer types are
	permitted as bit-field types in strictly conforming mode.

2014-01-06  Felix Yang  <fei.yang0953@gmail.com>

	* modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
	is newly allocated.

2014-01-06  Richard Earnshaw  <rearnsha@arm.com>

	* aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.

2014-01-06  Martin Jambor  <mjambor@suse.cz>

	PR ipa/59008
	* ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
	to int.
	* ipa-prop.c (ipa_print_node_params): Fix indentation.

2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR debug/59350
	PR debug/59510
	* var-tracking.c (add_stores): Preserve the value of the source even if
	we don't record the store.

2014-01-06  Terry Guo  <terry.guo@arm.com>

	* config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.

2014-01-05  Iain Sandoe  <iain@codesourcery.com>

	PR bootstrap/59541
	* config/darwin.c (darwin_function_section): Adjust return values to
	correspond to optimisation changes made in r206070.

2014-01-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_data_alignment): Calculate max_align
	from prefetch_block tune setting.
	(nocona_cost): Correct size of prefetch block to 64.

2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	* config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
	(arm_expand_epilogue_apcs_frame): Take into account the number of bytes
	used to save the static chain register in the computation of the offset
	from which the FP registers need to be restored.

2014-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/59519
	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
	ICE if get_current_def (current_new_name) is already non-NULL, as long
	as it is a phi result of some other phi in *new_exit_bb that has
	the same argument.

	* config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
	or vmovdqu* for misaligned_operand.
	(<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
	<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
	* config/i386/i386.c (ix86_expand_special_args_builtin): Set
	aligned_mem for AVX512F masked aligned load and store builtins and for
	non-temporal moves.

2014-01-03  Bingfeng Mei  <bmei@broadcom.com>

	PR tree-optimization/59651
	* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
	Address	range for negative step should be added by TYPE_SIZE_UNIT.

2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.c (handle_move_double): Handle pushes with
	overlapping registers also for registers other than the stack pointer.

2014-01-03  Marek Polacek  <polacek@redhat.com>

	PR other/59661
	* doc/extend.texi: Fix the return value of __builtin_FUNCTION and
	__builtin_FILE.

2014-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/59625
	* config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
	asm goto as jump.

	* config/i386/i386.md (MODE_SIZE): New mode attribute.
	(push splitter): Use <P:MODE_SIZE> instead of
	GET_MODE_SIZE (<P:MODE>mode).
	(lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
	(mov -1, reg peephole2): Likewise.
	* config/i386/sse.md (*mov<mode>_internal,
	<sse>_storeu<ssemodesuffix><avxsizesuffix>,
	<sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
	*<code><mode>3, *andnot<mode>3<mask_name>,
	<mask_codefor><code><mode>3<mask_name>): Likewise.
	* config/i386/subst.md (mask_mode512bit_condition,
	sd_mask_mode512bit_condition): Likewise.

2014-01-02  Xinliang David Li  <davidxl@google.com>

	PR tree-optimization/59303
	* tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
	(dump_predicates): Better output format.
	(pred_equal_p): New function.
	(is_neq_relop_p): Ditto.
	(is_neq_zero_form_p): Ditto.
	(pred_expr_equal_p): Ditto.
	(pred_neg_p): Ditto.
	(simplify_pred): Ditto.
	(simplify_preds_2): Ditto.
	(simplify_preds_3): Ditto.
	(simplify_preds_4): Ditto.
	(simplify_preds): Ditto.
	(push_pred): Ditto.
	(push_to_worklist): Ditto.
	(get_pred_info_from_cmp): Ditto.
	(is_degenerated_phi): Ditto.
	(normalize_one_pred_1): Ditto.
	(normalize_one_pred): Ditto.
	(normalize_one_pred_chain): Ditto.
	(normalize_preds): Ditto.
	(normalize_cond_1): Remove function.
	(normalize_cond): Ditto.
	(is_gcond_subset_of): Ditto.
	(is_subset_of_any): Ditto.
	(is_or_set_subset_of): Ditto.
	(is_and_set_subset_of): Ditto.
	(is_norm_cond_subset_of): Ditto.
	(pred_chain_length_cmp): Ditto.
	(convert_control_dep_chain_into_preds): Type change.
	(find_predicates): Ditto.
	(find_def_preds): Ditto.
	(destroy_predicates_vecs): Ditto.
	(find_matching_predicates_in_rest_chains): Ditto.
	(use_pred_not_overlap_with_undef_path_pred): Ditto.
	(is_pred_expr_subset): Ditto.
	(is_pred_chain_subset_of): Ditto.
	(is_included_in): Ditto.
	(is_superset_of): Ditto.

2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years.

2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* common/config/arc/arc-common.c, config/arc/arc-modes.def,
	config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
	config/arc/arc.md, config/arc/arc.opt,
	config/arm/arm_neon_builtins.def, config/arm/crypto.def,
	config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
	config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
	config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
	config/linux-protos.h, config/linux.c, config/winnt-c.c,
	diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
	vtable-verify.c, vtable-verify.h: Use the standard form for the
	copyright notice.

2014-01-02  Tobias Burnus  <burnus@net-b.de>

	* gcc.c (process_command): Update copyright notice dates.
	* gcov-dump.c: Ditto.
	* gcov.c: Ditto.
	* doc/cpp.texi: Bump @copying's copyright year.
	* doc/cppinternals.texi: Ditto.
	* doc/gcc.texi: Ditto.
	* doc/gccint.texi: Ditto.
	* doc/gcov.texi: Ditto.
	* doc/install.texi: Ditto.
	* doc/invoke.texi: Ditto.

2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.

2014-01-01  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (*mov<mode>_internal): Guard
	EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.

	PR rtl-optimization/59647
	* cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
	new_rtx into UNSIGNED_FLOAT rtxes.

Copyright (C) 2014 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.
