opaque函数调用在编译器优化中意味着什么?

问题描述 投票:0回答:1

opaque函数调用在编译器优化中意味着什么?我在Why do global variables cause trouble for compiler optimizations in function calls?中找到它,'opaque function call'真的让我感到困惑。似乎opaque函数调用是函数调用,编译器没有关于它的信息。但是这是什么意思?

c multithreading concurrency compiler-construction lock-free
1个回答
3
投票

正如您在问题中提到的,opaque函数调用是对函数的调用,编译器没有先前的信息。这意味着除了语言定义所保证的内容之外,编译器不能对此调用的副作用做出任何假设。例如,由于编译器没有其他信息,因此必须假定函数调用可以修改任何全局变量,并且必须确保在调用之前存储任何本地更改,它还必须重新加载调用后使用的全局变量。此外,编译器永远不会跳过调用此函数,即使调用它看起来没用,因为编译器无法确定这一点。

© www.soinside.com 2019 - 2024. All rights reserved.