gpt4 book ai didi

c - 处理器是否在函数指针表上执行推测执行?

转载 作者:太空宇宙 更新时间:2023-11-04 03:17:59 25 4
gpt4 key购买 nike

如果有一个函数指针表,并且索引作为易失变量提供,生成的代码是否会被认为是无分支的,这会避免推测执行,或者处理器是否仍会尝试推测最可能的分支?

作为一个简单的例子,考虑:

if (input_value > thresh) {
do_this();
} else {
do_that();
}

我预测具有推测执行的 CPU 将尝试它认为最有可能执行上述代码的分支。

但是如果转换成跳表:

this_or_that[input > thresh]();

上面的代码还会触发推测执行吗?

最佳答案

基于编译器生成的跳转表的共性,我认为如果 CPU 设计者未能通过此类表跟踪分支,那将是相当短视的。也就是说,并非所有 CPU 的能力都相同,因此您的里程可能会有所不同。

关于c - 处理器是否在函数指针表上执行推测执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49546306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com