Not all instructions at the inlining phase result in the same number of bytes of code.
Inlining heuristics should do a better job of predicting code size.
In particlar,
[ ] Redefinitions reference existing values, so potentially generate no code.
[x] GenericCheckBounds annotated with pragma('vm:unsafe:no-bounds-checks') generates no code.
[ ] The length() input to GenericCheckBounds annotated with pragma('vm:unsafe:no-bounds-checks') often becomes dead after the check is removed.
Not all instructions at the inlining phase result in the same number of bytes of code. Inlining heuristics should do a better job of predicting code size.
In particlar,
GenericCheckBounds
annotated withpragma('vm:unsafe:no-bounds-checks')
generates no code.length()
input toGenericCheckBounds
annotated withpragma('vm:unsafe:no-bounds-checks')
often becomes dead after the check is removed.