[PATCH] Don't optimize away throwing multiply in widening_mul pass (PR tree-optimization/51396)
Jeff Law
law@redhat.com
Mon Dec 5 20:52:00 GMT 2011
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 12/05/11 13:34, Jakub Jelinek wrote:
> Hi!
>
> When a multiply stmt has zero uses, convert_mult_to_fma
> immediately returns true, meaning the multiplication can be
> deleted. Normally it should be DCE job to remove dead stmts, not
> widening_mul pass IMHO, and in this case it shouldn't be removed
> because it can throw and wasn't DCEd because of it. For
> -fnon-call-exceptions if there is at least one use, we wouldn't be
> optimizing multiply and add/sub into FMA, because the
> multiplication (stmt_can_throw_p) would be in different bb from the
> addition/subtraction, so there is no need to purge dead eh edges
> etc. in the caller.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for
> trunk?
>
> 2011-12-05 Jakub Jelinek <jakub@redhat.com>
>
> PR tree-optimization/51396 * tree-ssa-math-opts.c
> (convert_mult_to_fma): Don't optimize if MUL_RESULT has zero uses.
>
> * g++.dg/opt/pr51396.C: New test.
OK
jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJO3S8HAAoJEBRtltQi2kC7DJMH/1WWEPgOUKetgCzqVnFNEpnD
7t/OzOxJ9J6bDcHKxV4xobMSBL7D6GATeK9K7I7cjuUjX/eiUPRdG/YyjbVz9VqH
SCgrFA6WCYU/p38m4Z8pT+2SHl9H+T1Dswi/wItbYv4JmvuxIauT5xyKOZbxnKte
A3OXzhmaFsvSQzx1O6X2NjqtEzGwqK8asu70oo6mLUfBaHW7iPnO1yxlzNOm6fL/
O3PpqEbbfa40xddI9s1BkgJXUcwCPu40hkHS9GtTR1s/WAnel5VV5z576j0cZEU6
kzX1cYj9PX6L8p3n1KETkaLvsiCejbUKaOHfGSL0KcUd08CBdIGmjxTZcoJZZoY=
=m24e
-----END PGP SIGNATURE-----
More information about the Gcc-patches
mailing list