Alien-LibJIT
view release on metacpan or search on metacpan
libjit/ChangeLog view on Meta::CPAN
2013-08-13 Chetan Reddy <chetanreddy@gmail.com>
* jit/jit-memory-cache.c (_jit_cache_start_function): If there is no
room left for a cache node on the current page then let restart with
a new page rather than giving up on it.
2013-03-04 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-memory-cache.c (_jit_cache_extend): the function now
returns a value (thanks Alexey Galakhov <agalakhov@gmail.com>).
* include/jit/jit-memory.h, jit/jit-internal.h, jit/jit-memory.c:
* jit/jit-memory-cache.c: add jit_function_info_t typedef and use it
in the memory manager interface for more clarity (the idea is taken
from Alexey Galakhov's proposal but done in a weaker form, without
type safety).
2013-02-27 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-dump.c (jit_dump_function): fix error finding function end
address (thanks Alexey Galakhov <agalakhov@gmail.com> for spotting).
* jit/Makefile.am, jit/jit-apply-alpha.h, jit/jit-apply-alpha.c
* jit/jit-gen-alpha.h, jit/jit-rules-alpha.h, jit/jit-rules-alpha.c
* jit/jit-rules-alpha.ins: Remove all alpha related files from the
distro. The files are still in the repo in the attic dir.
2013-02-26 Aleksey Demakov <ademakov@gmail.com>
* configure.ac, jit/jit-opcodes.ops, jit/jit-interp-opcode.ops
* Makefile.am, jit/Makefile.am, include/jit/Makefile.am: Move ops
files from the config to jit dir, remove the config dir.
* configure.ac: Use build-aux dir for autoconf files. Update the
mailing list address.
2012-11-06 Aleksey Demakov <ademakov@gmail.com>
* dpas/dpas-scope.c (dpas_scope_destroy): Fix a memory leak in dpas.
* include/jit/jit-memory.h, jit/jit-internal.h, jit/jit-memory.c
* jit-cache.c: restore ability to allocate memory for recompiled
functions.
2012-11-05 Aleksey Demakov <ademakov@gmail.com>
* jitplus/jit-plus-function.cpp (create): free function signature.
* tutorial/t3.c, tutorial/t3.c: free function signature.
2012-10-30 Aleksey Demakov <ademakov@gmail.com>
* tutorial/t1.c, tutorial/t2.c: free function signature.
* jit/jit-block.c (delete_block): fix memory leak.
* jit/jit-memory-cache.c: rename jit-cache.c
2012-10-20 Aleksey Demakov <ademakov@gmail.com>
* include/jit/jit-memory.h, jit/jit-internal.h, jit/jit-memory.c
* jit-cache.c: get back to the scheme where function start and end
addresses are kept by the memory manager, not in jit_function_t.
2012-10-16 Aleksey Demakov <ademakov@gmail.com>
* include/jit/jit-memory.h: add file that defines pluggable memory
manager interface.
* jit-internal.h, jit/jit-memory.c: add a number of _jit_memory_*
pluggable memory wrapper functions. Replace with these wrappers
all _jit_cache_* calls.
* jit/jit-cache.c (jit_default_memory_manager): add function that
gets memory mamnager plugin interface.
* jit/jit-cache.h: remove file.
* include/jit/jit-context.h:
* jit/jit-context.c (jit_context_set_memory_manager): add function.
2012-10-12 Aleksey Demakov <ademakov@gmail.com>
* include/jit/jit-util.h, jit/jit-alloc.c (jit_malloc_exec)
(jit_free_exec, jit_flush_exec, jit_exec_page_size): remove functions
from public API.
* jit/jit-internal.h, jit/jit-alloc.c (_jit_malloc_exec)
(_jit_free_exec, _jit_flush_exec): make these functions internal.
* jit/jit-util.c: new file, move here all public util functions from
jit/jit-alloc.c, jit/jit-memory.c, jit/jit-string.c.
2012-10-08 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-cache.c, jit/jit-cache.c(_jit_cache_alloc_trampoline)
(_jit_cache_free_trampoline, _jit_cache_alloc_closure)
(_jit_cache_free_closure): add functions.
* jit/jit-function.c (jit_function_create, _jit_function_destroy):
use trampoline alloc/free functions.
* jit/jit-apply.c, include/jit/jit-init.h (jit_get_closure_size)
(jit_get_closure_alignment, jit_get_trampoline_size)
(jit_get_trampoline_alignment): add functions.
* jit/jit-apply.c (jit_closures_supported): for consistency rename
function to jit_supports_closures.
2012-10-07 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-function.c (jit_function_create, _jit_function_destroy):
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_alloc_function)
(_jit_cache_free_function): allocate and free jit_function structs
within cache.
2012-10-04 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_start_function):
remove the restart_count argument.
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_extend): add
function to allocate more cache space.
* jit/jit-cache.c (_jit_cache_alloc_data): let be called outside
function generation context.
2012-07-29 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_start_function)
(_jit_cache_end_function, _jit_cache_get_code_break)
(_jit_cache_set_code_break, _jit_cache_get_code_limit)
(_jit_cache_alloc_data): new API for function allocation.
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_is_full)
(_jit_cache_start_method, _jit_cache_end_method)
(_jit_cache_alloc, _jit_cache_check_space): remove.
* jit/jit-cache.h, jit/jit-rules.h: remove jit_cache_posn struct.
Store the cache position data in jit_gencode struct.
* jit/jit-rules.h, jit/jit-rules.c: (_jit_gen_check_space)
(_jit_gen_alloc): add.
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_get_function):
rename from _jit_cache_get_method.
2012-02-11 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_end_method): add
result argument that indicates if the code genration will need
to be restarted.
* jit/jit-cache.h, jit/jit-cache.c (jit_cache_mark_full): remove
macro and replace it with direct jit_cache_posn access where
appropriate.
* jit/jit-cache.h, jit/jit-cache.c (jit_cache_get_posn): likewise.
* jit/jit-cache.h, jit/jit-rules-interp.c (jit_cache_native): move
macro to where it only used.
* jit/jit-cache.h, jit/jit-cache.c: remove other unused stuff.
2012-01-22 Klaus Treichel <ktreichel@web.de>
* config/jit-opcodes.ops: Move declaration of obsolete opcodes to
the separate include file jit-opcode-compat.h and include this new
file instead.
* include/jit/jit-opcode-compat.h: add new include file for
obsolete opcodes.
* include/jit/Makefile.am: add jit-opcode-compat.h to the include
sources.
2012-01-21 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-rules.h (struct jit_gencode): add offset_encoder field
to encode bytecode offsets with jit_varints.
* jit/jit-internal.h (struct _jit_function): move fields cookie,
start, end here from jit_cache_method; add bytecode_offset field
to encode bytecode offsets with jit_varints.
* jit/jit-compile.c (mark_offset, _jit_function_get_bytecode): add
functions that use jit_varints for bytecode offset compression.
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_get_method):
remove cookie argument.
* jit/jit-cache.h, jit/jit-cache.c (_jit_cache_mark_bytecode)
(_jit_cache_set_cookie, _jit_cache_get_start_method)
(_jit_cache_get_end_method, _jit_cache_get_native)
(_jit_cache_get_bytecode, _jit_cache_get_size): remove functions,
get rid of bytecode offset compression and method region machinary.
* jit/jit-dump.c, jit/jit-function.c, jit/jit-rules-interp.c
* jit/jit-except.c, jit/jit-unwind.c: adjust where appropriate for
cache API change.
2011-12-18 Aleksey Demakov <ademakov@gmail.com>
* jit/Makefile.am:
* jit/jit-varint.h, jit/jit-varint.c: add new files for varaible
length int encoding with algorithm similar but not identical to one
currently used in jit-cache.c. The new algorithm in certain cases
better compresses unsigned ints.
2011-09-30 Aleksey Demakov <ademakov@gmail.com>
libjit/ChangeLog view on Meta::CPAN
* jit/jit-rules-x86-64.ins: Add the support of the
JIT_OP_SET_PARAM_* opcodes for param area support.
* jit/jit-rules-x86-64.h: Define JIT_USE_PARAM_AREA and do some
code cleanup and reformatting.
2008-05-23 Juan Jesus Garcia de Soria <juanj.g_soria@grupobbva.com>
* jit/jit-alloc.c (jit_malloc_exec, jit_free_exec): on win32 use
VirtualAlloc and VirtualFree to allocate/free executable memory.
2008-05-23 Klaus Treichel <ktreichel@web.de>
* dpas/dpas-scanner.l, tools/gen-rules-scanner.l,
tools/gen-sel-scanner.l: Define YY_NO_UNISTD_H if unistd.h is not
available to prevent flex from including unistd.h.
* include/jit/jit-arch-x86.h, include/jit/jit-arch-x86.h: Fix the
definition of _JIT_ARCH_GET_CURRENT_FRAME for MS cl. Use a
temporary value for ebp/rbp because cl doesn't like arguments like
f->x in the __asm statements.
* jit/jit-rules-x86.ins: Move declaration of patch to the start of
the block in JIT_OP_ULONG_TO_NFLOAT to be ANSI C compliant.
2008-05-21 Aleksey Demakov <ademakov@gmail.com>
* include/jit/jit-walk.h (jit_get_next_frame_address): use
JIT_ARCH_GET_NEXT_FRAME if defined, use gcc syntax only if
defined __GNUC__.
2008-05-12 Klaus Treichel <ktreichel@web.de>
* jit/jit-apply-x86-64.h: Include jit/jit-common.h instead of
jit-internal.h to get the definition of the libjit types.
2008-05-08 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-rules-x86.ins:
* jit/jit-rules-x86-64.ins:
* jit/jit-function.c (compile_block): let register allocator see
JIT_OP_INCOMING_REG and JIT_OP_RETURN_REG instructions so it can
free unused values on these instructions rather than on the block
end.
* jit/jit-reg-alloc.c (_jit_regs_set_incoming): it is not possible
to correctly spill the old register value at this point so do not
attempt this and do not promise this.
2008-05-04 Klaus Treichel <ktreichel@web.de>
* jit/jit-reg-alloc.c (_jit_regs_set_outgoing): Set the outgoing
register inhibited regardless if the value was already in the
register or not.
* jit/jit-insn.c (jit_insn_check_null): Emit the check only if the
value to check is no nint constant != 0.
2008-04-22 Aleksey Demakov <ademakov@gmail.com>
* configure.in: update to modern autoconf, rename to configure.ac.
* configure.ac: renamed from configure.in.
2008-04-20 Klaus Treichel <ktreichel@web.de>
* tests/Makefile.am: Add cond.pas to the tests.
* tests/math.pas: Add tests for more opcodes and execute existing
tests for more types.
* tests/cond.pas: Add tests for conditions.
2008-04-20 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-rules-x86.ins: fix the sign opcode for longs (based on
a patch from Klaus) and slightly modify it for ints.
* jit/jit-insn.c: some code cleanup:
(jit_insn_neg, jit_insn_abs, jit_insn_sign): for these unary ops
replace common_binary() with more basic function calls that should
suffice.
(jit_insn_is_nan, jit_insn_is_finite, jit_insn_is_inf): return
false for non-floating point values and do not use common_binary()
as well.
2008-04-19 Klaus Treichel <ktreichel@web.de>
* jit/jit-insn.c (jit_insn_sign): the dest value of the sign insn
has to be int regardless of the argument type.
2008-04-13 Klaus Treichel <ktreichel@web.de>
* include/jit/Makefile.am:
* include/jit/jit-arch-x86-64.h: new file with x86-64 architecture
specific macros for stack frame inspection.
* configure.in: check for x86-64 arch, add -fno-omit-frame-pointer
flag.
* include/jit/jit-walk.h: use _JIT_ARCH_GET_RETURN_ADDRESS and
_JIT_ARCH_GET_CURRENT_RETURN if available.
* jit/jit-gen-x86-64.h: Add additional macros for saving and
restoring the fpu controlword and the mxcsr register. Add
additional SSE conversion macros. Add SSE compare macros.
Add macros for the SSE bit operations on packed values.
Add macros for SSE sqrt and rounding. Add macros for fpu rounding.
* jit/jit-rules-x86-64.c: Add the dreg register class and functions
to handle rounding and SSE bit opcodes on packed values.
* jit/jit-rules-x86-64.ins: Add INT_TO_NFLOAT, LONG_TO_NFLOAT,
FLOAT32_TO_NFLOAT, FLOAT64_TO_NFLOAT.
Rewrite NFLOAT_TO_INT and NFLOAT_TO_LONG to use the new functions
in jit-rules-x86-64.c. Add handling of ABS, NEG and float compares.
2008-03-31 Klaus Treichel <ktreichel@web.de>
* jit/jit-rules-x86.ins: Fix the sign opcode for integers and the
constant case for longs.
2008-03-30 Klaus Treichel <ktreichel@web.de>
libjit/ChangeLog view on Meta::CPAN
jit/jit-rules.h, tools/gen-sel-parser.y: fix some compile issues
in the x86 native back end.
* jit/jit-function.c, jit/jit-rules-x86.c, jit/jit-rules-x86.sel,
tools/gen-sel-parser.y: more bug fixes for the x86 back end.
* include/jit/jit-insn.h, include/jit/jit-plus.h, jit/jit-insn.c,
jitplus/jit-plus-function.cpp: add "jit_insn_new_block" to simplify
creating a new block that doesn't have an explicit label.
* dpas/dpas-parser.y, include/jit/jit-block.h, jit/jit-block.c,
jit/jit-insn.c: add "jit_block_current_is_dead" to simplify
testing if the last block is reachable or not, taking empty
trailing blocks into account.
* jit/jit-rules-x86.c, jit/jit-rules-x86.sel, tools/gen-sel-parser.y,
tools/gen-sel-scanner.l: more selection cases for the x86 back end.
* jit/Makefile.am, jit/jit-gen-arm.h, jit/jit-rules-arm.c,
jit/jit-rules-arm.sel: add the beginnings of the instruction
selector for ARM.
2004-05-25 Rhys Weatherley <rweather@southern-storm.com.au>
* tools/.cvsignore, tools/Makefile.am, tools/gen-sel-parser.y,
tools/gen-sel-scanner.l: add the "gen-sel" program to the tree,
to assist with building native instruction selectors.
* jit/.cvsignore, jit/Makefile.am, jit/jit-rules-x86.c,
jit/jit-rules-x86.sel, tools/gen-sel-parser.y: check in the
initial instruction selector for x86 (incomplete).
* jit/jit-rules-x86.sel, tools/gen-sel-parser.y,
tools/gen-sel-scanner.l: selectors for branch instructions.
* jit/jit-rules-x86.sel: selectors for call instructions.
2004-05-24 Rhys Weatherley <rweather@southern-storm.com.au>
* include/jit/jit-insn.h, include/jit/jit-opcode.h, jit/jit-block.c,
jit/jit-dump.c, jit/jit-except.c, jit/jit-function.c, jit/jit-insn.c,
jit/jit-internal.h, jit/jit-interp.c, jit/jit-interp.h,
jit/jit-opcode.c, jit/jit-rules-arm.c, jit/jit-rules-interp.c,
jit/jit-rules-x86.c, jit/jit-rules.h, jit/jit-setjmp.h:
rewrite the exception region routines to make them easier
to use from CLI and JVM style systems.
* jit/jit-rules-interp.c (_jit_gen_start_block): set the address
of the exception handler for interpreted code.
* include/jit/jit-plus.h, jitplus/jit-plus-function.cpp:
add missing functions to the C++ API.
2004-05-22 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-block.c (_jit_block_peephole_branch): don't allow
conditional branches to cross an exception context boundary,
because doing so will violate "finally" semantics.
* dpas/dpas-parser.y, include/jit/jit-insn.h, jit/jit-function.c,
jit/jit-insn.c, jit/jit-internal.h: rename "jit_insn_move_blocks"
to "jit_insn_move_blocks_to_end" and add a new function
"jit_insn_move_blocks_to_start" for creating initialization code.
* include/jit/jit-opcode.h, jit/jit-except.c, jit/jit-function.c,
jit/jit-insn.c, jit/jit-internal.h, jit/jit-interp.c, jit/jit-opcode.c,
jit/jit-setjmp.h: modify the function call logic to use "setjmp"
with native back ends.
2004-05-21 Rhys Weatherley <rweather@southern-storm.com.au>
* jit/jit-gen-arm.c, jit/jit-gen-arm.h: modify the ARM codegen
macros so that they can be used for branch elimination.
* include/jit/jit-except.h, jit/jit-except.cpp, jit/jit-function.c,
jit/jit-insn.c, jit/jit-internal.h, jit/jit-interp.cpp,
jit/jit-interp.h, jit/jit-setjmp.h: redesign the exception handling
mechanism to use "setjmp" rather than C++ exceptions.
* configure.in, doc/Makefile.am, doc/libjit.texi, dpas/Makefile.am,
jit/Makefile.am, jit/jit-except.c, jit/jit-except.cpp,
jit/jit-interp.c, jit/jit-interp.cpp, jitdynamic/Makefile.am:
remove the last remaining C++ code from libjit.so so that
it is now a pure C library.
* include/jit/jit-insn.h, include/jit/jit-opcode.h,
include/jit/jit-plus.h, jit/jit-insn.c, jit/jit-interp.c,
jit/jit-opcode.c, jitplus/jit-plus-function.cpp:
add the "jit_insn_alloca" instruction.
* configure.in, jit/.cvsignore, jit/Makefile.am, jit/jit-interp.c,
jit/mklabel.sh: use computed goto's in the interpreter if supported
by the underlying compiler.
2004-05-20 Rhys Weatherley <rweather@southern-storm.com.au>
* include/jit/jit-value.h, jit/jit-insn.c, jit/jit-value.c:
convert constant conditional branches such as "if true goto L" into
unconditional branches.
* jit/jit-block.c, jit/jit-internal.h, jit/jit-live.c,
jit/jit-rules-interp.c: perform peephole optimization of
branches to branches before live variable analysis, so that
the back ends don't need to worry about jump threading.
* jit/jit-block.c, jit/jit-live.c: treat dead blocks as empty
when peepholing branches to the next block.
2004-05-15 Rhys Weatherley <rweather@southern-storm.com.au>
* tools/gen-apply.c: fix a macro generation bug for Win32 systems.
* jit/jit-reg-alloc.c: fix a compile bug.
2004-05-14 Rhys Weatherley <rweather@southern-storm.com.au>
* include/jit/Makefile.am, include/jit/jit-objmodel-private.h,
include/jit/jit-objmodel.h, include/jit/jit.h, jit/Makefile.am,
jit/jit-objmodel.c: put some infrastructure in place to support
pluggable object models.
( run in 1.000 second using v1.01-cache-2.11-cpan-63c85eba8c4 )