PR43902 patch: Widening multiply-accumulate

Bernd Schmidt bernds@codesourcery.com
Wed Jun 23 05:03:00 GMT 2010


Here's a patch to fix most of PR43902, which is about missing support
for multiply-accumulate instructions on MIPS.  Jim Wilson did most of
the work on this patch, adding a new optimization in the
optimize_widening_multiply pass; I've slightly modified it to add
support for ternary gimple statements, as well as adding ARM bits.
There's some history and discussion in the PR.

Most passes probably don't need to handle ternary gimple statements
(tree-ssa-math-opts runs quite late), so I've provided some wrappers
around frequently used functions so that passes can for now continue to
use the simpler interface.

I've tried for a while to convert DOT_PROD_EXPR to use this new
infrastructure, but it took my rather far down into the vectorizer and I
gave up.  It's probably something the vectorizer maintainers should look
into.

Bootstrapped and regression tested on i686-linux.  Ok?


Bernd
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: widenmacc-v3b.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100623/41113a61/attachment.ksh>


More information about the Gcc-patches mailing list