[PATCH] D151943: [InstCombine] Propagate some func/arg/ret attributes from caller to callsite

Noah Goldstein via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 4 10:40:00 PDT 2023


goldstein.w.n added a comment.

In D151943#4394139 <https://reviews.llvm.org/D151943#4394139>, @goldstein.w.n wrote:

> In D151943#4393930 <https://reviews.llvm.org/D151943#4393930>, @nikic wrote:
>
>>> I somewhat agree although I'm not sure where else? I thought about putting it in the attributor but 1) the attributor is not enabled (and its not clear when/if that will happen) and 2) the attributor seems to be for IPO which doesn't really describe this well imo. Figured since its an exact transform on the specific instructions for the sake of other optimization passes instcombine fits the mold reasonable well.
>>
>> FunctionAttrs seems like a reasonable place to put it?
>
> At the moment FunctionAttrs doesn't do any callsite modifications, only the functions themselves. If you think it fits, however, I'd be okay extending FunctionAttrs. Same for nocapture patch? Also should I wait on D152081 <https://reviews.llvm.org/D152081> or since thats too the attributor still makes sense to try and get something into FunctionAttrs?

Also I think then FunctionAttrs need to be moved to run before inlining:

  ./bin/opt -O3 -print-pipeline-passes
  ...cgscc(devirt<4>(inline<only-mandatory>,inline,function-attrs<skip-non-recursive>...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D151943/new/

https://reviews.llvm.org/D151943



More information about the llvm-commits mailing list