if (op == op_Call) {
ir_node *symconst;
- pmap_entry *p;
const i_call_record *r;
ir_entity *ent;
return;
ent = get_SymConst_entity(symconst);
- p = pmap_find(wenv->c_map, ent);
+ r = (const i_call_record*)pmap_get(wenv->c_map, ent);
- if (p) {
- r = (const i_call_record*)p->value;
+ if (r != NULL) {
wenv->nr_of_intrinsics += r->i_mapper(node, r->ctx) ? 1 : 0;
}
} else {
size_t lower_intrinsics(i_record *list, size_t length, int part_block_used)
{
size_t i, n;
- size_t n_ops = get_irp_n_opcodes();
+ size_t n_ops = ir_get_n_opcodes();
ir_graph *irg;
pmap *c_map = pmap_create_ex(length);
i_instr_record **i_map;
op = new_rd_Conv(dbg, block, op, mode);
}
- irn = new_rd_Alloc(dbg, block, mem, op, firm_unknown_type, stack_alloc);
+ irn = new_rd_Alloc(dbg, block, mem, op, get_unknown_type(), stack_alloc);
mem = new_rd_Proj(dbg, irn, mode_M, pn_Alloc_M);
irn = new_rd_Proj(dbg, irn, get_modeP_data(), pn_Alloc_res);
if (ir_throws_exception(call)) {
return 0;
}
+int i_mapper_exp2(ir_node *call, void *ctx)
+{
+ return i_mapper_exp(call, ctx);
+}
+
+int i_mapper_exp10(ir_node *call, void *ctx)
+{
+ return i_mapper_exp(call, ctx);
+}
+
/**
* A mapper for mapping f(0.0) to 0.0.
*/
return i_mapper_one_to_zero(call, ctx, FS_OPT_RTS_LOG);
}
+int i_mapper_log2(ir_node *call, void *ctx)
+{
+ /* log2(1.0) = 0.0 */
+ return i_mapper_one_to_zero(call, ctx, FS_OPT_RTS_LOG);
+}
+
+int i_mapper_log10(ir_node *call, void *ctx)
+{
+ /* log10(1.0) = 0.0 */
+ return i_mapper_one_to_zero(call, ctx, FS_OPT_RTS_LOG);
+}
+
int i_mapper_sin(ir_node *call, void *ctx)
{
/* sin(0.0) = 0.0 */