https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83388
--- Comment #9 from rguenther at suse dot de <rguenther at suse dot de> --- On Thu, 14 Dec 2017, hubicka at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83388 > > --- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> --- > I believe we do not stream any references to references and once we start to > do > we will need to invent machinery to keep them intact like we have for edges > and > symbols. So I would go for removal of the refernece. Probably not possible in this place (there are no removal hooks registered so any passes using them would not notice). > I however wonder if this is the best place to remove statements from function. > I would expect either fixup_cfg or one of the IPA transform stages to be > responsible for this instead. It was chosen to follow existing practice with debug stmts... but yes. Maybe we can instead "fold" the to be removed IFNs into a new IFN_NOP, keeping arguments and references and arrange for those INF_NOPs to be removed by the next DCE?