spill preparation needs liveness
[libfirm] / include / libfirm / irop.h
index 58e6ed0..65cd166 100644 (file)
@@ -22,7 +22,7 @@
  * @brief   Representation of opcode of intermediate operation.
  * @author  Christian Schaefer, Goetz Lindenmaier, Michael Beck
  * @version $Id$
- * @summary
+ * @brief
  *  Operators of firm nodes.
  *
  *  This module specifies the opcodes possible for ir nodes.  Their
@@ -80,7 +80,8 @@ typedef enum {
 
 /** The opcodes of the libFirm predefined operations. */
 typedef enum {
-       iro_Block,
+       iro_First,
+       iro_Block = iro_First,
        iro_Start, iro_End, iro_Jmp, iro_IJmp, iro_Cond, iro_Return,
        iro_Const, iro_SymConst,
        iro_Sel,
@@ -95,7 +96,8 @@ typedef enum {
        iro_NoMem, iro_Mux, iro_CopyB,
        iro_InstOf, iro_Raise, iro_Bound,
        iro_Pin,
-       iro_ASM,
+       iro_ASM, iro_Builtin,
+       iro_Dummy,
        iro_Anchor,
        /* first not middleend node number */
        iro_Last = iro_Anchor,
@@ -114,12 +116,11 @@ typedef enum {
        beo_AddSP,
        beo_SubSP,
        beo_IncSP,
-       beo_RegParams,
+       beo_Start,
        beo_FrameAddr,
        beo_Barrier,
-       beo_Unwind,
        /* last backend node number */
-       beo_Last = beo_Unwind,
+       beo_Last = beo_Barrier,
        /* first unfixed number. Dynamic node numbers start here */
        iro_MaxOpcode
 } ir_opcode;
@@ -195,6 +196,9 @@ extern ir_op *op_Bound;           ir_op *get_op_Bound     (void);
 extern ir_op *op_Pin;             ir_op *get_op_Pin       (void);
 
 extern ir_op *op_ASM;             ir_op *get_op_ASM       (void);
+extern ir_op *op_Builtin;         ir_op *get_op_Builtin   (void);
+
+extern ir_op *op_Dummy;           ir_op *get_op_Dummy     (void);
 
 extern ir_op *op_Anchor;          ir_op *get_op_Anchor    (void);
 
@@ -207,16 +211,6 @@ const char *get_op_name(const ir_op *op);
 /** Returns the enum for the opcode */
 unsigned get_op_code(const ir_op *op);
 
-/** op_pin_state_pinned states. */
-typedef enum {
-       op_pin_state_floats = 0,    /**< Nodes of this opcode can be placed in any basic block. */
-       op_pin_state_pinned = 1,    /**< Nodes must remain in this basic block. */
-       op_pin_state_exc_pinned,    /**< Node must be remain in this basic block if it can throw an
-                                        exception, else can float. Used internally. */
-       op_pin_state_mem_pinned     /**< Node must be remain in this basic block if it can throw an
-                                        exception or uses memory, else can float. Used internally. */
-} op_pin_state;
-
 /** Returns a human readable name of an op_pin_state. */
 const char *get_op_pin_state_name(op_pin_state s);