[llvm-dev] Getting a BasicBlock address
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Wed Dec 5 12:07:00 PST 2018
On 12/5/2018 7:14 AM, David Greene via llvm-dev wrote:
> Is there a defined way to get the address of a BasicBlock as a value?
> According to the language reference, any use outside of indirectbr and
> comparison against null is undefined. There is some wording about
> targets possibly allowing use in inline assembly. Is that really the
> only option? Is there anything a pass can query to see if it is allowed
> for a target? I don't see anything like that in TTI.
If you're trying to take the address of a BasicBlock at the IR level,
you're probably not framing your problem correctly. If you're not using
it in an indirectbr, it's basically an arbitrary address inside the
current function, so you can't really do anything useful with it. You
might want to consider if it's possible to express the semantics you
want with an intrinsic.
(Of course, a MachineBasicBlock is a completely different story; various
parts of code generation involve taking the address of a block.)
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
More information about the llvm-dev