Go to the first, previous, next, last section, table of contents.


Basic Block Types

BT_CALL
a call BBL (bsr,jsr). Has two outgoing edges, ABBL_EDG_CALL and ABBL_EDG_LINK
BT_JUMP
a jump BBL (jmp) Has one outgoing edge to HELL
BT_SWITCH
orginally a BT_JUMP BBL but we could determine the possible jump targets. Has one outgoing edge for each possible target.
BT_NORM
a BBL that branches unconditonally to some other BBL Has one outgoing edge
BT_UNCOND
orginally a BT_NORM but code layout has added a br instruction Has one outgoing edge
BT_BRANCH
a BBL with a conditional branch (IT_IBR or IT_FBR). Has two outgoing edge, ABBL_EDG_FALSE and ABBL_EDG_TRUE
BT_EXTRA
a BBL that branches unconditonally to some other BBL in order to do some address computation. we try to eliminate all of these!
BT_RET
a BBL that branches unconditonally to some other BBL Has one outgoing edge to an exit BBL.
BT_HALT
a BBL with pal halt instruction. No outgoing edge.
BT_EXIT
Exit BBL must be last in each FUN. Has outgoing edges to all the returnsites.
BT_PAL
a BBL with pal instructions but not pal halt. Handles like a call to a pseudo function.


Go to the first, previous, next, last section, table of contents.