GCC 14.1.1 Status Report (2024-05-07)

2024-05-07 Thread Richard Biener via Gcc
Status
==

The GCC 14.1 release tarballs have been created, the releases/gcc-14
branch is open again for regression and documentation bugfixing.
GCC 14.2 can be expected in about two months unless something serious
changes the plans.


Quality Data


Priority  #   Change from last report
---   ---
P10
P2  605-   1
P3   72+  15 
P4  217-   2
P5   25   
---   ---
Total P1-P3 677+  14
Total   919+  12


Previous Report
===

https://gcc.gnu.org/pipermail/gcc/2024-April/243823.html


GCC 14.1 Released

2024-05-07 Thread Richard Biener via Gcc
The GCC developers are proud to announce a new major GCC release, 14.1.

The C frontend when targeting standards newer than C89 now considers
many non-standard constructs as errors that were previously only
warnings.  See https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors
for more details.  C23 _BitInt Bit-precise integer types are now
supported, for now only on IA-32, x86-64 and AArch64.

The C++ frontend now implements several C++26 features, some
missing C++23 bits and defect report resolutions.  Diagnostics involving
C++ templates now quote source from the instantiation context.

The libstdc++exp.a library now includes all symbols for the
Filesystem TS and the experimental symbols for the C++23
std::stacktrace class, so -lstdc++exp can be used instead of
-lstdc++fs. The libstdc++_libbacktrace.a library is not longer
installed. Improved experimental support for C++20, C++23, and C++26.
Updated parallel algorithms that are compatible with oneTBB.

GCC now implements the Clang extensions __has_feature and __has_extension
for the C family language frontends.

The Fortran frontend now accepts -std=f2023 in preparation of support
of Fortran 2023.

GCC now has a new -fhardened flag to enable security hardening features
available on the target platform.

OpenMP and OpenACC offloading is made easier by no longer requiring
explicit passing of -lm or -lgfortran to the offload device linker.
The AMD GCN offload target gained support for select RDNA2 and RDNA3
graphics cards.

The vectorizer can now vectorize loops which contain alternate exits
such as via break statements and can now target RISC-V with a comparable
feature set than other main architectures.  The #pragma GCC novector pragma
can be used to disable vectorization of annotated loops.

GCC's Static Analyzer has been greatly improved, still mainly targeting
C code.

The AArch64 target supports new hardware features like SME and SME2 and
can now handle GCCs function multiversioning.

The IA-32/x86-64 target can now target AVX10.1 and APX supporting CPUs
and can target recent and future announced CPU families.

The LoongArch port got support for vector ISA extensions and the
Ada and D frontends.

The RISC-V port now enables SLP and loop vectorization when the vector
extension is enabled and supports vector intrinsics as of the RVV 1.0
specification.

Some code that compiled successfully with older GCC versions might require
source changes, see http://gcc.gnu.org/gcc-14/porting_to.html for
details.

See

  https://gcc.gnu.org/gcc-14/changes.html

for more information about changes in GCC 14.1.

This release is available from the WWW and FTP servers listed here:

 https://sourceware.org/pub/gcc/releases/gcc-14.1.0/
 https://gcc.gnu.org/mirrors.html

The release is in the gcc-14.1.0/ subdirectory.

If you encounter difficulties using GCC 14.1, please do not contact me
directly.  Instead, please visit http://gcc.gnu.org for information about
getting help.

Driving a leading free software project such as GCC would not be possible
without support from its many contributors.
Not only its developers, but especially its regular testers and users which
contribute to its high quality.  The list of individuals
is too large to thank individually!


Re: Updated Sourceware infrastructure plans

2024-05-07 Thread Joseph Myers via Gcc
On Thu, 2 May 2024, Fangrui Song wrote:

> > On the other hand, GitHub structures the concept of pull requests 
> > around branches and enforces a branch-centric workflow. A pull request 
> > centers on the difference (commits) between the base branch and the 
> > feature branch. GitHub does not employ a stable identifier for commit 
> > tracking. If commits are rebased, reordered, or combined, GitHub can 
> > easily become confused.

I'd say we have two kinds of patch submission (= two kinds of pull request 
in a pull request workflow) to consider in the toolchain, and it's 
important that a PR-based system supports both of them well (and supports 
a submission changing from one kind to the other, and preferably 
dependencies between multiple PRs where appropriate).

* Simple submissions that are intended to end up as a single commit on the 
mainline (squash merge).  The overall set of changes to be applied to the 
mainline is subject to review, and the commit message also is subject to 
review (review of commit messages isn't always something that PR-based 
systems seem to handle that well).  But for the most part there isn't a 
need to rebase these - fixes as a result of review can go as subsequent 
commits on the source branch (making it easy to review either the 
individual fixes, or the whole updated set of changes), and merging from 
upstream into that branch is also OK.  (If there *is* a rebase, the 
PR-based system should still preserve the history of and comments on 
previous versions, avoid GCing them and avoid getting confused.)

* Complicated submissions of patch series, that are intended to end up as 
a sequence of commits on the mainline (non-squash merge preserving the 
sequence of commits).  In this case, fixes (or updating from upstream) 
*do* involve rebases to show what the full new sequence of commits should 
be (and all individual commits and their commit messages should be subject 
to review, not just the overall set of changes to be applied).  Again, 
rebases need handling by the system in a history-preserving way.

