diff options
| author | Craig Topper <craig.topper@sifive.com> | 2024-11-17 19:11:28 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-17 19:11:28 -0800 |
| commit | 92ffefe3510e0cbf5b9ded0f2e2caff4e6803f17 (patch) | |
| tree | 4dec2b100a9052dba6946c39d685b4a20cdf6b2b /llvm/utils/TableGen/DAGISelMatcherEmitter.cpp | |
| parent | 61d1b7c5eded9b0e6e8adcd74cf181b3458656ed (diff) | |
[Tablegen] Add more comments for result numbers to DAGISelEmitter.cpp (#116533)
Print what result number the Emit* nodes are storing their results in.
This makes it easy to track the inputs of later opcodes that consume
these results.
Diffstat (limited to 'llvm/utils/TableGen/DAGISelMatcherEmitter.cpp')
| -rw-r--r-- | llvm/utils/TableGen/DAGISelMatcherEmitter.cpp | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp index 06eb1f709c56..74c399ee4231 100644 --- a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp +++ b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp @@ -798,6 +798,8 @@ unsigned MatcherTableEmitter::EmitMatcher(const Matcher *N, break; } unsigned Bytes = OpBytes + EmitSignedVBRValue(Val, OS); + if (!OmitComments) + OS << " // " << Val << " #" << cast<EmitIntegerMatcher>(N)->getResultNo(); OS << '\n'; return Bytes; } @@ -818,7 +820,10 @@ unsigned MatcherTableEmitter::EmitMatcher(const Matcher *N, OpBytes = EmitVBRValue(VT, OS) + 1; break; } - OS << Val << ",\n"; + OS << Val << ','; + if (!OmitComments) + OS << " // #" << cast<EmitStringIntegerMatcher>(N)->getResultNo(); + OS << '\n'; return OpBytes + 1; } @@ -851,24 +856,31 @@ unsigned MatcherTableEmitter::EmitMatcher(const Matcher *N, break; } if (Reg) { - OS << getQualifiedName(Reg->TheDef) << ",\n"; + OS << getQualifiedName(Reg->TheDef); } else { OS << "0 "; if (!OmitComments) OS << "/*zero_reg*/"; - OS << ",\n"; } + + OS << ','; + if (!OmitComments) + OS << " // #" << Matcher->getResultNo(); + OS << '\n'; return OpBytes + 1; } case Matcher::EmitConvertToTarget: { - unsigned Slot = cast<EmitConvertToTargetMatcher>(N)->getSlot(); - if (Slot < 8) { - OS << "OPC_EmitConvertToTarget" << Slot << ",\n"; - return 1; - } - OS << "OPC_EmitConvertToTarget, " << Slot << ",\n"; - return 2; + const auto *CTTM = cast<EmitConvertToTargetMatcher>(N); + unsigned Slot = CTTM->getSlot(); + OS << "OPC_EmitConvertToTarget"; + if (Slot >= 8) + OS << ", "; + OS << Slot << ','; + if (!OmitComments) + OS << " // #" << CTTM->getResultNo(); + OS << '\n'; + return 1 + (Slot >= 8); } case Matcher::EmitMergeInputChains: { @@ -914,7 +926,8 @@ unsigned MatcherTableEmitter::EmitMatcher(const Matcher *N, OS << "OPC_EmitNodeXForm, " << getNodeXFormID(XF->getNodeXForm()) << ", " << XF->getSlot() << ','; if (!OmitComments) - OS << " // " << XF->getNodeXForm()->getName(); + OS << " // " << XF->getNodeXForm()->getName() << " #" + << XF->getResultNo(); OS << '\n'; return 3; } |
