aeubanks 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?

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