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

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


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218308 138bc75d-0d04-0410-961f-82ee72b054a4
	* include/bits/hashtable.h: Fix whitespace and simplify function
	definitions with trailing return types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218309 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Remove/merge redundant iterators

	* 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).


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218310 138bc75d-0d04-0410-961f-82ee72b054a4
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.

	cp/
	* constexpr.c (cxx_eval_builtin_function_call): Use
	fold_build_call_array_loc.


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

gcc/

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

gcc/testsuite/

	PR rtl-optimization/64151
	PR rtl-optimization/64156
	* gcc.target/aarch64/remat1.c: Removed.  Revert r218267.


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