{% endfilter %})
{
ir_node *res;
- ir_graph *rem = current_ir_graph;
+ {%- if node.arity == "dynamic" %}
+ int i;
+ {%- endif %}
{{node|irgassign}}
{{node|insdecl}}
- current_ir_graph = irg;
+
res = new_ir_node(
{%- filter arguments %}
dbgi
{{node.mode}}
{{node|arity_and_ins}}
{% endfilter %});
+ {%- if node.arity == "dynamic" %}
+ for (i = 0; i < arity; ++i) {
+ add_irn_n(res, in[i]);
+ }
+ {%- endif %}
{%- for attr in node.attrs %}
res->attr.{{node.attrs_name}}{{attr["initname"]}} =
{%- if "init" in attr %} {{ attr["init"] -}};
res->attr.{{node.attrs_name}}{{attr["initname"]}} = {{ attr["init"] -}};
{%- endfor %}
{{- node.init }}
- {%- if node.optimize != False %}
res = optimize_node(res);
- {%- endif %}
- IRN_VERIFY_IRG(res, irg);
- current_ir_graph = rem;
+ irn_verify_irg(res, irg);
return res;
}
{% endfilter %})
{
ir_node *res;
+ assert(get_irg_phase_state(current_ir_graph) == phase_building);
res = new_rd_{{node.constrname}}(
{%- filter parameters %}
dbgi
{{node|curblock}}
{{node|nodearguments}}
{% endfilter %});
- {%- if "fragile" in node.flags %}
- firm_alloc_frag_arr(res, op_{{node.name}}, &res->attr.except.frag_arr);
- {%- endif %}
return res;
}
gendir2 = argv[2] + "/../../include/libfirm"
# List of TODOs
- niymap = [ "ASM", "Const", "Phi", "SymConst", "Sync"]
+ niymap = [ "ASM", "Const", "Phi", "SymConst" ]
real_nodes = prepare_nodes()
file = open(gendir + "/gen_ir_cons.c.inl", "w")
if node.name in niymap:
continue
- if not isAbstract(node) and not hasattr(node, "singleton"):
+ if not isAbstract(node) and not hasattr(node, "noconstructor"):
file.write(constructor_template.render(vars()))
if hasattr(node, "special_constructors"):