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

Reply via email to