Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-07-01

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:36 jdv79 joined #moarvm
01:47 harrow joined #moarvm
02:01 vendethiel- joined #moarvm
06:25 domidumont joined #moarvm
06:36 brrt joined #moarvm
06:37 brrt good * #moarvm
06:37 brrt interesting post on the pyston blog today
06:37 nwc10 ooh, thianks for checking on that
06:37 * nwc10 reads
06:39 brrt our jit is comparatively boring
06:39 brrt i.e. we really don't do runtime code modification
06:49 domidumont joined #moarvm
06:52 brrt okay, i have something to put forth the court of #moarvm today again
06:52 domidumont joined #moarvm
06:52 brrt i sometimes need to spill a value from a register
06:53 brrt (this is another one of those 'i know how to do it the slow way. how to do it the quick and easy way, and is this worth it' stories)
06:53 nwc10 I have no idea about this sort of stuff (sorrY)
06:53 nwc10 hopefully someone who is awake does
06:53 brrt hmm
06:54 brrt its ultimately just a data structure question though
06:55 brrt my 'value descriptors' sit in array-indexed linked lists so that i can find them by the node (virtual value they represent) or by register they inhabit (while live, anyway)
06:56 brrt it can happen that a value ceases to be live but is not directly evicted from its register because a newer, longer lived value takes it place
06:56 brrt so the list of values in the register slot can have any number of items, and not all of them need to be live
06:58 brrt when i do need to spill something, i need to figure out a number of things, notably: which register to spill, whether to insert a store into the code stream, and if so, where to insert it
06:59 brrt spilling, for what it is worth, has the minimum side effect of limiting the live range of values to the point where they are being spilled
07:01 brrt if the value i'm spilling is the only or most long-lived value in the set, then i'll need to insert a store
07:01 brrt if there is a longer lived value in the set of values that describe this node, i don't
07:02 brrt so that is a lookup question: how can i efficiently find the longest lived value in the node
07:02 brrt (sorting! .. linked list!)
07:04 brrt finding which register to spill is also a difficulty; if there are registers which are already backed by a spilled value, in theory they should have preference over spilling a brand new value
07:04 brrt (stack)
07:05 brrt where to insert it is usually pretty simple, fortunately; that is just after the creation of the first live value
07:05 brrt (the store)
07:06 brrt doing this all with linked lists is easy enough, it is just busywork, that i'd rather replace with constant time ops
07:07 brrt maintaining a single longest-lived-register is easy
07:07 brrt maintaining a live-range heap is not necessarily so easy
07:07 brrt although it is doable
07:09 brrt but i'm not entirely sure what to do with it if you have it
07:13 brrt ok, i'm clearly just rambling :-)
07:49 zakharyas joined #moarvm
08:49 vendethiel joined #moarvm
10:15 vendethiel joined #moarvm
12:24 colomon joined #moarvm
12:36 dalek joined #moarvm
12:47 cognominal left #moarvm
13:26 vendethiel- joined #moarvm
17:46 domidumont joined #moarvm
20:06 ilbot3 joined #moarvm
20:06 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
21:48 harrow` joined #moarvm
21:51 BinGOs_ joined #moarvm
21:51 lnx_ joined #moarvm
22:02 BinGOs joined #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary