While working on my GCC translation validator, smtgcc, I've encountered several cases where GIMPLE IR semantics are ambiguous or inconsistent with GCC optimizations.

I'll discuss these on the GCC mailing list and link each corresponding thread here. 🧵

Pointer semantics in GIMPLE

Memory access in GIMPLE

3. Partially out-of-bounds loads are allowed by 2, but fully out-of-bounds loads are also allowed!
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120980
Making sure you're not a bot!

pointer comparison in GIMPLE