aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-09-22Fix typo in floorv2sf2, should be register_operand for op1, not vector_operand.liuhongt2-1/+25
gcc/ChangeLog: PR target/106994 * config/i386/mmx.md (floorv2sf2): Fix typo, use register_operand instead of vector_operand for operands[1]. gcc/testsuite/ChangeLog: * gcc.target/i386/pr106994.c: New test.
2022-09-22libstdc++: Remove useless gdb printer registrationsFrançois Dumont1-5/+0
libstdc++-v3/ChangeLog: * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue, std::__debug::priority_queue.
2022-09-22Daily bump.GCC Administrator5-1/+139
2022-09-21libstdc++: Fix accidental duplicate test [PR91456]Jonathan Wakely2-4/+9
It looks like I committed the testcase for std::function twice, instead of one for std::function and one for std::is_invocable_r. This replaces the is_invocable_r one with the example from the PR. libstdc++-v3/ChangeLog: PR libstdc++/91456 * testsuite/20_util/function/91456.cc: Add comment with PR number. * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace std::function checks with std::is_invocable_r checks.
2022-09-21libstdc++: Remove main() from some compile-only testsJonathan Wakely5-25/+0
libstdc++-v3/ChangeLog: * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove unnecessary main function. * testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise. * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise. * testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise.
2022-09-21libstdc++: Update <memory> synopsis test for C++11 and laterJonathan Wakely1-7/+59
libstdc++-v3/ChangeLog: * testsuite/20_util/headers/memory/synopsis.cc: Add declarations from C++11 and later.
2022-09-21[PR106967] Set known NANs to undefined for flag_finite_math_only.Aldy Hernandez1-2/+7
Explicit NANs in the IL can be treated as undefined for flag_finite_math_only. This causes all the right things to happen wrt threading, folding, etc. It also saves us special casing throughout. PR tree-optimization/106967 gcc/ChangeLog: * value-range.cc (frange::set): Set known NANs to undefined for flag_finite_math_only.
2022-09-21Clear unused flags in frange for undefined ranges.Aldy Hernandez2-4/+8
gcc/ChangeLog: * value-range.cc (frange::combine_zeros): Call set_undefined. (frange::intersect_nans): Same. (frange::intersect): Same. (frange::verify_range): Undefined ranges do not have a type. * value-range.h (frange::set_undefined): Clear NAN flags and type.
2022-09-21tree-optimization/106984 - tsan and COND_EXPR GIMPLERichard Biener2-6/+14
The following adjusts a missed spot in TSAN for the RHS COND_EXPR GIMPLE IL rework. PR tree-optimization/106984 * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in a separate statement. * gcc.dg/tsan/pr106984.c: New testcase.
2022-09-21Fortran: handle RADIX kind in IEEE_SET_ROUNDING_MODEFrancois-Xavier Coudert2-3/+36
Make sure that calling IEEE_SET_ROUNDING_MODE with RADIX=10 does not affect the binary rounding mode. 2022-09-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> libgfortran/ * ieee/ieee_arithmetic.F90 (IEEE_SET_ROUNDING_MODE): Handle RADIX argument better. gcc/testsuite/ * gfortran.dg/ieee/rounding_3.f90: New test.
2022-09-21aarch64: Rewrite -march=native to -mcpu if no other -mcpu or -mtune is givenKyrylo Tkachov1-18/+32
We have received requests to improve the out-of-the box experience and performance of AArch64 GCC users, particularly those porting software from other architectures. This has many aspects. One such aspect are apps built natively with an -march=native used as a tuning flag in the Makefile. On AArch64 this selects the right architecture features on GNU+Linux for the host system but tunes for the "generic" CPU target. This patch makes GCC also tune for the host CPU, as well as selecting its architecture. That is, it translates -march=native into -mcpu=native. This maintains the documentation that it "causes the compiler to pick the architecture of the host system" since -mcpu=native does that, but it also gives a better performance experience for the user. If the user explicitly asked for a particular CPU tuning through -mcpu or -mtune then we don't do this rewriting so that the user option is honoured. This would have been a one-line patch if it wasn't for --with-tune configure-time arguments. When GCC is configured with --with-tune=<CORE> the OPTION_DEFAULT_SPECS will insert an -mtune=<CORE> in the options if no other -mcpu or -mtune options were given. This will spook the aforementioned desired rewriting of -march=native into -mcpu=native, though I'd argue that we want to do the rewrite even then. Therefore, this patch moves some specs in aarch64.h around and refactors the --with-tune rewriting into CONFIG_TUNE_SPEC so that the materialization of the implicit -mtune=<CORE> does not happen if -march=native is used. Bootstrapped and tested on aarch64-none-linux-gnu and checked with the output of -### from the driver that the option rewriting works as expected on aarch64-linux-gnu. gcc/ChangeLog: * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT, EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before OPTION_DEFAULT_SPECS. (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to local_cpu_detect when rewriting -march=native and no -mcpu or -mtune is given. (CONFIG_TUNE_SPEC): Define. (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
2022-09-21[PR106967] frange: revamp relational operators for NANs.Aldy Hernandez2-93/+193
Since NANs can be inserted by other passes even for -ffinite-math-only, we can't depend on the flag to determine if a NAN is a possiblity. Instead, we must explicitly check for them. In the case of -ffinite-math-only, paths leading up to a NAN are undefined and can be considered unreachable. I have audited all the relational code and made sure we're handling the known NAN case before anything else, setting undefined when appropriate. In the process, I revamped all the relational code handling NANs to correctly notice paths that are unreachable. The basic structure for ordered relational operators (except != of course) is this: If either operand is a known NAN, return FALSE. The true side of a relop when one operand is a NAN is unreachable. On the false side of a relop when one operand is a NAN, we know nothing about the other operand. Regstrapped on x86-64 and ppc64le Linux. lapack testing on x86-64 with and without -ffinite-math-only. PR tree-optimization/106967 gcc/ChangeLog: * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN. (foperator_equal::op1_range): Same. (foperator_not_equal::fold_range): Same. (foperator_not_equal::op1_range): Same. (foperator_lt::fold_range): Same. (foperator_lt::op1_range): Same. (foperator_lt::op2_range): Same. (foperator_le::fold_range): Same. (foperator_le::op1_range): Same. (foperator_le::op2_range): Same. (foperator_gt::fold_range): Same. (foperator_gt::op1_range): Same. (foperator_gt::op2_range): Same. (foperator_ge::fold_range): Same. (foperator_ge::op1_range): Same. (foperator_ge::op2_range): Same. (foperator_unordered::op1_range): Same. (foperator_ordered::fold_range): Same. (foperator_ordered::op1_range): Same. (build_le): Assert that we don't have a NAN. (build_lt): Same. (build_gt): Same. (build_ge): Same. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/pr106967.c: New test.
2022-09-21Fortran: add symbols in version map for IEEE_GET_MODES and IEEE_SET_MODESFrancois-Xavier Coudert1-0/+6
The symbols were forgotten in the patch that added IEEE_GET_MODES and IEEE_SET_MODES. 2022-09-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> libgfortran/ * gfortran.map: Add symbols for IEEE_GET_MODES and IEEE_SET_MODES.
2022-09-21Don't check can_vec_perm_const_p for nonlinear iv_init when it's constant.liuhongt2-1/+18
When init_expr is INTEGER_CST or REAL_CST, can_vec_perm_const_p is not necessary since there's no real vec_perm needed, but vec_gen_perm_mask_checked will gcc_assert (can_vec_perm_const_p). So it's better to use vec_gen_perm_mask_any in vect_create_nonlinear_iv_init. gcc/ChangeLog: PR tree-optimization/106963 * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use vec_gen_perm_mask_any instead of vec_gen_perm_mask_check. gcc/testsuite/ChangeLog: * gcc.target/i386/pr106963.c: New test.
2022-09-21libstdc++: Remove trailing whitespace in documentation sourcesJonathan Wakely2-8/+8
libstdc++-v3/ChangeLog: * doc/xml/manual/documentation_hacking.xml: Remove trailing whitespace. * doc/xml/manual/policy_data_structures.xml: Likewise.
2022-09-21libstdc++: Add _Exit to <stdlib.h> for freestandingJonathan Wakely1-0/+3
When I added std::_Exit to the freestanding declarations in <cstdlib> I should also have added it to <stdlib.h>. libstdc++-v3/ChangeLog: * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add using-declaration for _Exit.
2022-09-21libstdc++: Qualify std::abort() in testJonathan Wakely1-1/+1
This test includes <cstdlib> so should use std::abort not ::abort. libstdc++-v3/ChangeLog: * testsuite/18_support/uncaught_exception/14026.cc: Qualify call to std::abort.
2022-09-21libstdc++: Add <initializer_list> to ranges_base.h headerJonathan Wakely1-0/+1
The header should be included explicitly to use std::initializer_list. With the upcoming changes to make <ranges> available for freestanding this becomes an error, because <initializer_list> is no longer provided by any of the other headers involved here. libstdc++-v3/ChangeLog: * include/bits/ranges_base.h: Include <initializer_list>.
2022-09-21Daily bump.GCC Administrator8-1/+237
2022-09-20Fortran: F2018 type(*),dimension(*) with scalars [PR104143]Tobias Burnus4-2/+43
Assumed-size dummy arguments accept arrays and array elements as actual arguments. There are also a few exceptions when real scalars are permitted. Since F2018, this includes scalar arguments to assumed-type dummies; while type(*) was added in TS29113, this change is only in F2018 itself. PR fortran/104143 gcc/fortran/ChangeLog: * interface.cc (compare_parameter): Permit scalar args to 'type(*), dimension(*)'. gcc/testsuite/ChangeLog: * gfortran.dg/c-interop/c407b-2.f90: Remove dg-error. * gfortran.dg/assumed_type_16.f90: New test. * gfortran.dg/assumed_type_17.f90: New test.
2022-09-20Fortran: error recovery on invalid ARRAY argument to FINDLOC [PR106986]Harald Anlauf2-0/+9
gcc/fortran/ChangeLog: PR fortran/106986 * simplify.cc (gfc_simplify_findloc): Do not try to simplify intrinsic FINDLOC when the ARRAY argument has a NULL shape. gcc/testsuite/ChangeLog: PR fortran/106986 * gfortran.dg/pr106986.f90: New test.
2022-09-20Fortran: NULL pointer dereference in invalid simplification [PR106985]Harald Anlauf2-1/+10
gcc/fortran/ChangeLog: PR fortran/106985 * expr.cc (gfc_simplify_expr): Avoid NULL pointer dereference. gcc/testsuite/ChangeLog: PR fortran/106985 * gfortran.dg/pr106985.f90: New test.
2022-09-20c++: xtreme-header modules tests cleanupsPatrick Palka3-44/+28
This adds some recently implemented C++20/23 library headers to the xtreme-header tests as appropriate. Also, it looks like we can safely re-add <execution> and remove the NO_ASSOCIATED_LAMBDA workaround. gcc/testsuite/ChangeLog: * g++.dg/modules/xtreme-header-2.h: Include <execution>. * g++.dg/modules/xtreme-header-6.h: Include implemented C++20 library headers. * g++.dg/modules/xtreme-header.h: Likewise. Remove NO_ASSOCIATED_LAMBDA workaround. Include implemented C++23 library headers.
2022-09-20c++: modules and non-dependent auto deductionPatrick Palka4-0/+24
The modules streaming code seems to rely on the invariant that a TEMPLATE_DECL and its DECL_TEMPLATE_RESULT have the same TREE_TYPE. But for a non-dependent VAR_DECL with deduced type, the two TREE_TYPEs end up diverging: cp_finish_decl deduces the type of the initializer ahead of time and updates the TREE_TYPE of the VAR_DECL, but neglects to update the corresponding TEMPLATE_DECL as well, which leads to a "conflicting global module declaration" error for each of the __phase_alignment decls in the below testcase (and for the xtreme-header tests if we try including <barrier>). This patch makes cp_finish_decl update the TREE_TYPE of the corresponding TEMPLATE_DECL so that the invariant is maintained. gcc/cp/ChangeLog: * decl.cc (cp_finish_decl): After updating the deduced type of a VAR_DECL, also update the corresponding TEMPLATE_DECL if there is one. gcc/testsuite/ChangeLog: * g++.dg/modules/auto-3.h: New test. * g++.dg/modules/auto-3_a.H: New test. * g++.dg/modules/auto-3_b.C: New test.
2022-09-20Fortran: Fix function attributes [PR100132]José Rui Faustino de Sousa2-2/+88
gcc/fortran/ChangeLog: PR fortran/100132 * trans-types.cc (create_fn_spec): Fix function attributes when passing polymorphic pointers. gcc/testsuite/ChangeLog: PR fortran/100132 * gfortran.dg/PR100132.f90: New test.
2022-09-20frange::maybe_isnan() should return FALSE for undefined ranges.Aldy Hernandez1-0/+2
Undefined ranges have undefined NAN bits. We can't depend on them, as they may contain garbage. This patch returns false from maybe_isnan() for undefined ranges (the empty set). gcc/ChangeLog: * value-range.h (frange::maybe_isnan): Return false for undefined ranges.
2022-09-20frange::set_nonnegative should not contain -NAN.Aldy Hernandez2-0/+23
A specifically nonnegative range should not contain -NAN, otherwise signbit_p() would return false, because we'd be unsure of the sign. PR 68097/tree-optimization gcc/ChangeLog: * value-range.cc (frange::set_nonnegative): Set +NAN. (range_tests_signed_zeros): New test. * value-range.h (frange::update_nan): New overload to set NAN sign.
2022-09-20Merge branch 'master' into devel/sphinxMartin Liska28-31/+194
2022-09-20fortran: add link to ISO_VARYING_STRING module [PR106636]Martin Liska1-1/+2
PR fortran/106636 gcc/fortran/ChangeLog: * gfortran.texi: Add back link to ISO_VARYING_STRING.
2022-09-20aarch64: Fix GTY markup for arm_sve.h [PR106491]Richard Sandiford1-4/+8
It turns out that GTY(()) markers in definitions like: GTY(()) tree scalar_types[NUM_VECTOR_TYPES]; are not effective and are silently ignored. The GTY(()) has to come after an extern or static. The externs associated with the SVE ACLE GTY variables are in aarch64-sve-builtins.h. This file is not in tm_include_list because we don't want every target-facing file to include it. It therefore isn't in the list of GC header files either. In this case that's a blessing in disguise, since the variables belong to a namespace and gengtype doesn't understand namespaces. I think the fix is instead to add an extra extern before each variable declaration, similarly to varasm.cc and vtable-verify.cc. (This works due to a "using namespace" at the end of the file.) gcc/ PR target/106491 * config/aarch64/aarch64-sve-builtins.cc (scalar_types) (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY markup to (new) extern declarations instead of to the main definition.
2022-09-20vect: Fix SLP layout handling of masked loads [PR106794]Richard Sandiford3-8/+77
PR106794 shows that I'd forgotten about masked loads when doing the SLP layout changes. These loads can't currently be permuted independently of their mask input, so during construction they never get a load permutation. (If we did support permuting masked loads in future, the mask would need to be in the right order for the load, rather than in the order implied by the result of the permutation. Since masked loads can't be partly or fully scalarised in the way that normal permuted loads can be, there's probably no benefit to fusing the permutation and the load. Permutation after the fact is probably good enough.) gcc/ PR tree-optimization/106794 PR tree-optimization/106914 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost): Only consider loads that already have a permutation. (vect_optimize_slp_pass::start_choosing_layouts): Assert that loads with permutations are leaf nodes. Prevent any kind of grouped access from changing layout if it doesn't have a load permutation. gcc/testsuite/ * gcc.dg/vect/pr106914.c: New test. * g++.dg/vect/pr106794.cc: Likewise.
2022-09-20vect: Fix missed gather load opportunityRichard Sandiford2-0/+43
While writing a testcase for PR106794, I noticed that we failed to vectorise the testcase in the patch for SVE. The code that recognises gather loads tries to optimise the point at which the offset is calculated, to avoid unnecessary extensions or truncations: /* Don't include the conversion if the target is happy with the current offset type. */ But breaking only makes sense if we're at an SSA_NAME (which could then be vectorised). We shouldn't break on a conversion embedded in a generic expression. gcc/ * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict early-out optimisation to SSA_NAMEs. gcc/testsuite/ * gcc.dg/vect/vect-gather-5.c: New test.
2022-09-20[PR106970] New test for PR that has already been fixed.Aldy Hernandez1-0/+9
PR tree-optimization/106970 gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/pr106970.c: New test.
2022-09-20c++: stream PACK_EXPANSION_EXTRA_ARGS [PR106761]Patrick Palka4-0/+37
It looks like after the libstdc++ commit r13-2158-g02f6b405f0e9dc some xtreme-header-* tests are failing with "conflicting global module declaration" errors ultimately because we're neglecting to stream PACK_EXPANSION_EXTRA_ARGS, which leads to wrong equivalences of different partial instantiations of _TupleConstraints::__constructible. PR c++/106761 gcc/cp/ChangeLog: * module.cc (trees_out::type_node) <case TYPE_PACK_EXPANSION>: Stream PACK_EXPANSION_EXTRA_ARGS. (trees_in::tree_node) <case TYPE_PACK_EXPANSION>: Likewise. gcc/testsuite/ChangeLog: * g++.dg/modules/pr106761.h: New test. * g++.dg/modules/pr106761_a.H: New test. * g++.dg/modules/pr106761_b.C: New test.
2022-09-20replace "the the" typosMartin Liska16-17/+17
gcc/ada/ChangeLog: * exp_ch6.adb: Replace "the the" with "the". * sem_ch6.adb: Likewise. * sem_disp.ads: Likewise. gcc/ChangeLog: * ctfc.cc (ctf_add_string): Replace "the the" with "the". * doc/md.texi: Likewise. * gimple-range-infer.cc (non_null_loadstore): Likewise. gcc/fortran/ChangeLog: * gfortran.texi: Replace "the the" with "the". gcc/testsuite/ChangeLog: * g++.dg/warn/Wclass-memaccess.C: Replace "the the" with "the". * g++.dg/warn/Wconversion-real-integer2.C: Likewise. * gcc.target/powerpc/p9-extract-1.c: Likewise. * gcc.target/s390/s390.exp: Likewise. * gcc.target/s390/zvector/vec-cmp-2.c: Likewise. * gdc.dg/torture/simd_store.d: Likewise. * gfortran.dg/actual_array_offset_1.f90: Likewise. * gfortran.dg/pdt_15.f03: Likewise. * gfortran.dg/pointer_array_8.f90: Likewise.
2022-09-20libstdc++: Fix typo in <cstdlib> for freestandingJonathan Wakely1-1/+1
libstdc++-v3/ChangeLog: * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix missing space.
2022-09-20Merge branch 'master' into devel/sphinxMartin Liska1-3/+1
2022-09-20fortran: remove 2 dead links [PR106636]Martin Liska1-3/+1
PR fortran/106636 gcc/fortran/ChangeLog: * gfortran.texi: Remove 2 dead links.
2022-09-20Merge branch 'master' into devel/sphinxMartin Liska270-2474/+10619
2022-09-20contrib: skip new egrep warningMartin Liska1-3/+3
contrib/ChangeLog: * filter-clang-warnings.py: Skip egrep: warning: egrep is obsolescent; using grep -E.
2022-09-20Support 64-bit vectorization for single-precision floating rounding operation.liuhongt2-0/+231
Here's list the patch supported. rint/nearbyint/ceil/floor/trunc/lrint/lceil/lfloor/round/lround. gcc/ChangeLog: PR target/106910 * config/i386/mmx.md (nearbyintv2sf2): New expander. (rintv2sf2): Ditto. (ceilv2sf2): Ditto. (lceilv2sfv2si2): Ditto. (floorv2sf2): Ditto. (lfloorv2sfv2si2): Ditto. (btruncv2sf2): Ditto. (lrintv2sfv2si2): Ditto. (roundv2sf2): Ditto. (lroundv2sfv2si2): Ditto. (*mmx_roundv2sf2): New define_insn. gcc/testsuite/ChangeLog: * gcc.target/i386/pr106910-1.c: New test.
2022-09-20middle-end: handle bitop with an invariant induction.[PR105735]konglin13-10/+199
Enhance final_value_replacement_loop to handle bitop with an invariant induction. This patch will enable below optimization: { - long unsigned int bit; - - <bb 2> [local count: 32534376]: - - <bb 3> [local count: 1041207449]: - # tmp_10 = PHI <tmp_7(5), tmp_4(D)(2)> - # bit_12 = PHI <bit_8(5), 0(2)> - tmp_7 = bit2_6(D) & tmp_10; - bit_8 = bit_12 + 1; - if (bit_8 != 32) - goto <bb 5>; [96.97%] - else - goto <bb 4>; [3.03%] - - <bb 5> [local count: 1009658865]: - goto <bb 3>; [100.00%] - - <bb 4> [local count: 32534376]: - # tmp_11 = PHI <tmp_7(3)> - return tmp_11; + tmp_11 = tmp_4 (D) & bit2_6 (D); + return tmp_11; } gcc/ChangeLog: PR middle-end/105735 * tree-scalar-evolution.cc (analyze_and_compute_bitop_with_inv_effect): New function. (final_value_replacement_loop): Enhanced to handle bitop with inv induction. gcc/testsuite/ChangeLog: * gcc.target/i386/pr105735-1.c: New test. * gcc.target/i386/pr105735-2.c: New test.
2022-09-20LoongArch: Prepare static PIE supportXi Ruoyao1-2/+4
Static PIE allows us to extend the ASLR to cover static executables and it's not too difficult to support it. On GCC side, we just pass a group of options to the linker, like other ports with static PIE support. The real implementation of static PIE (rcrt1.o) will be added into Glibc later. gcc/ChangeLog: * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For -static-pie, pass -static -pie --no-dynamic-linker -z text to the linker, and do not pass --dynamic-linker.
2022-09-20frange: flush denormals to zeroAldy Hernandez2-0/+24
For some architectures (or for -funsafe-math-optimizations) we may flush denormals to zero, in which case we need to be careful to extend the ranges to the appropriate zero. This patch does exactly that. For a range of [x, -DENORMAL] we flush to [x, -0.0] and for [+DENORMAL, x] we flush to [+0.0, x]. gcc/ChangeLog: * value-range.cc (frange::flush_denormals_to_zero): New. (frange::set): Call flush_denormals_to_zero. * value-range.h (class frange): Add flush_denormals_to_zero.
2022-09-20Adjust issue_rate for latest Intel processors.liuhongt1-0/+14
For Skylake based processor, decoder is 4-way. For Sunny Cove and Willow Cove, decoder is 5-way. For Golden cove, decoder is 6-way. gcc/ChangeLog: * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for latest Intel processors.
2022-09-20i386: Fixed vec_init_dup_v16bf [PR106887]konglin12-7/+112
gcc/ChangeLog: PR target/106887 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate): Fixed V16BF mode case. gcc/testsuite/ChangeLog: PR target/106887 * gcc.target/i386/vect-bfloat16-2c.c: New test.
2022-09-20Daily bump.GCC Administrator7-1/+53
2022-09-19c: Stray inform note with -Waddress [PR106947]Marek Polacek2-9/+32
A trivial fix for maybe_warn_for_null_address where we print an inform note without first checking the return value of a warning call. PR c/106947 gcc/c/ChangeLog: * c-typeck.cc (maybe_warn_for_null_address): Don't emit stray notes. gcc/testsuite/ChangeLog: * c-c++-common/Waddress-7.c: New test.
2022-09-19Fortran: add IEEE_MODES_TYPE, IEEE_GET_MODES and IEEE_SET_MODESFrancois-Xavier Coudert3-1/+160
The IEEE_MODES_TYPE type and the two functions that get and set it were added in Fortran 2018. They can be implemented using the already existing target-specific functions. A future optimization could, on some targets, set/get all modes through one or two instructions only, but that would need a new set of functions in all config/fpu-* files. 2022-09-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> libgfortran/ * ieee/ieee_exceptions.F90: Add IEEE_MODES_TYPE, IEEE_GET_MODES and IEEE_SET_MODES. * ieee/ieee_arithmetic.F90: Make them public in IEEE_ARITHMETIC as well. gcc/testsuite/ * gfortran.dg/ieee/modes_1.f90: New test.
2022-09-19Improve sorry message for -fzero-call-used-regsTorbjörn SVENSSON1-2/+15
When the -fzero-call-used-regs command line option is used with an unsupported value, indicate that it's a value problem instead of an option problem. Without the patch, the error is: In file included from gcc/testsuite/c-c++-common/zero-scratch-regs-8.c:5: gcc/testsuite/c-c++-common/zero-scratch-regs-1.c: In function 'foo': gcc/testsuite/c-c++-common/zero-scratch-regs-1.c:10:1: sorry, unimplemented: '-fzero-call-used-regs' not supported on this target 10 | } | ^ With the patch, the error would be like this: In file included from gcc/testsuite/c-c++-common/zero-scratch-regs-8.c:5: gcc/testsuite/c-c++-common/zero-scratch-regs-1.c: In function 'foo': gcc/testsuite/c-c++-common/zero-scratch-regs-1.c:10:1: sorry, unimplemented: argument 'all-arg' is not supported for '-fzero-call-used-regs' on this target 10 | } | ^ 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> gcc/ChangeLog: * targhooks.cc (default_zero_call_used_regs): Improve sorry message. Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>