ir_op *op_CopyB; ir_op *get_op_CopyB (void) { return op_CopyB; }
ir_op *op_Bound; ir_op *get_op_Bound (void) { return op_Bound; }
-ir_op *op_Keep; ir_op *get_op_Keep (void) { return op_Keep; }
-
/*
* Copies all attributes stored in the old node to the new node.
* Assumes both have the same opcode and sufficient size.
#define Y irop_flag_forking
#define H irop_flag_highlevel
#define c irop_flag_constlike
+#define K irop_flag_keep
op_Block = new_ir_op(iro_Block, "Block", op_pin_state_pinned, L, oparity_variable, -1, sizeof(block_attr), NULL);
op_Start = new_ir_op(iro_Start, "Start", op_pin_state_pinned, X, oparity_zero, -1, sizeof(start_attr), NULL);
op_End = new_ir_op(iro_End, "End", op_pin_state_pinned, X, oparity_dynamic, -1, 0, NULL);
op_Jmp = new_ir_op(iro_Jmp, "Jmp", op_pin_state_pinned, X, oparity_zero, -1, 0, NULL);
- op_IJmp = new_ir_op(iro_IJmp, "IJmp", op_pin_state_pinned, X, oparity_unary, -1, 0, NULL);
+ op_IJmp = new_ir_op(iro_IJmp, "IJmp", op_pin_state_pinned, X|K, oparity_unary, -1, 0, NULL);
op_Cond = new_ir_op(iro_Cond, "Cond", op_pin_state_pinned, L|X|Y, oparity_any, -1, sizeof(cond_attr), NULL);
op_Return = new_ir_op(iro_Return, "Return", op_pin_state_pinned, L|X, oparity_zero, -1, 0, NULL);
op_Raise = new_ir_op(iro_Raise, "Raise", op_pin_state_pinned, L|X, oparity_any, -1, 0, NULL);
op_CopyB = new_ir_op(iro_CopyB, "CopyB", op_pin_state_mem_pinned, L|F|H, oparity_trinary, -1, sizeof(copyb_attr), NULL);
op_Bound = new_ir_op(iro_Bound, "Bound", op_pin_state_mem_pinned, L|F|H, oparity_trinary, -1, sizeof(bound_attr), NULL);
- op_Keep = new_ir_op(iro_Keep, "Keep", op_pin_state_pinned, N, oparity_variable, -1, 0, NULL);
-
#undef H
#undef Y
#undef F
free_ir_op (op_Mux ); op_Mux = NULL;
free_ir_op (op_CopyB ); op_CopyB = NULL;
free_ir_op (op_Bound ); op_Bound = NULL;
-
- free_ir_op (op_Keep ); op_Keep = NULL;
}
/* Returns the string for the opcode. */
iro_Load, iro_Store, iro_Alloc, iro_Free, iro_Sync,
iro_Proj, iro_Tuple, iro_Id, iro_Bad, iro_Confirm,
iro_Unknown, iro_Filter, iro_Break, iro_CallBegin, iro_EndReg, iro_EndExcept,
- iro_NoMem, iro_Mux, iro_CopyB, iro_Bound, iro_GC,
- iro_Keep,
+ iro_NoMem, iro_Mux, iro_CopyB, iro_Bound,
iro_MaxOpcode
} opcode;
extern ir_op *op_Mux; ir_op *get_op_Mux (void);
extern ir_op *op_CopyB; ir_op *get_op_CopyB (void);
extern ir_op *op_Bound; ir_op *get_op_Bound (void);
-extern ir_op *op_GC; ir_op *get_op_GC (void);
-extern ir_op *op_Keep; ir_op *get_op_Keep (void);
/** Returns the ident for the opcode name */
ident *get_op_ident(const ir_op *op);