X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnode.c;h=ce3965653cbed882d78d425100378f5c1fcb6ee0;hb=7b11a6af3b0c4bcfa0ae17dc28a70008eefd6b9d;hp=e5d38cb18c82d0f9ba4cf9659288c4fabaa74219;hpb=4d5797b263bb977e3685241095d83db246433a99;p=libfirm diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index e5d38cb18..ce3965653 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -353,6 +353,21 @@ void * return __get_irn_link(node); } +op_pin_state +(get_irn_pinned)(const ir_node *node) { + return __get_irn_pinned(node); +} + +void set_irn_pinned(ir_node *node, op_pin_state state) { + /* due to optimization an opt may be turned into a Tuple */ + if (get_irn_op(node) == op_Tuple) + return; + + assert(node && get_op_pinned(get_irn_op(node)) == op_pin_state_exc_pinned); + assert(state == op_pin_state_pinned || state == op_pin_state_floats); + + node->attr.except.pin_state = state; +} #ifdef DO_HEAPANALYSIS /* Access the abstract interpretation information of a node. @@ -607,49 +622,6 @@ set_Block_graph_arr (ir_node *node, int pos, ir_node *value) { node->attr.block.graph_arr[pos+1] = value; } -/* handler handling for Blocks */ -void -set_Block_handler (ir_node *block, ir_node *handler) { - assert ((block->op == op_Block)); - assert ((handler->op == op_Block)); -} - -ir_node * -get_Block_handler (ir_node *block) { - assert ((block->op == op_Block)); - return (NULL); -} - -/* handler handling for Nodes */ -void -set_Node_handler (ir_node *node, ir_node *handler) { - -} - -ir_node * -get_Node_handler (ir_node *node) { - return (NULL); -} - -/* exc_t handling for Blocks */ -void set_Block_exc (ir_node *block, exc_t exc) { - assert ((block->op == op_Block)); -} - -exc_t get_Block_exc (ir_node *block) { - assert ((block->op == op_Block)); - return (0); -} - -/* exc_t handling for Nodes */ -void set_Node_exc (ir_node *node, exc_t exc) { - -} - -exc_t get_Node_exc (ir_node *node) { - return (0); -} - void set_Block_cg_cfgpred_arr(ir_node * node, int arity, ir_node ** in) { assert(node->op == op_Block); if (node->attr.block.in_cg == NULL || arity != ARR_LEN(node->attr.block.in_cg) - 1) { @@ -2113,6 +2085,12 @@ ir_node *get_fragile_op_mem(ir_node *node) { } } +/* Returns true if the operation is a forking control flow operation. */ +int +is_forking_op(ir_node *node) { + return is_op_forking(get_irn_op(node)); +} + #ifdef DEBUG_libfirm void dump_irn (ir_node *n) { int i, arity = get_irn_arity(n);