static irn_height_t *maybe_get_height_data(const ir_heights_t *heights,
const ir_node *node)
{
- irn_height_t *height = (irn_height_t*)ir_nodemap_get(&heights->data, node);
+ irn_height_t *height = ir_nodemap_get(irn_height_t, &heights->data, node);
return height;
}
static irn_height_t *get_height_data(ir_heights_t *heights, const ir_node *node)
{
- irn_height_t *height = (irn_height_t*)ir_nodemap_get(&heights->data, node);
+ irn_height_t *height = ir_nodemap_get(irn_height_t, &heights->data, node);
if (height == NULL) {
height = OALLOCZ(&heights->obst, irn_height_t);
ir_nodemap_insert(&heights->data, node, height);
static bl_info_t *get_block_info(lv_chk_t *lv, const ir_node *block)
{
- bl_info_t *info = (bl_info_t*)ir_nodemap_get(&lv->block_infos, block);
+ bl_info_t *info = ir_nodemap_get(bl_info_t, &lv->block_infos, block);
if (info == NULL) {
info = OALLOC(&lv->obst, bl_info_t);
info->id = get_Block_dom_tree_pre_num(block);
static vrp_attr *vrp_get_or_set_info(ir_vrp_info *info, const ir_node *node)
{
- vrp_attr *attr = (vrp_attr*)ir_nodemap_get(&info->infos, node);
+ vrp_attr *attr = ir_nodemap_get(vrp_attr, &info->infos, node);
if (attr == NULL) {
ir_mode *mode = get_irn_mode(node);
assert(mode_is_int(mode));
ir_graph *irg = get_irn_irg(node);
if (irg->vrp.infos.data == NULL)
return NULL;
- return (vrp_attr*) ir_nodemap_get(&irg->vrp.infos, node);
+ return ir_nodemap_get(vrp_attr, &irg->vrp.infos, node);
}
static int vrp_update_node(ir_vrp_info *info, ir_node *node)
ir_node *be_get_stack_pred(const be_stackorder_t *env, const ir_node *node)
{
- return (ir_node*)ir_nodemap_get(&env->stack_order, node);
+ return ir_nodemap_get(ir_node, &env->stack_order, node);
}
void be_free_stackorder(be_stackorder_t *env)
static co2_irn_t *get_co2_irn(co2_t *env, const ir_node *node)
{
- co2_irn_t *ci = (co2_irn_t*)ir_nodemap_get(&env->map, node);
+ co2_irn_t *ci = ir_nodemap_get(co2_irn_t, &env->map, node);
if (ci == NULL) {
ci = OALLOCZ(&env->obst, co2_irn_t);
static co2_cloud_irn_t *get_co2_cloud_irn(co2_t *env, const ir_node *node)
{
- co2_cloud_irn_t *ci = (co2_cloud_irn_t*)ir_nodemap_get(&env->map, node);
+ co2_cloud_irn_t *ci = ir_nodemap_get(co2_cloud_irn_t, &env->map, node);
if (ci == NULL) {
ci = OALLOCZ(&env->obst, co2_cloud_irn_t);
static co_mst_irn_t *get_co_mst_irn(co_mst_env_t *env, const ir_node *node)
{
- co_mst_irn_t *res = (co_mst_irn_t*)ir_nodemap_get(&env->map, node);
+ co_mst_irn_t *res = ir_nodemap_get(co_mst_irn_t, &env->map, node);
if (res == NULL) {
res = co_mst_irn_init(env, node);
ir_nodemap_insert(&env->map, node, res);
static constr_info *get_or_set_info(be_ssa_construction_env_t *env,
const ir_node *node)
{
- constr_info *info = (constr_info*)ir_nodemap_get(&env->infos, node);
+ constr_info *info = ir_nodemap_get(constr_info, &env->infos, node);
if (info == NULL) {
info = OALLOCZ(&env->obst, constr_info);
ir_nodemap_insert(&env->infos, node, info);
static constr_info *get_info(const be_ssa_construction_env_t *env,
const ir_node *node)
{
- return (constr_info*)ir_nodemap_get(&env->infos, node);
+ return ir_nodemap_get(constr_info, &env->infos, node);
}
/**
return nodemap->data[idx];
}
+#define ir_nodemap_get(type, nodemap, node) ((type*)ir_nodemap_get(nodemap, node))
+
/**
* Get mapping for @p node (fast version). Returns NULL if nothing is mapped.
*
unrolling_node_info *info;
assert(nr != 0 && "0 reserved");
- info = (unrolling_node_info*)ir_nodemap_get(&map, n);
+ info = ir_nodemap_get(unrolling_node_info, &map, n);
if (! info) {
ir_node **arr = NEW_ARR_D(ir_node*, &obst, unroll_nr);
memset(arr, 0, unroll_nr * sizeof(ir_node*));
static ir_node *get_unroll_copy(ir_node *n, int nr)
{
ir_node *cp;
- unrolling_node_info *info = (unrolling_node_info *)ir_nodemap_get(&map, n);
+ unrolling_node_info *info = ir_nodemap_get(unrolling_node_info, &map, n);
if (! info)
return NULL;
/* Getter of copy of n for inversion */
static ir_node *get_inversion_copy(ir_node *n)
{
- ir_node *cp = (ir_node *)ir_nodemap_get(&map, n);
+ ir_node *cp = ir_nodemap_get(ir_node, &map, n);
return cp;
}