This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/69943] expressions with multiple associative operators don't always create instruction-level parallelism
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 25 Feb 2016 10:27:06 +0000
- Subject: [Bug tree-optimization/69943] expressions with multiple associative operators don't always create instruction-level parallelism
- Auto-submitted: auto-generated
- References: <bug-69943-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69943
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
It's a long-standing issue that reassoc doesn't associate ! TYPE_OVERFLOW_WRAPS
chains. It could do that to a limited extent (only cancelling ops that don't
affect overflow) or fully if it re-writes the operation to unsigned arithmetic
at commit time. Some way of detecting desired vs. just canonicalization
transforms is required to avoid rewriting all signed integer ops into unsigned
(well, maybe it's not that bad actually, who knows).
I believe there is a duplicate PR about this somewhere.