ective-target c++17 }
> // { dg-additional-options "-march=x86-64-v4" { target avx512f_runtime } }
> // { dg-require-cmath "" }
--
──┬
Dr. Matthias Kretz │ SDE — Software Development for Experiments
Senior Software Engineer,
* Running a test compiled with AVX512 instructions requires
avx512f_runtime not just avx512f.
* The 'reduce2' test violated an invariant of fixed_size_simd_mask and
thus failed on all targets without 16-Byte vector builtins enabled (in
bits/simd.h).
Signed-off-by: Matthias Kretz
li
Ping.
I fear that time to make GCC 11.5 is running out.
-Matthias
On Tuesday, 18 June 2024 08:22:13 GMT+2 Matthias Kretz wrote:
> Tested on x86_64-linux-gnu (also -m32 and -mx32), aarch64-linux-gnu, and
> arm- linux-gnueabi(hf).
>
> OK for trunk and backports? OK, to go for GCC 1
-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/115454
* include/experimental/bits/simd_x86.h (_S_not_equal_to): Use
neq comparison instead of bitwise negation after eq.
(_S_find_last_set): Clear unused high bits before computing
bit_wi
rsion from vector types with compatible
integral type.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/115308
* include/experimental/bits/simd.h (__int_for_sizeof): Remove
special cases for __clang__.
(_SimdWrapper): Change constructor ove
ifdef __clang__
> >+ #ifdef _GLIBCXX_CLANG
>
> I'd like to hear from Matthias to know he's OK with the simd changes.
Yes, LGTM. There's no maintained upstream copy of simd anymore. And all
occurrences in the simd code are asking for the actual Clang compiler
ping
On Wednesday, 15 May 2024 21:49:56 GMT+2 Matthias Kretz wrote:
> Tested on aarch64-linux-gnu, arm-linux-gnueabihf, powerpc64le-linux-gnu,
> x86_64-linux-gnu (-m64, -m32, -mx32), and arm-linux-gnueabi
>
> OK for trunk? And when backporting, should I squash it with the
ves a regression on i686 that was introduced with
r15-429-gfb1649f8b4ad50.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/114958
* include/experimental/bits/simd.h (__as_vector): Don't use
vector_size(8) on __i386__.
(__vec_shuffle): Neve
On Mittwoch, 15. Mai 2024 09:06:57 MESZ Matthias Kretz wrote:
> On Mittwoch, 15. Mai 2024 04:20:51 MESZ Jiang, Haochen wrote:
> > I am little concerned about the file size, but let me give a try if you
> > can
> > see the attachment.
>
> [...]
> But now that I es
e issue if I can't get this to fail. I've tested
x86_64 multilib with -m32 and even -mx32 locally and cannot find any issue. 😟
- Matthias
--
──────
Dr. Matthias Kretz https://mattkretz.git
ext says:
> could not convert '__vector(2) wchar_t' to '_SimdWrapper'
And _SimdWrapper has an implicit constructor taking one
__vector(2) wchar_t argument. So I potentially need all of the context to make
sense of it.
- Matthias
--
──
Matthias
On Montag, 13. Mai 2024 18:55:13 MESZ haochen. jiang wrote:
> On Linux/x86_64,
>
> fb1649f8b4ad5043dd0e65e4e3a643a0ced018a9 is the first bad commit
> commit fb1649f8b4ad5043dd0e65e4e3a643a0ced018a9
> Author: Matthias Kretz
> Date: Mon May 6 12:13:55 2024 +
Tested on x86_64-linux-gnu and aarch64-linux-gnu and with Clang 18 on x86_64-
linux-gnu.
OK for trunk and backport(s)?
-- 8<
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/114958
* include/experimental/b
Tested on x86_64-linux-gnu, powerpc64le-linux-gnu, aarch64-linux-gnu, arm-
linux-gnueabihf
OK for trunk and backports?
- 8< -
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/114803
* incl
g a dependency on a template parameter)
Signed-off-by: Matthias Kretz
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 va
This never showed up as an issue because it's an internal header and
implicitly guarded by bits/simd.h.
OK for trunk? Any reason to backport?
- 8< --
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimen
Tested on arm-linux-gnueabihf, powerpc64le-linux-gnu, and aarch64-linux-gnu.
OK for trunk and backports?
- 8< --
This resolves failing tests in check-simd.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/114
On Mittwoch, 27. März 2024 14:34:52 CET Richard Sandiford wrote:
> Matthias Kretz writes:
> > The big issue here is that, IIUC, a user (and the simd library) cannot do
> > the right thing at the moment. There simply isn't enough context
> > information available whe
tached.
--
──
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmholtz Center for Heavy Ion Research https://gsi.de
std::simd
──
commit 9ac3119fec81fb64d11dee8f853145f937389366
And one more to fix follow-up / remaining failures. Tested on x86_64-linux-
gnu.
OK for trunk and 13?
8< --
This resolves further failures (-Wreturn-type warnings) and test
failures for where-* tests targeting AVX-512.
Signed-off-by: Matthias Kretz
libstdc++
d SIMD registers).
> In Neoverse V1 (SVE256) they are the same physical register as well.
> I believe the same is true for A64FX.
That's good to know. 👍
> FWIW, GCC has already started using SVE in this way. E.g. SVE provides
> a wider range of immediate constants for logi
of
the spec and implementation is to gather experience.
Best,
Matthias
--
──────
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmh
le changed, 9 insertions(+), 3 deletions(-)
--
──────
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmholtz Centre for Heavy Ion Research https://gsi.d
Hi,
I applied and did extended testing on x86_64 (no regressions) and aarch64
using qemu testing SVE 256, 512, and 1024. Looks good!
While going through the applied patch I noticed a few style issues that I
simply turned into a patch (attached).
A few comments inline. Sorry for not seeing thes
On Thursday, 18 January 2024 08:40:48 CET Andrew Pinski wrote:
> On Wed, Jan 17, 2024 at 11:28 PM Matthias Kretz wrote:
> > template
> > struct Point
> > {
> > T x, y, z;
> >
> > T distance_to_origin() {
> > return sqrt(x * x + y * y +
128) don't do that and might incur a significant
latency when going from a NEON register to an SVE register and back (which
each requires a store-load, IIUC). So are you thinking of implementing
everything via SVE? That would break ABI, no?
- Matthias
--
──
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmholtz Center for Heavy Ion Research https://gsi.de
std::simd
──
BITS being set here
> and being meanful in any way.
I'd love to. In the same way I'd love to *not depend* on __AVX__,
__AVX512F__ etc.
- Matthias
--
──────
Dr. Matthias Kretz
z):
#include
auto
f()
{
std::vector x;
x.reserve(10);
for (int i = 0; i < 10; ++i)
x.push_back(0);
return x;
}
auto
g()
{ return std::vector(10, 0); }
--
──────
Dr. Matthias Kretz http
- let me know.
-Matthias
--
──────
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmholtz Center for Heavy Ion Research https://gsi.de
std::simd
──
SX
POWER targets.
Replace __extract_part implementation (which was the only user of
__shift_elements_right) by relying on __builtin_shufflevector (not
available in GCC 11). This removes another cast to 64-bit element type,
which breaks on non-VSX POWER.
Signed-off-by: Matthias Kretz
libstdc++-v3/C
ned-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/109822
* include/experimental/bits/simd_builtin.h (_S_store): Rewrite
to avoid casts to other vector types. Implement store as
succession of power-of-2 sized memcpy to avoid PR90424.
---
.../incl
current ABI tag's _SimdImpl. This also reduces the number of possible
template instantiations.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/110054
* include/experimental/bits/simd_builtin.h (_S_masked_store):
Call into deduced ABI'
pushed to trunk, will backport later
tested on x86_64-pc-linux-gnu
--- >8
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd.h (__bit_cast): Use
__gnu__::__vector_size__ instead of gnu::vector_size.
---
libstdc++-v3/incl
++, but also that even those that are present are not visible in
> namespace ::std::, where the macros reasonably expect to find them. Is
> this known? Should I file a PR about it?
I had/have no idea. Is rtems6 using the "freestanding" subset of C++? In which
case simd shouldn
ht just be that
some codes have become dependent on the existing (under-specified) behavior. 🤷
- Matthias
--
──
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmholtz Centre for Heavy Ion Research https://gsi.de
stdₓ::simd
──
e
implementation of the shift operator depends on the current behavior, even if
it is target-dependent. For PPC the simd implementation adds extra code to
avoid the "UB". With nailing down shifts > sizeof(T) as UB this extra code now
needs to be added for all targets.
- M
Hello Alexandre,
On Friday, 2 June 2023 10:32:40 CEST Alexandre Oliva wrote:
> On May 26, 2023, Matthias Kretz via Libstdc++ wrote:
> > OK for master and all backports (after 11.4 is done)?
> > tested on powerpc64le-linux-gnu and x86_64-pc-linux-gnu
> >
> > *
version of int.
> Revised patch below.
This can be considered a breaking change. Does it need a mention in the
release notes?
- Matthias
--
──────
Dr. Matthias Kretz https://mattkretz.github.io
pushed to trunk, will backport
tested on arm-linux-gnueabihf
-- 8< --
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/110050
* include/experimental/bits/simd.h (__vectorized_sizeof): With
__have_neon_a32 only single-precision fl
OK for master and all backports (after 11.4 is done)?
tested on powerpc64le-linux-gnu and x86_64-pc-linux-gnu
--- 8<
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/109822
* include/experimental/bits/simd.h (to_native): Use int N
OK for master and all backports (after 11.4 is done)?
tested on powerpc64le-linux-gnu
--- 8<
This avoids a failure on PR109964.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* testsuite/experimental/simd/tests/integer_operators.cc:
Comp
OK for master and all backports (after 11.4 is done)
tested on powerpc64le-linux-gnu (with 64-bit long double)
--- 8<
Expect that long might not fit into the long double mantissa bits.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* testsu
pushed to master, will backport later
tested on x86_64-pc-linux-gnu and powerpc64le-linux-gnu
--- 8<
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
Negative __y is UB, so prefer sig
OK for master and backports? (also a long-standing bug that didn't surface
until the new constexpr test was added)
tested on powerpc64le-linux-gnu
- 8< -
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/109949
*
OK for master and all branches? (this issue only surfaced because of the new
test)
8< -
On ARM NEON doesn't support double, so __is_intrinsic_type_v should say false (instead of being ill-formed).
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/109261
* include/experimental/bits/simd_neon.h (_S_reduce): Add
constexpr and make NEON implementation conditional on
not __builtin_is_constant_evaluated.
---
.../include/experimental/bits
I pushed the attached patch.
I kept the operator names... too late, there were already operator names in
the stdx::simd implemenation anyway. ;)
- Matthias
On Monday, 22 May 2023 22:51:49 CEST Jonathan Wakely wrote:
> On Mon, 22 May 2023 at 21:27, Matthias Kretz wrote:
> > On Monda
xpr_simd.cc correct, or just
> copy&paste?
Right, copy&paste. Should I simply remove the complete header?
- Matthias
--
──
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmholtz Centre for Heavy Ion Research https://gsi.de
stdₓ::simd
──
expressions.
Issues why constant_evaluated branches are necessary:
* subscripting vector builtins is not allowed in constant expressions
* if the implementation needs/uses memcpy
* if the implementation would otherwise call SIMD intrinsics/builtins
Signed-off-by: Matthias Kretz
libstdc++-v3
pushed to master, will backport later
regtested on x86_64-linux
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
__infn into #ifdef'ed block.
* testsuite/experimental/simd/tests/fpclassi
This resolves a regression of my previous fix where Clang would ICE on
_S_divides.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_x86.h (_SimdImplX86): Use
_Base::_S_divides if the optimized _S_divides function is hidden
via the
I don't know how, but I forgot to implement the
is_simd_flag_type trait. This fixes it.
No new check-simd failures on x86_64-pc-linux-gnu
--- 8< --
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd.h (is_simd_f
Tested on x86_64-pc-linux-gnu.
- 8< ---
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_x86.h
(_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
with __RECIPROCAL_MATH__.
---
libstdc++-v3/incl
Tested on x86_64-pc-linux-gnu.
- 8< ---
Clang ICEs on _SimdImplX86::_S_divides. The function is only working
around a missed optimization and not necessary for correctness.
Therefore, don't use it for Clang.
Signed-off-by: Matthias Kretz
libstdc++-v3/C
do not exist on Clang.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_detail.h: Don't declare the
simd API as constexpr with Clang.
* include/experimental/bits/simd_x86.h (__movm): New.
(_S_blend_avx512): Resol
to vector-mask before using a vector blend ?:. A
similar change is required for the masked unary implementation, because
the GCC builtins do not exist on Clang.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_detail.h: Don't declar
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* testsuite/experimental/simd/tests/operators.cc: Clang doesn't
define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
---
.../testsuite/experimental/simd/tests/operators.cc | 9 -
1 file changed, 8 inser
Up to now, compiling std::experimental::simd with Clang would lead to wrong
code, not compiling, or ICEs. After these patches I hope it's only ICEs.
Tested on x86_64-pc-linux-gnu.
Matthias Kretz (2):
libstdc++: Fix simd test compilation with Clang
libstdc++: Fix simd compilation with
d all other patches to trunk that came
before this one.
--
──
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmholtz Centre for Heavy Ion Research https://gsi.de
stdₓ::simd
──
On Thursday, 23 February 2023 12:07:11 CET Jonathan Wakely wrote:
> On Thu, 23 Feb 2023 at 08:55, Matthias Kretz via Libstdc++
>
> wrote:
> > Resolves -Wtautological-compare warnings about `if
> > (__builtin_is_constant_evaluated())` in the implementations of these
&g
Tested on x86_64-pc-linux.
This patchset provides the final changes for PR108030 and resolves
PR108856. The latter is a pure optimization and could wait for Stage 1 (I'm
submitting the patch because simd is experimental/TS)
Matthias Kretz (8):
libstdc++: Simplify three helper functions
Broadcast is a very common function. This should reduce compile-time
effort.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/108030
* include/experimental/bits/simd.h (__vector_broadcast):
Implement via __vector_broadcast_impl instead of
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/108856
* include/experimental/bits/simd_builtin.h
(_SimdImplBuiltin::_S_masked_unary): More efficient
implementation of masked inc-/decrement for integers and floats
without AVX2
For simd, the inlining behavior should be similar to builtin types. (No
operator on buitin types is ever translated into a function call.)
Therefore, always_inline is the right choice (i.e. inline on -O0 as
well).
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc
Clang does not support __attribute__ on lambdas. Therefore, only set
_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA if __clang__ is not defined.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR libstdc++/108030
* include/experimental/bits/simd_detail.h
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_builtin.h (_S_set): Compare as
int. The actual range of these indexes is very small.
---
libstdc++-v3/include/experimental/bits/simd_builtin.h | 2 +-
1 file changed, 1 insertion(+), 1
Whitespace changes only.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd.h: Line breaks and indenting
fixed to follow the libstdc++ standard.
* include/experimental/bits/simd_builtin.h: Likewise.
* include/experimental
Resolves -Wtautological-compare warnings about `if
(__builtin_is_constant_evaluated())` in the implementations of these
functions.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_x86.h (_S_bit_shift_left)
(_S_bit_shift_right): Declare
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* testsuite/experimental/simd/tests/reductions.cc: Introduce
max_distance as the type-dependent max error.
---
libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc | 3 ++-
1 file changed, 2 insertions(+), 1
Tested x86_64-pc-linux. Pushed to trunk.
-- >8 --
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd.h (__extract_part, split):
Use reserved name for template parameter.
---
libstdc++-v3/include/experimental/bits/simd.h |
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_x86.h
(_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
(_SimdImplX86::_S_less_equal): Do not call
__builtin_is_constant_evaluated in constexpr-if.
---
.../include
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* testsuite/experimental/simd/generate_makefile.sh: Generate and
pre-compile pch.h, which includes all headers that do not depend
on command-line macros.
* testsuite/experimental/simd/tests/bits/conversions.h
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* testsuite/experimental/simd/tests/bits/verify.h
(verify::verify): Use %zx for size_t in format string.
---
libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion
All of the annotated lambdas are simply a necessary means for
implementing these functions and should never result in an actual
function call. Many of these lambdas would go away if C++ had better
language support for packs.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
PR
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd_math.h (__hypot): Bitcasting
between scalars requires the __bit_cast helper function instead
of simd_bit_cast.
---
libstdc++-v3/include/experimental/bits/simd_math.h | 4 ++--
1
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* testsuite/experimental/simd/README.md: Document the timeout
and timeout-factor directives. Minor typo fixed.
---
libstdc++-v3/testsuite/experimental/simd/README.md | 10 --
1 file changed, 8 insertions(+), 2
The more expensive code path should only be taken if it can be optimized
away.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog:
* include/experimental/bits/simd.h
(_SimdWrapper::_M_is_constprop_none_of)
(_SimdWrapper::_M_is_constprop_all_of): Return false unless
implemented the use
of PCH to speed up the test suite.
Matthias Kretz (7):
libstdc++: Ensure __builtin_constant_p isn't lost on the way
libstdc++: Annotate most lambdas with always_inline
libstdc++: Document timeout and timeout-factor of simd tests
libstdc++: Use a PCH to speed up check
other mail. If `__vector double` without VSX was
always ill-formed then I must be misremembering something.
Cheers,
Matthias
--
──
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmholtz
[long] double on PPC w/o
VSX");
The missing condition here was an incorrect omission. With -mlong-double-64
and without VSX no assertion caught the issue.
IIRC, a user won't get to see this error message unless there's a bug in the
simd library implementation, so the er
On Friday, 1 April 2022 13:33:42 CEST Jonathan Wakely wrote:
> Matthias didn't like my Princess Bride easter egg :-)
> Would the attached be better?
LGTM.
--
──
Dr. Matthias Kretz
elif defined _GLIBCXX_ASSERTIONS
> +__builtin_trap();
> +#else
> +__builtin_unreachable();
> +#endif
> + }
--
──
Dr. Matthias Kretz https://mattkretz.github.io
GSI Helmholtz Centre for Heavy Ion Research https://gsi.de
stdₓ::simd
──
On Wednesday, 19 January 2022 16:21:15 CET Jonathan Wakely wrote:
> On Wed, 19 Jan 2022, 12:45 Matthias Kretz, wrote:
> > On Wednesday, 19 January 2022 13:07:26 CET Jonathan Wakely wrote:
> > > So is it a macro or not?
> >
> > I agree the quote I used is u
On Wednesday, 19 January 2022 13:07:26 CET Jonathan Wakely wrote:
> On Wed, 19 Jan 2022 at 08:10, Matthias Kretz wrote:
> > Follow-up to my last patch. This one is a more thorough fix. Tested on
> > x86_64-
> > linux. OK for trunk?
> >
> > 8<
> >
Follow-up to my last patch. This one is a more thorough fix. Tested on x86_64-
linux. OK for trunk?
8<
Use SFINAE magic to support: "It is unspecified whether math_errhandling
is a macro or an identifier with external linkage." [C Standard]
Signed-off-by: Matthias Kretz
Tested on x86_64-linux and powerpc64le-linux. This fixes the powerpc64le-linux
failure Jonathan reported. OK for trunk?
Older glibc does not define math_errhandling with -ffast-math, in which
case floating-point exceptions are not used.
Signed-off-by: Matthias Kretz
libstdc++-v3/ChangeLog
NAMESPACE_DECL and therefore must be handled
first in the assertion.
Signed-off-by: Matthias Kretz
gcc/cp/ChangeLog:
* module.cc (trees_out::get_merge_kind): NAMESPACE_DECLs also
cannot have a DECL_TEMPLATE_INFO.
---
gcc/cp/module.cc | 5 +++--
1 file changed, 3 insertions(+), 2
On Tuesday, 7 December 2021 08:43:56 CET Richard Biener wrote:
> On Mon, Dec 6, 2021 at 11:47 AM Matthias Kretz wrote:
> > While reading the hash_map code I noticed this inconsistency. Bootstrapped
> > and regtested on x86_64. OK for trunk?
>
> I've inspected two users
On Tuesday, 7 December 2021 08:47:56 CET Richard Biener wrote:
> On Tue, Dec 7, 2021 at 8:43 AM Richard Biener
> wrote:
>
> >
> >
> > On Mon, Dec 6, 2021 at 11:47 AM Matthias Kretz wrote:
> >
> > >
> > >
> > > While reading the hash_m
While reading the hash_map code I noticed this inconsistency. Bootstrapped and
regtested on x86_64. OK for trunk?
The hash_map::traverse overload taking a non-const Value pointer breaks
if the callback returns false. The other overload should behave the
same.
Signed-off-by: Matthias Kretz
On Friday, 26 November 2021 16:23:43 CET Matthias Kretz wrote:
> > Hmm, since it walks DECL_TEMPLATE_RESULT, I wouldn't expect it to find
> > template parms that aren't in the function signature.
>
> You were right, walking TREE_TYPE (DECL_TEMPLATE_RESULT (t))
Restore status-quo how function template specializations were diagnosed.
Signed-off-by: Matthias Kretz
gcc/testsuite/ChangeLog:
* g++.dg/diagnostic/default-template-args-1.C: Adjust for
different presentation of function template specializations.
* g++.dg/ext/pretty1
igned-off-by: Matthias Kretz
gcc/testsuite/ChangeLog:
* g++.dg/debug/dwarf2/template-params-12n.C: Optionally, allow
DW_AT_default_value.
* g++.dg/diagnostic/default-template-args-1.C: New test.
* g++.dg/diagnostic/default-template-args-2.C: New test.
* g
On Friday, 19 November 2021 23:26:57 CET Jason Merrill wrote:
> On 11/19/21 04:53, Matthias Kretz wrote:
> > On Thursday, 18 November 2021 20:24:36 CET Jason Merrill wrote:
> >> On 11/17/21 17:51, Matthias Kretz wrote:
> >>>>> __FUNCTION__ was 'fun
On Friday, 19 November 2021 23:26:57 CET Jason Merrill wrote:
> On 11/19/21 04:53, Matthias Kretz wrote:
> > My motivation for printing a function template specialization differently
> > is:
> >
> > 1. It's a different function definition that's being c
On Friday, 19 November 2021 10:53:27 CET Matthias Kretz wrote:
> > >> Ah, you're trying to omit defaulted parms from the ? I'm not
> > >> sure
> > >> that's necessary, leaving them out of the [with ...] list should be
> > >> suff
On Thursday, 18 November 2021 20:24:36 CET Jason Merrill wrote:
> On 11/17/21 17:51, Matthias Kretz wrote:
> > Right, I had already added a `gcc_assert (!TMPL_ARGS_HAVE_MULTIPLE_LEVELS
> > (args))` to my new set_non_default_template_args_count function and found
> > c
On Wednesday, 17 November 2021 19:25:46 CET Jason Merrill wrote:
> On 11/17/21 04:04, Matthias Kretz wrote:
> > On Wednesday, 17 November 2021 07:09:18 CET Jason Merrill wrote:
> >>> - if (CHECKING_P)
> >>> -SET_NON_DEFAULT_TEMPLATE_
al different functions the same name. That seemed
like a regression. So either the DWARF strings need to include the function
arguments, or we need this condition to keep showing the template arguments
independent of whether they were explicitly given or not.
> > + 5. either
> > +
On Tuesday, 16 November 2021 21:49:31 CET Jason Merrill wrote:
> On 11/16/21 15:42, Matthias Kretz wrote:
> > On Tuesday, 16 November 2021 21:25:33 CET Jason Merrill wrote:
> >> On 11/8/21 15:00, Matthias Kretz wrote:
> >>> I forgot to mention why I tagged it [
1 - 100 of 216 matches
Mail list logo