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 )