繁体   English   中英

是否可以为链接器开发 GCC 插件?

[英]Is it possible to develop GCC plugins for the linker?

我正在开发一个GCC 插件,用于在每个函数的特定位置插入自定义汇编指令,例如在最开始或就在 return 语句之前。 该插件注册为在 RTL 传递期间执行,并且原则上工作正常。

现在我的问题是,使用这种方法我只能检测我有完整源代码可用的程序,即没有库,因为那些只链接到应用程序中而不是由我编译(这只是关于静态链接;动态链接是一个不同的主题)。

有没有办法使用自定义插件在链接器级别执行优化,类似于我在编译器级别所做的工作? 我知道在链接期间会进行某些优化,但是我无法找到有关我想要做的事情是否/如何可能的任何资源。

谢谢!

在链接器级别进行优化有两种可能性:
第一个是lto。 https://gcc.gnu.org/wiki/LinkTimeOptimization 在这种情况下,它将是一个将在一个模块上调用的 rtl pass。
如果您的目标支持,则第二个选项是使用链接器松弛。 根据放松信息,您可以插入或删除指令

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM