return &node->attr.divmod;
}
+builtin_attr *get_irn_builtin_attr(ir_node *node) {
+ assert(is_Builtin(node));
+ return &node->attr.builtin;
+}
+
void *(get_irn_generic_attr)(ir_node *node) {
assert(is_ir_node(node));
return _get_irn_generic_attr(node);
return NULL;
}
-/* Test whether arbitrary node is value arg base, i.e. Proj(pn_Start_P_value_arg_base)
- * from Start. If so returns 1, else 0. */
-int is_value_arg_pointer(const ir_node *n) {
- if (is_Proj(n) &&
- (get_Proj_proj(n) == pn_Start_P_value_arg_base) &&
- is_Start(get_Proj_pred(n)))
- return 1;
- return 0;
-}
-
/* 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
const char *get_builtin_kind_name(ir_builtin_kind kind) {
#define X(a) case a: return #a + 6;
switch (kind) {
+ X(ir_bk_trap);
+ X(ir_bk_debugbreak);
X(ir_bk_return_address);
X(ir_bk_frame_addess);
X(ir_bk_prefetch);
+ X(ir_bk_ffs);
+ X(ir_bk_clz);
+ X(ir_bk_ctz);
+ X(ir_bk_popcount);
+ X(ir_bk_parity);
+ X(ir_bk_bswap);
+ X(ir_bk_inport);
+ X(ir_bk_outport);
+ X(ir_bk_inner_trampoline);
}
return "<unknown>";
#undef X