GitHub (as an example - obviously not appropriate itself for the 
toolchain) does much better on simple submissions (either with squash 
merges, or with merges showing the full history if you don't care about a 
clean bisectable history), apart from review of commit messages, than it 
does on complicated submissions or dependencies between PRs (I think 
systems sometimes used for PR dependencies on GitHub may actually be 
third-party add-ons).

Pull request systems have obvious advantages over mailing lists for 
tracking open submissions - but it's still very easy for an active project 
to end up with thousands of open PRs, among which it's very hard to find 
anything.

-- 
Joseph S. Myers
josmy...@redhat.com



Re: Updated Sourceware infrastructure plans

2024-05-07 Thread Joseph Myers via Gcc
On Sat, 4 May 2024, Ben Boeckel via Gcc wrote:

>   - every push is stored in a ghostflow-director-side unique ref
> (`refs/mr/ID/heads/N` where `N` is an incrementing integer) to avoid
> forge-side garbage collection (especially problematic on Github;
> I've not noticed GitLab collecting so eagerly)

That's the sort of thing I was talking about for ensuring all the versions 
of every pull request remain available - it doesn't need anything more 
than providing such refs (that someone can get with git clone --mirror if 
they wish).  (And there has been and is work on ensure git scales well to 
repositories with millions of refs, such as you get with PR-based systems 
storing all PRs or all versions of PRs as refs.)

-- 
Joseph S. Myers
josmy...@redhat.com



Re: Tests of gcc development beyond its testsuite (in this case, for gfortran)

2024-05-07 Thread Toon Moene

On 5/7/24 00:02, Toon Moene wrote:

OK, perhaps on the aarch64 I need the following option to make the 
comparison fair:


‘rdma’

     Enable Round Double Multiply Accumulate instructions. This is on by 
default for -march=armv8.1-a.


I.e., -mno-rdma

(I hope that's correct - I'll will try that when the Sun rises again and 
I have some power to run the AArch64 machine ...).


Well, I did two independent runs with gfortran-13.2 and the following 
options:


-O3 -march=armv8.1-a+rdma

and

-O3 -march=armv8.1-a+nordma

No difference in the number of error runs exceeding the prescribed 
thresholds.


So, unless I made a mistake in the option specification (or the compiler 
silently ignored them because they were not applicable to my machine - 
ugh), the cause of the problem lies elsewhere.


Kind regards,

--
Toon Moene - e-mail: t...@moene.org - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands



Re: Tests of gcc development beyond its testsuite (in this case, for gfortran)

2024-05-07 Thread Andrew Pinski via Gcc
On Tue, May 7, 2024 at 11:31 AM Toon Moene  wrote:
>
> On 5/7/24 00:02, Toon Moene wrote:
>
> > OK, perhaps on the aarch64 I need the following option to make the
> > comparison fair:
> >
> > ‘rdma’
> >
> >  Enable Round Double Multiply Accumulate instructions. This is on by
> > default for -march=armv8.1-a.
> >
> > I.e., -mno-rdma
> >
> > (I hope that's correct - I'll will try that when the Sun rises again and
> > I have some power to run the AArch64 machine ...).
>
> Well, I did two independent runs with gfortran-13.2 and the following
> options:
>
> -O3 -march=armv8.1-a+rdma
>
> and
>
> -O3 -march=armv8.1-a+nordma
>
> No difference in the number of error runs exceeding the prescribed
> thresholds.
>
> So, unless I made a mistake in the option specification (or the compiler
> silently ignored them because they were not applicable to my machine -
> ugh), the cause of the problem lies elsewhere.


AARCH64 armv8-a has FMA as part of its base ISA.
So you want to try with `-ffp-contract=off` instead.
RDMA turns on/off instructions which are not used by the
auto-vectorizer (yet) and used by intrinsics for them (If I read the
code correctly).

Thanks,
Andrew Pinski

>
> Kind regards,
>
> --
> Toon Moene - e-mail: t...@moene.org - phone: +31 346 214290
> Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
>


Re: Tests of gcc development beyond its testsuite (in this case, for gfortran)

2024-05-07 Thread Toon Moene

On 5/7/24 20:35, Andrew Pinski wrote:


On Tue, May 7, 2024 at 11:31 AM Toon Moene  wrote:


On 5/7/24 00:02, Toon Moene wrote:


OK, perhaps on the aarch64 I need the following option to make the
comparison fair:

‘rdma’

  Enable Round Double Multiply Accumulate instructions. This is on by
default for -march=armv8.1-a.

I.e., -mno-rdma

(I hope that's correct - I'll will try that when the Sun rises again and
I have some power to run the AArch64 machine ...).


Well, I did two independent runs with gfortran-13.2 and the following
options:

-O3 -march=armv8.1-a+rdma

and

-O3 -march=armv8.1-a+nordma

No difference in the number of error runs exceeding the prescribed
thresholds.

So, unless I made a mistake in the option specification (or the compiler
silently ignored them because they were not applicable to my machine -
ugh), the cause of the problem lies elsewhere.



AARCH64 armv8-a has FMA as part of its base ISA.
So you want to try with `-ffp-contract=off` instead.
RDMA turns on/off instructions which are not used by the
auto-vectorizer (yet) and used by intrinsics for them (If I read the
code correctly).


Ah, thanks - I'll try that tomorrow.

--
Toon Moene - e-mail: t...@moene.org - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands



Products

2024-05-07 Thread Diane Fralano via Gcc
Hello,

We would like to purchase your product. Would you mind sharing 
your catalog with us?

Thank you!

Diane