2014-08-30 49 views
0

由于构建时间太长,我无法充分缩小导致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

一组选项似乎共享显着的功能重叠。如果这在编译过程中可能导致了分段错误,我应该保留哪些选项以及为了最大化性能而应该选择哪个选项?

+0

尝试用'-pipe -march = native -O2'建立并查看是否有效。如果是,请尝试使用“-O3”,然后添加任何你想要的内容,直到它再次出现中断为止。并且请不要告诉我们你的构建时间太长,你不能这样做......如果你的构建时间很长,那么你可能并不需要这么多深奥的选项。 :) – 2014-08-30 07:26:59

+0

段错误是当你运行编译器,而不是当你运行你的代码时,不是吗? – Christophe 2014-08-30 08:00:31

+0

@Christophe oh sry,我的不好 – bolov 2014-08-30 08:02:48

回答

相关问题