X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Fircons.h;h=69362c719c1d7d4afaf2dd9e5cc955015f99e432;hb=128e604d933f25072ffdabac43960525592bf05f;hp=00aa8a018d2e0122fdcfde7fe7e2826339e4d629;hpb=10f56ceb3d9029e1349fb4a7da35fce3fc51c266;p=libfirm diff --git a/include/libfirm/ircons.h b/include/libfirm/ircons.h index 00aa8a018..69362c719 100644 --- a/include/libfirm/ircons.h +++ b/include/libfirm/ircons.h @@ -271,7 +271,9 @@ * ir_node *new_Sel (ir_node *store, ir_node *objptr, int arity, * ir_node **in, ir_entity *ent); * ir_node *new_Call (ir_node *store, ir_node *callee, int arity, - * ir_node **in, type_method *type); + * ir_node **in, type_method *type); + * ir_node *new_Builtin(ir_node *store, ir_builtin_kind kind, int arity, + * ir_node **in, type_method *type); * ir_node *new_Add (ir_node *op1, ir_node *op2, ir_mode *mode); * ir_node *new_Sub (ir_node *op1, ir_node *op2, ir_mode *mode); * ir_node *new_Minus (ir_node *op, ir_mode *mode); @@ -658,8 +660,30 @@ * A tuple containing the eventually changed store and the procedure * results. * Attributes: - * attr.call Contains the type information for the procedure. + * attr.call Contains the attributes for the procedure. * + * ir_node *new_Builtin(ir_node *store, ir_builtin_kind kind, int arity, ir_node **in, + * ----------------------------------------------------------------------------------- + * type_method *type) + * ------------------ + * + * Creates a builtin call. + * + * Parameters + * *store The actual store. + * kind Describes the called builtin. + * arity The number of procedure parameters. + * **in An array with the pointers to the parameters. + * The constructor copies this array. + * *type Type information of the procedure called. + * + * Inputs: + * The store, the kind and the parameters. + * Output: + * A tuple containing the eventually changed store and the procedure + * results. + * Attributes: + * attr.builtin Contains the attributes for the called builtin. * * ir_node *new_Add (ir_node *op1, ir_node *op2, ir_mode *mode) * ------------------------------------------------------------ @@ -1422,7 +1446,7 @@ ir_node *new_rd_Sel (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *st /** Constructor for a Call node. * - * Represents all kinds of method and function calls. + * Represents all kinds of method and function calls. * * @param *db A pointer for debug information. * @param *irg The IR graph the node belongs to. @@ -1436,6 +1460,22 @@ ir_node *new_rd_Sel (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *st ir_node *new_rd_Call (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store, ir_node *callee, int arity, ir_node *in[], ir_type *tp); +/** Constructor for a ´Builtin node. + * + * Represents a call of a backend-specific builtin.. + * + * @param *db A pointer for debug information. + * @param *irg The IR graph the node belongs to. + * @param *block The IR block the node belongs to. + * @param *store The current memory state. + * @param arity The number of procedure parameters. + * @param *in[] An array with the procedure parameters. The constructor copies this array. + * @param kind The kind of the called builtin. + * @param *tp Type information of the procedure called. + */ +ir_node *new_rd_Builtin(dbg_info *db, ir_graph *irg, ir_node *block, ir_node *store, + int arity, ir_node *in[], ir_builtin_kind kind, ir_type *tp); + /** Constructor for a Add node. * * @param *db A pointer for debug information. @@ -1694,6 +1734,17 @@ ir_node *new_rd_Rotl (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *new_rd_Conv (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *op, ir_mode *mode); +/** Constructor for a strictConv node. + * + * @param *db A pointer for debug information. + * @param *irg The IR graph the node belongs to. + * @param *block The IR block the node belongs to. + * @param *op The operand. + * @param *mode The mode of this the operand muss be converted . + */ +ir_node *new_rd_strictConv (dbg_info *db, ir_graph *irg, ir_node *block, + ir_node *op, ir_mode *mode); + /** Constructor for a Cast node. * * High level type cast. @@ -2250,7 +2301,7 @@ ir_node *new_r_Sel (ir_graph *irg, ir_node *block, ir_node *store, /** Constructor for a Call node. * - * Represents all kinds of method and function calls. + * Represents all kinds of method and function calls. * * @param *irg The IR graph the node belongs to. * @param *block The IR block the node belongs to. @@ -2261,8 +2312,22 @@ ir_node *new_r_Sel (ir_graph *irg, ir_node *block, ir_node *store, * @param *tp Type information of the procedure called. */ ir_node *new_r_Call (ir_graph *irg, ir_node *block, ir_node *store, - ir_node *callee, int arity, ir_node *in[], - ir_type *tp); + ir_node *callee, int arity, ir_node *in[], ir_type *tp); + +/** Constructor for a Builtin node. + * + * Represents a call of a backend-specific builtin.. + * + * @param *irg The IR graph the node belongs to. + * @param *block The IR block the node belongs to. + * @param *store The actual store. + * @param arity The number of procedure parameters. + * @param *in[] An array with the pointers to the parameters. The constructor copies this array. + * @param kind The kind of the called builtin. + * @param *tp Type information of the procedure called. + */ +ir_node *new_r_Builtin(ir_graph *irg, ir_node *block, ir_node *store, + int arity, ir_node *in[], ir_builtin_kind kind, ir_type *tp); /** Constructor for a Add node. * @@ -2502,6 +2567,16 @@ ir_node *new_r_Rotl (ir_graph *irg, ir_node *block, ir_node *new_r_Conv (ir_graph *irg, ir_node *block, ir_node *op, ir_mode *mode); +/** Constructor for a strict Conv node. + * + * @param *irg The IR graph the node belongs to. + * @param *block The IR block the node belongs to. + * @param *op The operand. + * @param *mode The mode of this the operand muss be converted . + */ +ir_node *new_r_strictConv (ir_graph *irg, ir_node *block, + ir_node *op, ir_mode *mode); + /** Constructor for a Cast node. * * High level type cast @@ -3073,8 +3148,8 @@ ir_node *new_d_Sel (dbg_info *db, ir_node *store, ir_node *objptr, int arity, /** Constructor for a Call node. * - * Represents all kinds of method and function calls. - * Adds the node to the block in current_ir_block. + * Represents all kinds of method and function calls. + * Adds the node to the block in current_ir_block. * * @param *db A pointer for debug information. * @param *store The actual store. @@ -3084,7 +3159,21 @@ ir_node *new_d_Sel (dbg_info *db, ir_node *store, ir_node *objptr, int arity, * @param *tp Type information of the procedure called. */ ir_node *new_d_Call (dbg_info *db, ir_node *store, ir_node *callee, int arity, ir_node *in[], - ir_type *tp); + ir_type *tp); + +/** Constructor for a Builtin node. + * + * Represents a call of a backend-specific builtin.. + * Adds the node to the block in current_ir_block. + * + * @param *db A pointer for debug information. + * @param *store The actual store. + * @param arity The number of procedure parameters. + * @param *in[] An array with the pointers to the parameters. The constructor copies this array. + * @param kind The kind of the called builtin. + * @param *tp Type information of the procedure called. + */ +ir_node *new_d_Builtin(dbg_info *db, ir_node *store, int arity, ir_node *in[], ir_builtin_kind kind, ir_type *tp); /** Constructor for a Add node. * @@ -3884,8 +3973,8 @@ ir_node *new_Sel (ir_node *store, ir_node *objptr, int arity, ir_node *in[], /** Constructor for a Call node. * - * Adds the node to the block in current_ir_block. - * Represents all kinds of method and function calls. + * Adds the node to the block in current_ir_block. + * Represents all kinds of method and function calls. * * @param *store The actual store. * @param *callee A pointer to the called procedure. @@ -3896,6 +3985,20 @@ ir_node *new_Sel (ir_node *store, ir_node *objptr, int arity, ir_node *in[], ir_node *new_Call (ir_node *store, ir_node *callee, int arity, ir_node *in[], ir_type *tp); +/** Constructor for a Builtin node. + * + * Represents a call of a backend-specific builtin.. + * Represents all kinds of method and function calls. + * + * @param *store The actual store. + * @param kind The kind of the called builtin. + * @param arity The number of procedure parameters. + * @param *in[] An array with the pointers to the parameters. The constructor copies this array. + * @param *tp Type information of the procedure called. + */ +ir_node *new_Builtin(ir_node *store, int arity, ir_node *in[], + ir_builtin_kind kind, ir_type *tp); + /** Constructor for a CallBegin node. * * CallBegin represents control flow depending of the pointer value @@ -4398,6 +4501,12 @@ ir_node *new_ASM(int arity, ir_node *in[], ir_asm_constraint *inputs, int n_outs, ir_asm_constraint *outputs, int n_clobber, ident *clobber[], ident *asm_text); +/** Constructor for a Dummy node. + * + * @param *mode The mode of the node. + */ +ir_node *new_Dummy(ir_mode *mode); + /*---------------------------------------------------------------------*/ /* The comfortable interface. */ /* Supports automatic Phi node construction. */