[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