On Tue, Apr 18, 2017 at 1:20 PM, Trevor Saunders <tbsau...@tbsaunde.org> wrote: > On Tue, Apr 18, 2017 at 10:39:30AM +0000, Bin Cheng wrote: >> -find_depends (tree *expr_p, int *ws ATTRIBUTE_UNUSED, void *data) >> +find_inv_vars_cb (tree *expr_p, int *ws ATTRIBUTE_UNUSED, void *data) >> { >> - bitmap *inv_vars = (bitmap *) data; >> + struct walk_tree_data *wdata = (struct walk_tree_data*) data; >> struct version_info *info; >> >> if (TREE_CODE (*expr_p) != SSA_NAME) >> return NULL_TREE; >> - info = name_info (fd_ivopts_data, *expr_p); >> >> + info = name_info (wdata->idata, *expr_p); >> if (!info->inv_id || info->has_nonlin_use) >> return NULL_TREE; >> >> - if (!*inv_vars) >> - *inv_vars = BITMAP_ALLOC (NULL); >> - bitmap_set_bit (*inv_vars, info->inv_id); >> + if (!*wdata->inv_vars) >> + *wdata->inv_vars = BITMAP_ALLOC (NULL); > > Given below this seems to be dead and inv_vars could just be a bitmap. > >> +find_inv_vars (struct ivopts_data *data, tree *expr_p, bitmap *inv_vars) >> +{ >> + struct walk_tree_data wdata; >> + >> + if (!inv_vars) >> + return; >> + >> + wdata.idata = data; >> + wdata.inv_vars = inv_vars; >> + walk_tree (expr_p, find_inv_vars_cb, &wdata, NULL); > > given this it looks like the null check of inv_vars in find_inv_vars_cb > is unnecessary because inv_vars must be nonnull to call walk_tree(). Hmm, this check is for bitmap* pointer, the one in call back function is for bitmap pointer, right?
Thanks, bin > > Thanks > > Trev