entity = block->attr.block.entity;
if (entity == NULL) {
- ir_label_t nr;
- ir_type *glob;
-
- glob = get_glob_type();
- entity = new_entity(glob, id_unique("block_%u"), get_code_type());
+ ir_label_t nr = get_irp_next_label_nr();
+ entity = new_label_entity(nr);
set_entity_visibility(entity, ir_visibility_local);
set_entity_linkage(entity, IR_LINKAGE_CONSTANT);
- nr = get_irp_next_label_nr();
- set_entity_label(entity, nr);
set_entity_compiler_generated(entity, 1);
block->attr.block.entity = entity;
return entity;
}
-ir_entity *get_Block_entity(const ir_node *block)
-{
- assert(is_Block(block));
- return block->attr.block.entity;
-}
-
-void set_Block_entity(ir_node *block, ir_entity *entity)
-{
- assert(is_Block(block));
- assert(get_entity_type(entity) == get_code_type());
- block->attr.block.entity = entity;
-}
-
-int has_Block_entity(const ir_node *block)
-{
- return block->attr.block.entity != NULL;
-}
-
ir_node *(get_Block_phis)(const ir_node *block)
{
return get_Block_phis_(block);
set_irn_n(node, pos, pred);
}
-int get_ASM_n_input_constraints(const ir_node *node)
+size_t get_ASM_n_input_constraints(const ir_node *node)
{
assert(is_ASM(node));
return ARR_LEN(node->attr.assem.input_constraints);
}
-int get_ASM_n_output_constraints(const ir_node *node)
+size_t get_ASM_n_output_constraints(const ir_node *node)
{
assert(is_ASM(node));
return ARR_LEN(node->attr.assem.output_constraints);
}
-int get_ASM_n_clobbers(const ir_node *node)
+size_t get_ASM_n_clobbers(const ir_node *node)
{
assert(is_ASM(node));
return ARR_LEN(node->attr.assem.clobbers);
void firm_set_default_get_type_attr(unsigned code, ir_op_ops *ops)
{
switch (code) {
+ case iro_Alloc: ops->get_type_attr = get_Alloc_type; break;
+ case iro_Builtin: ops->get_type_attr = get_Builtin_type; break;
+ case iro_Call: ops->get_type_attr = get_Call_type; break;
+ case iro_Cast: ops->get_type_attr = get_Cast_type; break;
+ case iro_CopyB: ops->get_type_attr = get_CopyB_type; break;
+ case iro_Free: ops->get_type_attr = get_Free_type; break;
+ case iro_InstOf: ops->get_type_attr = get_InstOf_type; break;
case iro_SymConst: ops->get_type_attr = get_SymConst_attr_type; break;
- case iro_Call: ops->get_type_attr = get_Call_type; break;
- case iro_Alloc: ops->get_type_attr = get_Alloc_type; break;
- case iro_Free: ops->get_type_attr = get_Free_type; break;
- case iro_Cast: ops->get_type_attr = get_Cast_type; break;
default:
/* not allowed to be NULL */
if (! ops->get_type_attr)
switch (code) {
case iro_SymConst: ops->get_entity_attr = get_SymConst_attr_entity; break;
case iro_Sel: ops->get_entity_attr = get_Sel_entity; break;
+ case iro_Block: ops->get_entity_attr = get_Block_entity; break;
default:
/* not allowed to be NULL */
if (! ops->get_entity_attr)