This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/13875] [tree-ssa] missed jump thread optimization on the tree-level
- From: "law at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Jun 2005 13:52:21 -0000
- Subject: [Bug tree-optimization/13875] [tree-ssa] missed jump thread optimization on the tree-level
- References: <20040127051055.13875.dann@godzilla.ics.uci.edu>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From law at redhat dot com 2005-06-13 13:52 -------
Subject: Re: [tree-ssa] missed jump thread
optimization on the tree-level
On Sun, 2005-06-12 at 20:41 +0000, pinskia at gcc dot gnu dot org wrote:
> ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-12 20:41 -------
> Hmm, I have not seen any more, could you double check this?
FWIW, it is still possible to miss jump threading opportunities,
it's just a lot harder now :-)
The most common ways we miss threading opportunities are:
1. Cascading jump threading opportunities. We're more conservative
than we need to be with the iteration step. This can cause us
to miss jump threading opportunities because we're not iterating.
A great example of this would be a loop where the backedge is
always threadable. There's an example of this in one of the
testcases in the various open PRs. I'm working on resolving some
of the issues necessary to address this limitation right now.
2. We're not recording all the expressions we encounter when
attempting to thread through a basic block. ie, if we
encounter x = a + b and "a + b" does not simplify, then we
do not record anything in our hash tables for "x". It is
possible that recording the equivalence between x and a + b
can result in more threading opportunities. I believe
there is also a testcase which exposes this limitation in
one of the still open PRs.
jeff
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13875