[AArch64] Refactor vector max and min RTL and builtins.

gcc/
	* config/aarch64/aarch64-simd-builtins.def
	(reduc_smax_): New.
	(reduc_smin_): Likewise.
	(reduc_umax_): Likewise.
	(reduc_umin_): Likewise.
	(reduc_smax_nan_): Likewise.
	(reduc_smin_nan_): Likewise.
	(fmax): Remove.
	(fmin): Likewise.
	(smax): Update for V2SF, V4SF and V2DF modes.
	(smin): Likewise.
	(smax_nan): New.
	(smin_nan): Likewise.
	* config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
	(<su><maxmin><mode>3): ...This, refactor.
	(s<maxmin><mode>3): New.
	(<maxmin_uns><mode>3): Likewise.
	(reduc_<maxmin_uns>_<mode>): Refactor.
	(reduc_<maxmin_uns>_v4sf): Likewise.
	(reduc_<maxmin_uns>_v2si): Likewise.
	(aarch64_<fmaxmin><mode>: Remove.
	* config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
	new builtin names.
	(vmin<q>_f<32,64>): Likewise.
	* config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
	(FMAXMIN): New.
	(su): Add mappings for smax, smin, umax, umin.
	(maxmin): New.
	(FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
	(FMAXMIN): Rename as...
	(FMAXMIN_UNS): ...This.
	(maxminv): Remove.
	(fmaxminv): Likewise.
	(fmaxmin): Likewise.
	(maxmin_uns): New.
	(maxmin_uns_op): Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198497 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Fold max and min reduction builtins to tree.

gcc/
	* config/aarch64/aarch64-builtins
	(aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198498 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Rewrite v<max,min><nm><q><v>_<sfu><8, 16, 32, 64> intrinsics using builtins.

gcc/
	* config/aarch64/arm_neon.h
	(v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.

gcc/testsuite/
	* gcc.target/aarch64/vect-vmaxv.c: New.
	* gcc.target/aarch64/vect-vfmaxv.c: Likewise.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198499 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Refactor reduc_<su>plus patterns.

gcc/
	* config/aarch64/aarch64-builtins.c
	(aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
	* config/aarch64/aarch64-simd-builtins.def
	(reduc_splus_): Add new modes.
	(reduc_uplus_): New.
	* config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
	(reduc_uplus_v4sf): Likewise.
	(reduc_splus_v4sf): Likewise.
	(aarch64_addv<mode>): Likewise.
	(reduc_uplus_<mode>): Likewise.
	(reduc_splus_<mode>): Likewise.
	(aarch64_addvv2di): Likewise.
	(reduc_uplus_v2di): Likewise.
	(reduc_splus_v2di): Likewise.
	(aarch64_addvv2si): Likewise.
	(reduc_uplus_v2si): Likewise.
	(reduc_splus_v2si): Likewise.
	(reduc_<sur>plus_<mode>): New.
	(reduc_<sur>plus_v2di): Likewise.
	(reduc_<sur>plus_v2si): Likewise.
	(reduc_<sur>plus_v4sf): Likewise.
	(aarch64_addpv4sf): Likewise.
	* config/aarch64/arm_neon.h
	(vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
	* config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
	add UNSPEC_SADDV, UNSPEC_UADDV.
	(SUADDV): New.
	(sur): Add UNSPEC_SADDV, UNSPEC_UADDV.

gcc/testsuite/
	* gcc.target/aarch64/vect-vaddv.c: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198500 138bc75d-0d04-0410-961f-82ee72b054a4
2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57091
	* lra-constraints.c (best_small_class_operands_num): Remove.
	(process_alt_operands): Remove small_class_operands_num.  Take
	small classes operands into losers and only if the operand is not
	matched.  Modify debugging output.
	(curr_insn_transform): Remove best_small_class_operands_num.
	Print insn name.

2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57091
	* gcc.target/i386/pr57091.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198503 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2013-05-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57132
	* pt.c (tsubst_copy_and_build, MODOP_EXPR): Increase / decrease
	c_inhibit_evaluation_warnings around build_x_modify_expr call.

/testsuite
2013-05-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57132
	* g++.dg/warn/Wdiv-by-zero-bogus-2.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198504 138bc75d-0d04-0410-961f-82ee72b054a4
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198510 138bc75d-0d04-0410-961f-82ee72b054a4
	PR rtl-optimization/57131
	* gcc.c-torture/execute/pr57131.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198511 138bc75d-0d04-0410-961f-82ee72b054a4
2013-05-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/c_global/cstdio: Add comment about LWG 2249.
	* include/c_std/cstdio: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198512 138bc75d-0d04-0410-961f-82ee72b054a4
2013-05-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/type_traits (is_null_pointer): Add.
	(__is_nullptr_t): Implement in terms of the latter.
	(is_fundamental, is_scalar): Adjust.
	* testsuite/20_util/is_null_pointer/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_null_pointer/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_null_pointer/value.cc: Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line number.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198516 138bc75d-0d04-0410-961f-82ee72b054a4
Move libitm ChangeLog entry to the right ChangeLog file.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198519 138bc75d-0d04-0410-961f-82ee72b054a4
2013-05-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/tr1/4_metaprogramming/integral_constant/requirements/
	constexpr_data.cc: Move...
	* testsuite/20_util/integral_constant/requirements/constexpr_data.cc:
	... here.
	* testsuite/20_util/integral_constant/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/integral_constant/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/integral_constant/static_definition.cc: Likewise.
	* testsuite/20_util/integral_constant/true_false_type_typedefs.cc:
	Likewise.
	* testsuite/20_util/integral_constant/true_false_value.cc: Likewise.
	* testsuite/20_util/integral_constant/operator_value_type.cc: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198521 138bc75d-0d04-0410-961f-82ee72b054a4
2013-05-02  Richard Biener  <rguenther@suse.de>

	* tree-scalar-evolution.c (scev_info_hasher): Remove.
	(struct instantiate_cache_entry): New type.
	(struct instantiate_cache_entry_hasher): New hashtable descriptor.
	(struct instantiate_cache_type): New type.
	(set_instantiated_value, get_instantiated_value): Remove.
	(get_instantiated_value_entry): New function.
	(instantiate_scev_name): Use the new cache and adjust.
	(instantiate_scev_poly): Adjust.
	(instantiate_scev_binary): Likewise.
	(instantiate_array_ref): Likewise.
	(instantiate_scev_convert): Likewise.
	(instantiate_scev_not): Likewise.
	(instantiate_scev_3): Likewise.
	(instantiate_scev_2): Likewise.
	(instantiate_scev_r): Likewise.
	(instantiate_scev): Likewise.
	(resolve_mixers): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198523 138bc75d-0d04-0410-961f-82ee72b054a4
AArch64 Support for BICS in the backend

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198526 138bc75d-0d04-0410-961f-82ee72b054a4
AArch64 fix for LDR/STR from/to S and D regs

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198527 138bc75d-0d04-0410-961f-82ee72b054a4
Follow-on patch to r197595 to complete the replacement of truncating divides
in profile scaling code with rounding divide equivalents using helper routines
in basic-block.h. 

In addition to bootstrap and profiledbootstrap builds and tests (with and
without LTO), I built and tested performance of the SPEC cpu2006 benchmarks
with FDO on a Nehalem system. I didn't see any performance changes that
looked significant.

2013-05-02  Teresa Johnson  <tejohnson@google.com>

	* loop-unswitch.c (unswitch_loop): Use helper routines with rounding
        divides.
	* cfg.c (update_bb_profile_for_threading): Ditto.
	* tree-inline.c (copy_bb): Ditto.
	(copy_edges_for_bb): Ditto.
	(initialize_cfun): Ditto.
	(copy_cfg_body): Ditto.
	(expand_call_inline): Ditto.
	* ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
	(estimate_node_size_and_time): Ditto.
	(inline_merge_summary): Ditto.
	* cgraphclones.c (cgraph_clone_edge): Ditto.
	(cgraph_clone_node): Ditto.
	* sched-rgn.c (compute_dom_prob_ps): Ditto.
	(compute_trg_info): Ditto.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198532 138bc75d-0d04-0410-961f-82ee72b054a4
2013-05-02  Richard Biener  <rguenther@suse.de>

	* graphds.h (struct graph): Add obstack member.
	* graphds.c (new_graph): Initialize obstack and allocate
	vertices from it.
	(add_edge): Allocate edge from the obstack.
	(free_graph): Free the obstack instead of all edges and
	vertices.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198539 138bc75d-0d04-0410-961f-82ee72b054a4
2013-05-02  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/56988
	* ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
	flags match.
	(find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
	ipa_agg_replacement_value structures.
	(known_aggs_to_agg_replacement_list): Likewise.
	* ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
	(read_agg_replacement_chain): Likewise.
	(ipcp_transform_function): Also check that by_ref flags match.

testsuite/
	* gcc.dg/ipa/pr56988.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198540 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog

2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>

	PR target/56732
	* config/arm/arm.c (arm_expand_epilogue): Check really_return before
	generating simple_return for naked functions.

gcc/testsuite/ChangeLog

2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>

	PR target/56732
	* gcc.target/arm/pr56732-1.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198547 138bc75d-0d04-0410-961f-82ee72b054a4
2013-05-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/57140
	* tree-inline.c (copy_loops): Properly handle removed loops.
	(copy_cfg_body): Mark destination loops for fixup if source
	loops needed fixup.

	* g++.dg/torture/pr57140.C: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198548 138bc75d-0d04-0410-961f-82ee72b054a4