如何禁用 LLVM 中的优化
Posted
技术标签:
【中文标题】如何禁用 LLVM 中的优化【英文标题】:How to disable an optimization in LLVM 【发布时间】:2012-07-31 20:20:42 【问题描述】:我正在使用带有 -O4 优化的 clang
编译代码。但是,我想禁用函数的内联。我有自己的 LLVM 通行证,可以将一些代码注入到生成的代码中。通过后,我想启用函数的内联。我该怎么做。
【问题讨论】:
您不能确保您的通行证是第一批优化通行证之一吗? IE。确保它在 函数内联传递之前运行? 【参考方案1】:您可以使用 opt which says 它可以以任何顺序运行通行证。
clang -c main.cpp -O0 -emit-llvm | opt -load yourplugin -yourpass -inline
【讨论】:
【参考方案2】:如果您正在破解 clang,您可以在文件 clang/lib/CodeGen/BackendUtil.cpp
中更改通行证顺序。您应该在方法 CreatePasses()
内联之前插入您的通行证。
【讨论】:
以上是关于如何禁用 LLVM 中的优化的主要内容,如果未能解决你的问题,请参考以下文章