rework constants

Splat instructions no longer do anything at runtime;
instead we make sure at compile time the constant will be available.

Then when we want to find a given value we look for registers, splats,
and stack values, creating an x86 Operand or loading it into a Reg as
needed.  Constants are already in-memory, they're no-ops to spill.

This lets us simplify and delete lots of code, and we now only call
optimize() once for all backends, so it's a big deal for overhead.

Change-Id: I78a54feaf8b18be26efe73dffda903a7a9e31daa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285153
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
4 files changed