Re: GCC 15 20250503 dont install its libgccjit.h in the same way as GCC 14

2025-05-06 Thread Lorenzo Salvadore via Gcc
On Monday, May 5th, 2025 at 19:14, Andreas Schwab  wrote:

> 
> 
> On Mai 05 2025, Basile Starynkevitch wrote:
> 
> > and to my surprise its libgccjit.h was installed under /usr/local/include/ 
> > and
> 
> 
> libgccjit.h has always been installed in $(includedir), so this is
> expected.

By the way, there is an open bug report on bugzilla with submitted pathes
to suggest to change it, as operating systems (FreeBSD, Linux distros, others?)
would like to install different versions of GCC simultaneously but the actual
choice causes conflicts.

In case you would like to reconsider this possibility, here are the bug
report and a patch that I submitted by email long ago (no one ever replied):
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101491
https://gcc.gnu.org/pipermail/jit/2022q4/001572.html

Cheers,

Lorenzo Salvadore


Detecting noexceptness

2025-05-06 Thread Magnus Fromreide via Gcc
Hello!

It is my understanding that if a C++ function is declared as 'noexcept'
or is a destructor then compiler is required to add some code which will
catch any exceptions thrown by it unless the compiler can prove that no
exceptions will in fact be thrown.

If my understanding is correct, how hard would it be to emit a warning if
the noexceptness can't be proven?

Then there is of course the big question - would such a warning be helpful
for anyone or would it just add doubt and uncertainity?

/MF


a super regular RISC that encodes constants in immediate blocks

2025-05-06 Thread Michael Clark via Gcc

Hi GCC folks,

introducing a new RISC instruction set with a variable length
instruction packet using a super regular extension scheme with
compression techniques to separate the instruction stream into
two streams, one for instructions and and one for constants:

- latest: https://metaparadigm.com/~mclark/glyph.pdf
- current: https://metaparadigm.com/~mclark/glyph-20250507.pdf

I am currently working on an assembler for it. I intend to come
up with something that lets one manually emit constants into a
.const section plus directives to tie together instructions and
constants for local and global symbols, but I may also come up
with a meta assembler mode that lets one use inline constants
whereby the assembler splits things into streams and allocates
address space for constants. I am writing a prototype assembler
in Python. it hopefully should be ready in a few months.

I would like to start with a Python assembler instead of using
binutils because it will make for faster compression tuning when
I get up to layout of the 32-bit opcodes which I intend to have
contain 128-bit packed SIMD, and the 64-bit opcodes I intend to
map to the 5-operand EVEX opcodes in AMD and Intel's AVX-512.

this is a preview release. note: the 16-bit packet is designed as
a standalone ISA, but it needs read-modify-write for bytes. we
have focused on utility for function prologue and epilogue. other
types and atomics will come in the 32-bit packet. it is intended
to be a virtual machine target and I wish to recode AVX-512 to it.
AMD and Intel can bite me if they don't want me to do this.

there are interpreters in C, Python, and Go. and I also have a
related project that I am working on for translation to x86.

- https://github.com/michaeljclark/glyph/
- https://github.com/michaeljclark/x86/

this work has been mentioned on the RISC-V mailing list but this
is the first time here. I think it is ready for early feedback.

Michael.