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: Make -mcpu, -march, -mtune 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  <jh@suse.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.
