libFirm
|
Provides interface to generate code and resolve symbols in memory buffers. More...
Typedefs | |
typedef struct ir_jit_segment_t | ir_jit_segment_t |
Just in time compilation environment. More... | |
typedef struct ir_jit_function_t | ir_jit_function_t |
Just in time compiled function with potentially unresolved relocations. More... | |
Functions | |
ir_jit_segment_t * | be_new_jit_segment (void) |
Create a new jit segment. More... | |
void | be_destroy_jit_segment (ir_jit_segment_t *segment) |
Destroy jit segment segment . More... | |
void | be_jit_set_entity_addr (ir_entity *entity, void const *address) |
Set absolute address of global entities so relocations in jit compiled code an be resolved. More... | |
void const * | be_jit_get_entity_addr (ir_entity const *entity) |
Return previously set address. More... | |
ir_jit_function_t * | be_jit_compile (ir_jit_segment_t *segment, ir_graph *irg) |
Compile graph irg to a sequence of machine instructions and relocations. More... | |
unsigned | be_get_function_size (ir_jit_function_t const *function) |
Return the buffer size necessary to emit function with be_emit_function(). More... | |
void | be_emit_function (char *buffer, ir_jit_function_t *function) |
Emit function into buffer and resolve symbols and relocations. More... | |
Provides interface to generate code and resolve symbols in memory buffers.
This is often called just in time compilation.
typedef struct ir_jit_function_t ir_jit_function_t |
typedef struct ir_jit_segment_t ir_jit_segment_t |
Just in time compilation environment.
Holds memory for several ir_jit_function_t.
void be_destroy_jit_segment | ( | ir_jit_segment_t * | segment | ) |
Destroy jit segment segment
.
Invalidates references to functions created in the segment.
void be_emit_function | ( | char * | buffer, |
ir_jit_function_t * | function | ||
) |
Emit function
into buffer
and resolve symbols and relocations.
unsigned be_get_function_size | ( | ir_jit_function_t const * | function | ) |
Return the buffer size necessary to emit function
with be_emit_function().
ir_jit_function_t* be_jit_compile | ( | ir_jit_segment_t * | segment, |
ir_graph * | irg | ||
) |
Compile graph irg
to a sequence of machine instructions and relocations.
void const* be_jit_get_entity_addr | ( | ir_entity const * | entity | ) |
Return previously set address.
void be_jit_set_entity_addr | ( | ir_entity * | entity, |
void const * | address | ||
) |
Set absolute address of global entities so relocations in jit compiled code an be resolved.
ir_jit_segment_t* be_new_jit_segment | ( | void | ) |
Create a new jit segment.