be_frame_attr_t *a_attr = get_irn_attr(a);
be_frame_attr_t *b_attr = get_irn_attr(b);
- if (cmp_node_attr(&a_attr->node_attr, &b_attr->node_attr))
- return 1;
- return (a_attr->ent != b_attr->ent ||
- a_attr->offset != b_attr->offset);
+ if (a_attr->ent == b_attr->ent && a_attr->offset == b_attr->offset)
+ return cmp_node_attr(&a_attr->node_attr, &b_attr->node_attr);
+ return 1;
}
void be_node_init(void) {
a->frame_attr.ent = ent;
}
+void be_set_Spill_context(ir_node *irn, ir_node *ctx)
+{
+ be_spill_attr_t *a = get_irn_attr(irn);
+ assert(be_is_Spill(irn));
+ a->spill_ctx = ctx;
+}
+
static ir_node *find_a_spill_walker(ir_node *irn, unsigned visited_nr)
{
unsigned nr = get_irn_visited(irn);
const char *prefix = buf;
snprintf(buf, sizeof(buf), "#%d ", idx);
+ buf[sizeof(buf) - 1] = '\0';
if(req->flags != arch_irn_flags_none) {
fprintf(f, "%sflags: ", prefix);