On 9/30/23 02:29, Schrodinger ZHU Yifan via Jit wrote: > Hi, > I wonder if it is safe to use trailing bits as tags and passing them as some non-opaque type pointers. There isn't any direct dereference on such unaligned pointers, of course. libgccjit is in practice yet another front-end to the GCC compiler suite. So it should in practice be safe to do so. My suggestion is (on Linux systems at least) to write a small C program (or even a small C file containing a single C routine) doing what you want, to write a small libgccjit example doing the same. Then compile your small C program to produce its assembler code (using gcc -O -S -fverbose-asm). Do the same with your libgccjit toy example. Use gcc_jit_context_dump_reproducer_to_filewithgcc_jit_context_add_command_line_optionor the GCC_JIT_BOOL_OPTION_DUMP_GENERATED_CODE If you found substantial differences, report a bug in libgccjit. By the way my pet open source project is the RefPerSys open source inference engine project on https://github.com/RefPerSys/RefPerSys (and we do generate at runtime some code and want to generate more and more of it: currently generating C++ code and using GNU lightning to generate machine code). RefPerSys is work in progress, and we welcome contributors. Regards from near Paris in France -- Basile Starynkevitch (only mine opinions / les opinions sont miennes uniquement) 92340 Bourg-la-Reine, France web page: starynkevitch.net/Basile/