[PATCH] D114895: [SelectionDagBuilder] improve CallBrInst BlockAddress constraint handling

Bill Wendling via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 7 12:01:29 PST 2021


void added a comment.

In D114895#3170282 <https://reviews.llvm.org/D114895#3170282>, @nickdesaulniers wrote:

> Shower-epiphany: we just need to walk the arg_list in reverse until we find the first `blockaddress` input; the number of non-`blockaddress` inputs is the amount we must bias the index calculation to find the right block address.
>
> Unless you can tie a block address. Hopefully `"+r"(&&goto_label)` isn't a valid output constraint...
>
>   void x(void) {
>       asm goto ("":"+r"(&&foo):::foo);
>       //                ^ error: lvalue required in 'asm' statement
>       foo:;
>   }
>
> oh thank god! ok then I can probably make that work.  Nonsensical rambling/notes below:

I would have had to give up programming and become a basket weaver if block addresses were l-values. :-P


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D114895



More information about the llvm-commits mailing list