Canonical forms of edges and fallthroughs
Kyrill Tkachov
kyrylo.tkachov@foss.arm.com
Fri Apr 29 10:52:00 GMT 2016
Hi all,
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. */
But I'm encountering a case where the jump expression from the test block is:
(set (pc)
(if_then_else (eq (reg:CC 66 cc)
(const_int 0 [0]))
(label_ref:DI 22)
(pc)))
that is, the fallthrough happens when the condition is false. Does that make this
basic block sequence non-canonical?
Thanks,
Kyrill
More information about the Gcc
mailing list