-/* Set the ARM machine node attributes to default values. */
-static void init_arm_attributes(ir_node *node, int flags,
- const arch_register_req_t ** in_reqs,
- const arch_register_req_t ** out_reqs,
- const be_execution_unit_t ***execution_units,
- int n_res) {
- ir_graph *irg = get_irn_irg(node);
- struct obstack *obst = get_irg_obstack(irg);
- arm_attr_t *attr = get_arm_attr(node);
- (void) execution_units;
-
- attr->in_req = in_reqs;
- attr->out_req = out_reqs;
- attr->flags = flags;
- attr->instr_fl = (ARM_COND_AL << 3) | ARM_SHF_NONE;
- attr->imm_value = 0;
-
- attr->out_flags = NEW_ARR_D(int, obst, n_res);
- memset(attr->out_flags, 0, n_res * sizeof(attr->out_flags[0]));
-
- attr->slots = NEW_ARR_D(const arch_register_t*, obst, n_res);
- memset(attr->slots, 0, n_res * sizeof(attr->slots[0]));
-}
-
-/************************************************
- * ___ _ _ _ *
- * / _ \ _ __ | |_(_)_ __ ___ (_)_______ _ __ *
- * | | | | '_ \| __| | '_ ` _ \| |_ / _ \ '__| *
- * | |_| | |_) | |_| | | | | | | |/ / __/ | *
- * \___/| .__/ \__|_|_| |_| |_|_/___\___|_| *
- * |_| *
- ************************************************/
-
-typedef struct _opt_tuple {
- ir_op *op_imm_left; /**< immediate is left */
- ir_op *op_imm_right; /**< immediate is right */
- ir_op *op_shf_left; /**< shift operand on left */
- ir_op *op_shf_right; /**< shift operand on right */
-} opt_tuple;
-
-//static const opt_tuple *opt_ops[iro_arm_last];
-
-void arm_set_optimizers(void) {
- /*
-#define STD(op) p_##op = { op_arm_##op##_i, op_arm_##op##_i, op_arm_##op, op_arm_##op }
-#define LEFT(op) p_##op = { op_arm_##op##_i, NULL, op_arm_##op, NULL }
-#define SET(op) opt_ops[iro_arm_##op] = &p_##op;
-
- static const opt_tuple
- STD(Add),
- STD(And),
- STD(Or),
- STD(Eor),
- LEFT(Bic),
- LEFT(Shl),
- LEFT(Shr),
- LEFT(Shrs),
- p_Sub = { op_arm_Sub_i, op_arm_Rsb_i, op_arm_Sub, op_arm_Rsb },
-
- memset(opt_ops, 0, sizeof(opt_ops));
- SET(Add);
- SET(And);
- SET(Or);
- SET(Eor);
- SET(Sub);
- SET(Bic);
- SET(Shl);
- SET(Shr);
- SET(Shrs);
- */
-}
-
-static int cmp_attr_arm(ir_node *a, ir_node *b) {
- arm_attr_t *attr_a = get_irn_generic_attr(a);
- arm_attr_t *attr_b = get_irn_generic_attr(b);
- return (attr_a->instr_fl != attr_b->instr_fl) || (attr_a->imm_value != attr_b->imm_value);
-}
-
-static int cmp_attr_arm_SymConst(ir_node *a, ir_node *b) {
- const arm_SymConst_attr_t *attr_a;
- const arm_SymConst_attr_t *attr_b;