github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:17 fake_space_whale joined 00:18 p6bannerbot sets mode: +v fake_space_whale 03:33 ZofBot joined 03:34 p6bannerbot sets mode: +v ZofBot 03:45 SourceBaby joined 03:46 p6bannerbot sets mode: +v SourceBaby 05:21 fake_space_whale left 05:45 AlexDaniel left 06:35 domidumont joined 06:36 p6bannerbot sets mode: +v domidumont 06:39 patrickb joined, p6bannerbot sets mode: +v patrickb 06:55 brrt joined 06:56 p6bannerbot sets mode: +v brrt 07:15 domidumont left 07:16 domidumont joined 07:17 p6bannerbot sets mode: +v domidumont 07:31 domidumont left, brrt` joined 07:32 brrt` left, domidumont joined 07:33 p6bannerbot sets mode: +v domidumont 07:34 brrt left 08:15 domidumont left 08:16 domidumont joined, p6bannerbot sets mode: +v domidumont 08:34 zakharyas joined 08:35 p6bannerbot sets mode: +v zakharyas 08:54 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel 09:13 robertle joined 09:14 p6bannerbot sets mode: +v robertle 09:52 zakharyas left 10:00 MasterDuke left 11:06 brrt joined 11:07 p6bannerbot sets mode: +v brrt
brrt \o 11:07
timotimo o/ 11:08
12:02 zakharyas joined 12:03 p6bannerbot sets mode: +v zakharyas 12:12 AlexDaniel left 12:23 brrt left 12:25 brrt joined 12:26 p6bannerbot sets mode: +v brrt
brrt ugh, too much to do 12:54
I suppose you'd like to have shift and truncate instructions in the JIT?
I want to split signed and unsigned cast into separate operators
timotimo somewhat importantly, these shift ops would be for big ints, but i can probably just steal how jnthn already implemented add and such. 13:02
we probably already have shift ops for regular native ints 13:05
but yeah, truncate (do we also have extend ops?) would be good to have in the jit
13:11 patrickb left
brrt we have cast (up) 13:12
truncate would be implemented essentially the same, with movzx, except that we'd assign a different size 13:13
I think I'm going to merge MasterDuke++ and jstuder++'s PRs
timotimo mhh. since registers are 64bit either way, even when using int8, it's probably actually better performance either way to use "int" instead of "int8" here 13:14
since i grab the value out of an int8 @foo anyway
brrt depends on how you read them, yes
timotimo BTW SIMD when? ;) ;)
perhaps we'll actually keep a bit of .c code in rakudo so we can implement SIMD-improved fast paths for some operations there 13:15
like "oh, [+] on a int16 @foo? i have a native call for that!"
since we're pretty sure we don't want to try autovectorization, right? 13:17
i wonder if it's a terrible idea to implement some "heavy" ops in the interp.c thing by having the labels for multiple ops point at the same body and then differentiate inside 13:23
like sp_add_I and sp_sub_I are pretty big, and only differ in one single little spot
well, two little spots 13:24
one is the fallback, which is extra expensive anyway, because it's a call
brrt no, no C code in rakudo
timotimo OK, OK :)
brrt :-P
timotimo but how about ... writing the assembly into a Buf using nqp code! 13:25
brrt question is... and I'm going to slightly lean on jnthn's design chops here
how can we design an interface that allows us to use SIMD internally, that is useable by a (high-level) rakudo compiler
and if we have that, can we scale it to GPU if there are platforms that support it 13:26
counterquestion is, how much perl code *isn't* reading and writing from files/sockets
timotimo: actually, if we had done that, we'd have had graal 13:27
timotimo well, graal is well received ;)
but yeah, at some point we'll reach the limit of opcodes if we just build opcodes for loads of simd things 13:29
brrt I think their bucks-for-bang ratio slightly exceeds our 13:30
timotimo then we can have an argument that differentiates between the different things we could want
brrt ever heard of liborc?
timotimo yep
optimized ... something
brrt started as liboil, optimized inner loops
timotimo yes, exactly that one 13:31
brrt then became a JIT compiler for the same
timotimo and orc is the oil compiler
brrt maybe we can expose a sort of interface to that
timotimo well, obviously we could nativecall into it ;) 13:32
brrt or that. but I think we can do better
14:31 brrt left 14:55 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel 15:16 fake_space_whale joined, p6bannerbot sets mode: +v fake_space_whale 15:49 domidumont left 15:57 zakharyas left 16:14 robertle left 16:22 brrt joined, p6bannerbot sets mode: +v brrt 16:25 diakopter joined, p6bannerbot sets mode: +v diakopter 16:29 lizmat joined, p6bannerbot sets mode: +v lizmat
brrt ugh, how do I convince whitespace-mode that no, I really do want spaces rather than tabs 16:41
16:41 lizmat left 17:08 hoelzro_ left
Geth MoarVM: 17365037b6 | (Daniel Green)++ | 2 files
Add a macro for decoder_ensure_decoder and ...

