It claims to have types, etc. It doesn't say "these are GCC types, see the GCC docs". It says "here are some types, they act kinda like C".
It's certainly a library, but that's not relevant.
It has it's own expressions, lvalues, rvalues, Something, somewhere, needs to describe the semantics of these operations.
The JIT docs at https://gcc.gnu.org/onlinedocs/jit/topics/expressions.html, again, don't say "this is identical to GCC's NEGATE_EXPR" or whatever, they say:
"GCC_JIT_UNARY_OP_MINUS Negate an arithmetic value; analogous to:
-(EXPR) in C."
IE It defines it's own UNARY_MINUS operator, not "GCC's" (GCC is NEGATE_EXPR).
It then tells you nothing about what it actually does (because it's only analogous to some random version of C).
If it said "this has the semantics of GCC's NEGATE_EXPR", that might be something (but the semantics of GCC's operations are not well defined either :P)
A lot of JIT's are programming language specific, and so they have it easy. They just define their operations/results/etc in terms of the programing language they are a JIT for.
But they are not attempting to do that here. They are attempting to present it as a JIT for "whatever you want". But you couldn't actually use this to produce a JIT for a language and know how the end result will act when you produce certain JIT operations with what they have given you. That is a pretty basic requirement for using a JIT, library or not :)
In short, again, i think this is built the wrong way around. Building a Jit for a bunch of not-well-defined operations doesn't give anyone anything interesting.