【发布时间】:2009-11-17 08:00:18
【问题描述】:
从这个问题开始:how-do-i-check-if-gcc-is-performing-tail-recursion-optimization,我注意到使用带有 -fPIC 的 gcc 似乎破坏了这种优化。我正在创建一个共享库,但我似乎不需要 -fPIC 选项。
好吧,我的问题是,为什么 -fPIC 会改变 gcc 优化?出于任何原因我需要保留 -fPIC 吗?
【问题讨论】:
-
您能否提供重现您所描述行为的方法?听起来不太对劲。但是,
gcc实现中的一些内部约束可能会强制禁用 PIC 模式下的优化... -
GCC 的哪个版本?哪个平台? “-fPIC”有时会将生成的代码更改为“位置无关代码”(因此是 PIC),这意味着它可能不同于“位置相关代码”。您使用什么选项?
-
啊,在我们的 64 位服务器上,gcc 说需要 -fPIC。
标签: c optimization gcc tail-call-optimization