Recordings of cauldron 2023 talks

2023-11-18 Thread Heiko

Hello,

according to https://gcc.gnu.org/wiki/cauldron2023 it was planned to 
make the talk recordings available afterwards.
I would be interested to follow them, but have not been able to find 
them anywhere.


My first guess was to look here: 
https://www.youtube.com/@gnutoolscauldron7666/videos, but that lists 
only talks of the previous year.


Could someone please point me to the right place?

Thanks in advance!
Heiko Eißfeldt





No c++0x threads using win32 threading model (with MinGW-w64)

2009-09-08 Thread Heiko Harders

Hello,

(first of all: sorry to post this message to a second list, I've sent it 
to the wrong list at first)


I am using g++ in MinGW-w64 running in a Windows environment. I'm 
especially interested in the c++0x threads because it allows standard 
cross-platform multi-threading.


Unfortunately I didn't get this to work (using a very recent Mingw-w64 
snapshot that uses gcc 4.5.0). I did some research and I think I found 
out why. Perhaps somebody on this list could confirm this and/or answer 
some of the questions I have about the win32 threading model.


First of all, the c++0x threads don't seem to work because in the 
`thread' header file the file `gthr.h' is included, which includes in 
turn some threading model specific files (like `gthr_posix.h'). While 
the header `gthr_win32.h' does exist, it is not included from `gthr.h'. 
The comments in `gthr.h' further mention support for several threading 
models, but the win32 threading model is not amongst these. Am I looking 
in the right direction for reasons why the c++0x threads do not work 
with the win32 threading model?


If the above is correct: is support for win32 c++0x threads being worked 
on at the moment? If that is the case, any indication when it will be in 
a usable state? What must be undertaken to implement this support?


I hope somebody can give me some insight in these questions.

Regards,
Heiko


Re: Review for gcc-15/changes.html

2025-04-30 Thread Heiko Eißfeldt

-  FEAT_LRCPC2 (+rcpc2), enabled by default for
+  FEAT_RCPC2 (+rcpc2), enabled by default for

and

-FEAT_LRCPC3 instructions, when support for the instructions is
+FEAT_RCPC3 instructions, when support for the instructions is

These are incorrect.  The features really are FEAT_LRCPC2/3.

Otherwise, I think these look generally like improvements.

R.



That is interesting. I did a grep on gcc trunk for 'FEAT_.*RCPC' and got 
this

./gcc/common/config/aarch64/cpuinfo.h:  FEAT_RCPC,
./gcc/common/config/aarch64/cpuinfo.h:  FEAT_RCPC2,
./gcc/common/config/aarch64/cpuinfo.h:  FEAT_RCPC3,
./libgcc/config/aarch64/cpuinfo.c:    setCPUFeature(FEAT_RCPC);
./libgcc/config/aarch64/cpuinfo.c:    setCPUFeature(FEAT_RCPC2);
./libgcc/config/aarch64/cpuinfo.c:    setCPUFeature(FEAT_RCPC3);

Substring "LRCPC" I see only in conjunction with hardware capabilities 
but not features.


The documentation
(https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AArch64-Options.html#aarch64-feature-modifiers)
lists in chapter 3.20.1.1 "-march and -mcpu Feature Modifiers"

‘rcpc’
‘rcpc2’
‘rcpc3’

Finally,  the substring LRCPC2 was not found in my repo at all.

H.


Review for gcc-15/changes.html

2025-04-30 Thread Heiko Eißfeldt

Hi,

here is a patch for some mostly minor typos in 
https://gcc.gnu.org/gcc-15/changes.html.

My fixes might be wrong of course, so they are just suggestions.

Also, the linked page https://gcc.gnu.org/gcc-15/porting_to.html 
contains the now outdated
"Note: GCC 15 has not been released yet, so this document is a 
work-in-progress."

which is luckily not true anymore.

Greetings and thanks, Heiko

--- "GCC 15 Release Series — Changes, New Features, and Fixes - GNU Project.html.org"	2025-04-30 15:09:45.736597984 +0200
+++ "GCC 15 Release Series — Changes, New Features, and Fixes - GNU Project.html"	2025-04-30 18:05:33.700016746 +0200
@@ -69,7 +69,7 @@
   
   The vectorizer now supports vectorizing loops with early exits where
 the number of elements for the input pointers are unknown through peeling
-for alignment.  This is supported for only for loops with fixed vector
+for alignment.  This is supported only for loops with fixed vector
 lengths.
   
   -ftime-report now only reports monotonic run time instead of
@@ -90,7 +90,7 @@
   
 Improvements for compiling very large input files.  The compile time for
 large input files with -Wmisleading-indentation has been
-significantly improved. The compiler can now track columnn numbers larger
+significantly improved. The compiler can now track column numbers larger
 than 4096. Very large source files have more accurate location reporting.
   
   GCC can now emit diagnostics in multiple formats simultaneously,
@@ -278,7 +278,7 @@
 for more information.
   
   
-The diagnostics code has seen a major refactor, it now supports the sarif
+The diagnostics code has seen a major refactoring, it now supports the sarif
 format -fdiagnostics-format=sarif-file among other
 improvements. More changes are expected in following releases.
   
@@ -736,7 +736,7 @@
 and -fc-prototypes-external options.
   
   
-The -fc-prototypes now also generates prototypes for
+The -fc-prototypes option now also generates prototypes for
 interoperable procedures with assumed shape and assumed rank
 arguments that require the header file
 <ISO_Fortran_binding.h>.
@@ -760,7 +760,7 @@
   
   Access to the GCC
 builtins clz, clzll, ctz
-and ctzll are now available from the
+and ctzll is now available from the
 module Builtins.
   
 
@@ -776,7 +776,7 @@
   
   
   Fixes to our automatic dereferencing algorithm for Deref and
-DerefMut. This makes gccrs more correct and allow to handle
+DerefMut. This makes gccrs more correct and allows to handle
 complicated cases where the type-checker would previously fail.
   
   
@@ -809,7 +809,7 @@
 improve the runtime performance of Rust binaries.
   
   
-  Support for more lang-items has been added
+  Support for more lang-items has been added.
   
   
   Lowered minimum required Rust version to 1.49. This allows more systems to compile the Rust
@@ -818,7 +818,7 @@
   
   
   Rewrite of our name resolution algorithm to properly handle the complex import/export
-structure used in core 1.49
+structure used in core 1.49.
   
 
 
@@ -832,8 +832,8 @@
 (aarch64-w64-mingw32).  At present, this target
 supports C and C++ for base Armv8-A, but with some caveats:
 
-  Although most variadic functions work, the implementation
-of them is not yet complete.
+  Although most variadic functions work, the implementations
+of them are not yet complete.
   
   C++ exception handling is not yet implemented.
 
@@ -901,7 +901,7 @@
   FEAT_LUT (+lut), enabled by default for
 Arm9.5-A and above
   
-  FEAT_LRCPC2 (+rcpc2), enabled by default for
+  FEAT_RCPC2 (+rcpc2), enabled by default for
 Armv8.4-A and above
   
   FEAT_SME_B16B16 (+sme-b16b16)
@@ -1061,7 +1061,7 @@
 via an indirect branch instead of via a normal return instruction.
   
   128-bit atomic operations have been extended to make use of
-FEAT_LRCPC3 instructions, when support for the instructions is
+FEAT_RCPC3 instructions, when support for the instructions is
 detected at runtime.
   
   There have been many code-generation improvements to the AArch64 port.
@@ -1184,7 +1184,7 @@
   AMX-TRANSPOSE intrinsics are available via the -mamx-transpose
   compiler switch.
   
-  All of new feature support for Intel APX expect for CFCMOV was added,
+  All of new feature support for Intel APX except for CFCMOV was added,
   including CCMP/CTEST, NF and ZU. APX support is available via the
   -mapxf compiler switch.
   
@@ -1244,7 +1244,7 @@
   
   Support has been added for the new option
   https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/LoongArch-Options.html#index-mannotate-tablejump";>
-  -mannotate-tablejump. Which can create an annotation
+  -mannotate-tablejump, which can create an annotation
   section .discard.tablejump_annotate to correlate th

web page c++-status proposal revision updates

2025-03-05 Thread Heiko Eißfeldt
For some C++26 language features listed on 
https://gcc.gnu.org/projects/cxx-status.html

there are newer proposal revisions available:

Remove undefined behavior from lexing P2621R3 <https://wg21.link/P2621R3>
constexpr structured bindings and references to constexpr variables P2686R5
<https://wg21.link/P2686R5>constexpr exceptions P3068R6 
<https://wg21.link/P3068R6>
<https://wg21.link/P2686R5>Oxford variadic comma P3176R1 
<https://wg21.link/P3176R1>

Removing deprecated array comparisons P2865R6 <https://wg21.link/P2865R6>

Heiko



OpenPGP_0x6C5B5E2DE9D181E2.asc
Description: OpenPGP public key


OpenPGP_signature.asc
Description: OpenPGP digital signature


Re: Review for gcc-15/changes.html

2025-05-27 Thread Heiko Eißfeldt

Thanks for the reminder!

I have now adapted the patch.

Greetings, Heiko
--- "GCC 15 Release Series — Changes, New Features, and Fixes - GNU Project.html.org"	2025-04-30 15:09:45.736597984 +0200
+++ "GCC 15 Release Series — Changes, New Features, and Fixes - GNU Project.html"	2025-05-27 19:43:47.339404458 +0200
@@ -62,14 +62,14 @@
 
 
   The default vectorizer cost model at -O2 has been enhanced
-to handle unknown tripcount. But it still disables vectorization of loops
+to handle an unknown tripcount. But it still disables vectorization of loops
 when any runtime check for data dependence or alignment is required,
 it also disables vectorization of epilogue loops but otherwise is equal
 to the cheap cost model.
   
   The vectorizer now supports vectorizing loops with early exits where
 the number of elements for the input pointers are unknown through peeling
-for alignment.  This is supported for only for loops with fixed vector
+for alignment.  This is supported only for loops with fixed vector
 lengths.
   
   -ftime-report now only reports monotonic run time instead of
@@ -90,7 +90,7 @@
   
 Improvements for compiling very large input files.  The compile time for
 large input files with -Wmisleading-indentation has been
-significantly improved. The compiler can now track columnn numbers larger
+significantly improved. The compiler can now track column numbers larger
 than 4096. Very large source files have more accurate location reporting.
   
   GCC can now emit diagnostics in multiple formats simultaneously,
@@ -278,7 +278,7 @@
 for more information.
   
   
-The diagnostics code has seen a major refactor, it now supports the sarif
+The diagnostics code has seen major refactoring, it now supports the sarif
 format -fdiagnostics-format=sarif-file among other
 improvements. More changes are expected in following releases.
   
@@ -736,7 +736,7 @@
 and -fc-prototypes-external options.
   
   
-The -fc-prototypes now also generates prototypes for
+The -fc-prototypes option now also generates prototypes for
 interoperable procedures with assumed shape and assumed rank
 arguments that require the header file
 <ISO_Fortran_binding.h>.
@@ -760,7 +760,7 @@
   
   Access to the GCC
 builtins clz, clzll, ctz
-and ctzll are now available from the
+and ctzll is now available from the
 module Builtins.
   
 
@@ -776,7 +776,7 @@
   
   
   Fixes to our automatic dereferencing algorithm for Deref and
-DerefMut. This makes gccrs more correct and allow to handle
+DerefMut. This makes gccrs more correct and allows handling
 complicated cases where the type-checker would previously fail.
   
   
@@ -809,7 +809,7 @@
 improve the runtime performance of Rust binaries.
   
   
-  Support for more lang-items has been added
+  Support for more lang-items has been added.
   
   
   Lowered minimum required Rust version to 1.49. This allows more systems to compile the Rust
@@ -818,7 +818,7 @@
   
   
   Rewrite of our name resolution algorithm to properly handle the complex import/export
-structure used in core 1.49
+structure used in core 1.49.
   
 
 
@@ -832,8 +832,8 @@
 (aarch64-w64-mingw32).  At present, this target
 supports C and C++ for base Armv8-A, but with some caveats:
 
-  Although most variadic functions work, the implementation
-of them is not yet complete.
+  Although most variadic functions work, the implementations
+are not yet complete.
   
   C++ exception handling is not yet implemented.
 
@@ -1184,7 +1184,7 @@
   AMX-TRANSPOSE intrinsics are available via the -mamx-transpose
   compiler switch.
   
-  All of new feature support for Intel APX expect for CFCMOV was added,
+  All of new feature support for Intel APX except for CFCMOV was added,
   including CCMP/CTEST, NF and ZU. APX support is available via the
   -mapxf compiler switch.
   
@@ -1244,7 +1244,7 @@
   
   Support has been added for the new option
   https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/LoongArch-Options.html#index-mannotate-tablejump";>
-  -mannotate-tablejump. Which can create an annotation
+  -mannotate-tablejump, which can create an annotation
   section .discard.tablejump_annotate to correlate the
   jirl instruction and the jump table.
   
@@ -1559,4 +1559,4 @@
 
 
 
-
\ No newline at end of file
+


OpenPGP_0x6C5B5E2DE9D181E2.asc
Description: OpenPGP public key


OpenPGP_signature.asc
Description: OpenPGP digital signature


possible CPU types of install.texi vs. configure.ac

2025-07-24 Thread Heiko Eißfeldt

Hello,

i cross-checked in trunk the referenced ${cpu_type}'s from ${target} in 
configure.ac

against the list of possible CPU types from install.texi, lines 876--885
(under 'Here are the possible CPU types:').

@quotation
aarch64, aarch64_be, alpha, alpha64, amdgcn, arc, arceb, arm, armeb, 
avr, bfin,

bpf, cris, csky, epiphany, fido, fr30, frv, ft32, h8300, hppa, hppa2.0,
hppa64, i486, i686, ia64, iq2000, lm32, loongarch64, m32c, m32r, m32rle, 
m68k,

mcore, microblaze, microblazeel, mips, mips64, mips64el, mips64octeon,
mips64orion, mips64vr, mipsel, mipsisa32, mipsisa32r2, mipsisa64, 
mipsisa64r2,

mipsisa64r2el, mipsisa64sb1, mipsisa64sr71k, mipstx39, mmix, mn10300, moxie,
msp430, nds32be, nds32le, nvptx, or1k, pdp11, powerpc, powerpc64,
powerpc64le, powerpcle, pru, riscv32, riscv32be, riscv64, riscv64be, 
rl78, rx,

s390, s390x, sh, shle, sparc, sparc64, tic6x, v850,
v850e, v850e1, vax, visium, x86_64, xstormy16, xtensa
@end quotation

The configure.ac script uses also these (probably outdated?) CPU types 
not mentioned above:

(lines 619, 640, 913, 1329, ...) rs6000
(lines 877, 983) crisv32
(lines 986, 989, 992, 1296) kvx
(line  1004) m68hc11, m6811, m68hc12, m6812
(line  1194) c4x, tic4x
(line  1197) tic54x
(lines 1200, 3118) d10v
(lines 1203, 3115) d30v
(line  1215) h8300
(line  1218) h8500
(line  1221) hppa1.1
(line  1243) i960
(line  3065) spu
(line  3855) mep*
(multiple lines) i[35789]86

(This is the result of checks for ${target} and ${cpu_type}).
Sorry, no patch, as I am not confident with changing something here...

Heiko