libera/#sbcl - IRC Chatlog
Search
9:11:26
stassats`
that reminds me, i should port the (the (unsigned-byte 64) (ash n s)) optimization to x86-64
9:13:11
stassats`
(and no, it's not responsible for the issue, as it hasn't been released on arm64 either)
9:16:21
stassats`
for some reason porting assembly code is even more cumbersome than writing it initially
9:16:41
stassats`
i guess because when writing it's done incrementally, but when porting you already have the whole thing
9:17:24
stassats`
not having three-op instructions it the main pain point when going from arm64 to x86-64
9:18:26
stassats`
they reduce branching by not destroying the input operands, so you can repeat the same operation
9:21:34
Josh_2
looking at the incremental changes made to SBCL made me take a shallow dive into compiler optimization
9:22:27
Josh_2
most interesting thing I found was https://www.agner.org/optimize/ but still dont have the foggiest. What you are doing stassats` is epic :sunglasses:
9:23:21
stassats`
you don't really have to go down to the instruction level optimizations, as just going from a full call to some assembly is usually good
9:23:50
stassats`
i usually just try to make things small, the out of order CPUs are hard to comprehend
9:36:47
stassats`
looking at the unoptimized code for ash, i guess i see another possible optimization, for the (unsigned-byte 64) type check
9:37:19
stassats`
if it's known that it's some unsigned number no need to check if it's a single digit (signed-byte 64) without a sign bit
20:05:31
Krystof
I expect when writing tests for an area that's been basically uncovered by tests for ~20 years to find bugs
20:06:15
Krystof
but unread-char with :io streams (and, admittedly, newline conversion) triggering heap exhaustion...
20:47:58
qhong
I don't have :IMMOBILE-SPACE on *FEATURES*, but (sb-kernel:immobile-space-obj-p #'rplacd) => T, not sure will it move