Commit graph

210091 commits

Author SHA1 Message Date
GCC Administrator
5123cfa629 Daily bump. 2024-04-25 00:16:34 +00:00
Patrick Palka
26a3edbe23 c++/modules testsuite: restrict expensive pr99023 test
The pr99023 testcase uses --param=ggc-min-expand=0 which forces a GC
during every collection point and consequently is very slow to run,
and ends up being the main bottleneck of the modules.exp testsuite.

So this patch restricts this test to run once, in C++20 mode, instead of
multiple times (C++17, C++20 and C++23 mode by default).  After this
patch the modules.exp testsuite finishes in 3m instead of 3m40s with -j8
on my machine.

gcc/testsuite/ChangeLog:

	* g++.dg/modules/pr99023_a.X: Run only in C++20 mode.
	* g++.dg/modules/pr99023_b.X: Likewise.

Reviewed-by: Jason Merrill <jason@redhat.com>
2024-04-24 17:51:54 -04:00
Patrick Palka
0844170e9e c++: constexpr union member access folding [PR114709]
The object/offset canonicalization performed in cxx_fold_indirect_ref
is undesirable for union member accesses because it loses information
about the member being accessed which we may later need to diagnose an
inactive-member access.  So this patch restricts the canonicalization
accordingly.

	PR c++/114709

gcc/cp/ChangeLog:

	* constexpr.cc (cxx_fold_indirect_ref): Restrict object/offset
	canonicalization to RECORD_TYPE member accesses.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp0x/constexpr-union8.C: New test.

Reviewed-by: Jason Merrill <jason@redhat.com>
2024-04-24 17:49:56 -04:00
Jakub Jelinek
97a54c05b8 v2: DOCUMENTATION_ROOT_URL vs. release branches [PR114738]
This patch moves the documentation root URL infix for release branches
from get_option_url/make_doc_url to configure, such that only the default
changes and when users specify a custom documentation root URL, they don't
have to add gcc-MAJOR.MINOR.0 subdirectories for release branches.

Tested by checking
../configure --disable-bootstrap --enable-languages=c --disable-multilib
built trunk on
void
foo (int x)
{
  __builtin_printf ("%ld\n", x);
}
testcase and looking for the URL in there, then repeating that after
changing gcc/BASE-VER to 14.1.0 and again after changing it to 14.1.1,
plus normal bootstrap/regtest.

2024-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR other/114738
	* opts.cc (get_option_url): Revert 2024-04-17 changes.
	* gcc-urlifier.cc: Don't include diagnostic-core.h.
	(gcc_urlifier::make_doc_url): Revert 2024-04-17 changes.
	* configure.ac (documentation-root-url): On release branches
	append gcc-MAJOR.MINOR.0/ to the default DOCUMENTATION_ROOT_URL.
	* doc/install.texi (--with-documentation-root-url=): Document
	the change of the default.
	* configure: Regenerate.
2024-04-24 18:29:12 +02:00
Pan Li
bc17a92380 Revert "RISC-V: Support highpart register overlap for vwcvt"
This reverts commit bdad036da3.
2024-04-24 21:34:31 +08:00
Jose E. Marchesi
152d945d42 bpf: define BPF feature pre-processor macros
This commit makes the BPF backend to define the following macros for
c-family languages:

  __BPF_CPU_VERSION__

    This is a numeric value identifying the version of the BPF "cpu"
    for which GCC is generating code.

  __BPF_FEATURE_ALU32
  __BPF_FEATURE_JMP32
  __BPF_FEATURE_JMP_EXT
  __BPF_FEATURE_BSWAP
  __BPF_FEATURE_SDIV_SMOD
  __BPF_FEATURE_MOVSX
  __BPF_FEATURE_LDSX
  __BPF_FEATURE_GOTOL
  __BPF_FEATURE_ST

    These are defines if the corresponding "feature" is enabled.  The
    features are implicitly enabled by the BPF CPU version enabled,
    and most of them can also be enabled/disabled using
    target-specific -m[no-]FEATURE command line switches.

