summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/jit.c
AgeCommit message (Collapse)Author
2023-09-07Update jit.cKrasimir Angelov
2023-08-11the jitter should still read the absfuns even for EMSCRIPTEN and aarch64Krasimir Angelov
2023-08-09One more place with __aarch64__Krasimir Angelov
2023-08-09Try with __aarch64__Krasimir Angelov
2023-08-08lightning.h not included on aarch64Krasimir Angelov
2023-08-04Disable the jit on aarch64Krasimir Angelov
2022-07-04allow compilation with emscriptenKrasimir Angelov
2018-12-16a pool where the smallest chunks are memory pageskrangelov
2017-04-19explicitly classify all functions in libpgf as either internal or API functionskrasimir
2017-04-13silence a few warnings on MacOSkrasimir
2017-04-12a patch from Bjørnar Luteberget for compatibility with MSVCkrasimir
2016-05-25fix the compilation when debugging is switched offkrasimir
2016-05-25pgf_generate_all now works with literals as wellkrasimir
2016-04-13bugfix in the JIT compiler for 64bit machineskrasimir
2015-12-19a fix that should solve the segmentation fault on MacOS with the exhaustive ↵krasimir
generator
2015-07-16make the virtual machine instructions more uniformkrasimir
2015-07-16bugfixes in the JIT compiler for x86_64. One of the fixes is actually in GNU ↵krasimir
lightning
2015-07-04the reasoner's states are now closures just like the code for the def rules. ↵krasimir
This means more compact JIT compiled code and uniformity with the code for def rules
2015-07-03merge the states for reasoning and evaluation into a single structurekrasimir
2015-06-23runtime/c/pf/jit.c: silence warning about alloca on MINGW32hallgren
2015-04-20added getpagesize() definition for Windowskrasimir
2015-02-19silence some warnings in GNU Lightning for i386_64krasimir
2014-11-07expand the JIT window for x64kr.angelov
2014-10-31now (+) in the abstract syntax works, i.e. it knows how to deal with partial ↵kr.angelov
sums
2014-10-30a more efficient tail call by using the new TUCK instructionkr.angelov
2014-10-26an explicit SAVE instructionkr.angelov
2014-10-22an explicit PUSH_FRAME instructionkr.angelov
2014-10-16finally proper stack unwind in the evaluatorkr.angelov
2014-10-14the compiler now allows + to be used as a floating point addition in the ↵kr.angelov
abstract syntax
2014-10-14bugfix in the bytecode generatorkr.angelov
2014-10-14simplify jit_bare_retkr.angelov
2014-10-09throw away the long obsolete runtime type information in the C runtimekr.angelov
2014-10-09replace the hash maps in the abstract syntax with binary search tableskr.angelov
2014-10-08now we statically allocate closures for all top-level functions and all ↵kr.angelov
nullary constructors. closures are dynamically allocated only for CAFs. this reduces memory use and time to allocate dynamic closures
2014-10-07a missing case in instruction SETkr.angelov
2014-10-07added a missing case for PUSH instruction with a global closurekr.angelov
2014-10-07the indirection should be done in the evaluate_expr_thunk gate instead of in ↵kr.angelov
the pgf_evaluate_expr_thunk function. this ensures lazyness
2014-10-06using instruction RET was wrong; now use EVALkr.angelov
2014-10-06fix the order in which arguments are stored in the mk_const gatekr.angelov
2014-10-06push a stack frame around recursive calls to guarantee that a nested call to ↵kr.angelov
a failing function will not crash
2014-10-06partial implementation for the FAIL instructionkr.angelov
2014-09-30enough fixes to get the JIT compiler compile for ARM. It is still broken if ↵kr.angelov
you try to use it
2014-09-30bugfix in the gate evaluate_value_lambdakr.angelov
2014-09-29bugfix in the pattern matching compiler and a number of other fixes that I ↵kr.angelov
somehow did not push before
2014-09-29bugfix in the RET instructionkr.angelov
2014-09-29enlarge the code window in pgf_jit_gates to ensure enough space on 64-bit ↵kr.angelov
machines
2014-09-25switch off the debugging of the JIT compiler which I had turned on ↵kr.angelov
accidentally. silence two harmless warnings
2014-09-25now a complete JIT compiler and ByteCode compiler for the def rules in the ↵kr.angelov
abstract syntax. there might be some bugs yet to be found, meta variables and computation under lambda is only partially supported
2014-09-11a major revision of the bytecode generator and JIT compiler. the effect is ↵kr.angelov
that now we can compute with lambda functions and with true tail recursion
2014-09-05the code for def rules now uses proper graph update to preserve lazynesskr.angelov