store_attr *get_irn_store_attr (ir_node *node);
except_attr *get_irn_except_attr (ir_node *node);
divmod_attr *get_irn_divmod_attr (ir_node *node);
+builtin_attr *get_irn_builtin_attr (ir_node *node);
/** @} */
/**
*/
ir_op_ops *firm_set_default_get_entity_attr(ir_opcode code, ir_op_ops *ops);
+/**
+ * Returns an array with the predecessors of the Block. Depending on
+ * the implementation of the graph data structure this can be a copy of
+ * the internal representation of predecessors as well as the internal
+ * array itself. Therefore writing to this array might obstruct the IR.
+ */
+ir_node **get_Block_cfgpred_arr(ir_node *node);
+
/*-------------------------------------------------------------------*/
/* These function are most used in libfirm. Give them as static */
/* functions so they can be inlined. */
return (_get_irn_op(node) == op_ASM);
}
+static inline int
+_is_Dummy(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Dummy);
+}
+
static inline int
_is_Anchor(const ir_node *node) {
return (_get_irn_op(node) == op_Anchor);
* We walk from the predecessor to the next pinned node
* (skip_Proj) and return the block that node is in.
* - If we encounter the Bad node, this function does not return
- * Start, but the Bad node.
+ * the Start block, but the Bad node.
*/
static inline ir_node *
_get_Block_cfgpred_block(const ir_node *node, int pos) {
static inline cond_jmp_predicate _get_Cond_jmp_pred(const ir_node *node) {
assert(_get_irn_op(node) == op_Cond);
- return node->attr.cond.pred;
+ return node->attr.cond.jmp_pred;
}
static inline void _set_Cond_jmp_pred(ir_node *node, cond_jmp_predicate pred) {
assert(_get_irn_op(node) == op_Cond);
- node->attr.cond.pred = pred;
+ node->attr.cond.jmp_pred = pred;
}
static inline void *_get_irn_generic_attr(ir_node *node) {
#define is_IJmp(node) _is_IJmp(node)
#define is_Raise(node) _is_Raise(node)
#define is_ASM(node) _is_ASM(node)
+#define is_Dummy(node) _is_Dummy(node)
#define is_Anchor(node) _is_Anchor(node)
#define is_Bad(node) _is_Bad(node)
#define is_NoMem(node) _is_NoMem(node)