sparc: Improve handling of MemPerm nodes.
[libfirm] / include / libfirm / firm_types.h
index 13bab56..a126592 100644 (file)
@@ -68,7 +68,6 @@ typedef void irg_reg_walk_func(ir_region *, void *);
 
 /* settings */
 typedef struct ir_settings_arch_dep_t ir_settings_arch_dep_t;
-typedef struct ir_settings_if_conv_t  ir_settings_if_conv_t;
 
 /* Needed for MSVC to suppress warnings because it doest NOT handle const right. */
 typedef const ir_node *ir_node_cnst_ptr;
@@ -144,10 +143,13 @@ ENUM_BITSET(ir_relation)
  * constrained flags for memory operations.
  */
 typedef enum ir_cons_flags {
-       cons_none      = 0,        /**< No constrains. */
-       cons_volatile  = 1U << 0,  /**< Memory operation is volatile. */
-       cons_unaligned = 1U << 1,  /**< Memory operation is unaligned. */
-       cons_floats    = 1U << 2   /**< Memory operation can float. */
+       cons_none             = 0,        /**< No constrains. */
+       cons_volatile         = 1U << 0,  /**< Memory operation is volatile. */
+       cons_unaligned        = 1U << 1,  /**< Memory operation is unaligned. */
+       cons_floats           = 1U << 2,  /**< Memory operation can float. */
+       cons_throws_exception = 1U << 3,  /**< fragile op throws exception (and
+                                              produces X_regular and X_except
+                                              values) */
 } ir_cons_flags;
 ENUM_BITSET(ir_cons_flags)
 
@@ -271,6 +273,7 @@ typedef enum ir_builtin_kind {
        ir_bk_inport,                 /**< in port */
        ir_bk_outport,                /**< out port */
        ir_bk_inner_trampoline,       /**< address of a trampoline for GCC inner functions */
+       ir_bk_last = ir_bk_inner_trampoline,
 } ir_builtin_kind;
 
 /**