海湾合作委员会:相互冲突的优化

时间:2014-08-30 07:19:12

标签: c++ gcc optimization

由于构建时间较长,我无法充分缩小导致internal compiler error: Segmentation fault的罪魁祸首(尽管我已经设法排除了LTO)。出现在GCC版本4.8.2,4.8.3和4.9.1中,而不是我怀疑其余各种优化策略之间存在冲突的错误:

通用:很可能不相关,这里是为了完整性

  • -pipe
  • -march =天然
  • -O3
  • -msse2
  • -mfpmath = SSE
  • -ffast-数学

Graphite:关于内存访问的循环优化

  • -floop-交换
  • -floop条矿
  • -floop块

石墨:不太确定

  • -fgraphite同一性

ISL:关于内存访问和自动并行的循环优化

  • -floop巢-优化

Graphite:关于自动并行性的循环优化

  • -floop-并行化-所有
  • -ftree-并行化 - 环= 2

选项集似乎共享重要的功能重叠。如果在编译过程中可能导致分段错误,我应该保留哪些选项,哪些应该剔除以便最大限度地提高性能?

1 个答案:

答案 0 :(得分:0)

最后将segfault缩小到-ffast-math-floop-parallelize-all选项。此问题与[4.8/4.9 Regression] [graphite] Segmentation fault with -Ofast -floop-paralle...相同,应在上游修复。由于修复程序是在6月29日推出的,而gcc 4.9.1于7月16日发布,它在4月分支,它不包含在4.8.3和4.9.1版本中。