Compute BCMarker fixup offsets lazily
Summary:
BCMarker has sufficient amount of information to compute all offsets on demand,
which is simpler than updating it from store-elim.
- fixupSk(): just lookup the first unpublished BeginInlining opcode
- fixupSBOff(): new helper that represents an offset between stack bases
- frameSBOff(): the semantics is undefined for non-BeginInlining frames,
fortunately it is used only when inlining, so just use adjusted fixupSBOff()
- fixupBcSPOff(): instead of adjusting bcSPOff(), compute the fixup version of
it on demand and update all relevant callers from bcSPOff() to
fixupBcSPOff(); note that some callers used during irgen (before store-elim)
were expecting non-fixup semantic, keep these at bcSPOff() so they continue
to work once we stop emitting InlineCall during irgen
Reviewed By: ricklavoie
Differential Revision:
D31357421
fbshipit-source-id:
c49cfbe2cbcfdb415339dd06ee9ae3ec4011c5c1