如何在LLVM tablegen中进行匹配?

如何在LLVM tablegen中进行匹配?,llvm,Llvm,我正在努力学习tablgen。但是我在这方面有困难。我用教程来做。我被卡住了。从这张图片中,我无法理解tablegen是如何进行匹配的,即从一种dag转换为另一种dag。有人能解释一下吗 非常感谢您的帮助。我不确定该教程的目的是什么,但要点是,TableGen中定义的每个指令模式都与DAG的“片段”匹配。LLVM将首先尝试更大、更复杂的模式(因为这对应于一条指令同时做很多事情的情况)。重复执行此操作,直到整个DAG只包含机器指令,或者发生“选择失败”(即没有模式可以匹配当前DAG节点)。有关此主

我正在努力学习
tablgen
。但是我在这方面有困难。我用教程来做。我被卡住了。从这张图片中,我无法理解
tablegen
是如何进行匹配的,即从一种dag转换为另一种dag。有人能解释一下吗


非常感谢您的帮助。

我不确定该教程的目的是什么,但要点是,TableGen中定义的每个指令模式都与DAG的“片段”匹配。LLVM将首先尝试更大、更复杂的模式(因为这对应于一条指令同时做很多事情的情况)。重复执行此操作,直到整个DAG只包含机器指令,或者发生“选择失败”(即没有模式可以匹配当前DAG节点)。有关此主题的更多详细信息,请查看Eli Bendersky的博文:我不确定该教程试图达到什么目的,但其要点是,TableGen中定义的每个指令模式都与DAG的“片段”匹配。LLVM将首先尝试更大、更复杂的模式(因为这对应于一条指令同时做很多事情的情况)。重复执行此操作,直到整个DAG仅包含机器指令,或者发生“选择失败”(即没有与当前DAG节点匹配的模式)。有关此主题的更多详细信息,请查看Eli Bendersky的博客文章: