freenode/#sbcl - IRC Chatlog
Search
20:08:38
stassats
what if transform-call doesn't perform full lambda transformation but directly transforms into a let
20:17:04
stassats
unknown key args would be a problem, but that rarely happens, could fall back the full convert-lambda
22:27:54
scymtym
stassats: couldn't the sb comparison at the end of PACK-WIRED-TN been done as (eq sb (l-t-v (sb-or-loose 'control-stack)))? (saw the STRING= while making sb-sprof flamegraph in mcclim)
22:39:52
scymtym
right, a BUG then. i mean, it seems like a consistency check and an internal error if violated
23:03:59
scymtym
just built successfully with sc-locations changed to (simple-array sc-offset 1). that should help in a couple of places
23:15:28
stassats
when a transform is inserted, it's a call, it gets let converted quickly, but no propagate-let-args is called
23:16:19
stassats
then ir1-optimize continues optimizing the newly converted code, but the types are not propagated, so it either has to call the transforms again or get transformed into suboptimal code
23:17:44
stassats
i think transforms should only be performed after the whole component has all the types propagated
23:19:58
stassats
but the issue of transform-call leaving propagated code, i think after anything is ir1 converted, ir1-optimize should just stop and run again
23:20:35
stassats
since there are guaranteed to be nodes with reoptimize=t, and it'll will run again, but potentially twice
23:21:33
stassats
i tried calling ir1-optimize-combination in transform-call, but that didn't go well on deleted calls
23:24:07
stassats
i think i need something with lots of blocks and lots of transforms, so, branchy with array access and arithmetic
23:28:40
scymtym
stassats: https://techfak.de/~jmoringe/pack-flamegraph-new.png PACK-WIRED-TN is now one of the unlabeled blips which is good
23:29:48
scymtym
i didn't measure that. this is just sb-sprof visualization, i.e. relative amounts of time spent
23:33:04
scymtym
as far as test cases go, i haven't found a canonical example that exercises everything