Commit Graph

185351 Commits

Author SHA1 Message Date
GCC Administrator
fdc2700d09 Daily bump. 2021-11-02 00:17:59 +00:00
Jonathan Wakely
0111975c07 libstdc++: Fix range access for empty std::valarray [PR103022]
The std::begin and std::end overloads for std::valarray are defined in
terms of std::addressof(v[0]) which is undefined for an empty valarray.

libstdc++-v3/ChangeLog:

	PR libstdc++/103022
	* include/std/valarray (begin, end): Do not dereference an empty
	valarray. Add noexcept and [[nodiscard]].
	* testsuite/26_numerics/valarray/range_access.cc: Check empty
	valarray. Check iterator properties. Run as well as compiling.
	* testsuite/26_numerics/valarray/range_access2.cc: Likewise.
	* testsuite/26_numerics/valarray/103022.cc: New test.

(cherry picked from commit 91bac9fed5)
2021-11-01 13:28:55 +00:00
GCC Administrator
d0d8bd6378 Daily bump. 2021-11-01 00:17:51 +00:00
GCC Administrator
cfc3c7544c Daily bump. 2021-10-31 00:18:04 +00:00
GCC Administrator
ee13a30bff Daily bump. 2021-10-30 00:18:11 +00:00
GCC Administrator
818961c176 Daily bump. 2021-10-29 00:18:11 +00:00
Eric Botcazou
4719d05845 Update documentation of %X spec
%X
Output the accumulated linker options specified by -Wl or a ‘%x’ spec string

The part about -Wl has been obsolete for 27 years, since this change:

Author: Torbjorn Granlund <tege@gnu.org>
Date:   Thu Oct 27 18:04:25 1994 +0000

    (process_command): Handle -Wl, and -Xlinker similar to -l,

    i.e., preserve their order with respect to linker input files.

Technically speaking, the arguments of -l, -Wl and -Xlinker are input files.

gcc/
	* doc/invoke.texi (%X): Remove obsolete reference to -Wl.
2021-10-28 15:56:44 +02:00
GCC Administrator
3e2ccaab1f Daily bump. 2021-10-28 00:18:23 +00:00
Harald Anlauf
5782bacaca Fortran: do not restrict PDT KIND and LEN type parameters to default integer
gcc/fortran/ChangeLog:

	PR fortran/102917
	* decl.c (match_attr_spec): Remove invalid integer kind checks on
	KIND and LEN attributes of PDTs.

gcc/testsuite/ChangeLog:

	PR fortran/102917
	* gfortran.dg/pdt_4.f03: Adjust testcase.

(cherry picked from commit cfcb27cfcb)
2021-10-27 21:25:39 +02:00
John David Anglin
70c3fa5057 Fix warnings building linux-atomic.c and fptr.c on hppa64-linux
The file fptr.c is specific to 32-bit hppa-linux and should not be
included in LIB2ADD on hppa64-linux.

There is a builtin type mismatch in linux-atomic.c using the type
long long unsigned int for 64-bit atomic operations on hppa64-linux.

2021-10-27  John David Anglin  <danglin@gcc.gnu.org>

libgcc/ChangeLog:

	* config.host (hppa*64*-*-linux*): Don't add pa/t-linux to
	tmake_file.
	* config/pa/linux-atomic.c: Define u8, u16 and u64 types.
	Use them in FETCH_AND_OP_2, OP_AND_FETCH_2, COMPARE_AND_SWAP_2,
	SYNC_LOCK_TEST_AND_SET_2 and SYNC_LOCK_RELEASE_1 macros.
	* config/pa/t-linux64 (LIB1ASMSRC): New define.
	(LIB1ASMFUNCS): Revise.
	(HOST_LIBGCC2_CFLAGS): Add "-DLINUX=1".
