mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-31 07:23:06 +08:00
A function that returns a record its caller only projects fills the caller's frame storage through a %into.<name> entry. These entries are small and called once per use, but LLVM kept them out of line in loops: record-boundaries' pathLength called %into.pointAt twice per iteration. They now carry inlinehint, like the indexed-read and interface-dispatch helpers. Once inlined, the scalar array reads in them still blocked hoisting the arrays' header loads: the slow path's scr_arr_state and getter calls had no memory attributes. They are now read-only cold calls, as the dense read fallbacks already are (the getter runs only for a present element, so it does not trap).