freenode/#sbcl - IRC Chatlog
Search
18:51:25
aeth
ARRAY-ROW-OF-2-ROW-2-COPY is now 99 bytes with two bounds checks. It was 157 with 4 in 1.4.9. ZOMBIE-RAPTOR:UPDATE-INPUT-MOVEMENT! now has four bounds checks instead of 8.
18:51:43
aeth
So it looks like half of the bounds checks that could have been removed that weren't are now removed.
19:10:44
aeth
What's expected is just 4 more asm instructions in array-row-of-2-row-2-copy than in array-of-2-copy (turning the 2D index into a 1D index?) and I think that's the most useful test.
19:14:49
aeth
Actually, I wonder if those instructions could be removed when the aref is constant on a known-size array. I suspect that they were the main factor in a 4x4 matrix as an array of (16) beating a 4x4 matrix as an array of (4 4) in a matrix* benchmark I wrote a while back.
23:29:16
aeth
The bounds checks are also gone in update-input-movement! which is no surprise because my test case was just a simplification of what's going on there.
23:30:32
aeth
There's one more weird type check that is going on in that function. Inline functions now keep their declarations, which is awesome (especially when (speed 3) affects what's going on significantly, like with trig). Probably for a year or two at this point.
23:31:56
aeth
Well, perhaps there was a temporary regression in a version I used for a long time, then.