Public Types |
enum | edge_kind {
e_unknown = 1,
e_retreating,
e_advancing,
e_cross
} |
enum | node_kind {
not_set = 0,
n_1way = 1,
n_2way,
n_nway,
n_return,
n_fall_through,
n_exception,
n_1way_exception
} |
Public Methods |
| j2s_BasicBlock (jhl_u4 leader_index, bool catch_handler= false) |
jhl_u4 | leader_index () const |
jhl_u4 | exit_index () const |
jhl_u4 | next_index () const |
jhl_Array<jhl_u4>* | out_edges () const |
jhl_Array<bool>* | dfst_out_edges () const |
jhl_Array<edge_kind>* | out_edges_kind () const |
jhl_Array<jhl_u4>* | excpt_edges () const |
bool | is_catch_handler () const |
jhl_Array<jhl_Exception>* | tryblock_handlers () const |
j2s_OperandStack* | init_stack () const |
j2s_LocalVariables* | init_local_variables () const |
node_kind | node_kind () const |
j2s_BasicBlock* | root () const |
int | dfst_number () const |
int | jsr_chain_depth () const |
jhl_Array<jhl_u4>* | ret_targets () const |
void | set_exit_index (jhl_u4 index) |
void | set_next_index (jhl_u4 index) |
void | set_catch_handler (bool ch) |
void | set_out_edges (jhl_Array<jhl_u4>* out_edges) |
void | set_out_edges_kind (jhl_Array<edge_kind>* out_edges_kind) |
void | set_dfst_out_edges (jhl_Array<bool>* dfst_out_edges) |
void | set_excpt_edges (jhl_Array<jhl_u4>* excpt_edges) |
void | set_init_stack (j2s_OperandStack* stack) |
void | set_local_variables (j2s_LocalVariables* lvs) |
void | set_root (j2s_BasicBlock* root) |
void | set_dfst_number (int number) |
void | set_jsr_chain_depth (int depth) |
void | set_ret_targets (jhl_Array<jhl_u4>* ret_targets) |
void | set_tryblock_handlers (jhl_Array<jhl_Exception>* handlers) |
bool | is_marked () const |
void | mark_block () |
void | unmark_block () |
void | set_node_kind (int nk) |
bool | is_first () |
bool | is_exit_index (jhl_u4 index) |
void | switch_branch_edges () |
int | tryblock_nesting_depth () const |
jhl_Exception* | tryblock_handler () const |
bool | merge (j2s_OperandStack *out_stack, j2s_LocalVariables* out_lvs, jhl_Array<jhl_u4>* out_ret_targets, int out_jsr_chain_depth, bool ret_merge= false) |
bool | verify () const |
Public Attributes |
enum j2s_BasicBlock::node_kind | node_kind_enum |
Static Public Methods |
bool | is_edge_existent (jhl_Array<jhl_u4>* edges, jhl_u4 edge) |
Friends |
ostream& | operator<< (ostream& os, j2s_BasicBlock* b) |