Consolidate field-access and index-expression LValues.
While working on dynamic LValue support, I realized that after the
initial calculations of slot-count and slot-offset, field and index
accesses reduce to the same thing. It's just a sliced subset of the
initial LValue. (In fact, many swizzles like `.xyz` also qualify,
but this CL doesn't implement that simplification.) I've removed
the Unowned fixed-index/field lvalue classes and replaced them with
an UnownedLValueSlice class which manages both.
I also added a `fixedSlotRange` method which will return the final
slot range of an entire LValue chain. This isn't used yet because
we still emit lvalue loads and stores one slot at a time, but in a
followup, we will read and write LValues in one step, and we will
use this method to do so.
Change-Id: Ic0d6254d047d6feba710a572683544dcc04ca714
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/646736
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
1 file changed