tree-optimization/96370 - make reassoc expr rewrite more robust
authorRichard Biener <rguenther@suse.de>
Thu, 30 Jul 2020 08:24:42 +0000 (10:24 +0200)
committerRichard Biener <rguenther@suse.de>
Thu, 30 Jul 2020 09:36:20 +0000 (11:36 +0200)
commit2c558d2655cb22f472c83e8296b5cd2a92365cd3
treec085fc4d96cf66c55fd8cdbad92164f46780ad52
parent8240f2f498c38437c213ae1186a5420316413af5
tree-optimization/96370 - make reassoc expr rewrite more robust

In the face of the more complex tricks in reassoc with respect
to negate processing it can happen that the expression rewrite
is fooled to recurse on a leaf and pick up a bogus expression
code.  The following patch makes the expression rewrite more
robust in providing the expression code to it directly since
it is the same for all operations in a chain.

2020-07-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/96370
* tree-ssa-reassoc.c (rewrite_expr_tree): Add operation
code parameter and use it instead of picking it up from
the stmt that is being rewritten.
(reassociate_bb): Pass down the operation code.

* gcc.dg/pr96370.c: New testcase.
gcc/testsuite/gcc.dg/pr96370.c [new file with mode: 0644]
gcc/tree-ssa-reassoc.c