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

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 1 11:42:18 PST 2021


efriedma added a comment.

> But that doesn't really matter; CallBrInst can have a BlockAddress parameter that's not necessarily in the formal indirect destination list; so just process all BlockAddress parameters to a CallBrInst the same way.

I'm a little skeptical of this.  The normal lowering for a random blockaddress constant would produce an ISD::BlockAddress node; this produces an ISD::TargetBlockAddress.  I don't think we treat those the same way, in general; I suspect this patch breaks passing a blockaddress as a register input.

I'd be much happier if we actually did the computation properly to figure out whether an operand is actually an input, an output, or a destination.  We have to do that computation at some point anyway, right?


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