cg_callee_entry type holding the callee information is now explicit
[libfirm] / ir / lower / lower_intrinsics.h
index e413c48..19670c8 100644 (file)
@@ -41,9 +41,10 @@ enum ikind {
  */
 typedef struct _i_call_record {
   enum ikind    kind;       /**< must be INTRINSIC_CALL */
-  entity        *i_ent;     /**< the entity representing an intrinsic call */
+  ir_entity     *i_ent;     /**< the entity representing an intrinsic call */
   i_mapper_func i_mapper;   /**< the mapper function to call */
   void          *ctx;       /**< mapper context */
+  void          *link;      /**< used in the construction algorithm, must be NULL */
 } i_call_record;
 
 /**
@@ -54,6 +55,7 @@ typedef struct _i_instr_record {
   ir_op         *op;        /**< the opcode that must be mapped. */
   i_mapper_func i_mapper;   /**< the mapper function to call */
   void          *ctx;       /**< mapper context */
+  void          *link;      /**< used in the construction algorithm, must be NULL */
 } i_instr_record;
 
 /**
@@ -77,7 +79,7 @@ typedef union _i_record {
  *
  * @return number of found intrinsics.
  */
-unsigned lower_intrinsics(const i_record *list, int length);
+unsigned lower_intrinsics(i_record *list, int length);
 
 /**
  * A mapper for the integer absolute value: inttype abs(inttype v).
@@ -99,12 +101,12 @@ int i_mapper_Alloca(ir_node *call, void *ctx);
  * A runtime routine description.
  */
 typedef struct _runtime_rt {
-  entity  *ent;            /**< The entity representing the runtime routine. */
-  ir_mode *mode;           /**< The operation mode of the mapped instruction. */
-  long    mem_proj_nr;      /**< if >= 0, create a memory ProjM() */
-  long    exc_proj_nr;      /**< if >= 0, create a exception ProjX() */
-  long    exc_mem_proj_nr;  /**< if >= 0, create a exception memory ProjM() */
-  long    res_proj_nr;      /**< if >= 0, first result projection number */
+  ir_entity *ent;            /**< The entity representing the runtime routine. */
+  ir_mode   *mode;           /**< The operation mode of the mapped instruction. */
+  long      mem_proj_nr;     /**< if >= 0, create a memory ProjM() */
+  long      exc_proj_nr;     /**< if >= 0, create a exception ProjX() */
+  long      exc_mem_proj_nr; /**< if >= 0, create a exception memory ProjM() */
+  long      res_proj_nr;     /**< if >= 0, first result projection number */
 } runtime_rt;
 
 /**
@@ -138,7 +140,8 @@ typedef struct _runtime_rt {
     INTRINSIC_INSTR,
     op_Div,
     i_mapper_RuntimeCall,
-    &rt_Div
+    &rt_Div,
+    NULL
   };
   @endcode
  *
@@ -156,7 +159,8 @@ typedef struct _runtime_rt {
     INTRINSIC_INSTR,
     op_Conv,
     i_mapper_RuntimeCall,
-    &rt_Float2Double
+    &rt_Float2Double,
+    NULL
   };
   @endcode
  */