Alien-LibJIT
view release on metacpan or search on metacpan
libjit/jit/jit-internal.h view on Meta::CPAN
* Reset the backtrace stack to "trace". Used in exception catch
* blocks to fix up the backtrace information.
*/
void _jit_backtrace_set(jit_backtrace_t trace);
/*
* Control information that is associated with a thread.
*/
struct jit_thread_control
{
void *last_exception;
jit_exception_func exception_handler;
jit_backtrace_t backtrace_head;
struct jit_jmp_buf *setjmp_head;
};
/*
* Initialize the block list for a function.
*/
int _jit_block_init(jit_function_t func);
/*
* Free all blocks that are associated with a function.
*/
void _jit_block_free(jit_function_t func);
/*
* Build control flow graph edges for all blocks associated with a
* function.
*/
void _jit_block_build_cfg(jit_function_t func);
/*
* Eliminate useless control flow between blocks in a function.
*/
void _jit_block_clean_cfg(jit_function_t func);
/*
* Compute block postorder for control flow graph depth first traversal.
*/
int _jit_block_compute_postorder(jit_function_t func);
/*
* Create a new block and associate it with a function.
*/
jit_block_t _jit_block_create(jit_function_t func);
/*
* Destroy a block.
*/
void _jit_block_destroy(jit_block_t block);
/*
* Detach blocks from their current position in a function.
*/
void _jit_block_detach(jit_block_t first, jit_block_t last);
/*
* Attach blocks to a function after a specific position.
*/
void _jit_block_attach_after(jit_block_t block, jit_block_t first, jit_block_t last);
/*
* Attach blocks to a function before a specific position.
*/
void _jit_block_attach_before(jit_block_t block, jit_block_t first, jit_block_t last);
/*
* Record the label mapping for a block.
*/
int _jit_block_record_label(jit_block_t block, jit_label_t label);
/*
* Record the label flags.
*/
int _jit_block_record_label_flags(jit_function_t func, jit_label_t label, int flags);
/*
* Add an instruction to a block.
*/
jit_insn_t _jit_block_add_insn(jit_block_t block);
/*
* Get the last instruction in a block. NULL if the block is empty.
*/
jit_insn_t _jit_block_get_last(jit_block_t block);
/*
* The block goes just before the function end possibly excluding
* some empty blocks.
*/
int _jit_block_is_final(jit_block_t block);
/*
* Free one element in a metadata list.
*/
void _jit_meta_free_one(void *meta);
/*
* Determine if a NULL pointer check is redundant. The specified
* iterator is assumed to be positioned one place beyond the
* "check_null" instruction that we are testing.
*/
int _jit_insn_check_is_redundant(const jit_insn_iter_t *iter);
/*
* Get the correct opcode to use for a "load" instruction,
* starting at a particular opcode base. We assume that the
* instructions are laid out as "sbyte", "ubyte", "short",
* "ushort", "int", "long", "float32", "float64", "nfloat",
* and "struct".
*/
int _jit_load_opcode(int base_opcode, jit_type_t type,
jit_value_t value, int no_temps);
/*
* Get the correct opcode to use for a "store" instruction.
* We assume that the instructions are laid out as "byte",
* "short", "int", "long", "float32", "float64", "nfloat",
* and "struct".
*/
int _jit_store_opcode(int base_opcode, int small_base, jit_type_t type);
/*
* Function that is called upon each breakpoint location.
*/
( run in 1.975 second using v1.01-cache-2.11-cpan-2398b32b56e )