Pass unpromoted argument to promote_function_mode

This patch updates setup_incoming_promotions in combine.c to match what
is actually passed in assign_parm_setup_reg in function.c.

gcc/

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

gcc/testsuite/

	Backport from mainline
	PR rtl-optimization/64037
	* g++.dg/pr64037.C: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@218418 138bc75d-0d04-0410-961f-82ee72b054a4
Stop only if there aren't any usable algorithms

When searching for an usable algorithm with -minline-all-stringops,
decide_alg stops when it sees libcall even if there is a usable
algorithm.  It goes into an infinite loop.  This patch changes
decide_alg to stop searching only if there aren't any usable algorithms.
Testd on Linux/x86-64.

gcc/

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

gcc/testsuite/

	Backport from mainline
	PR target/64108
	* gcc.target/i386/memset-strategy-2.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@218419 138bc75d-0d04-0410-961f-82ee72b054a4