91ed534139
- Don't use PC-relative calls when calling between loading units. - Sort the contents of the code cluster by loading unit, then by text offset. - Handle binding PC-relatives calls and inserting trampolines per loading unit. - Create one code order table per loading unit to implement PC -> Code lookup. - Read code order tables directly, instead of copying into malloc'd memory. --use_table_dispatch still not yet supported. This slightly shrinks non-split binaries (~2% clustered part, 0.4% total snapshot) due to the new delta encoding when Code references Instructions. Bug: https://github.com/dart-lang/sdk/issues/41974 Change-Id: I51052ebc7b4968b554897d1710135a6c41821302 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157820 Commit-Queue: Ryan Macnak <rmacnak@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Tess Strickland <sstrickl@google.com>