goesMultipleWays

open val goesMultipleWays: Boolean

Answer true if this instruction leads to multiple targets, multiple of which can be reached. This is not the same as a branch, in which only one will be reached for any circumstance of reaching this instruction. In particular, an L2_SAVE_ALL_AND_PC_TO_INT instruction jumps to its fall-through label, but after reification has saved the live register state, it gets restored again and winds up traversing the other edge.

This is an important distinction, in that this type of instruction should act as a barrier against redundancy elimination. Otherwise an object with identity (i.e., a variable) created in the first branch won't be the same as the one produced in the second branch.

Also, we must treat as always-live-in to this instruction any values that are used in either branch, since they'll both be taken.

Return

Whether multiple branches may be taken following the circumstance of arriving at this instruction.