r254758 - in /trunk/gcc: ChangeLog expmed.c exp...

jakub@gcc.gnu.org jakub@gcc.gnu.org
Wed Nov 15 09:01:00 GMT 2017


Author: jakub
Date: Wed Nov 15 09:01:42 2017
New Revision: 254758

URL: https://gcc.gnu.org/viewcvs?rev=254758&root=gcc&view=rev
Log:
	PR target/82981
	* internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
	ssa-iterators.h.
	(can_widen_mult_without_libcall): New function.
	(expand_mul_overflow): If only checking unsigned mul overflow,
	not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
	Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
	no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
	(expand_DIVMOD): Formatting fix.
	* expmed.h (expand_mult): Add NO_LIBCALL argument.
	* expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
	than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.

	* gcc.target/mips/pr82981.c: New test.

Added:
    trunk/gcc/testsuite/gcc.target/mips/pr82981.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/expmed.c
    trunk/gcc/expmed.h
    trunk/gcc/internal-fn.c
    trunk/gcc/testsuite/ChangeLog



More information about the Gcc-cvs mailing list