On Tue, Nov 18, 2014 at 06:31:59PM +0300, Ilya Verbin wrote: > @@ -8287,7 +8289,9 @@ expand_omp_target (struct omp_region *region) > if (kind == GF_OMP_TARGET_KIND_REGION) > { > unsigned srcidx, dstidx, num; > +#ifdef ENABLE_OFFLOADING > struct cgraph_node *node; > +#endif
Please instead move the struct cgraph_node *node; declaration right above where it is used for the first time. There is no goto involved there, and it isn't in a switch either, so you probably also can do just: struct cgraph_node *node = cgraph_node::get (child_fn); instead. Ok with that change. > @@ -8414,18 +8418,22 @@ expand_omp_target (struct omp_region *region) > DECL_STRUCT_FUNCTION (child_fn)->curr_properties = > cfun->curr_properties; > cgraph_node::add_new_function (child_fn, true); > > +#ifdef ENABLE_OFFLOADING > /* Add the new function to the offload table. */ > vec_safe_push (offload_funcs, child_fn); > +#endif > > /* Fix the callgraph edges for child_cfun. Those for cfun will be > fixed in a following pass. */ > push_cfun (child_cfun); > cgraph_edge::rebuild_edges (); > > +#ifdef ENABLE_OFFLOADING > /* Prevent IPA from removing child_fn as unreachable, since there are > no > refs from the parent function to child_fn in offload LTO mode. */ > node = cgraph_node::get (child_fn); > node->mark_force_output (); > +#endif > > /* Some EH regions might become dead, see PR34608. If > pass_cleanup_cfg isn't the first pass to happen with the Jakub