templates for decoder<addbytes takebytes takeline empty>.
17:29
MoarVM: df121f9d29 | (Bart Wiegmans)++ | 2 files
Merge remote-tracking branch 'Masterduke17/jit_macro_and_template_for_decoder_ops'
MoarVM: f1e83f6f60 | (Bart Wiegmans)++ | 5 files
[JIT] A few more macros

  - repr_id, is_repr_id and not_repr_id
  - throw_adhoc - what it says
  - &CAT3 for string concatentation
17:37 fake_space_whale left 17:43 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci MoarVM build failed. Bart Wiegmans '[JIT] A few more macros 17:43
travis-ci.org/MoarVM/MoarVM/builds/425842859 github.com/MoarVM/MoarVM/compare/2...e83f6f60b6
17:43 travis-ci left 17:44 hoelzro joined, p6bannerbot sets mode: +v hoelzro
brrt ugh, i'm an idiot 17:45
diakopter we are all idiots, sometimes more often than other times :D 17:46
AlexDaniel but typically very often, which is why we delegate our tasks to machines as much as we canā€¦ 17:52
AlexDaniel is speaking for himself obviously
šŸ¤¤ 17:53
Geth MoarVM: 22c98176a1 | (Bart Wiegmans)++ | tools/tiler-table-generator.pl
[JIT] Tiler table generator changes

  - sexpr::encode -> sexpr_encode (oops)
  - package rule -> package tiler
  - renames
17:54
MoarVM/master: 5 commits pushed by (Jeremy Studer)++, (Bart Wiegmans)++ 18:02
brrt ok, /me afk 18:03
18:03 brrt left 18:14 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci MoarVM build passed. Bart Wiegmans '[JIT] Tiler table generator changes 18:14
travis-ci.org/MoarVM/MoarVM/builds/425852245 github.com/MoarVM/MoarVM/compare/f...c98176a154
18:14 travis-ci left 18:17 domidumont joined 18:18 p6bannerbot sets mode: +v domidumont 18:30 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci MoarVM build passed. Bart Wiegmans 'Merge remote-tracking branch 'jstuder/exprjit_cast_load_addr'' 18:30
travis-ci.org/MoarVM/MoarVM/builds/425855309 github.com/MoarVM/MoarVM/compare/2...c718411abe
18:30 travis-ci left 18:31 domidumont left 20:01 AlexDaniel left 20:37 lizmat joined 20:38 p6bannerbot sets mode: +v lizmat
Geth MoarVM: 477ec445f8 | (Bart Wiegmans)++ | 7 files
[JIT] Split signed and unsigned cast operators

Have different semantics, are different operators.
20:56
jnthn For SIMD at the op level, we can probably have a small number of ops that take an operand indicating the operation to distribute (add, sub, mul, etc) and maybe the width of the operands or some such 21:01
Rather than an op explosion over all the pairings of those
masak I love it when a force multiplier comes together 21:05
diakopter force left-shifter 21:06
masak hey didn't Knuth warn you to not prematurely optimize
diakopter arbitrary-precision left-shift a trillion 21:07
masak boggles
I think I... need to sit down 21:08
diakopter on that note, decommute &
masak .oO( you're commute consists of a trillion-step left shift!?! )
your* 21:09
23:59 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke