LLVM

  1. llvm/lib/Target/ISDOpcodes.h. The target-independent operators for a SelectionDAG are defined here.
  2. llvm/include/llvm/CodeGen/SelectionDAGNodes.h. SDNode class and derived classes are defined here.
  3. TokenFactor Node This node takes multiple tokens as input and produces a single token result. This is used to represent the fact that the operand operators are independent of each other.
  4. llvm/utils/TableGen/CodeGenInstruction.h/cpp. Instruction generated by tablegen.
  • Questions:

    1. What's the functionality of TokenFactor Node (except grouping Loads and Exports)? How does it interact with instruction scheduling, register allocating and alias analysis?