codegen: improve our argument annotations (#35463)
Reflect that immutable struct parameters are readonly by the time LLVM
can see them, even passed inside boxes.
LLVM seems to require an explicit additional LICM call, to avoid
regressions from this (observing the scheduling of fewer LICM calls).