[llvm] [X86] TableGen-erate SDNode descriptions (PR #168421)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 6 21:05:41 PST 2026


================
@@ -200,77 +250,130 @@ def X86vaargx32 :
                  SDNode<"X86ISD::VAARG_X32", SDT_X86VAARG,
                         [SDNPHasChain, SDNPMayLoad, SDNPMayStore,
                          SDNPMemOperand]>;
+
 def X86callseq_start :
                  SDNode<"ISD::CALLSEQ_START", SDT_X86CallSeqStart,
                         [SDNPHasChain, SDNPOutGlue]>;
 def X86callseq_end :
                  SDNode<"ISD::CALLSEQ_END",   SDT_X86CallSeqEnd,
                         [SDNPHasChain, SDNPOptInGlue, SDNPOutGlue]>;
 
+// These operations represent an abstract X86 call
+// instruction, which includes a bunch of information.  In particular the
+// operands of these node are:
+//
+//     #0 - The incoming token chain
+//     #1 - The callee
+//     #2 - The number of arg bytes the caller pushes on the stack.
+//     #3 - The number of arg bytes the callee pops off the stack.
+//     #4 - The value to pass in AL/AX/EAX (optional)
+//     #5 - The value to pass in DL/DX/EDX (optional)
+//
+// The result values of these nodes are:
+//
+//     #0 - The outgoing token chain
+//     #1 - The first register result value (optional)
+//     #2 - The second register result value (optional)
+//
 def X86call    : SDNode<"X86ISD::CALL",     SDT_X86Call,
                         [SDNPHasChain, SDNPOutGlue, SDNPOptInGlue,
                          SDNPVariadic]>;
 
+// Pseudo for a OBJC call that gets emitted together with a special
+// marker instruction.
 def X86call_rvmarker  : SDNode<"X86ISD::CALL_RVMARKER",     SDT_X86Call,
                         [SDNPHasChain, SDNPOutGlue, SDNPOptInGlue,
                          SDNPVariadic]>;
 
+// Psuedo for a call to a global address that must be called via a memory
----------------
topperc wrote:

```suggestion
// Pseudo for a call to a global address that must be called via a memory
```

https://github.com/llvm/llvm-project/pull/168421


More information about the llvm-commits mailing list