[PATCH] D124697: Distinguish between different forms of "address-taken" MachineBasicBlocks

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 9 14:15:05 PDT 2022


efriedma added a comment.

In D124697#3498401 <https://reviews.llvm.org/D124697#3498401>, @tentzen wrote:

> How about AddressTaken_Internal and AddressTaken_External?
>
>   the _Internal is used for blockAddress-constant, jump table, etc where it's targeted by IR internal user code domain.
>   the latter indicates that the address is taken and can be targeted externally by Runtime (EH case), OS or even HW (like the retpoline case).
>
> Or AddressTaken_User and AddressTaken_System that refer to user mode and system mode.

This isn't really the distinction I'm trying making here.  The distinction here is between LLVM IR uses of blockaddress (for indirectbr), and MachineFunction uses of MachineBasicBlock labels (for retpoline etc.).    Jump tables would fall into the latter category, except that we have explicit code to update jump tables in the places where it would matter.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D124697



More information about the llvm-commits mailing list