Opened 8 years ago

Closed 7 years ago

#700 closed defect (fixed)

tree-loop-vectorization of gcc-6.x doesnt work with arb

Reported by: westram Owned by: westram
Priority: major Milestone:
Component: global Version: SVN
Keywords: Cc:

Description (last modified by westram)

Effects:

  • several unittests using ptserver fail (namely: MULTI_PROBE arb_test AWTC arb_probe) (./) fixed by [15590]
  • (AISC_ERRORs reported earlier were bogus-errors; caused by ptserver-crash or -malfunction?)
  • calling probe design from arb fails with same error (./) fixed by [15532]

Errors disappear by changing any single of the following conditions:

  • use DEBUG=1
  • use SANITIZE=all :?
  • use -O2 (-O3 fails)
  • use -fno-tree-loop-vectorize

Behaves wrong with gcc

  • 6.1.0
  • 6.2.0
  • 6.3.0

Vectorization has been disabled for these versions:


Notes:

  • many vectorizations (which succeeded for gcc-versions < 6) fail now ⇒ try to fix (not fixed; only added checks with exclusions)
    • 6.1: no failures outside of PROBE
    • 6.3: fails in SL/CONSENSUS
  • some new vectorizations succeed ⇒ need compiler-version-dependent vectorize-checks? (./) by [16628]
  • find code causing unittest-failures
    • attempt to disable vectorization only for single/some libs works if done in probe (./)
    • disabled tree loop vectorizer only for the function causing the crash (./); see [15590]
      (gcc 6.x optimization is broken for that code)

Change History (17)

comment:1 Changed 8 years ago by westram

  • Status changed from new to _started

comment:2 Changed 8 years ago by westram

  • Description modified (diff)

comment:3 in reply to: ↑ description Changed 8 years ago by westram

  • Description modified (diff)
  • Status changed from _started to assigned
  • Type changed from defect to verification
  • use -fno-tree-loop-vectorize

[14812] disables -ftree-loop-vectorize (which is triggered by -O3) for gcc 6.1.0 only, providing a workaround this problem.

It's unclear whether the wrong behavior is a bug in gcc or in arb:

  • if unittests keep failing in subsequent gcc-versions (6.1.1, 6.2.x, ..) ⇒ most likely a bug in arb
  • otherwise ⇒ bug in gcc 6.1.0

comment:4 Changed 8 years ago by westram

  • Summary changed from gcc-6.1.0-NDEBUG compiled build is broken to tree-loop-vectorization of gcc-6.1.0 doesnt work with arb

comment:5 Changed 8 years ago by westram

  • Status changed from assigned to _started

test with gcc 6.2.0

comment:6 Changed 8 years ago by westram

  • Component changed from No idea to global
  • Description modified (diff)
  • Priority changed from normal to major
  • Summary changed from tree-loop-vectorization of gcc-6.1.0 doesnt work with arb to tree-loop-vectorization of gcc-6.x doesnt work with arb
  • Type changed from verification to defect

comment:7 Changed 8 years ago by westram

  • Status changed from _started to assigned

comment:8 Changed 7 years ago by westram

  • fails for gcc 6.3.0 as well :/
  • [15488] adds error for future gcc-versions including pointer to this ticket

comment:9 Changed 7 years ago by westram

  • Status changed from assigned to _started

comment:10 Changed 7 years ago by westram

  • Description modified (diff)

comment:11 Changed 7 years ago by westram

  • Description modified (diff)

comment:12 Changed 7 years ago by westram

  • Description modified (diff)

comment:13 Changed 7 years ago by westram

  • Description modified (diff)

comment:14 Changed 7 years ago by westram

  • Description modified (diff)

comment:15 follow-up: Changed 7 years ago by westram

  • Status changed from _started to assigned

stop for now:

  • main problem fixed in branch 'vectorize'
  • checks for loop-optimization needs to get more fine-grained, because several optimizations fail with gcc 6.x and other optimizations succeed where they didn't with older gcc versions

comment:16 Changed 7 years ago by westram

  • Status changed from assigned to _started

comment:17 in reply to: ↑ 15 Changed 7 years ago by westram

  • Description modified (diff)
  • Resolution set to fixed
  • Status changed from _started to closed

Replying to westram:

  • checks for loop-optimization needs to get more fine-grained, because several optimizations fail with gcc 6.x and other optimizations succeed where they didn't with older gcc versions

fine grained loop-optimization-checks added with [16628]

Note: See TracTickets for help on using tickets.