Created
August 26, 2018 00:39
-
-
Save samcv/90fb70be9a536518d11b0dfd584d91ba to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6model: | |
+ Fix race in setting the type debug name | |
+ Make neverrepossess on type apply to the type | |
+ Use #if, not #ifdef | |
+ Add repossession logging behind a #define | |
+ ensure returning NULL from these. | |
+ Fix alignment/mem issue of inlined CArrays | |
+ Speedup zero_slots by using memset... | |
+ Fix memory leak in CArray given P6 Strs | |
+ Enable gc_free of MVMContext | |
+ Correct error text to match the condition | |
+ Add extra diagnostic output to multi cache panic | |
+ Expose a symbol for Windows sake | |
+ Preserve enough data for accurate traversal | |
+ Fix an off-by-one | |
+ Make getlexrelcaller traverse the MVMContext | |
+ Update ctxcode to do context traversal | |
+ Update bind_key in MVMContext for traversal | |
+ Die more politely in MVMContext clone | |
+ Update forceouterctx to traverse | |
+ Update MVMContext at_key/exists_key to traverse | |
+ Move context creation to MVMContext.c | |
+ Stub in new fields for lazy context traversal | |
+ Mark functions used in Perl 6 extops MVM_PUBLIC | |
+ Optimize SCRef_gc_mark by using faster MVM_gc_worklist_add calls | |
+ Optimize VMArray_gc_mark to be a bit faster | |
+ Rename VMArray gc_mark to VMArray_gc_mark | |
+ Add some branch prediction hints to MVMHash.c | |
+ Fix Vim-o leading to wrong usage deletion | |
+ Make sure we don't try and return values from void functions | |
Core: | |
+ Correct first argument to MVM_panic | |
+ Fix uninitialized memory in extops info | |
+ Fix an uninitialized memory access | |
+ Add data on which ops are specializable | |
+ Make the callercode op inline-aware | |
+ Mark sp_speshresolve as :useshll | |
+ Have sp_fastcreate do a direct nursery allocation | |
+ Fix typo that prevented MVM_GC_DEBUGging bindlex | |
+ Fix protect handling in continuationcontrol | |
+ Ensure we never leak a real NULL to exit handler | |
+ Missing GC rooting during contextual resolution | |
+ Always preserve return value for exit handler | |
+ Switch to using MVMContext traversals | |
+ Update getlexreldyn for context traversal | |
+ Redo dynamic variable lookup using frame walker | |
+ Update lexprimspec to do context traversal | |
+ Mark invoke_v as :logged | |
+ Fix typo, ven++ | |
+ Add a maycausedeopt annotation | |
+ Turn on used of logged stats for decont | |
+ Mark native ref ops as :useshll | |
+ Don't leak a real NULL from getcodeobj | |
+ Make coerce_is/us 2x faster | |
+ Remove useless conditional | |
+ Make the abs_i op more readable in interp.c | |
+ Mark speshresolve as :noinline | |
+ Remove some unneeded closures from the interp.c switch | |
+ Add expr JIT template for unbox_s | |
Documentation: | |
+ Remove incorrect byte sum | |
+ Add CONST_PTR indirection | |
+ Document the conditional dependency check | |
+ Fix typo | |
+ A few small updates and corrections | |
+ [Docs] Add JIT documentation describing how to add a tile | |
+ Clean outdated mention of Parrot | |
GC: | |
+ Add branch hint macros to nursery allocation | |
+ Fix MVM_GC_DEBUG worklist check for NULL STable | |
+ Fix a crash caused by the previous commit | |
+ Speed up hash garbage collection a lot (gc_mark); add new macros | |
IO: | |
+ Use the pointer dereference instead of the pointer. | |
+ fix botched up commit | |
+ asyncsocket_listen shall expose listen host&port | |
+ Expose file descriptors of IO::Socket::INET instances | |
JIT: | |
+ Add getrusage/threadlockcount, bit{and,or,xor}_s, getlex{outer,caller}, socket, can_s, *findmeth*, print, get*hllsym, {isbig,bool,base}_I, expmod_I, {pow,gcd,lcm}_I, {add,sub,mul,div,mod}_I, param_rp_i, setdispatcherfor, getppid, {en,de}code*conf, getport_sk, getlex_n{i,n,s}, asynclisten, async*, isrwcont, isinvokable, execname, isnonnull, iscompunit, setdispatcher, multicache*, *capture, backtracestrings, getex*, bindex*, composetype, newtype, exception, hllizefor, settypehll*, isfalse_s, istrue_s, decode, encode, radix, nfarunalt, nfarunproto, nfafromstatelist, findnotcclass, findcclass, iscclass, setbuffersize_fh, iscoderef, getcodeobj, escape, chars, iscont, boot*, knowhow exprjit ops | |
+ Use reference counting for maintaining multiple code copies | |
+ Unbreak build on architectures where we don't support JIT compilation | |
+ Fix segfaults in GC caused by sharing of jitcode in NativeCall repr | |
+ Fix JIT compiled getarg_* reading the wrong register | |
+ up to double-devirt assign_[ins] and decont_[ins] | |
+ JIT strfromname in the legacy JIT | |
+ Please Travis | |
+ Eliminate MVMJitExprOpInfo | |
+ Inline the info node into the tree | |
+ Visit template nodes only once during preprocessing | |
+ Store num_links / num_args in info structure | |
+ Wrap access to expression attributes | |
+ Remove MVMJitExprNode and rename MVMJitExprNodeInfo | |
+ General cleanups in expression trees | |
+ Remove cast information from expr ops table | |
+ Mark tree nodes in template precompiler | |
+ Assign a size to CONST_LARGE and CONST_PTR | |
+ Parse oplist as a module | |
+ Remove 'value type' enum | |
+ Move label assignment to tiler | |
+ Remove op_info pointer | |
+ Adhoc template application | |
+ Remove captureposarg_n | |
+ Implement JIT templates for 10 ops | |
+ Revert "Implement JIT templates for 10 ops" | |
+ more consistently \n in exprjit log output | |
+ Move exprjit templates to the proper location | |
+ Fix return type for abs_I and neg_I templates | |
+ JIT neg_I and abs_I | |
+ Add tell_fh and *stat exprjit templates | |
+ Add nullptr macro | |
+ Add *_I bitwise op exprjit templates | |
+ Add isprime_I and rand_I exprjit templates | |
+ Add *_I comparison op exprjit templates | |
+ Fix unicmp_s arg | |
+ Add fc, encoderep, istty_fh exprjit templates | |
+ Rm 'unsafe' templates already in core_templates | |
+ Update JIT of ctxcallerskipthunks | |
+ Remove unsafe template invalidated by recent work | |
+ Add sizes to ARG5/ARG6 memory definitions | |
+ Add add_I expr JIT template and sort expr templates | |
+ Use '^addrf' macro for setf, getf | |
+ Revert "Revert "Implement JIT template for ctxcallerskipthunks"" | |
+ Implement JIT templates for 10 ops | |
+ Revert "Implement JIT templates for 10 ops" | |
+ Fix ARG6 for windows better | |
+ Make minor alterations to some exprjit templates | |
+ Revert "Implement JIT template for ctxcallerskipthunks" | |
+ Double derference in assembly is not a thing | |
+ Fix bindexpayload comment; old one misleading | |
+ Change isnull ops back to non-branching versions | |
+ Incorporate review feedback for templates; bdw++ | |
+ Re-add getlex_no exprjit template | |
+ Change ^getf to load in getlexstatic_o template | |
+ Re-add getlexstatic_o exprjit template with minor changes | |
+ Add some IO exprjit templates | |
+ Add sha1 and *sc exprjit templates | |
+ Add hlllist and hllhash exprjit templates | |
+ Add exprjit macro to determine if vmnull | |
+ Add exprjit macro to retrieve fields from instance | |
+ JIT bug fixes | |
+ Implement expr JIT template for setwho | |
+ Implement JIT template for ctxcallerskipthunks | |
+ Implement JIT templates for 10 ops | |
+ Add expr jit template for rand_i | |
+ Define ARG5 and ARG6 on windows | |
+ JIT-compile sp_speshresolve | |
+ Add expr jit templates for atkey_i/n/s/u coerce_iu/ui decont_u | |
+ Reorder expr jit ops to be the same as interp order | |
+ Expr templates for iscont_i, iscont_n, iscont_s, flip, rindexfrom, atpos_n, atpos_s | |
+ Add a bunch more expr jit templates for string ops and some others | |
+ Add more expr JIT ops | |
+ JIT the object non-match guard | |
+ Move lexprimspec to proper emitter | |
Math: | |
+ Use correct parameter name in function prototypes | |
+ Fix some typos in comments | |
+ Use platform/stdint.h instead of making own int const macros | |
+ Use a macro for unsigned long long on MSVC | |
+ Get rid of some malloc's in MVM_bigint_to_str | |
+ Get rid of lots of mallocs in coerce_sI | |
Ops: | |
+ Start splitting SSA versions at guards | |
+ Rename getstrfromname to strfromname | |
+ Add sp_speshresolve, rewrite to it in spesh | |
+ Add a negated object literal spesh plugin guard | |
Other: | |
+ Remove unshallow as it causes error on full repo | |
+ Workaround version failure on Travis CI (MacOS) | |
+ Get Travis working again by making sure clang is located right | |
+ Use the llvm 5.0 toolchain deb line | |
+ Use the trusty not the precise llvm repos | |
+ Add expression template to .editorconfig (use 2 spaces) | |
Profiler: | |
+ add a few missing allocating ops to profiler | |
Spesh: | |
+ Change MVM_VECTOR to alloca | |
+ Only mark stolen deopt ann used if it is | |
+ Fix inlining of things with multiple `return`s | |
+ silence compiler warning | |
+ discover facts about a bunch of sp_guard ops | |
+ output name&cuuid in spesh slots for code objects | |
+ Don't add base index when looking for lexical type | |
+ Harden BB deletion annotation motion | |
+ Copy facts when splitting SSA versions | |
+ Update the test register in plugins | |
+ Missing call to MVMVECTOR_INIT | |
+ Update spesh plugin guard insertion | |
+ Allow getting a new version of an in-use temp | |
+ Implement SSA split; restore speculative args opt | |
+ Account for inlines that may cause deopts | |
+ Do dead instruction elim pass after usage setup | |
+ Make inline logging available through an env var | |
+ Don't do worthless type specializations | |
+ Log return type in return from JIT to unspesh'd | |
+ Log return value types under the caller's log ID | |
+ Make spesh thread more GC-responsive | |
+ :( | |
+ messily revert the last | |
+ root when allocating | |
+ rechase lexreg each time through the loop | |
+ Fix wrong comment | |
+ Mark "shameful hotfix" as TODO | |
+ shameful hotfix for gigantic profiler output files | |
+ Use correct types in find_deopt_target_and_index | |
+ Add parens to expressions to silence clang warning | |
+ Add pragma to switch to silence clang warning | |
+ remove superfluous line spotted by MasterDuke17++ | |
+ skip to before the prepargs instruction | |
+ be extra careful about prev | |
+ Make sure output of spesh resolve gets optimized, too | |
+ Fix outer traversal regression in getlexcaller | |
+ Fix delete motion of INLINE_END annotations | |
+ Improve deopt logging | |
+ Missing rooting of test object in evaluate_guards | |
+ Fix bind_key to use correct frame in write barrier | |
+ Tidy up and correct MVMROOT in get_lexicals_hash | |
+ Don't miss frames that we traversed too | |
+ Use JIT inline mechanism over deopt indexes | |
+ Fix thinko in caller skip thunks traversal | |
+ Make getlexrel traverse the MVMContext | |
+ Update MVMContext elems for traversal | |
+ Correct inline handling thinko in move to outer | |
+ Fix typos in comments | |
+ Update context iterator to traverse | |
+ Fix initialization of frame walker | |
+ Sketch out lazy context traversal handling | |
+ Teach frame walker to understand inlines | |
+ Factor deopt index finding out of deopt all | |
+ Extract frame walking logic from getlexcaller | |
+ learn facts from a couple of sp_ ops | |
+ Move speshresolve handling into optimize phase | |
+ Don't repeatedly calcuate if preds are seen | |
+ Remove leftover debugging code | |
+ Fix handling of added deopt points | |
+ Value written by deopt instruction also needed | |
+ Switch over to using the new deopt use method | |
+ Add unseen read handling to new deopt algorithm | |
+ Sketch out more precise deopt algorithm | |
+ Move OSR point backwards on instruction insertion | |
+ Delete void return instruction when inlining | |
+ Turn off DU chain checks by default | |
+ fix minor typos | |
+ Implement box/unbox elimination | |
+ Liberalize set elimination somewhat | |
+ allow hllboxtype_* across hll in inlines | |
+ A new algorithm for removing unrequired `set`s | |
+ Factor out inc/dec op check | |
+ Decrease instructions kept for potential deopt | |
+ Add a couple of missing use_facts calls | |
+ Fix dec_u/dec_i handling in BB deletion | |
+ Add DU chain checks after second stage opts too | |
+ Mark throwcat result as dead writier when goto'd | |
+ Remove outdated comment | |
+ Correct handling of inc/dec usage | |
+ Detect accidentally deleted writers | |
+ Do DU chain setup for inserted decont guard | |
+ Delete operand in eliminated reprid lookup | |
+ Don't manipulate usages in spesh args opts | |
+ Correct handling of inc/dec ops in usage checker | |
+ Correct usage update in inline return boxing | |
+ Another optimize_iffy correction | |
+ Delete usage when simplifying a PHI node | |
+ Delete use of eliminated isnull check operand | |
+ Delete use of late-bound lexical lookup string | |
+ Remove duplicate deletion | |
+ Fix various missing operand use deletions | |
+ Add detection of missing usage deletions | |
+ Instruction deletion should delete usage, not add | |
+ Set writers on spesh plugin getattr code-gen | |
+ Check usages one after main opts | |
+ Fix spesh arg box writer/usage handling | |
+ Don't do the usage validation so often | |
+ Correct various missing usage bumps | |
+ Ensure a big PHI can't cause an overflow | |
+ Add check that all readers in DU chain are present | |
+ Fix optimization of isfalse to set writer | |
+ Correct writer setting in coercing via elems | |
+ missing writer setting in inlining (return val boxing) | |
+ Stop cheating on SSA form in optimize_call | |
+ Correct writer when optimizing object conditional | |
+ Missing writer setting in resolvecode insertion | |
+ Missing writer setting in inline handling | |
+ First steps to a DU-chain checker | |
+ Correct a wrong instruction in usage delete | |
+ Switch usage handling to new use chain model | |
+ Mark deopt use of the write of a deopt instruction | |
+ Sketch out a new set of usage-handling functions | |
+ Correctly update OSR deopt index upon inlining | |
+ Store deopt usage separate from normal usage | |
+ More precise handling of reads of deopt-marked ins | |
+ Inline limit with original bytecode size too | |
+ When inlining unspecialized, set arg type facts | |
+ Better document MAX_ARGS_FOR_OPT | |
+ Fix dump of inlined spesh line/file annotations | |
+ Don't try to inline with a flattening callsite | |
+ Cope with inlinees with empty first basic block | |
+ Attempt inlining so-far unspecialized callees | |
+ Make sure deopt code ref reg is never eliminated | |
+ Update deopt logging, which bitrotted | |
+ Do spesh log of inlines in log_inline | |
+ Fact discovery determines usage counts | |
+ Factor out spesh graph inlinability checks | |
+ Factor out static frame inlinability checks | |
+ Refactor inline logging; detect missed inlines | |
+ Correct a mis-placed `break` statement | |
+ Add facts to attributes in spesh plugin guards | |
+ Fix guard evaluator attribute handling | |
+ Elide object non-match guard in a bunch of ways | |
+ Lessen the number of spesh threshold levels | |
Strings: | |
+ Add an MVM_UNLIKELY to encoding name init cond | |
+ Avoid some code duplication | |
+ Fix a regression with Regional Indicator Unicode Graph Seg. | |
+ Document why we're bumping buffer by 1 | |
+ Increase the result buffer size. | |
+ Get the number of bytes to be processed from the current buffer and not from the header. | |
+ Fix compiler warning from last commit | |
+ Save 3 instructions per 64bits in siphash24() function | |
+ Add "standard" siphash tests using siphashadd64bits + large time test | |
+ Fix a bug in the SipHash tests causing them to fail on Big Endian | |
+ Run all siphash tests even if we get some failures | |
+ Separate SipHash tests into separate tests | |
+ Add some more SipHash comments and update copyright message | |
+ Use better solution to SipHash fix for GCC 4 | |
+ Don't use 32-bit unaligned reads in SipHash implementation | |
+ Remove a line that shouldn't have been added in the last commit | |
+ Use sized types for uthash (instead of using unsigned everywhere) | |
+ Fix indentation of code in uthash.h | |
+ Check if bucket is correct in HASH_FSCK | |
+ Optimize uthash ptr delete code | |
+ Make sure declarations happen before code | |
+ In SCRef gc_free search hash for pointer manually to delete (fix SEGV) | |
+ Implement SipHash, use as our hashing function w/ 64bit hashvals | |
+ Remove previous hash handle pointers in hash implementation | |
+ Set MVM_string_substrings_equal_nocheck to static | |
+ Fix asan errors by assigning before assigning hh_next | |
+ Make a faster HASH_ITER macro and make other hash optimizations | |
+ Fix the 32 bit build | |
+ Hash: randomize insertion order and bucket iteration order | |
+ Make parse_simple_number impossible to reach end without returning | |
+ Factor out our hashing function and speed up hashing flat strings | |
+ Used fixed size allocator for hashes. Nice speedup for table expansion | |
+ In MVM_string_ascii_encode_substr only free if non-null | |
+ Fix the grammar of a comment in uthash.h | |
+ Use Fibonacci hashing to determine which bucket to put hashv's into | |
Tooling/Build: | |
+ Unbreak update-changelog.p6 and use new Git::Log module | |
+ Don't store owner or group in our release's tar archive | |
+ Make release.sh more clear as to which we want written to MANIFEST | |
+ Add missing .h suffix to build/Makefile.in | |
+ Add +x and shebangs for scripts. | |
+ Make compare-oplist-interp-order.sh more POSIX compliant | |
+ Add uthash_types.h to Makefile.in | |
+ Add a tool to dump sizes of REPR structures | |
+ Fix Configure.pl version detection | |
+ Add script to generate html documentation from docs folder | |
+ Fix tools/compare-oplist-interp-order.sh on *BSD | |
+ Use clang with OpenBSD since their ancient gcc creates a moar which can't generate NQP anymore. | |
docs: | |
+ NQP does not support parrot any more | |
src/mast/compiler.c: | |
+ Use larger integer time to iterate strings heap | |
src/moar.c: | |
+ Mix in the instance pointer into the first hash secret |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment