> > The following avoids GC collecting during pass execution when a pass > calls cgraph::get_body. > > Bootstrapped / tested on x86_64-unknown-linux-gnu. > > OK? > > Thanks, > Richard. > > 2019-07-03 Richard Biener <rguent...@suse.de> > > PR ipa/91062 > * tree-pass.h (execute_all_ipa_transforms): Add a flag > parameter whether to disable GC collection. > * passes.c (execute_one_ipa_transform_pass): Likewise, and > honor it. > (execute_all_ipa_transforms): Likewise and pass it down. > * cgraph.c (cgraph_node::get_body): Do not invoke garbage > collection from applying IPA transforms. > * cgraphunit.c (cgraph_node::expand): Allow garbage collection > from applying IPA transforms.
OK, thanks! I am not sure how much the garbage collectin between individual transforms is necessary - i suspect the ggc_collect call there is just result of copying code executing normal passes, but it is fine to disable it selectively for sure. Honza