2021-10-27 18:01:40 +00:00
Martin Jambor
97cebda80d
sra: Fix corner case of total scalarization with virtual inheritance (PR 102505)
PR 102505 is a situation where of SRA takes its initial top-level
access size from a get_ref_base_and_extent called on a COMPONENT_REF,
and thus derived frm the FIELD_DECL, which however does not include a
virtual base.  Total scalarization then goes on traversing the type,
which however has virtual base past the non-virtual bits, tricking SRA
to create sub-accesses outside of the supposedly encompassing
accesses, which in turn triggers the verifier within the pass.

The patch below fixes that by failing total scalarization when this
situation is detected.

This backport also has commit f217e87972
squashed into it in order to avoid PR 102886 that the fix introduced
on trunk.

gcc/ChangeLog:

2021-10-20  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/102505
	* tree-sra.c (totally_scalarize_subtree): Check that the
	encountered field fits within the acces we would like to put it
	in.

gcc/testsuite/ChangeLog:

2021-10-20  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/102505
	* g++.dg/torture/pr102505.C: New test.

(cherry picked from commit 701ee06780)
2021-10-27 19:15:46 +02:00
GCC Administrator
2563fba71d Daily bump. 2021-10-27 00:18:10 +00:00
Piotr Kubaj
8f3a62529a gcc/configure: Check for powerpc64le*-*-freebsd*
Only powerpc64-unknown-freebsd was checked for.

Signed-off-by: Piotr Kubaj <pkubaj@FreeBSD.org>

gcc/
	* configure.ac: Treat powerpc64*-*-freebsd* the same as
	powerpc64-*-freebsd*.
	* configure: Regenerate.

(cherry picked from commit a9ef07fe58)
2021-10-26 16:16:39 +00:00
GCC Administrator
40d76242a2 Daily bump. 2021-10-26 00:18:18 +00:00
GCC Administrator
dd028e763d Daily bump. 2021-10-25 00:18:08 +00:00
John David Anglin
4b304e3d63 Revise -mdisable-fpregs option and add new -msoft-mult option
The behavior of the -mdisable-fpregs is confusing in that it doesn't
disable the use of the floating-point registers in all situations.
The -msoft-float disables the use of the floating-point registers in
all situations.  The Linux kernel only needs to disable use of the
xmpyu instruction to avoid using the floating-point registers.

This change revises the -mdisable-fpregs option to disable the use of
the floating-point registers in all situations.  It is now equivalent
to the -msoft-float option.  A new -msoft-mult option is added to
disable use of the xmpyu instruction.  The libgcc library can be
compiled with the -msoft-mult option to avoid using hardware integer
multiplication.

2021-10-24  John David Anglin  <danglin@gcc.gnu.org>

gcc/ChangeLog:

	* config/pa/pa-d.c (pa_d_handle_target_float_abi): Don't check
	TARGET_DISABLE_FPREGS.
	* config/pa/pa.c (fix_range): Use MASK_SOFT_FLOAT instead of
	MASK_DISABLE_FPREGS.
	(hppa_rtx_costs): Don't check TARGET_DISABLE_FPREGS.  Adjust
	cost of hardware integer multiplication.
	(pa_conditional_register_usage): Don't check TARGET_DISABLE_FPREGS.
	* config/pa/pa.h (INT14_OK_STRICT): Likewise.
	* config/pa/pa.md: Don't check TARGET_DISABLE_FPREGS. Check
	TARGET_SOFT_FLOAT in patterns that use xmpyu instruction.
	* config/pa/pa.opt (mdisable-fpregs): Change target mask to
	SOFT_FLOAT.  Revise comment.
	(msoft-float): New option.
2021-10-24 17:55:25 +00:00
John David Anglin
e20ec3be90 Don't use 'G' constraint in integer move patterns
The 'G' constraint only matches a float zero.

2021-10-24  John David Anglin  <danglin@gcc.gnu.org>

gcc/ChangeLog:

	* config/pa/pa.md: Don't use 'G' constraint in integer move patterns.
