From f9139d78f55e37267faa09b8bebf3b648880fd0d Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Tue, 2 Sep 2014 19:18:52 +0000 Subject: [PATCH] Add note to documentation about machine node chains. I've been assuming chain operands were always the first operand, since the documentation says this. I was confused about why they were missing after instruction selection. Apparently the convention changes to using the last operand for MachineSDNodes and I've never noticed before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216934 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/CodeGenerator.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/CodeGenerator.rst b/docs/CodeGenerator.rst index 5736e4378d7..facedc32a4f 100644 --- a/docs/CodeGenerator.rst +++ b/docs/CodeGenerator.rst @@ -769,7 +769,9 @@ provide an ordering between nodes that have side effects (such as loads, stores, calls, returns, etc). All nodes that have side effects should take a token chain as input and produce a new one as output. By convention, token chain inputs are always operand #0, and chain results are always the last value -produced by an operation. +produced by an operation. However, after instruction selection, the +machine nodes have their chain after the instruction's operands, and +may be followed by glue nodes. A SelectionDAG has designated "Entry" and "Root" nodes. The Entry node is always a marker node with an Opcode of ``ISD::EntryToken``. The Root node is -- 2.34.1