op_pin_state
(get_irn_pinned)(const ir_node *node) {
- /* return __get_irn_pinned(node); */
- return (__get_op_pinned (get_irn_op (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.
assert (get_type_mode(tp) == get_irn_mode(node));
}
+ if ((get_irn_node_nr(node) == 259216) && (tp == unknown_type))
+ assert(0);
+
+
node->attr.con.tp = tp;
}
node->attr.i.sym.entity_p = ent;
}
-
union symconst_symbol
get_SymConst_symbol (ir_node *node) {
assert (node->op == op_SymConst);
node->attr.i.sym = sym;
}
+type *
+get_SymConst_value_type (ir_node *node) {
+ assert (node->op == op_SymConst);
+ return node->attr.i.tp = skip_tid(node->attr.i.tp);
+}
+
+void
+set_SymConst_value_type (ir_node *node, type *tp) {
+ assert (node->op == op_SymConst);
+ node->attr.i.tp = tp;
+}
+
ir_node *
get_Sel_mem (ir_node *node) {
assert (node->op == op_Sel);
void
set_Call_type (ir_node *node, type *tp) {
assert (node->op == op_Call);
- assert (is_method_type(tp));
+ assert ((get_unknown_type() == tp) || is_method_type(tp));
node->attr.call.cld_tp = tp;
}