[PATCH] D33031: [GlobalISel][TableGen] Fix handling of default operands

Diana Picus via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 10 00:19:13 PDT 2017


rovka added inline comments.


================
Comment at: utils/TableGen/GlobalISelEmitter.cpp:1519
-  for (unsigned I = 0; I < DstINumUses &&
-                       DstINumUses > Dst->getNumChildren() + NumDefaultOperands;
-       ++I) {
----------------
Hi Daniel,

Did you have some case in mind when counting things this way? It seems that for ARM instructions the predicate operand (which expands to 2 values) should be counted as only 1 operand. I tried to concoct other complicated cases with default operands but my TableGen-fu isn't strong enough and I couldn't find anything relevant in the existing instruction descriptions for any target (but I may have been looking at it the wrong way).

I ran TableGen with/without this patch for a lot of targets (including some that don't support GlobalISel yet) and the only one where I see any difference in the generated code or in the -warn-on-skipped-patterns -debug-only=gisel-emitter is ARM.

Please let me know if I'm missing something.


https://reviews.llvm.org/D33031





More information about the llvm-commits mailing list