• ozymandias117@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    4 hours ago

    -O2 vs -O3 adds -fgcse-after-reload -fipa-cp-clone -floop-interchange -floop-unroll-and-jam -fpeel-loops -fpredictive-commoning -fsplit-loops -fsplit-paths -ftree-loop-distribution -ftree-partial-pre -funswitch-loops -fvect-cost-model=dynamic -fversion-loops-for-strides

    I don’t think any of these optimizations require more modern hardware?

    • themoken@startrek.website
      link
      fedilink
      arrow-up
      2
      ·
      3 hours ago

      Right. GCC -f optimizations are basically like “how hard are we going to try to be clever” and are, I believe, orthogonal to the actual instructions used. Machine dependent args start with -m, like -march or -mavx etc.

      • ozymandias117@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 hours ago

        I was reasonably certain, but left it open in case OP knew of some edge case where flags that are intended to be machine independent caused bugs on different architectures