We need a mode_T node for Projs.
[libfirm] / scripts / gen_ir.py
index 690da1f..b982d69 100755 (executable)
@@ -272,6 +272,11 @@ def preprocess_node(node):
                                fqname = ".exc.pin_state",
                                init   = "pin_state"
                        ))
+       if hasattr(node, "throws_init"):
+               initattrs.append(dict(
+                       fqname = ".exc.throws_exception",
+                       init   = node.throws_init
+               ))
 
        for arg in node.constructor_args:
                arguments.append(prepare_attr(arg))
@@ -324,8 +329,8 @@ ir_node *new_rd_{{node.name}}(
        res->attr.{{node.attrs_name}}{{attr["fqname"]}} = {{ attr["init"] -}};
        {%- endfor %}
        {{- node.init }}
-       res = optimize_node(res);
        irn_verify_irg(res, irg);
+       res = optimize_node(res);
        {{- node.init_after_opt }}
        return res;
 }
@@ -479,6 +484,8 @@ nodeops_h_template = env.from_string(
 
 #include "firm_types.h"
 
+#include "begin.h"
+
 /**
  * @addtogroup ir_node
  * @{
@@ -563,7 +570,7 @@ FIRM_API ir_node *new_{{node.name}}(
 {% endfor %}
 
 {% for node in nodes %}
-/** Return true of the node is a {{node.name}} node. */
+/** Return true if the node is a {{node.name}} node. */
 FIRM_API int is_{{node.name}}(const ir_node *node);
 {%- endfor %}
 
@@ -580,6 +587,8 @@ FIRM_API void set_{{node.name}}_{{attr.name}}(ir_node *node, {{attr.type}} {{att
 
 /** @} */
 
+#include "end.h"
+
 #endif
 
 ''')