X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Fgen_ir.py;h=ffdfd9b5e6e4fee90b03f07b34439ff96dd57910;hb=64252961a7d41265ff28353949e63f0662a1cd03;hp=a1e09b7438cf2cf0e4deb12b0c930322ca049c73;hpb=8c1ce44eef629c923bd4eacbcc1da167e5581b53;p=libfirm diff --git a/scripts/gen_ir.py b/scripts/gen_ir.py index a1e09b743..ffdfd9b5e 100755 --- a/scripts/gen_ir.py +++ b/scripts/gen_ir.py @@ -278,14 +278,10 @@ ir_node *new_rd_{{node.name}}( {{node|nodeparameters}} {% endfilter %}) { - ir_node *res; - {%- if node.arity == "dynamic" %} - int i; - {%- endif %} {{node|irgassign}} {{node|insdecl}} - res = new_ir_node( + ir_node *res = new_ir_node( {%- filter arguments %} dbgi irg @@ -295,7 +291,7 @@ ir_node *new_rd_{{node.name}}( {{node|arity_and_ins}} {% endfilter %}); {%- if node.arity == "dynamic" %} - for (i = 0; i < arity; ++i) { + for (int i = 0; i < arity; ++i) { add_irn_n(res, in[i]); } {%- endif %} @@ -335,9 +331,8 @@ ir_node *new_d_{{node.name}}( {{node|nodeparameters}} {% endfilter %}) { - ir_node *res; - assert(get_irg_phase_state(current_ir_graph) == phase_building); - res = new_rd_{{node.name}}( + assert(irg_is_constrained(current_ir_graph, IR_GRAPH_CONSTRAINT_CONSTRUCTION)); + ir_node *res = new_rd_{{node.name}}( {%- filter parameters %} dbgi {{node|curblock}} @@ -364,18 +359,16 @@ ir_node *new_{{node.name}}( irnode_h_template = env.from_string( '''/* Warning: automatically generated code */ +{% for node in nodes %} +#define is_{{node.name}}(node) is_{{node.name}}_(node) +{%- endfor %} + {%- for node in nodes|isnot('custom_is') %} static inline int is_{{node.name}}_(const ir_node *node) { - assert(node != NULL); - return get_irn_op_(node) == op_{{node.name}}; + return get_irn_op(node) == op_{{node.name}}; } -{%- endfor -%} - -{% for node in nodes %} -#define is_{{node.name}}(node) is_{{node.name}}_(node) {%- endfor %} - ''') irnode_template = env.from_string( @@ -439,6 +432,7 @@ static const proj_lookup_t proj_lut[] = { {%- endif %} {%- endfor %} }; + ''') irop_template = env.from_string(