ir_node *get_Add_right(const ir_node *node);
void set_Add_right(ir_node *node, ir_node *right);
+ir_node *get_Carry_left(const ir_node *node);
+void set_Carry_left(ir_node *node, ir_node *left);
+ir_node *get_Carry_right(const ir_node *node);
+void set_Carry_right(ir_node *node, ir_node *right);
+
ir_node *get_Sub_left(const ir_node *node);
void set_Sub_left(ir_node *node, ir_node *left);
ir_node *get_Sub_right(const ir_node *node);
void set_Confirm_cmp(ir_node *node, pn_Cmp cmp);
/*
- * Mux Support: Note that Psi nodes with one condition can be handled
- * like Mux nodes, and the access functions work as expected.
+ * Mux Support
*/
ir_node *get_Mux_sel(const ir_node *node);
void set_Mux_sel(ir_node *node, ir_node *sel);
ir_node *get_Mux_true(const ir_node *node);
void set_Mux_true(ir_node *node, ir_node *ir_true);
-ir_node *get_Psi_cond(const ir_node *node, int pos);
-void set_Psi_cond(ir_node *node, int pos, ir_node *cond);
-ir_node *get_Psi_val(const ir_node *node, int pos);
-void set_Psi_val(ir_node *node, int pos, ir_node *val);
-ir_node *get_Psi_default(const ir_node *node);
-void set_Psi_default(ir_node *node, ir_node *val);
-int get_Psi_n_conds(const ir_node *node);
-
/**
* Projection numbers for result of CopyB node: use for Proj nodes!
*/
/** Returns corresponding operand of Tuple if node is a Proj from
a Tuple. */
ir_node *skip_Tuple(ir_node *node);
-/** returns operand of node if node is a Cast. */
+/** Returns operand of node if node is a Cast. */
ir_node *skip_Cast(ir_node *node);
const ir_node *skip_Cast_const(const ir_node *node);
+/** Returns operand of node if node is a Pin. */
+ir_node *skip_Pin(ir_node *node);
/** Returns operand of node if node is a Confirm */
ir_node *skip_Confirm(ir_node *node);
/** Skip all high-level Operations (including Cast, Confirm). */
int is_Quot(const ir_node *node);
/** Returns true if node is an Add node. */
int is_Add(const ir_node *node);
+/** Returns true if node is a Carry node. */
+int is_Carry(const ir_node *node);
/** Returns true if node is an And node. */
int is_And(const ir_node *node);
/** Returns true if node is an Or node. */
int is_Shrs(const ir_node *node);
/** Returns true if node is a Rotl node. */
int is_Rotl(const ir_node *node);
-/** Returns true if node is a Psi node. */
-int is_Psi(const ir_node *node);
/** Returns true if node is an Id node. */
int is_Id(const ir_node *node);
/** Returns true if node is a Tuple 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. */
+/** Returns true if node is a Mux node. */
int is_Mux(const ir_node *node);
/** Returns true if node is a Load node. */
int is_Load(const ir_node *node);