Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“机器值类型”是什么;其他";llvm SDV节点中的平均值_Llvm_Instructions_Llvm Ir_Machine Instruction - Fatal编程技术网

“机器值类型”是什么;其他";llvm SDV节点中的平均值

“机器值类型”是什么;其他";llvm SDV节点中的平均值,llvm,instructions,llvm-ir,machine-instruction,Llvm,Instructions,Llvm Ir,Machine Instruction,我试图更深入地理解llvm中的指令选择过程,为此,我正在一步一步地调试CODEGENANDIMITDAG函数。我在联合收割机步骤之前打印了一个小功能(见下文),这是上述功能的第一步。在图中,我看到了蓝色的线条,它们似乎总是指向“ch”,我认为这意味着“其他”机器值类型。我不明白的是蓝线的意思。。。这种依赖性是什么?那么,我对“ch”的理解正确吗?是“其他”吗 蓝色虚线箭头表示 指示并执行它们之间的特定命令。例如 可能访问相同内存的存储和加载不应重新排序, 尽管它们之间没有数据依赖关系。在这种情况

我试图更深入地理解llvm中的指令选择过程,为此,我正在一步一步地调试CODEGENANDIMITDAG函数。我在联合收割机步骤之前打印了一个小功能(见下文),这是上述功能的第一步。在图中,我看到了蓝色的线条,它们似乎总是指向“ch”,我认为这意味着“其他”机器值类型。我不明白的是蓝线的意思。。。这种依赖性是什么?那么,我对“ch”的理解正确吗?是“其他”吗

蓝色虚线箭头表示 指示并执行它们之间的特定命令。例如 可能访问相同内存的存储和加载不应重新排序, 尽管它们之间没有数据依赖关系。在这种情况下,蓝色 箭头用于表示这种隐藏的依赖关系。这些蓝色的箭 消费
其他
类型的链值(ch)

每个DAG都有一个特殊的
EntryToken
,类型为
Other
,提供 基本块的初始链值

考虑下面的例子。注意load和store之间的控件依赖关系(蓝色箭头),因为它们被允许指向相同的内存。还要注意红色箭头(胶水),它将两个指令粘在一起

int foo(int *a, int *b) {
  a[0] = 42;
  return b[0];
}

有意义,但是关于copyToReg(0x2efac80-加载指令之后)与store指令之间的蓝线?加载指令确实取决于存储,但加载后的指令需要取决于加载,而不是存储…我也在试图理解这些节点、行和类型,请提供任何有用的链接或关键字。提前谢谢。您可以查看llvm代码中的下一个文件:include/llvm/CodeGen/ISDOpcodes.h-这里有一些解释。