X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firreflect.c;h=075430be90d29b4e23e08c0dceb0e300eef5d4aa;hb=169fd803ea2ed08171113c1fd7ab4e528e1ebc26;hp=8bf4c3807fcbf92cf4355a16b5547f81d9e94173;hpb=6235ec59a1b864e064dd9cb54a63f529769cbc19;p=libfirm diff --git a/ir/ir/irreflect.c b/ir/ir/irreflect.c index 8bf4c3807..075430be9 100644 --- a/ir/ir/irreflect.c +++ b/ir/ir/irreflect.c @@ -66,7 +66,7 @@ typedef struct { const char *name; bool commutative; int sig_count; - const rflct_arg_t *sigs[MAX_SIG_COUNT]; + rflct_arg_t *sigs[MAX_SIG_COUNT]; } rflct_opcode_t; static struct obstack obst; @@ -79,9 +79,7 @@ static INLINE void assure_opcode_capacity(int opcode) { if(opcode >= opcodes_size) { int new_size = 2 * opcode; - rflct_opcode_t **new_opcodes = xmalloc(sizeof(new_opcodes[0]) * new_size); - - memset(new_opcodes, 0, sizeof(*new_opcodes) * new_size); + rflct_opcode_t **new_opcodes = xcalloc(new_size, sizeof(new_opcodes[0])); if(opcodes != NULL) { memcpy(new_opcodes, opcodes, sizeof(*opcodes) * opcodes_size); @@ -94,7 +92,10 @@ static INLINE void assure_opcode_capacity(int opcode) } +#if 0 #define OPCODES_COUNT (sizeof(opcodes) / sizeof(opcodes[0])) +#endif +#define OPCODES_COUNT opcodes_size rflct_mode_class_t rflct_get_mode_class(const ir_mode *mode) { @@ -173,7 +174,7 @@ const rflct_arg_t *rflct_get_out_args(opcode opc, int sig) { return GET_ARGS(opc, sig); } -int rflct_signature_match(ir_node *irn, int sig) { +int rflct_signature_match(const ir_node *irn, int sig) { opcode op = get_irn_opcode(irn); const rflct_arg_t *args = rflct_get_in_args(op, sig); int dst = 0; @@ -198,7 +199,7 @@ int rflct_signature_match(ir_node *irn, int sig) { return dst; } -int rflct_get_signature(ir_node *irn) { +int rflct_get_signature(const ir_node *irn) { const rflct_opcode_t *opc = GET_OPCODE(get_irn_opcode(irn)); int min_dist = INT_MAX; int min_sig = INT_MAX; @@ -415,7 +416,7 @@ void rflct_new_opcode(opcode opc, const char *name, bool commutative) bool rflct_opcode_add_signature(opcode opc, rflct_sig_t *sig) { - const rflct_arg_t *args = sig->args; + rflct_arg_t *args = sig->args; rflct_opcode_t *op = opcodes[opc]; int i; @@ -475,6 +476,6 @@ int rflct_signature_set_arg(rflct_sig_t *sig, bool is_use, int num, } -void init_rflct(void) { +void firm_init_rflct(void) { init_ops(); }