This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Canonical forms of edges and fallthroughs
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: Kyrill Tkachov <kyrylo dot tkachov at foss dot arm dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Fri, 29 Apr 2016 13:33:40 +0200
- Subject: Re: Canonical forms of edges and fallthroughs
- Authentication-results: sourceware.org; auth=none
- References: <57233CD3 dot 50907 at foss dot arm dot com>
On Fri, Apr 29, 2016 at 12:52 PM, Kyrill Tkachov wrote:
> I'm looking at an issue in RTL ifcvt and I'm trying to understand the way
> edges between
> basic blocks are treated and in particular what is the canonical use of
> EDGE_FALLTHRU.
> Is it governed by the conditional jump condition?
>
> In find_if_header in ifcvt.c there is a comment that says:
> /* The THEN edge is canonically the one that falls through. */
This is true "inside" ifcvt.c, see also the comment in struct noce_if_info:
/* True if this if block is not canonical. In the canonical form of
if blocks, the THEN_BB is the block reached via the fallthru edge
from TEST_BB. For the noce transformations, we allow the symmetric
form as well. */
bool then_else_reversed;
Ciao!
Steven