Re: Fw: GSoC topic: Implement hot cold splitting at GIMPLE IR level
> > 2) ipa-split is very simplistic and only splits when there is no value >computed in header of function used in the tail. We should support > adding extra parameters for values computed and do more general SESE >outlining > Note that we do SESE outlining for openMP but this code is not > interfaced very generically to be easilly used by ipa-split. This sounds like a good GSoC project to work on. We could have a SESE/SEME based ipa-split, that could help with function splitting as well as openMP. >Original implementation of ipa-split was kind of "first cut" trying >to clean up interfaces to rest of the compiler and implement more >fancy features later. This never happened so there is certainly >space for imrovements here. I see ` TODO: We might support multiple return blocks. ' in ipa-split.c which could achieved once we have SEME based function splitting. >We also do all splitting before actual IPA optimization while it may >be more reasonable to identify potential split points and make IPA >optimization to decide on transforms (currently we rely on inliner >to inline back useless splits). If a student has enough bandwidth, we could allow them to work on this. Thanks for showing various places of improvement. I'd be happy to mentor on the above project. Please let me know your thoughts. Sorry I could not reply earlier because of various reasons. Best, -Aditya
Re: Fw: GSoC topic: Implement hot cold splitting at GIMPLE IR level
As I understand the openmp outliner is also at the tree level. A region based outliner could be reused there. I’m not particular about the outliner being specific to ipa-split. A GSoC project can help us get the coding+testing done. Any pass that needs a function splitting at tree level can reuse them. -Aditya From: Jakub Jelinek Sent: Monday, March 16, 2020 5:19:16 PM To: Aditya K Cc: Jan Hubicka ; gcc@gcc.gnu.org Subject: Re: Fw: GSoC topic: Implement hot cold splitting at GIMPLE IR level On Mon, Mar 16, 2020 at 11:11:14PM +, Aditya K via Gcc wrote: > > > > 2) ipa-split is very simplistic and only splits when there is no value > >computed in header of function used in the tail. We should support > > adding extra parameters for values computed and do more general SESE > >outlining > > Note that we do SESE outlining for openMP but this code is not > > interfaced very generically to be easilly used by ipa-split. > > This sounds like a good GSoC project to work on. We could have a SESE/SEME > based ipa-split, that > could help with function splitting as well as openMP. No, OpenMP region outlining needs to be done where it is done currently, ipa-split is way too late for that. Jakub