GCC:冲突的优化

GCC: conflicting optimizations

本文关键字:优化 冲突 GCC      更新时间:2023-10-16

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

Generic:很可能是不相关的,这里是完整性

  • -管道
  • -march=本地
  • -O3
  • -msse2
  • -mfpmath=sse
  • -ffast数学

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

  • -防洪交汇处
  • -溢流条形矿
  • -防洪堤

石墨:不太确定

  • -fgraphite同一性

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

  • -防洪窝优化

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

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

选项集似乎有显著的功能重叠。如果这可能导致编译过程中出现分段错误,为了最大限度地提高性能,我应该保留哪些选项,剔除哪些选项?

最后,以独占方式将segfault缩小到-ffast-math-floop-parallelize-all选项。这个问题与[4.8/4.9回归][石墨]具有-Ofast-floop并行…的分段故障相同。。。,并且应当在上游固定。由于修复程序是在6月29日推出的,而gcc 4.9.1是在7月16日发布的,它在4月进行了分支,因此它不包括在4.8.3和4.9.1版本中。