[PATCH] D86203: [GlobalISel][TableGen] Add handling of unannotated dst pattern ops

Bjorn Pettersson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 5 05:33:01 PDT 2020


bjope added a comment.

One thing that I've not understood is how GlobalISel is different from the legacy ISel here. Apparently it isn't necessary to annotate things with the legacy ISel today? So is legacy ISel doing the same thing that this patch suggests to do also for GlobalISel, or why do we suddenly need to update all patterns now (I mean, somehow it has worked fine in the past, right)?

Seems a bit tedious (also from a maintenance perspective) to keep all patterns up-to-date with the instruction definition if the goal is that they should match (which I think has been the case when the annotation has been omitted in the past). If I've for example wanted to restrict an instruction to a more narrow register class, then it's been possible to make a single update in the instruction definition in the past. But now I'd have to find all the patterns using that instruction to also change the annotation? Or maybe it's worse when going in the opposite direction and I want to use a more general register class, then I for sure need to make updates all over the place to make it work.

If annotations are needed, then maybe we need some kind of debug tool to find any inconsistencies? Or is there already an easy way to spot such things?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86203



More information about the llvm-commits mailing list