https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125717
--- Comment #2 from Harald Anlauf <anlauf at gcc dot gnu.org> --- (In reply to Richard Biener from comment #1) > The auto-parallelizer has not changed, it's unmaintained. IIRC the issue is > that the dependences idea of the auto-parallelizer and do concurrent are not > compatible. In principle the frontend could be more selective with setting > the flag, but DO CONCURRENT does not mean there are no dependences at all(?) F2023: 11.1.7.4.3 The execution cycle (3) The block of a DO CONCURRENT construct is executed for every active combination of the index-name values. Each execution of the block is an iteration. The executions may occur in any order. There is a couple of restrictions in 11.1.7.5 Additional semantics for DO CONCURRENT constructs and at the end: NOTE 3 The restrictions on the statements in a DO CONCURRENT construct are designed to ensure there are no data dependencies between iterations of the loop. This permits code optimizations that might otherwise be difficult or impossible because they would depend on properties of the program not visible to the compiler.