2021-10-24 16:40:12 +00:00
GCC Administrator
73833f5d0e Daily bump. 2021-10-24 00:18:04 +00:00
GCC Administrator
97262ad1c2 Daily bump. 2021-10-23 00:18:10 +00:00
GCC Administrator
cce92cd8d1 Daily bump. 2021-10-22 00:18:04 +00:00
H.J. Lu
e74336df42 x86: Document -fcf-protection requires i686 or newer
PR target/98667
	* doc/invoke.texi: Document -fcf-protection requires i686 or
	new.

(cherry picked from commit 1373066a46)
2021-10-21 12:10:19 -07:00
GCC Administrator
b8754a8ff8 Daily bump. 2021-10-21 00:17:57 +00:00
Arnaud Charlet
40b209e340 Avoid exception propagation during bootstrap
This addresses PR ada/100486, which is the bootstrap failure of GCC 11 for
32-bit Windows in the MSYS setup.  The PR shows that we cannot rely on
exception propagation being operational during the bootstrap, at least on
the 11 branch, so fix this by removing the problematic raise statement.

gcc/ada/
	PR ada/100486
	* sem_prag.adb (Check_Valid_Library_Unit_Pragma): Do not raise an
	exception as part of the bootstrap.
2021-10-20 10:47:34 +02:00
Jakub Jelinek
5d3a05456d c++: Fix up push_local_extern_decl_alias error recovery [PR102642]
My recent push_local_extern_decl_alias change broke error-recovery,
do_pushdecl can return error_mark_node and set_decl_tls_model can't be
called on that.  There are other code paths that store error_mark_node
into DECL_LOCAL_DECL_ALIAS, with the intent to differentiate the cases
where we haven't yet tried to push it into the namespace scope (NULL)
and one where we have tried it but it failed (error_mark_node), but looking
around, there are other spots where we call functions or do processing
which doesn't tolerate error_mark_node.

So, the first hunk with the testcase fixes the testcase, the others
fix what I've spotted and the fix was easy to figure out (there are I think
3 other spots mainly for function multiversioning).

2021-10-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/102642
	* name-lookup.c (push_local_extern_decl_alias): Don't call
	set_decl_tls_model on error_mark_node.
	* decl.c (make_rtl_for_nonlocal_decl): Don't call
	set_user_assembler_name on error_mark_node.
	* parser.c (cp_parser_oacc_declare): Ignore DECL_LOCAL_DECL_ALIAS
	if it is error_mark_node.
	(cp_parser_omp_declare_target): Likewise.

	* g++.dg/tls/pr102642.C: New test.

(cherry picked from commit 424945258d)
2021-10-20 08:46:05 +02:00
GCC Administrator
2b4adfe47f Daily bump. 2021-10-20 00:18:20 +00:00
Jonathan Wakely
e8dd7ce5d2 libstdc++: Fix doxygen generation to work with relative paths
In r12-826 I tried to remove some redundant steps from the doxygen
build, but they are needed when configure is run as a relative path. The
use of pwd is to resolve the relative path to an absolute one.

