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


Edge Types

<dt> ET_BR_TARGET <dd> Used With: JMP and BR. <br> Head: BBL containing jsr/bsr instruction. Tail: Init BBL of target function. <br> Stored in: ABBL_BR_TARGET <br> <dt> ET_FALL_THRU <dd> Used With: Fall Throughs <br> Head: this BBL <br> Tail: Next BBL <br> Stored in: ABBL_FALL_THRU <br>

<dt> ET_EXIT_LINK <dd> Used With: RET <br> Head: BBL containing RET instruction, BBL ABBL_JMP (0) <br> Tail: Exit BBL (dummy), relocatable BBL <br>

<dt> ET_SWITCH <dd> Used With: RET <br> Head: BBL containing RET instruction, BBL ABBL_JMP (0) <br> Tail: Exit BBL (dummy), relocatable BBL <br>

<dt> ET_BR_DUMMY <dd> Used With: RELOC and setjmp/longjmp type functions <br> Head: BBL containing RET instruction, BBL ABBL_JMP (0) <br> Tail: Exit BBL (dummy), relocatable BBL <br>

<dt> ET_COPENSATE <dd> Used With: RELOC bbls <br> Head: BBL containing RET instruction, BBL ABBL_JMP (0) <br> Tail: Exit BBL (dummy), relocatable BBL <br> </dl>

ET_FUN_CALL
Used bbls whose last ins is jsr,bsr or pal_call (BT_CALL,BT_PAL). Head: bbl containing jsr/bsr/pal_call instruction. Tail: Init BBL of target function. This will be the init bbl of PSEUDO_HELL in case of a jsr and PSEUDO_PAL in case of a pall call. Stored in: ABBL_EDG_CALL ET_FUN_RETURN edges are automatically created/linked when ET_FUN_CALL edges are created/linked their index is on higher than the corresponding ET_FUN_CALL edge. It is necessary that a ET_FUN_LINK edge be present when an ET_FUN_CALL is linked.
ET_JUMP
Used bbls whose last ins is a jmp whose targets could NOT be determined (BT_JUMP). Head: bbl containing jmp instruction. Tail: init bbl of PSEUDO_HELL Stored in: nowhere
ET_TRUE
Used bbls whose last ins is a conditional branch (IT_IBR,IT_FBR) (BT_BRANCH). Head: bbl containing conditional branch instruction. Tail: condition true target Stored in: ABBL_EDG_TRUE
ET_FALSE
Used bbls whose last ins is a conditional branch (IT_IBR,IT_FBR) (BT_BRANCH). Head: bbl containing conditional branch instruction. Tail: condition true target Stored in: ABBL_EDG_FALSE
ET_UNCOND
Used bbls whose last ins is an unconditional branch (br) (BT_UNCOND). Head: bbl containing unconditional branch instruction. Tail: target Stored in: ABBL_EDG_FALSE Please note that ALTO deletes unconditional branches an reintroduces them during bbl layout. The bbl type is converted to BT_NORM and the edge type to ET_NORM.
ET_NORM
Used bbls which unconditionally branch to some target (BT_UNCOND). Head: Tail: target stored in:
ET_FUN_RETURN
Head: exit bbl of a function Tail: return site stored in: nowhere because there might be a lot of them ET_FUN_RETURN edges are automatically created/linked when ET_FUN_CALL edges are created/linked their index is on higher than the corresponding ET_FUN_CALL edge. It is necessary that a ET_FUN_LINK edge be present when an ET_FUN_CALL is linked.
ET_SWITCH
Used bbls whose last ins is a jmp whose targets could be determined (BT_SWITCH). Head: bbl containing jmp instruction. Tail: target bbl (These are expected to be GPREL32 relocated bbls) Stored in: nowhere since there might be a lot of them
ET_FUN_LINK
Used bbls whose last ins is jsr,bsr or pal_call (BT_CALL,BT_PAL). Head: bbl containing jsr/bsr/pal_call instruction. Tail: Next bbl ( where control return after the function call) Stored in: ABBL_EDG_LINK
ET_HELL
Used to model unknow controlflow. Head: exit bbl of PSEUDO_HELL Tail: Relocatable bbl (this is not very nice if relocatable bbl happens to be function init block, in such a case PSEUDO should CALL the is function) Stored in:
ET_EXIT_LINK
Used with bbls whose last ins is RET (BT_RET) Head: BBL containing ret instruction. Tail: Exit BBL (dummy) of containing fun. It is not necessary to specify the exit bbl when calling AedgCreateFancy. The routine will figure this out for you.
ET_SETLONGJMP
Used to model spurious controlflow introduced by setjmp/longjmp style functions
ET_COMPENSATE
Used to compensate for interprocedural controlflow other than calls.
ET_EXTRA
Used with branch instructions that generate known addresses by jumping to the next instruction. Soon there will be no need for this anymore. The only remaining occurrence of such a branch is for setting the initial gp.


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