This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Canonical forms of edges and fallthroughs


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]