[PATCH] D73168: Improvements to call site register worklist

David Stenberg via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 22 09:36:51 PST 2020


dstenb added a comment.

Sorry, I now realized that the `RegsToKeep` handling is not sufficient, since it will not correctly handle cases where we have a mix of parameter registers that should be discarded, and those that were added in this iteration, which we should keep.

This patch will for example not correctly handle the following example on a made-up architecture:

  $r1 = mv-imm 123
  $r0, $r1 = mv_registers $r1, <register that can't be described>
  call @foo, $r0, $r1 

For such code, this patch will produce call site entries for both `$r0` and `$r1` described by `123`, but we should only emit a call site entry for `$r0`.

That is quite a silly code example, but it seems good to get such a thing right from the start. I'll upload an updated patch.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D73168





More information about the llvm-commits mailing list