我想研究L2缓存未命中对CPU功耗的影响。为了衡量这一点,我必须创建一个逐渐增加工作集大小的基准,以便核心活动(每个周期执行的微操作)和 L2 活动(每个周期的 L2 请求)保持不变,但 L2 未命中与 L2 请求的比率增加。
谁能告诉我一个强制“N”次二级缓存未命中的 C 程序示例?
我正在尝试使用 LLVM 构建一个简单版本的代码分析工具。
我有一些 .ll 文件,其中包含某些程序的中间 LLVM 表示。
如何从 LLVM 的中间表示中获取在程序的每个函数中执行的函数调用列表?
我拥有的输入参数是代表程序的 LLVM: Module 类的一个实例。然后,我使用函数 getFunctionList () 获取程序中存在的函数列表。
void getFunctionCalls(const Module *M)
{
// Iterate functions in program
for (auto curFref = M->getFunctionList().begin(), endFref = M->getFunctionList().end();
curFref != endFref; ++curFref) {
// For each function
// Get list of function calls
}
}
Run Code Online (Sandbox Code Playgroud)