Compiling a context¶
Once populated, a gccjit::context
can be compiled to
machine code, either in-memory via gccjit::context::compile()
or
to disk via gccjit::context::compile_to_file()
.
You can compile a context multiple times (using either form of compilation), although any errors that occur on the context will prevent any future compilation of that context.
In-memory compilation¶
-
gcc_jit_result *
gccjit::context
::
compile
()¶ This calls into GCC and builds the code, returning a gcc_jit_result *.
This is a thin wrapper around the
gcc_jit_context_compile()
API entrypoint.
Ahead-of-time compilation¶
Although libgccjit is primarily aimed at just-in-time compilation, it
can also be used for implementing more traditional ahead-of-time
compilers, via the gccjit::context::compile_to_file()
method.
-
void
gccjit::context
::
compile_to_file
(enum gcc_jit_output_kind, const char *output_path)¶ Compile the
gccjit::context
to a file of the given kind.This is a thin wrapper around the
gcc_jit_context_compile_to_file()
API entrypoint.