summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/jit.c
AgeCommit message (Collapse)Author
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
2014-09-05full support for recursive def rules in the C runtimekr.angelov
2014-09-01partial implementation for recursive def ruleskr.angelov
2014-09-01bug fixes in the JIT compilerkr.angelov
2014-08-11pattern matching in def rules is now supportedkr.angelov
2014-08-11a partial support for def rules in the C runtimekr.angelov
The def rules are now compiled to byte code by the compiler and then to native code by the JIT compiler in the runtime. Not all constructions are implemented yet. The partial implementation is now in the repository but it is not activated by default since this requires changes in the PGF format. I will enable it only after it is complete.
2013-11-07fix for the memory allocation in the jitter which should work for Windows.kr.angelov
2013-11-04fix the debug mode of the JIT compiler after the refactoring in libgukr.angelov
2013-11-01remove the include to mman.h in jit.c since it doesn't seem to be usedkr.angelov