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