[PATCH] D130883: [MachineInstrBuilder] Introduce MIMetadata to simplify metadata propagation

Vitaly Buka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 2 10:12:44 PDT 2022


vitalybuka accepted this revision.
vitalybuka added a comment.
This revision is now accepted and ready to land.

LGTM, but please blocking reviews if you are looking for their feedback in particular



================
Comment at: llvm/unittests/CodeGen/MachineInstrTest.cpp:462
+  MCInstrDesc MCID = {0, 0, 0, 0, 0, 0, 0, nullptr, nullptr, nullptr};
+  CheckMI([&] { return BuildMI(*MF, MIMD, MCID); });
+  CheckMI([&] { return BuildMI(*MBB, MBB->end(), MIMD, MCID); });
----------------
I don't insist, but you want to avoid such wrapping of EXPECTs into functions or lambdas.
When test fails it will not provide location of the failed line with CheckMI

If you want to reuse pair of checks, 
EXPECT_EQ(MIB->getDebugLoc(), DL);
EXPECT_EQ(MIB->getPCSections(), PCS);

you can use EXPECT_THAT with custom matches 
EXPECT_THAT(BuildMI(*MBB, MBB->end(), MIMD, MCID)(), MyMatches);

another alternative:
```
 auto BuildDiPc = [&](...) -> pair<> {
    MachineInstrBuilder MIB = BuildMI(...)();
  return {MIB->getDebugLoc(), MIB->getPCSections()}
  };

EXPECT_EQ({DL, PC}. BuildDiPc(*MBB, MBB->end(), MIMD, MCID));
```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130883



More information about the llvm-commits mailing list