X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firnode.h;h=2cde90439e6dd2b7144b42516adf89e9a7b7f552;hb=5f05c97be1452a4fd611648879c1544a8af611c9;hp=fb7a3a00854ff42060f0da176e638918df6d2656;hpb=a12363c5b7e1018e0beab78f09de06b32e49b4c5;p=libfirm diff --git a/include/libfirm/irnode.h b/include/libfirm/irnode.h index fb7a3a008..2cde90439 100644 --- a/include/libfirm/irnode.h +++ b/include/libfirm/irnode.h @@ -347,7 +347,7 @@ int is_value_arg_pointer(ir_node *n); /* @@@ no more supported */ ir_node **get_Block_cfgpred_arr(ir_node *node); int get_Block_n_cfgpreds(const ir_node *node); -ir_node *get_Block_cfgpred(ir_node *node, int pos); +ir_node *get_Block_cfgpred(const ir_node *node, int pos); void set_Block_cfgpred(ir_node *node, int pos, ir_node *pred); /** Get the predecessor block. * @@ -360,8 +360,8 @@ void set_Block_cfgpred(ir_node *node, int pos, ir_node *pred); * - If we encounter the Bad node, this function does not return * Start, but the Bad node. */ -ir_node *get_Block_cfgpred_block(ir_node *node, int pos); -int get_Block_matured(ir_node *node); +ir_node *get_Block_cfgpred_block(const ir_node *node, int pos); +int get_Block_matured(const ir_node *node); void set_Block_matured(ir_node *node, int matured); /** A visited flag only for block nodes. @@ -381,6 +381,7 @@ void mark_Block_block_visited(ir_node *node); int Block_not_block_visited(const ir_node *node); int Block_block_visited(const ir_node *node); +#ifdef INTERPROCEDURAL_VIEW /* Set and remove interprocedural predecessors. If the interprocedural * predecessors are removed, the node has the same predecessors in * both views. @@ -395,6 +396,8 @@ int get_Block_cg_n_cfgpreds(ir_node *node); ir_node *get_Block_cg_cfgpred(ir_node *node, int pos); /** Frees the memory allocated for interprocedural predecessors. */ void remove_Block_cg_cfgpred_arr(ir_node *node); +#endif + /** Returns the extended basic block a block belongs to. */ ir_extblk *get_Block_extbb(const ir_node *block); /** Sets the extended basic block a block belongs to. */ @@ -484,10 +487,13 @@ void set_Return_res(ir_node *node, int pos, ir_node *res); tarval *get_Const_tarval(const ir_node *node); void set_Const_tarval(ir_node *node, tarval *con); +/** Return non-zero if the given Const node represents the 0 constant. */ int is_Const_null(const ir_node *node); +/** Return non-zero if the given Const node represents the 1 constant. */ int is_Const_one(const ir_node *node); +/** Return non-zero if the given Const node represents the constant with all bits set. */ int is_Const_all_one(const ir_node *node); /** Returns the source language type of a Const node. @@ -872,7 +878,7 @@ void set_Rot_right(ir_node *node, ir_node *right); ir_node *get_Conv_op(const ir_node *node); void set_Conv_op(ir_node *node, ir_node *op); -int get_Conv_strict(ir_node *node); +int get_Conv_strict(const ir_node *node); void set_Conv_strict(ir_node *node, int flag); /* Does Cast need a mem operator? @@ -1170,6 +1176,7 @@ void set_Pin_op(ir_node *pin, ir_node *node); typedef struct { unsigned pos; /**< The inputs/output position for this constraint. */ ident *constraint; /**< The constraint for this input/output. */ + ir_mode *mode; /**< The mode of the constraint. */ } ir_asm_constraint; /** Return the assembler text of an ASM pseudo node. */ @@ -1212,6 +1219,8 @@ ir_node *skip_HighLevel(ir_node *node); int is_Const(const ir_node *node); /** Returns true if a node is a Conv node. */ int is_Conv(const ir_node *node); +/** Returns true if a node is a strictConv node. */ +int is_strictConv(const ir_node *node); /** Returns true if a node is a Cast node. */ int is_Cast(const ir_node *node); /** Returns true if node is a Bad node. */