X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firnode.h;h=6d8b2d48ccf5d5cca48d2d30d35cdb71a9001984;hb=3977737475ce98c71e45f363a053e47d5d1bb39d;hp=cfcf5436cea0093f691a1b26e63972ff37b3a3c5;hpb=76ce20d41067054633fcac6a2a8fc90c56aa5a59;p=libfirm diff --git a/include/libfirm/irnode.h b/include/libfirm/irnode.h index cfcf5436c..6d8b2d48c 100644 --- a/include/libfirm/irnode.h +++ b/include/libfirm/irnode.h @@ -463,27 +463,14 @@ int get_Return_n_ress(ir_node *node); ir_node *get_Return_res(ir_node *node, int pos); void set_Return_res(ir_node *node, int pos, ir_node *res); -/** - * Possible classes for constant classification. - */ -typedef enum { - CNST_NULL = 0, /**< The node is a const(0). */ - CNST_ONE = +1, /**< The node is a const(1). */ - CNST_ALL_ONE = -1, /**< The node is a const(11111...). */ - CNST_OTHER = 2, /**< The tarval of the const has another value. */ - CNST_SYMCONST = 3, /**< The node is symconst. */ - CNST_NO_CONST = 4 /**< The node is no const at all. */ -} cnst_classify_t; - tarval *get_Const_tarval(const ir_node *node); void set_Const_tarval(ir_node *node, tarval *con); -/** - * Classify a node concerning constant properties. - * @param irn A node to check for. - * @return Constant properties of that node. - */ -cnst_classify_t classify_Const(ir_node *irn); +int is_Const_null(const ir_node *node); + +int is_Const_one(const ir_node *node); + +int is_Const_all_one(const ir_node *node); /** Returns the source language type of a Const node. * Must be an atomic type. Mode of type must be mode of node. @@ -693,6 +680,11 @@ void set_Mul_left(ir_node *node, ir_node *left); ir_node *get_Mul_right(const ir_node *node); void set_Mul_right(ir_node *node, ir_node *right); +ir_node *get_Mulh_left(const ir_node *node); +void set_Mulh_left(ir_node *node, ir_node *left); +ir_node *get_Mulh_right(const ir_node *node); +void set_Mulh_right(ir_node *node, ir_node *right); + ir_node *get_Quot_left(const ir_node *node); void set_Quot_left(ir_node *node, ir_node *left); ir_node *get_Quot_right(const ir_node *node); @@ -1202,6 +1194,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 Cast node. */ +int is_Cast(const ir_node *node); /** Returns true if node is a Bad node. */ int is_Bad(const ir_node *node); /** Returns true if node is a NoMem node. */ @@ -1256,6 +1250,8 @@ int is_Call(const ir_node *node); int is_Sel(const ir_node *node); /** Returns true if node is a Mul node. */ int is_Mul(const ir_node *node); +/** Returns true if node is a Mulh node. */ +int is_Mulh(const ir_node *node); /** Returns true if node is a Mux node or a Psi with only one condition. */ int is_Mux(const ir_node *node); /** Returns true if node is a Load node. */