0
我经常对SelectionDAG和SelectionDAGISel之间的关系以及其他一些相关类如SelectionDAGLowering之间的关系感到困惑。了解他们在高层的关系将非常有用。SelectionDAG和SelectionDAGISel之间的关系
我经常对SelectionDAG和SelectionDAGISel之间的关系以及其他一些相关类如SelectionDAGLowering之间的关系感到困惑。了解他们在高层的关系将非常有用。SelectionDAG和SelectionDAGISel之间的关系
首先,我想给你一对夫妇奇妙的联系,以了解有关指令选择:
简而言之,SelectionDAG
是一种内部具有明确指令依赖性的表示。它用于指令选择和调度(DAG example)。
SelectionDAGISel
是独立于机器的LLVM IR转换成依赖机器的表示(MachineFunction
,MachineBasicBlock
,MachineInstr
)一通,即通构建SelectionDAG
并执行指令选择和调度。它被特定的目标分类,例如ARMDAGToDAGISel
。
SelectionDAGBuilder
是从LLVM IR构建SelectionDAG
的类。我不确定SelectionDAGLowering
。它似乎是SelectionDAGBuilder
类的旧名称。