#include "irvrfy_t.h"
#include "iropt_dbg.h"
#include "archop.h"
+#include "irop.h"
/* when we need verifying */
#ifdef NDEBUG
0
};
-/** The Min operation */
-ir_op *op_Min = NULL;
-
-/** The Max operation */
-ir_op *op_Max = NULL;
-
-ir_op *get_op_Min(void) { return op_Min; }
-ir_op *get_op_Max(void) { return op_Max; }
-
/*
* construct a Min: Min(a,b) = a < b ? a : b
*/
if (info->enabled_ops & ARCH_OPS_MINMAX) {
memset(&ops, 0, sizeof(ops));
- ops.computed_value = computed_value_Min;
- ops.equivalent_node = equivalent_node_Min;
- ops.verify_node = verify_node_MinMax;
-
- op_Min = new_ir_op(iro_Min, "Min", op_pin_state_floats, irop_flag_commutative, oparity_binary, 0, 0, &ops);
-
- ops.computed_value = computed_value_Max;
- ops.equivalent_node = equivalent_node_Max;
- ops.verify_node = verify_node_MinMax;
+ op_Min->ops.computed_value = computed_value_Min;
+ op_Min->ops.equivalent_node = equivalent_node_Min;
+ op_Min->ops.verify_node = verify_node_MinMax;
- op_Max = new_ir_op(iro_Max, "Max", op_pin_state_floats, irop_flag_commutative, oparity_binary, 0, 0, &ops);
+ op_Max->ops.computed_value = computed_value_Max;
+ op_Max->ops.equivalent_node = equivalent_node_Max;
+ op_Max->ops.verify_node = verify_node_MinMax;
}
}
ir_op *op_NoMem; ir_op *get_op_NoMem (void) { return op_NoMem; }
ir_op *op_Mux; ir_op *get_op_Mux (void) { return op_Mux; }
+ir_op *op_Min; ir_op *get_op_Min (void) { return op_Max; }
+ir_op *op_Max; ir_op *get_op_Max (void) { return op_Max; }
ir_op *op_CopyB; ir_op *get_op_CopyB (void) { return op_CopyB; }
ir_op *op_Raise; ir_op *get_op_Raise (void) { return op_Raise; }
op_NoMem = new_ir_op(iro_NoMem, "NoMem", op_pin_state_pinned, N|NB|NI, oparity_zero, -1, 0, NULL);
op_Mux = new_ir_op(iro_Mux, "Mux", op_pin_state_floats, N, oparity_trinary, -1, 0, NULL);
+ op_Min = new_ir_op(iro_Min, "Min", op_pin_state_floats, N, oparity_binary, -1, 0, NULL);
+ op_Max = new_ir_op(iro_Max, "Max", op_pin_state_floats, N, oparity_binary, -1, 0, NULL);
op_CopyB = new_ir_op(iro_CopyB, "CopyB", op_pin_state_mem_pinned, F|H|M, oparity_trinary,-1, sizeof(copyb_attr), NULL);
op_InstOf = new_ir_op(iro_InstOf, "InstOf", op_pin_state_mem_pinned, H, oparity_unary, -1, sizeof(io_attr), NULL);
free_ir_op (op_EndExcept); op_EndExcept = NULL;
free_ir_op (op_NoMem ); op_NoMem = NULL;
+ free_ir_op (op_Max ); op_Max = NULL;
+ free_ir_op (op_Min ); op_Min = NULL;
free_ir_op (op_Mux ); op_Mux = NULL;
free_ir_op (op_CopyB ); op_CopyB = NULL;