libstdc++-v3/ChangeLog:

	* doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
	(stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
	relative ${top_srcdir}.
	* doc/Makefile.in: Regenerate.

(cherry picked from commit 04d392e843)
2021-10-19 16:40:48 +01:00
Tobias Burnus
3de82c6c36 Fortran: Fix CLASS conversion check [PR102745]
PR fortran/102745
gcc/fortran/ChangeLog
	* intrinsic.c (gfc_convert_type_warn): Fix checks by checking CLASS
	and do typcheck in correct order for type extension.
	* misc.c (gfc_typename): Print proper not internal CLASS type name.

gcc/testsuite/ChangeLog
	* gfortran.dg/class_72.f90: New.

(cherry picked from commit 017665f630)
2021-10-19 10:42:05 +02:00
GCC Administrator
164044da34 Daily bump. 2021-10-19 00:18:06 +00:00
Uros Bizjak
e9c3a7243b i386: Fix ICE in ix86_print_opreand_address [PR 102761]
2021-10-18  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/102761

gcc/ChangeLog:

	* config/i386/i386.c (ix86_print_operand_address):
	Error out for non-address_operand asm operands.

gcc/testsuite/ChangeLog:

	* gcc.target/i386/pr102761.c: New test.
2021-10-18 23:01:33 +02:00
Kito Cheng
aa827fa170 [PR/target 100316] Allow constant address for __builtin___clear_cache.
__builtin___clear_cache was able to accept constant address for the
argument, but it seems no longer accept recently, and it even not
accept constant address which is hold in variable when optimization is
enable:

```
void foo3(){
  void *yy = (void*)0x1000;
  __builtin___clear_cache(yy, yy);
}
```

So this patch make BEGIN and END accept VOIDmode, like cselib_lookup_mem did per
Jim Wilson's suggestion.

```
static cselib_val *
cselib_lookup_mem (rtx x, int create)
{
  ...
  addr_mode = GET_MODE (XEXP (x, 0));
  if (addr_mode == VOIDmode)
    addr_mode = Pmode;
```

Changes v2 -> v3:
- Use gcc_assert rather than error, maybe_emit_call_builtin___clear_cache is
internal use only, and we already checked the type in other place.

Changes v1 -> v2:
- Check is CONST_INT intead of cehck mode, no new testcase, since
  constant value with other type like CONST_DOUBLE will catched by
  front-end.
e.g.
Code:
```c
void foo(){
  __builtin___clear_cache(1.11, 0);
}
```
Error message:
```
clearcache-double.c: In function 'foo':
clearcache-double.c:2:27: error: incompatible type for argument 1 of '__builtin___clear_cache'
    2 |   __builtin___clear_cache(1.11, 0);
      |                           ^~~~
      |                           |
      |                           double
clearcache-double.c:2:27: note: expected 'void *' but argument is of type 'double'
```

gcc/ChangeLog:

	PR target/100316
	* builtins.c (maybe_emit_call_builtin___clear_cache): Allow
	CONST_INT for BEGIN and END, and use gcc_assert rather than
	error.

gcc/testsuite/ChangeLog:

	PR target/100316
	* gcc.c-torture/compile/pr100316.c: New.

(cherry picked from commit 4e5bc4e450)
2021-10-19 00:04:57 +08:00
Jakub Jelinek
2e6c780e1e openmp: Fix up handling of OMP_PLACES=threads(1)
When writing the places-*.c tests, I've noticed that we mishandle threads
abstract name with specified num-places if num-places isn't a multiple of
number of hw threads in a core.  It then happily ignores the maximum count
and overwrites for the remaining hw threads in a core further places that
haven't been allocated.

2021-10-15  Jakub Jelinek  <jakub@redhat.com>

	* config/linux/affinity.c (gomp_affinity_init_level_1): For level 1
	after creating count places clean up and return immediately.
	* testsuite/libgomp.c/places-6.c: New test.
	* testsuite/libgomp.c/places-7.c: New test.
	* testsuite/libgomp.c/places-8.c: New test.

(cherry picked from commit 4764049dd6)
2021-10-18 17:40:22 +02:00
Andrew Stubbs
cc84160c5f amdgcn: fix up offload debug linking with LLVM 13
Between LLVM 9 and LLVM 13 the attribute works differently in several ways,
and this needs to be allowed for in GCC and mkoffload independently.

This patch fixes up mkoffload when debug info is enabled, which is made more
complicated because the configure tests checks whether the attribute option
is accepted silently, but does not check if the assembler actually sets the
ELF flags for that attribute, and mkoffload needs to mimick that behaviour
exactly. The patch therefore removes some of the conditionals.

gcc/ChangeLog:

	* config/gcn/gcn-hsa.h (S_FIJI): Set unconditionally.
	(S_900): Likewise.
	(S_906): Likewise.
	* config/gcn/gcn.c: Hard code SRAM ECC settings for old architectures.
	* config/gcn/mkoffload.c (ELFABIVERSION_AMDGPU_HSA): Rename to ...
	(ELFABIVERSION_AMDGPU_HSA_V3): ... this.
	(ELFABIVERSION_AMDGPU_HSA_V4): New.
	(SET_SRAM_ECC_UNSUPPORTED): New.
	(copy_early_debug_info): Create elf flags to match the other objects.
	(main): Just let the attribute flags pass through.

(cherry picked from commit f3d64372d7)
2021-10-18 08:10:44 +02:00
Andrew Stubbs
23ced2dc83 amdgcn: Fix assembler version incompatibility
This is another case of the global_load instruction format changing in LLVM
(because they fixed a bug).  The configure test is already in place to detect
what is needed.

gcc/ChangeLog:

	* config/gcn/gcn-valu.md (gather<mode>_insn_2offsets<exec>): Apply
	HAVE_GCN_ASM_GLOBAL_LOAD_FIXED.
	(scatter<mode>_insn_2offsets<exec_scatter>): Likewise.

(cherry picked from commit 81c362c7c2)
2021-10-18 08:10:44 +02:00
Andrew Stubbs
9120e8c402 amdgcn: Implement -msram-ecc=any
The option was already there, but just an alias for -msram-ecc=on.  Now that
LLVM13 supports HSACOv4 and the new ELF flags I can implement the option
properly.

The "any" option is the default in order to ensure that library files work
whichever way the user wants, which means we won't need multilibs to support
the different SRAM ECC hardware configurations.

gcc/ChangeLog:

	* config/gcn/gcn-hsa.h (SRAMOPT): Include the whole option string.
	Adjust for new -msram-ecc=any behaviour.
	(ASM_SPEC): Adjust -mxnack and -msram-ecc usage.
	* config/gcn/gcn.c (output_file_start): Implement -msram-ecc=any.
	* config/gcn/mkoffload.c (EF_AMDGPU_XNACK): Rename to ...
	(EF_AMDGPU_XNACK_V3): ... this.
	(EF_AMDGPU_SRAM_ECC): Rename to ...
	(EF_AMDGPU_SRAM_ECC_V3): ... this.
	(EF_AMDGPU_FEATURE_XNACK_V4): New.
	(EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4): New.
	(EF_AMDGPU_FEATURE_XNACK_ANY_V4): New.
	(EF_AMDGPU_FEATURE_XNACK_OFF_V4): New.
	(EF_AMDGPU_FEATURE_XNACK_ON_V4): New.
	(EF_AMDGPU_FEATURE_SRAMECC_V4): New.
	(EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4): New.
	(EF_AMDGPU_FEATURE_SRAMECC_ANY_V4): New.
	(EF_AMDGPU_FEATURE_SRAMECC_OFF_V4): New.
	(EF_AMDGPU_FEATURE_SRAMECC_ON_V4): New.
	(SET_XNACK_ON): New.
	(SET_XNACK_OFF): New.
	(TEST_XNACK): New.
	(SET_SRAM_ECC_ON): New.
	(SET_SRAM_ECC_ANY): New.
	(SET_SRAM_ECC_OFF): New.
	(TEST_SRAM_ECC_ANY): New.
	(TEST_SRAM_ECC_ON): New.
	(main): Implement HSACOv4 and -msram-ecc=any.

(cherry picked from commit 205dafb6ed)
2021-10-18 08:10:44 +02:00
Andrew Stubbs
0eb56ebc05 amdgcn: Support LLVM 13 assembler syntax
The LLVM devs have changed the assembler architecture attribute names on both
CLI and in the ".amdgcn_target" directive, and changed the attribute syntax
inside the directive, without keeping any backwards compatibility. :-(

This patch improves our configure tests to detect what dialect to use, what
attributes are valid, and adjusts the specs to match.

gcc/ChangeLog:

	* config.in: Regenerate.
	* config/gcn/gcn-hsa.h (X_FIJI): New macro.
	(X_900): New macro.
	(X_906): New macro.
	(X_908): New macro.
	(A_FIJI): Rename to ...
	(S_FIJI): ... this.
	(A_900): Rename to ...
	(S_900): ... this.
	(A_906): Rename to ...
	(S_906): ... this.
	(A_908): Rename to ...
	(S_908): ... this.
	(SRAMOPT): New macro.
	(ASM_SPEC): Adjust xnack option usage.
	* config/gcn/gcn.c (output_file_start): Adjust amdgcn_target usage.
	* configure: Regenerate.
	* configure.ac: Detect LLVM assembler dialect.

(cherry picked from commit 6ca03ca35a)
2021-10-18 08:10:44 +02:00
Julian Brown
5b85107d3c amdgcn: Mark s_mulk_i32 as clobbering SCC
The s_mulk_i32 instruction sets the SCC status register according to
whether the multiplication overflows, but that is not currently modelled
in the GCN backend.  AFAIK this is a latent bug and hasn't been noticed
"in the wild", but it should be fixed.

2021-06-29  Julian Brown  <julian@codesourcery.com>

gcc/
	* config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.

(cherry picked from commit 5c127c4cac)
2021-10-18 08:10:44 +02:00
Andrew Stubbs
92aed72a73 amdgcn: Fix attributes for LLVM-12 [PR 100208]
This should work for a wider range of LLVM 12 variants now.
More work required for LLVM 13 though.

gcc/ChangeLog:

	PR target/100208
	* config.in: Regenerate.
	* config/gcn/gcn-hsa.h (A_FIJI): New define.
	(A_900): New define.
	(A_906): New define.
	(A_908): New define.
	(ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908.
	* config/gcn/gcn.c (output_file_start): Adjust attributes according
	to the assembler capabilities.
	* config/gcn/mkoffload.c (main): Likewise.
	* configure: Regenerate.
	* configure.ac: Add tests for LLVM assembler attribute features.
2021-10-18 08:10:44 +02:00
Andrew Stubbs
9552afb2ae amdgcn: Add -mxnack and -msram-ecc [PR 100208]
gcc/ChangeLog:

	PR target/100208
	* config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New.
	(ASM_SPEC): Set -mattr for xnack and sram-ecc.
	* config/gcn/gcn-opts.h (enum sram_ecc_type): New.
	* config/gcn/gcn-valu.md: Add a warning comment.
	* config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack.
	(output_file_start): Add xnack and sram-ecc state to ".amdgcn_target".
	* config/gcn/gcn.md: Add a warning comment.
	* config/gcn/gcn.opt: Add -mxnack and -msram-ecc.
	* config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove
	SRAM-ECC flag.
	(EF_AMDGPU_XNACK): New.
	(EF_AMDGPU_SRAM_ECC): New.
	(elf_flags): New.
	(copy_early_debug_info): Use elf_flags.
	(main): Handle -mxnack and -msram-ecc options.
	* doc/invoke.texi: Document -mxnack and -msram-ecc.

gcc/testsuite/ChangeLog:

	PR target/100208
	* gcc.target/gcn/sram-ecc-1.c: New test.
	* gcc.target/gcn/sram-ecc-2.c: New test.
	* gcc.target/gcn/sram-ecc-3.c: New test.
	* gcc.target/gcn/sram-ecc-4.c: New test.
	* gcc.target/gcn/sram-ecc-5.c: New test.
	* gcc.target/gcn/sram-ecc-6.c: New test.
	* gcc.target/gcn/sram-ecc-7.c: New test.
	* gcc.target/gcn/sram-ecc-8.c: New test.

(cherry picked from commit aad32a00b7)
2021-10-18 08:10:44 +02:00
Marcel Vollweiler
e85d6ef1c4 gcc/configure.ac: fix register issue for global_load assembler functions
gcc/ChangeLog:

	* config.in: Regenerate.
	* config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
	functions.
	* configure: Regenerate.
	* configure.ac: Fix for global_load assembler functions.

(cherry picked from commit cfa1f8226f)
2021-10-18 08:10:43 +02:00
GCC Administrator
64b2bd684f Daily bump. 2021-10-18 00:18:01 +00:00
Harald Anlauf
d97dbf60dd Fortran: fix order of checks for the SHAPE intrinsic
gcc/fortran/ChangeLog:

	PR fortran/102716
	* check.c (gfc_check_shape): Reorder checks so that invalid KIND
	arguments can be detected.

gcc/testsuite/ChangeLog:

	PR fortran/102716
	* gfortran.dg/shape_10.f90: New test.

(cherry picked from commit 1b115daf62)
2021-10-17 20:55:26 +02:00
GCC Administrator
e08da31310 Daily bump. 2021-10-17 00:17:54 +00:00
GCC Administrator
1b44508321 Daily bump. 2021-10-16 00:17:58 +00:00
John David Anglin
92a12b93ed Consistently use "rG" constraint for copy instruction in move patterns
2021-10-15  John David Anglin  <danglin@gcc.gnu.org>

gcc/ChangeLog:

	* config/pa/pa.md: Consistently use "rG" constraint for copy
	instruction in move patterns.
2021-10-15 14:51:22 +00:00
GCC Administrator
6a936be4ad Daily bump. 2021-10-15 00:18:36 +00:00
Vladimir N. Makarov
99d21577f8 [PR102627] Use at least natural mode during splitting hard reg live range
In the PR test case SImode was used to split live range of cx on x86-64
because it was the biggest mode for this hard reg in the function.  But
all 64-bits of cx contain structure members.  We need always to use at least
natural mode of hard reg in splitting to fix this problem.

gcc/ChangeLog:

	PR rtl-optimization/102627
	* lra-constraints.c (split_reg): Use at least natural mode of hard reg.

gcc/testsuite/ChangeLog:

	PR rtl-optimization/102627
	* gcc.target/i386/pr102627.c: New test.
2021-10-14 12:10:58 -04:00
Jonathan Wakely
3bf56cdf5e libstdc++: Fix non-default constructors for hash containers [PR101583]
When I added the new mixin to _Hashtable, I forgot to explicitly
construct it in each non-default constructor. That means you can't
use any constructors unless all three of the hash function, equality
function, and allocator are all default constructible.

libstdc++-v3/ChangeLog:

	PR libstdc++/101583
	* include/bits/hashtable.h (_Hashtable): Replace mixin with
	_Enable_default_ctor. Construct it explicitly in all
	non-forwarding, non-defaulted constructors.
	* testsuite/23_containers/unordered_map/cons/default.cc: Check
	non-default constructors can be used.
	* testsuite/23_containers/unordered_set/cons/default.cc:
	Likewise.

(cherry picked from commit 8ed6cfbbee)
2021-10-14 09:01:03 +01:00
John David Anglin
b4c0226e7b Fix TARGET_SOFT_FLOAT patterns in pa.md
2021-10-13  John David Anglin  <danglin@gcc.gnu.org>

gcc/ChangeLog:

	* config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT.
	(cbranchdf4): Likewise.
	Add missing move patterns for TARGET_SOFT_FLOAT.
2021-10-14 00:58:33 +00:00
GCC Administrator
f3c81b3acf Daily bump. 2021-10-14 00:18:17 +00:00
Jonathan Wakely
c706d5c3b8 libstdc++: Rename files with the wrong extensions
libstdc++-v3/ChangeLog:

	* testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
	* testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
	* testsuite/28_regex/match_results/102667.C: Moved to...
	* testsuite/28_regex/match_results/102667.cc: ...here.

(cherry picked from commit ce55693604)
2021-10-14 00:36:48 +01:00