[PATCH] D130316: [SelectionDAG] make INLINEASM_BR use MachineBasicBlocks instead of BlockAddresses

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 22 00:07:59 PDT 2022


nikic added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5293
+        cast<CallBrInst>(&Call)->getBlockAddressForIndirectDest(LabelNo);
+      OpInfo.CallOperandVal = BA->getBasicBlock();
       OpInfo.ConstraintVT =
----------------
This is a roundabout way of saying `cast<CallBrInst>(&Call)->getIndirectDest(LabelNo)` -- unless the fact that a BlockAddress on the IR level is created is still important for something?


================
Comment at: llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:5294-5295
+      OpInfo.CallOperandVal = BA->getBasicBlock();
       OpInfo.ConstraintVT =
-          getAsmOperandValueType(DL, OpInfo.CallOperandVal->getType())
-              .getSimpleVT();
+        getAsmOperandValueType(DL, BA->getType()).getSimpleVT();
       ++LabelNo;
----------------
nickdesaulniers wrote:
> Not sure this is quite right, but also not sure what it should be.  Maybe the reviewers do?
`BA` has an `i8*` type, so can directly use that?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130316



More information about the llvm-commits mailing list