X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firreflect.c;h=075430be90d29b4e23e08c0dceb0e300eef5d4aa;hb=169fd803ea2ed08171113c1fd7ab4e528e1ebc26;hp=b88aa3c6bd068cda9ee0f16fd2e83e2293796483;hpb=9fe9c20a1570729f1bdd21a6f174ec045d2ff986;p=libfirm diff --git a/ir/ir/irreflect.c b/ir/ir/irreflect.c index b88aa3c6b..075430be9 100644 --- a/ir/ir/irreflect.c +++ b/ir/ir/irreflect.c @@ -20,9 +20,7 @@ # include #endif -#define obstack_chunk_alloc malloc -#define obstack_chunk_free free -#include +#include "obst.h" #include "irmode.h" #include "irreflect.h" @@ -68,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; @@ -81,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 = malloc(sizeof(*new_opcodes) * 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); @@ -96,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) { @@ -175,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; @@ -200,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; @@ -417,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; @@ -437,7 +436,7 @@ bool rflct_opcode_add_signature(opcode opc, rflct_sig_t *sig) rflct_sig_t *rflct_signature_allocate(int defs, int uses) { - rflct_sig_t *sig = malloc(sizeof(*sig)); + rflct_sig_t *sig = xmalloc(sizeof(*sig)); rflct_arg_t *args = obstack_alloc(&obst, sizeof(*args) * (defs + uses + 2)); @@ -477,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(); }