[PATCH] D45308: [IPRA] Do not collect register usage information on functions that can be derefined

Vivek Pandya via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 1 08:57:10 PDT 2018


vivekvpandya added a comment.

In https://reviews.llvm.org/D45308#1083887, @jonpa wrote:

> With this patch, any called function which is not "definition exact" keeps the unmodified regmask on the call instruction, which assumes that the callee saved registers are saved if modified by callee.
>
> I therefore think the check !F.hasLocalLinkage() in isSafeForNoCSROpt() should be replaced with !F.isDefinitionExact(), since the former check only covers a subset of the second one.
>
> Otherwise, the saving of the CSRs might be skipped without this being reflected in the call regmask in caller, right?


Yes this needs to be done. Sorry I missed in previous review that `isSafeForNoCSROpt()` is also used in `determineCalleeSaves()`


https://reviews.llvm.org/D45308





More information about the llvm-commits mailing list