Reland "byte align everything in SkSLInterpreter"
This is a reland of e5288369c89e85b4530e2c96efee7b70270d3f2f,
with newly added calls to align() removed.
Original change's description:
> byte align everything in SkSLInterpreter
>
> It's nicer to write code without having to think about alignment,
> and this appears to be faster too:
>
> $ ninja -C out nanobench && out/nanobench --config 8888 -m GM_runtime_cf_interp_1 --loops 0
> Before: 24/24 MB 1 18.4ms 18.5ms 18.5ms 18.6ms 0% █▆▅▅▅▁▅▅▅▅ 8888 GM_runtime_cf_interp_1
> After: 23/23 MB 1 16.6ms 16.6ms 16.6ms 16.7ms 0% ▁▁▃█▅▂▁▁█▅ 8888 GM_runtime_cf_interp_1
>
> While byte-aligning things I noticed the write16 and write32 calls could
> do all their bytes at once, in one call to resize() instead of 2-4 calls
> push_back.
>
> Looking at that disassembly, I noticed vector_instruction can be static.
>
> Change-Id: I22985b49d6745797da10bbd6b6f2002a7618f2ae
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214338
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: Ibb990bc3c3334115e22cf36234aa58b662b8ca4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214354
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
4 files changed