[Bug rtl-optimization/64081] [5/6/7 Regression] r217827 prevents RTL loop unroll
aldyh at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 6 09:22:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64081
--- Comment #37 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
The patch that causes the bootstrap problem to go away is:
commit 42b45e81de1263454d6df22ca745db858c19e5b5
Author: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed Aug 12 14:27:40 2015 +0000
2015-08-12 Richard Biener <rguenther@suse.de>
* tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
comparison operand order and commutative ternary op operand order.
(sccvn_dom_walker::cond_stack): New state to track temporary
expressions.
(sccvn_dom_walker::after_dom_children): Remove tempoary expressions
no longer valid.
(sccvn_dom_walker::record_cond): Add a single temporary conditional
expression.
(sccvn_dom_walker::record_conds): Add a temporary conditional
expressions and all related expressions also true/false.
(sccvn_dom_walker::before_dom_children): Record temporary
expressions based on the controlling condition of a single
predecessor. When trying to simplify a conditional statement
lookup expressions we might have inserted earlier.
Unfortunately, this is not a simple bugfix, but an optimization. So, it seems
to me we can't easily glean from the above what caused the original patch to
bootstrap on AIX. Perhaps Richi has ideas as to the interaction between his
patch and the patch in comment 8. In the meantime, I will try to narrow down
the bootstrap failure further.
p.s. I will be posting details next on what changes were needed to the sources
to get this to reproduce on AIX 7.2 (gcc119 on the compile farm), as AIX
required some hand-holding.
More information about the Gcc-bugs
mailing list