在 Xcode 中编译我们的应用程序时,我们目前面临链接器崩溃:
register allocation failed: maximum depth for recoloring reached. Use -fexhaustive-register-search to skip cutoffs
因此我们尝试添加:
-fexhaustive-register-search
到我们的链接器标志,但它不起作用,我们得到这个:
unknown argument: '-fexhaustive-register-search'
那我们能做什么呢?
最佳答案
您需要的标志由 llc
使用,通过语言前端传递。例如:
clang++ -mllvm -exhaustive-register-search ...
引用资料
根据错误消息搜索
clang '-fexhaustive-register-search'
,将我们带到此处:https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20140407/212477.html
点击 RegAllocGreedy.cpp 源代码的嵌入式链接,并跳转到最新版本,将我们带到这里:
https://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp?view=markup
在该文件中搜索会发现
exhaustive-register-search
参数,并且在原始存档邮件中有一条评论建议在原始文件中使用-f
错误消息已删除(因此消息是错误的)We don't normally name these things with a 'f' in front inside LLVM proper. That's a Clang thing
说得好!
我会删除它。
(因此,命令行参数变成了
-exhaustive-register-search
,但是同一文件下的错误消息仍然是-fexhaustive-register-search
)使用
clang 'exhaustive-register-search'
搜索新参数将我们带到这里 https://github.com/rust-lang/rust/issues/26338这表明它是代码生成后端llc
的参数,这是有道理的更多的搜索最终带给我们 back to SO ,给我们正确的咒语。
关于c++ - Xcode - 如何使用 "-fexhaustive-register-search"进行编译 - 链接器崩溃需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47515936/