#include "array_t.h"
#include "bearch.h"
+#include "beirg.h"
#include "belower.h"
#include "benode.h"
#include "besched.h"
ir_node *keep, *cpy;
op_copy_assoc_t *entry;
- if (arch_irn_is_ignore(other_different) ||
+ arch_register_req_t const *const req = arch_get_irn_register_req(other_different);
+ if (arch_register_req_is(req, ignore) ||
!mode_is_datab(get_irn_mode(other_different))) {
DB((dbg_constr, LEVEL_1, "ignore constraint for %+F because other_irn is ignore or not a datab node\n", irn));
return;
op_set = &env->op_set;
block = get_nodes_block(irn);
- cls = arch_get_irn_reg_class(other_different);
+ cls = req->cls;
/* Make a not spillable copy of the different node */
/* this is needed because the different irn could be */
if (ck_arr[idx]) {
int j, n_melt;
ir_node **new_ck_in;
- ir_node *new_ck;
ir_node *sched_pt = NULL;
n_melt = 1;
kill_node(melt_arr[j]);
}
+ ir_node *const new_ck = be_new_CopyKeep(get_nodes_block(ref), be_get_CopyKeep_op(ref), n_melt, new_ck_in);
#ifdef KEEP_ALIVE_COPYKEEP_HACK
- new_ck = be_new_CopyKeep(get_nodes_block(ref), be_get_CopyKeep_op(ref), n_melt, new_ck_in);
keep_alive(new_ck);
-#else
- new_ck = be_new_CopyKeep(get_nodes_block(ref), be_get_CopyKeep_op(ref), n_melt, new_ck_in);
#endif /* KEEP_ALIVE_COPYKEEP_HACK */
/* set register class for all kept inputs */