Note that this patch moves the definition of bpf_target_macros, that
implements TARGET_CPU_CPP_BUILTINS in the BPF backend, to a bpf-c.cc
file.  This is because we are now using facilities from c-family/* and
these features are not available in compilers like lto1.

A couple of tests are also added.
Tested in target bpf-unknown-none-gcc and host x86_64-linux-gnu.
No regressions.

gcc/ChangeLog

	* config.gcc: Add bpf-c.o as a target object for C and C++.
	* config/bpf/bpf.cc (bpf_target_macros): Move to bpf-c.cc.
	* config/bpf/bpf-c.cc: New file.
	(bpf_target_macros): Move from bpf.cc and define BPF CPU
	feature	macros.
	* config/bpf/t-bpf: Add rules to build bpf-c.o.

gcc/testsuite/ChangeLog

	* gcc.target/bpf/feature-macro-1.c: New test.
	* gcc.target/bpf/feature-macro-2.c: Likewise.
2024-04-24 13:54:56 +02:00
Richard Biener
cc48418cfc tree-optimization/114787 - more careful loop update with CFG cleanup
When CFG cleanup removes a backedge we have to be more careful with
loop update.  In particular we need to clear niter info and estimates
and if we remove the last backedge of a loop we have to also mark
it for removal to prevent a following basic block merging to associate
loop info with an unrelated header.

	PR tree-optimization/114787
	* tree-cfg.cc (remove_edge_and_dominated_blocks): When
	removing a loop backedge clear niter info and when removing
	the last backedge of a loop mark that loop for removal.

	* gcc.dg/torture/pr114787.c: New testcase.
2024-04-24 10:11:00 +02:00
Richard Biener
e28e8ab1a9 tree-optimization/114832 - wrong dominator info with vect peeling
When we update the dominator of the redirected exit after peeling
we check whether the immediate dominator was the loop header rather
than the exit source when we later want to just update it to the
new source.  The following fixes this oversight.

	PR tree-optimization/114832
	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
	Fix dominance check.

	* gcc.dg/vect/pr114832.c: New testcase.
2024-04-24 10:11:00 +02:00
Haochen Jiang
d279c9d89b i386: Fix behavior for both using AVX10.1-256 in options and function attribute
When we are using -mavx10.1-256 in command line and avx10.1-256 in
target attribute together, zmm should never be generated. But current
GCC will generate zmm since it wrongly enables EVEX512 for non-explicitly
set AVX512. This patch will fix that issue.

gcc/ChangeLog:

	* config/i386/i386-options.cc (ix86_valid_target_attribute_tree):
	Check whether AVX512F is explicitly enabled.

gcc/testsuite/ChangeLog:

	* gcc.target/i386/avx10_1-24.c: New test.
2024-04-24 15:21:27 +08:00
Pan Li
f952745943 RISC-V: Add xfail test case for highpart overlap of vext.vf
We reverted below patch for register group overlap, add the related
insn test and mark it as xfail.  And we will remove the xfail
after we support the register overlap in GCC-15.

62685890d8 RISC-V: Support highpart overlap for vext.vf

The below test suites are passed for this patch
* The rv64gcv fully regression test with isl build.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/unop_v_constraint-2.c: Adjust asm
	check cond.
	* gcc.target/riscv/rvv/base/pr112431-4.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-5.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-6.c: New test.

Signed-off-by: Pan Li <pan2.li@intel.com>
2024-04-24 14:55:06 +08:00
Pan Li
8bcefc2d5f Revert "RISC-V: Support highpart overlap for vext.vf"
This reverts commit 62685890d8.
2024-04-24 10:46:28 +08:00
GCC Administrator
3091f1dfa7 Daily bump. 2024-04-24 00:16:29 +00:00
Nathaniel Shead
7318f1a389 c++: Fix ICE with xobj parms and maybe incomplete decl-specifiers
This fixes a null dereference issue when decl_specifiers.type is not yet
provided.

gcc/cp/ChangeLog:

	* parser.cc (cp_parser_parameter_declaration): Check if
	decl_specifiers.type is null.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp23/explicit-obj-basic7.C: New test.

Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
2024-04-24 09:24:17 +10:00
Jakub Jelinek
628c2221d3 i386: Avoid =&r,r,r andn double-word alternative for ia32 [PR114810]
As discussed in the PR, on ia32 with its 8 GPRs, where 1 is always fixed
and other 2 often are as well having an alternative which needs 3
double-word registers is just too much for RA.
The following patch splits that alternative into two, one with o is used
even on ia32, but one with the 3x r is used just for -m64/-mx32.
Tried to reduce the testcase further, but it wasn't easily possible.

2024-04-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/114810
	* config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Split the =&r,r,ro
	alternative into =&r,r,r enabled only for x64 and =&r,r,o.

	* g++.target/i386/pr114810.C: New test.
2024-04-23 23:30:27 +02:00
Joseph Myers
f7a5c993e5 Regenerate gcc.pot
* gcc.pot: Regenerate.
2024-04-23 20:28:35 +00:00
Harald Anlauf
0bf94da59f Fortran: check C_SIZEOF on additions from TS29113/F2018 [PR103496]
gcc/testsuite/ChangeLog:

	PR fortran/103496
	* gfortran.dg/c_sizeof_8.f90: New test.
2024-04-23 20:21:43 +02:00
Patrick Palka
4f9401d1a8 c++/modules: deduced return type merging [PR114795]
When merging an imported function template specialization with an
existing one, if the existing one has an undeduced return type and the
imported one's is already deduced, we need to propagate the deduced type
since once we install the imported definition we won't get a chance to
deduce it by normal means.

So this patch makes is_matching_decl propagate the deduced return
type alongside our propagation of the exception specification.
Another option would be to propagate it later when installing the
imported definition from read_function_def, but it seems preferable
to do it sooner rather than later.

	PR c++/114795

gcc/cp/ChangeLog:

	* module.cc (trees_in::is_matching_decl): Propagate deduced
	function return type.

gcc/testsuite/ChangeLog:

	* g++.dg/modules/auto-4_a.H: New test.
	* g++.dg/modules/auto-4_b.C: New test.

Reviewed-by: Jason Merrill <jason@redhat.com>
2024-04-23 14:01:22 -04:00
Ian Lance Taylor
d2f05fed44 libbacktrace: test --compress-debug-sections=ARG for each ARG
This should fix a testsuite problem with Solaris ld that supports zlib
but not zlib-gabi.

	* configure.ac: Test --compress-debug-sections=zlib-gnu and
	--compress-debug-sections=zlib-gabi separately, setting new
	automake conditionals.
	* Makefile.am (ctestg, ctestg_alloc): Only build if
	HAVE_COMPRESSED_DEBUG_ZLIB_GNU.
	(ctesta, ctesta_alloc): Only build if
	HAVE_COMPRESSED_DEBUG_ZLIB_GABI.
	(ctestzstd_alloc): New test if HAVE_COMPRESSED_DEBUG_ZSTD.
	* configure, Makefile.in: Regenerate.
2024-04-23 10:04:16 -07:00
Jakub Jelinek
0c8e99e5c3 testsuite: Adjust testsuite expectations for diagnostic spelling fixes
The nullability-00.m* tests unfortunately check the exact spelling of
the diagnostics I've changed earlier today.

2024-04-23  Jakub Jelinek  <jakub@redhat.com>

	* objc.dg/attributes/nullability-00.m: Adjust expected diagnostic
	spelling: recognised -> recognized.
	* obj-c++.dg/attributes/nullability-00.mm: Likewise.
2024-04-23 17:39:48 +02:00
Jan Hubicka
6f0a646dd2 Remove repeated information in -ftree-loop-distribute-patterns doc
We have:

       -ftree-loop-distribute-patterns
           Perform loop distribution of patterns that can be code generated with calls to a library.  This flag is enabled by default at -O2 and higher, and by -fprofile-use and -fauto-profile.

           This pass distributes the initialization loops and generates a call to memset zero.  For example, the loop

...

           and the initialization loop is transformed into a call to memset zero.  This flag is enabled by default at -O3.  It is also enabled by -fprofile-use and -fauto-profile.

Which mentions optimizatoin flags twice and the repeated mention is out of
date, since we enable this option at -O2 as well.

gcc/ChangeLog:

	* doc/invoke.texi (-ftree-loop-distribute-patterns): Remove duplicated
	sentence about optimization flags implying this.
2024-04-23 15:51:42 +02:00
Jakub Jelinek
f994094592 Further spelling fixes in translatable strings
This addresses the non-Oxford British English vs. US English spelling
nits in translatable strings.

I see various similar cases in m2 and rust FEs where they don't make it into
gcc.pot, guess those would be nice to get fixed too.

2024-04-23  Jakub Jelinek  <jakub@redhat.com>

	* config/darwin.opt (init): Spelling fix: initialiser -> initializer.
gcc/c-family/
	* c-attribs.cc (handle_objc_nullability_attribute): Spelling fix:
	recognised -> recognized.
gcc/m2/
	* lang.opt (fdef=, fmod=): Spelling fix: recognise -> recognize.
2024-04-23 14:51:26 +02:00
Jakub Jelinek
4338ac149e Spelling fixes for translatable strings
I've run aspell on gcc.pot (just quickly skimming, so pressing
I key hundreds of times and just stopping when I catch something that
looks like a misspelling).

I plan to commit this tomorrow as obvious unless somebody finds some
issues in it, you know, I'm not a native English speaker.
Yes, I know favour is valid UK spelling, but we spell the US way I think.
I've left some *ise* -> *ize* cases (recognise, initialise), those
had too many hits, though in translatable strings just 4, so maybe
worth changing too:
msgid "recognise the specified suffix as a definition module filename"
msgid "recognise the specified suffix as implementation and module filenames"
"initialiser for a dylib."
msgid "%qE attribute argument %qE is not recognised"

2024-04-23  Jakub Jelinek  <jakub@redhat.com>

	* config/epiphany/epiphany.opt (may-round-for-trunc): Spelling fix:
	floatig -> floating.
	* config/riscv/riscv.opt (mcsr-check): Spelling fix: CRS -> CSR.
	* params.opt (-param=ipa-cp-profile-count-base=): Spelling fix:
	frequncy -> frequency.
gcc/c-family/
	* c.opt (Wstrict-flex-arrays): Spelling fix: inproper -> improper.
gcc/cp/
	* parser.cc (cp_parser_using_declaration): Spelling fix: favour
	-> favor.
gcc/m2/
	* lang.opt (fuse-list=): Spelling fix: finalializations ->
	finalizations.
2024-04-23 14:50:27 +02:00
Stefan Schulze Frielinghaus
3d5699930f s390: testsuite: Xfail forwprop-4{0,1}.c
The tests fail on s390 since can_vec_perm_const_p fails and therefore
the bit insert/ref survive which r14-3381-g27de9aa152141e aims for.
Strictly speaking, the tests only fail in case the target supports
vectors, i.e., for targets prior z13 or in case of -mesa the emulated
vector operations are optimized out.

Set to xfail and tracked by PR114802.

gcc/testsuite/ChangeLog:

	* gcc.dg/tree-ssa/forwprop-40.c: Xfail for s390.
	* gcc.dg/tree-ssa/forwprop-41.c: Xfail for s390.
	* lib/target-supports.exp: Add target check s390_mvx.
2024-04-23 13:29:10 +02:00
Paul Thomas
ca00bf02dc Fortran: Check that the ICE does not reappear [PR102597]
2024-04-23  Paul Thomas  <pault@gcc.gnu.org>

gcc/testsuite/
	PR fortran/102597
	* gfortran.dg/pr102597.f90: New test.
2024-04-23 10:22:48 +01:00
Richard Biener
18e8e55487 tree-optimization/114799 - SLP and patterns
The following plugs a hole with computing whether a SLP node has any
pattern stmts which is important to know when we want to replace it
by a CTOR from external defs.

	PR tree-optimization/114799
	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Properly
	update ->any_pattern when swapping operands.

	* gcc.dg/vect/bb-slp-pr114799.c: New testcase.
2024-04-23 10:23:10 +02:00
Andreas Krebbel
42189f21b2 s390x: Fix vec_xl/vec_xst type aliasing [PR114676]
The requirements of the vec_xl/vec_xst intrinsincs wrt aliasing of the
pointer argument are not really documented.  As it turns out, users
are likely to get it wrong.  With this patch we let the pointer
argument alias everything in order to make it more robust for users.

gcc/ChangeLog:

	PR target/114676
	* config/s390/s390-c.cc (s390_expand_overloaded_builtin): Use a
	MEM_REF with an addend of type ptr_type_node.

gcc/testsuite/ChangeLog:

	PR target/114676
	* gcc.target/s390/zvector/pr114676.c: New test.

Suggested-by: Jakub Jelinek <jakub@redhat.com>
2024-04-23 10:05:56 +02:00
Jakub Jelinek
aa73eb97a1 c++: Copy over DECL_DISREGARD_INLINE_LIMITS flag to inheriting ctors [PR114784]
The following testcase is rejected with
error: inlining failed in call to 'always_inline' '...': call is unlikely and code size would grow
errors.  The problem is that starting with the r14-2149 change
we try to copy most of the attributes from the inherited to
inheriting ctor, but don't copy associated flags that decl_attributes
sets.

Now, the other clone_attrs user, cp/optimize.cc (maybe_clone_body)
copies over
      DECL_COMDAT (clone) = DECL_COMDAT (fn);
      DECL_WEAK (clone) = DECL_WEAK (fn);
      if (DECL_ONE_ONLY (fn))
        cgraph_node::get_create (clone)->set_comdat_group (cxx_comdat_group (clone));
      DECL_USE_TEMPLATE (clone) = DECL_USE_TEMPLATE (fn);
      DECL_EXTERNAL (clone) = DECL_EXTERNAL (fn);
      DECL_INTERFACE_KNOWN (clone) = DECL_INTERFACE_KNOWN (fn);
      DECL_NOT_REALLY_EXTERN (clone) = DECL_NOT_REALLY_EXTERN (fn);
      DECL_VISIBILITY (clone) = DECL_VISIBILITY (fn);
      DECL_VISIBILITY_SPECIFIED (clone) = DECL_VISIBILITY_SPECIFIED (fn);
      DECL_DLLIMPORT_P (clone) = DECL_DLLIMPORT_P (fn);
      DECL_DISREGARD_INLINE_LIMITS (clone) = DECL_DISREGARD_INLINE_LIMITS (fn);
The following patch just copies DECL_DISREGARD_INLINE_LIMITS to fix
this exact bug, not really sure which other flags should be copied
and which shouldn't.
Plus there are tons of other flags, some of which might need to be copied
too, some of which might not, perhaps in both places, like:
DECL_UNINLINABLE, maybe DECL_PRESERVE_P, TREE_USED, maybe
DECL_USER_ALIGN/DECL_ALIGN, maybe DECL_WEAK, maybe
DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK.
TREE_READONLY, DECL_PURE_P, TREE_THIS_VOLATILE (for const, pure and
noreturn attributes) probably makes no sense, DECL_IS_RETURNS_TWICE neither
(returns_twice ctor?).  What about TREE_NOTHROW?
DECL_FUNCTION_SPECIFIC_OPTIMIZATION, DECL_FUNCTION_SPECIFIC_TARGET...

Anyway, another problem is that if inherited_ctor is a TEMPLATE_DECL, as
also can be seen in the using D<T>::D; case in the testcase, then
DECL_ATTRIBUTES (fn) = clone_attrs (DECL_ATTRIBUTES (inherited_ctor));
attempts to copy the attributes from the TEMPLATE_DECL which doesn't have
them.  The following patch copies them from STRIP_TEMPLATE (inherited_ctor)
which does.  E.g. DECL_DECLARED_CONSTEXPR_P works fine as the macro
itself uses STRIP_TEMPLATE too, but not 100% sure about other macros used
on inherited_ctor earlier.

2024-04-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/114784
	* method.cc (implicitly_declare_fn): Call clone_attrs
	on DECL_ATTRIBUTES on STRIP_TEMPLATE (inherited_ctor) rather than
	inherited_ctor.  Also copy DECL_DISREGARD_INLINE_LIMITS flag from it.

	* g++.dg/cpp0x/inh-ctor39.C: New test.
2024-04-23 08:36:15 +02:00
Nathaniel Shead
cf51fe706e c++: Check if allocation functions are xobj members [PR114078]
A class allocation member function is implicitly 'static' by
[class.free] p3, so cannot have an explicit object parameter.

	PR c++/114078

gcc/cp/ChangeLog:

	* decl.cc (grokdeclarator): Check allocation functions for xobj
	parameters.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp23/explicit-obj-ops-alloc.C: New test.

Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
2024-04-23 15:59:54 +10:00
Yang Yujie
77e114bb0d LoongArch: Define builtin macros for ISA evolutions
Detailed description of these definitions can be found at
https://github.com/loongson/la-toolchain-conventions, which
the LoongArch GCC port aims to conform to.

gcc/ChangeLog:

	* config.gcc: Add loongarch-evolution.o.
	* config/loongarch/genopts/genstr.sh: Enable generation of
	loongarch-evolution.[cc,h].
	* config/loongarch/t-loongarch: Likewise.
	* config/loongarch/genopts/gen-evolution.awk: New file.
	* config/loongarch/genopts/isa-evolution.in: Mark ISA version
	of introduction for each ISA evolution feature.
	* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins):
	Define builtin macros for enabled ISA evolutions and the ISA
	version.
	* config/loongarch/loongarch-cpu.cc: Use loongarch-evolution.h.
	* config/loongarch/loongarch.h: Likewise.
	* config/loongarch/loongarch-cpucfg-map.h: Delete.
	* config/loongarch/loongarch-evolution.cc: New file.
	* config/loongarch/loongarch-evolution.h: New file.
	* config/loongarch/loongarch-opts.h (ISA_HAS_FRECIPE): Define.
	(ISA_HAS_DIV32): Likewise.
	(ISA_HAS_LAM_BH): Likewise.
	(ISA_HAS_LAMCAS): Likewise.
	(ISA_HAS_LD_SEQ_SA): Likewise.
2024-04-23 11:29:04 +08:00
Yang Yujie
b4ebdd153b LoongArch: Define ISA versions
These ISA versions are defined as -march= parameters and
are recommended for building binaries for distribution.

Detailed description of these definitions can be found at
https://github.com/loongson/la-toolchain-conventions, which
the LoongArch GCC port aims to conform to.

gcc/ChangeLog:

	* config.gcc: Make la64v1.0 the default ISA preset of the lp64d ABI.
	* config/loongarch/genopts/loongarch-strings: Define la64v1.0, la64v1.1.
	* config/loongarch/genopts/loongarch.opt.in: Likewise.
	* config/loongarch/loongarch-c.cc (LARCH_CPP_SET_PROCESSOR): Likewise.
	(loongarch_cpu_cpp_builtins): Likewise.
	* config/loongarch/loongarch-cpu.cc (get_native_prid): Likewise.
	(fill_native_cpu_config): Likewise.
	* config/loongarch/loongarch-def.cc (array_tune): Likewise.
	* config/loongarch/loongarch-def.h: Likewise.
	* config/loongarch/loongarch-driver.cc (driver_set_m_parm): Likewise.
	(driver_get_normalized_m_opts): Likewise.
	* config/loongarch/loongarch-opts.cc (default_tune_for_arch): Likewise.
	(TUNE_FOR_ARCH): Likewise.
	(arch_str): Likewise.
	(loongarch_target_option_override): Likewise.
	* config/loongarch/loongarch-opts.h (TARGET_uARCH_LA464): Likewise.
	(TARGET_uARCH_LA664): Likewise.
	* config/loongarch/loongarch-str.h (STR_CPU_ABI_DEFAULT): Likewise.
	(STR_ARCH_ABI_DEFAULT): Likewise.
	(STR_TUNE_GENERIC): Likewise.
	(STR_ARCH_LA64V1_0): Likewise.
	(STR_ARCH_LA64V1_1): Likewise.
	* config/loongarch/loongarch.cc (loongarch_cpu_sched_reassociation_width): Likewise.
	(loongarch_asm_code_end): Likewise.
	* config/loongarch/loongarch.opt: Likewise.
	* doc/invoke.texi: Likewise.
2024-04-23 11:28:59 +08:00
GCC Administrator
8c6ee63bcd Daily bump. 2024-04-23 00:17:49 +00:00
Pan Li
2a8187e0a1 RISC-V: Adjust overlap attr after revert d3544cea63 and e65aaf8efe
After we reverted below 2 commits, the reference to attr need some
adjustment as the group_overlap is no longer available.

* RISC-V: Robostify the W43, W86, W87 constraint enabled attribute
* RISC-V: Rename vconstraint into group_overlap

The below tests are passed for this patch.

* The rv64gcv fully regression tests.

gcc/ChangeLog:

	* config/riscv/vector-crypto.md:

Signed-off-by: Pan Li <pan2.li@intel.com>
2024-04-23 06:49:58 +08:00
Gaius Mulley
b909daa5b6 PR modula2/114811 string set incl ICE bugfix
This patch corrects gm2-torture.exp to recognize an ICE
in the fail case as a negative result.  The patch also fixes
FoldBinarySet so that the types are only checked once the operands
have been resolved.  Without this patch
gcc/testsuite/gm2/iso/fail/badexpression2.mod would cause an ICE.

gcc/m2/ChangeLog:

	PR modula2/114811
	* gm2-compiler/M2GenGCC.mod (FoldBinarySet): Add condition
	checking to ensure op2 and op3 are fully resolved before
	type checking is performed.

gcc/testsuite/ChangeLog:

	PR modula2/114811
	* lib/gm2-torture.exp: Correct regexp checking for internal
	compiler error strings in compiler output.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-04-22 20:34:11 +01:00
Matthias Kretz
7ef139146a libstdc++: Fix conversion of simd to vector builtin
Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

libstdc++-v3/ChangeLog:

	PR libstdc++/114803
	* include/experimental/bits/simd_builtin.h
	(_SimdBase2::operator __vector_type_t): There is no __builtin()
	function in _SimdWrapper, instead use its conversion operator.
	* testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
	test.
2024-04-22 20:56:26 +02:00
Matthias Kretz
e7a3ad29c9 libstdc++: Silence irrelevant warnings in <experimental/simd>
Avoid
-Wnarrowing in C code;
-Wtautological-compare in unconditional static_assert (necessary for
faking a dependency on a template parameter)

Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

libstdc++-v3/ChangeLog:

	* include/experimental/bits/simd.h: Ignore -Wnarrowing for
	arm_neon.h.
	(__int_for_sizeof): Replace tautological compare with checking
	for invalid template parameter value.
	* include/experimental/bits/simd_builtin.h (__extract_part):
	Remove tautological compare by combining two static_assert.
2024-04-22 20:56:26 +02:00
Gaius Mulley
b0469e35db PR modula2/114807 badpointer3.mod causes an ICE
This patch fixes an ICE caused when a constant string
is built and attempted to be passed into a procedure with
an opaque type.

gcc/m2/ChangeLog:

	PR modula2/114807
	* gm2-compiler/M2Check.mod (checkUnbounded): Remove unused
	local variables.
	(constCheckMeta): Include check for IsReallyPointer in the
	failure case.
	* gm2-compiler/M2Quads.mod (MoveWithMode): Remove CopyConstString.
	* gm2-compiler/SymbolTable.def (IsHiddenReallyPointer): Export.
	* gm2-compiler/SymbolTable.mod (SkipHiddenType): Remove.
	(IsReallyPointer): Include IsHiddenReallyPointer test.

gcc/testsuite/ChangeLog:

	PR modula2/114807
	* gm2/pim/fail/badproctype.mod: Change MYSHORTREAL
	to SHORTREAL.
	* gm2/pim/fail/badprocbool.mod: New test.
	* gm2/pim/fail/badproccard.mod: New test.
	* gm2/pim/fail/badprocint.mod: New test.
	* gm2/pim/fail/badprocint2.mod: New test.
	* gm2/pim/pass/goodproccard2.mod: New test.
	* gm2/pim/pass/goodprocint.mod: New test.
	* gm2/pim/pass/goodprocint3.mod: New test.
	* gm2/pim/run/pass/genconststr.mod: New test.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
2024-04-22 18:19:32 +01:00
Jakub Jelinek
cf5f779105 libstdc++: Workaround kernel-headers on s390x-linux
We see
FAIL: 17_intro/headers/c++1998/all_attributes.cc   (test for excess errors)
FAIL: 17_intro/headers/c++2011/all_attributes.cc   (test for excess errors)
FAIL: 17_intro/headers/c++2014/all_attributes.cc   (test for excess errors)
FAIL: 17_intro/headers/c++2017/all_attributes.cc   (test for excess errors)
FAIL: 17_intro/headers/c++2020/all_attributes.cc   (test for excess errors)
FAIL: 17_intro/names.cc  -std=gnu++17 (test for excess errors)
on s390x-linux.
The first 5 are due to kernel-headers not using uglified attribute names,
where <asm/types.h> contains
__attribute__((packed, aligned(4)))
I've filed a downstream bugreport for this in
https://bugzilla.redhat.com/show_bug.cgi?id=2276084
(not really sure where to report kernel-headers issues upstream), while the
last one is due to <sys/ucontext.h> from glibc containing:
  #ifdef __USE_MISC
  # define __ctx(fld) fld
  #else
  # define __ctx(fld) __ ## fld
  #endif
  ...
  typedef union
    {
      double  __ctx(d);
      float   __ctx(f);
    } fpreg_t;
and g++ predefining -D_GNU_SOURCE which implies define __USE_MISC.

The following patch adds a workaround for this on the libstdc++ testsuite
side.

2024-04-22  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
	* testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
	define on s390.
	* testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
	Likewise.
	* testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
	Likewise.
	* testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
	Likewise.
	* testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
	Likewise.
2024-04-22 18:00:06 +02:00
Marek Polacek
0db19228a9 testsuite: prune -freport-bug output
When the compiler defaults to -freport-bug, a few dg-ice tests fail
with:

Excess errors:
Preprocessed source stored into /tmp/cc6hldZ0.out file, please attach this to your bugreport.

We could add -fno-report-bug to those tests.  But it seems to me that a
better fix would be to prune the "Preprocessed source stored..." message
in prune_gcc_output.

gcc/testsuite/ChangeLog:

	* lib/prune.exp (prune_gcc_output): Also prune -freport-bug output.

Reviewed-by: Jakub Jelinek <jakub@redhat.com>
2024-04-22 11:25:40 -04:00
Pan Li
cacc55a4c0 Revert "RISC-V: Rename vconstraint into group_overlap"
This reverts commit e65aaf8efe.
2024-04-22 20:45:40 +08:00
Pan Li
b78c88438c Revert "RISC-V: Robostify the W43, W86, W87 constraint enabled attribute"
This reverts commit d3544cea63.
2024-04-22 20:44:38 +08:00
Haochen Jiang
6b5248d15c i386: Fix Sierra Forest auto dispatch
gcc/ChangeLog:

	* common/config/i386/i386-common.cc (processor_alias_table):
	Let Sierra Forest map to CPU_TYPE enum.
2024-04-22 17:11:32 +08:00
Andreas Krebbel
1b7785fdf9 s390x: Do not default to -mvx for -mesa
We currently enable the vector extensions also for -march=z13 -m31
-mesa which is very wrong.

gcc/ChangeLog:

	* config/s390/s390.cc (s390_option_override_internal): Check zarch
	flag before enabling -mvx.
2024-04-22 11:08:23 +02:00
Pan Li
b991193eb8 RISC-V: Add xfail test case for highpart overlap floating-point widen insn
We reverted below patch for register group overlap, add the related
insn test and mark it as xfail.  And we will remove the xfail
after we support the register overlap in GCC-15.

8614cbb253 RISC-V: Support highpart overlap for floating-point widen instructions

The below test suites are passed.
* The rv64gcv fully regression test.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/pr112431-10.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-11.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-12.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-13.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-14.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-15.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-7.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-8.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-9.c: New test.

Signed-off-by: Pan Li <pan2.li@intel.com>
2024-04-22 16:30:38 +08:00
Pan Li
4df96b4ec7 Revert "RISC-V: Support highpart overlap for floating-point widen instructions"
This reverts commit 8614cbb253.
2024-04-22 16:25:57 +08:00
Pan Li
a367b99f91 RISC-V: Add xfail test case for indexed load overlap with SRC EEW < DEST EEW
Update in v2:
* Add change log to pr112431-34.c.

Original log:

We reverted below patch for register group overlap, add the related
insn test and mark it as xfail.  And we will remove the xfail
after we support the register overlap in GCC-15.

4418d55bcd RISC-V: Support highpart overlap for indexed load with SRC EEW < DEST EEW

The below test suites are passed.
* The rv64gcv fully regression test.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/pr112431-34.c: Remove xfail for vluxei8 check.
	* gcc.target/riscv/rvv/base/pr112431-28.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-29.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-30.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-31.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-32.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-33.c: New test.

Signed-off-by: Pan Li <pan2.li@intel.com>
2024-04-22 15:45:44 +08:00
Pan Li
9257c7a720 Revert "RISC-V: Support highpart overlap for indexed load with SRC EEW < DEST EEW"
This reverts commit 4418d55bcd.
2024-04-22 15:39:45 +08:00
Stefan Schulze Frielinghaus
16aea8c584 s390: testsuite: Remove xfail for vpopct{b,h}
Starting with r14-9316-g7890836de20912 patterns for vpopct{b,h} are also
detected.  Thus, remove xfails.

gcc/testsuite/ChangeLog:

	* gcc.target/s390/vxe/popcount-1.c: Remove xfail.
2024-04-22 09:02:05 +02:00
Pan Li
c7506847c0 RISC-V: Add xfail test case for highest-number regno ternary overlap
We reverted below patch for register group overlap, add the related
insn test and mark it as xfail.  And we will remove the xfail
after we support the register overlap in GCC-15.

27fde325d6 RISC-V: Support highest-number regno overlap for widen ternary

The below test suites are passed.
* The rv64gcv fully regression test.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/pr112431-37.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-38.c: New test.

Signed-off-by: Pan Li <pan2.li@intel.com>
2024-04-22 14:58:32 +08:00
Pan Li
cc46b6d4f3 Revert "RISC-V: Support highest-number regno overlap for widen ternary"
This reverts commit 27fde325d6.
2024-04-22 14:10:02 +08:00
Pan Li
c4fdbdac12 RISC-V: Add xfail test case for widening register overlap of vf4/vf8
We reverted below patch for register group overlap, add the related
insn test and mark it as xfail.  And we will remove the xfail
after we support the register overlap in GCC-15.

303195e2a6 RISC-V: Support widening register overlap for vf4/vf8

The below test suites are passed.
* The rv64gcv fully regression test.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/pr112431-16.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-17.c: New test.
	* gcc.target/riscv/rvv/base/pr112431-18.c: New test.

Signed-off-by: Pan Li <pan2.li@intel.com>
2024-04-22 14:08:58 +08:00