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