WenleiHe wrote:

> > > > Good example. This pass should be run post-inline. @aeubanks, any 
> > > > reason we want to run it early in the pipeline?
> > > 
> > > 
> > > We want the main function simplification pipeline to see these function 
> > > attributes because some optimizations trigger or don't trigger depending 
> > > on the presence of the attributes. Modifying function attributes is 
> > > typically done in CGSCC/module passes since doing so can affect what 
> > > callers of those functions see (in effect changing other functions), 
> > > which shouldn't happen in function passes. I suppose it's possible to add 
> > > this as a CGSCC pass that runs after inlining and before the function 
> > > simplification pipeline, but this is more of a one time thing and CGSCC 
> > > passes can revisit functions. So this pass makes the most sense as a 
> > > module pass, but we can't insert a module pass between inlining and the 
> > > function simplification pipeline.
> > > Can/does the inliner ignore these size attributes when it has call-site 
> > > profile information?
> > 
> > 
> > Looking at the current change, this new pass is actually after the sample 
> > loader (including sample loader inlining) pass, so wenlei@'s concern should 
> > be addressed.
> 
> Oh I forgot that the sample profile has its own inliner. Yes this pass runs 
> after we load profiling information since it uses profiling information, 
> whether it's sample or instrumented.
> 
> Is this patch good to go?
This is good to go only because it's off by default. Otherwise it's not. 

Left one more comment on the patch as I didn't get a chance to look at final 
code before it went in. 

https://github.com/llvm/llvm-project/pull/69030
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to