由于构建时间太长,我无法充分缩小导致internal compiler error: Segmentation fault
的罪魁祸首(尽管我设法排除了LTO)。目前在GCC 4.8.2版本,4.8.3,4.9.1和,而不是一个错误,我怀疑剩下的各种优化策略之间的冲突:GCC:相互矛盾的优化
通用:最有可能无关,是为了完整性
- -pipe
- -march =天然
- -O3
- -msse2
- -mfpmath = SSE
- -ffast-数学
石墨:关于存储器访问
- -floop-交换
- -floop-带状矿
- -floop块
石墨循环优化:不真的很有把握
- -fgraphite身份
ISL:关于存储器访问和自动并行循环优化
- -floop巢-优化
石墨:循环优化关于自动并行
- -floop-parallelize-all
- -ftree-parallelize-loops = 2
一组选项似乎共享显着的功能重叠。如果这在编译过程中可能导致了分段错误,我应该保留哪些选项以及为了最大化性能而应该选择哪个选项?
尝试用'-pipe -march = native -O2'建立并查看是否有效。如果是,请尝试使用“-O3”,然后添加任何你想要的内容,直到它再次出现中断为止。并且请不要告诉我们你的构建时间太长,你不能这样做......如果你的构建时间很长,那么你可能并不需要这么多深奥的选项。 :) – 2014-08-30 07:26:59
段错误是当你运行编译器,而不是当你运行你的代码时,不是吗? – Christophe 2014-08-30 08:00:31
@Christophe oh sry,我的不好 – bolov 2014-08-30 08:02:48