diff options
author | Jakub Jelinek <jakub@redhat.com> | 2017-11-15 10:01:42 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-11-15 10:01:42 +0100 |
commit | 0b99f25372431148e637b98f02e7cbe03feef7f9 (patch) | |
tree | 63d30374d3cf9bdc2b71e04db9d013a8c15c009c /gcc/fortran/options.c | |
parent | 65205a116a8d1c076f0709d92acad2453caa1efb (diff) | |
download | gcc-0b99f25372431148e637b98f02e7cbe03feef7f9.zip gcc-0b99f25372431148e637b98f02e7cbe03feef7f9.tar.gz gcc-0b99f25372431148e637b98f02e7cbe03feef7f9.tar.bz2 |
re PR target/82981 (unnecessary __multi3 call for mips64r6 linux kernel)
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.
From-SVN: r254758
Diffstat (limited to 'gcc/fortran/options.c')
0 files changed, 0 insertions, 0 deletions