AOT code usage restrictions
ioi.lam at oracle.com
ioi.lam at oracle.com
Sat Jan 24 04:26:26 UTC 2026
On 1/23/26 1:35 PM, Andrew Haley wrote:
> On 1/23/26 7:30 PM, Vladimir Kozlov wrote:
>
>> I just want to point out that using generic instructions in AOT code
>> (AOTed adapters, stubs, nmethods) in deployment will force new JITed
>> code also use generic instructions. That is it - VM runtime (stack
>> walking, deoptimization, registers saving) requires generated code
>> (JITed and AOTed) to use the same set of instructions and registers.
>
> I hear you, but not entirely. Sure, we'll have to use the smaller
> register sets in some cases, but there's nothing to stop us from using
> a lot of newer instructions that run faster.
>
> I'm perhaps a bit biased here because AArch64, being newer, doesn't
> have quite the same diversity of features as x86. And, with the
> exception of a little bit of code that can use the extended SVE
> register set, we don't have to worry about register file sizes there
> either.
>
Vladimir,
I wonder if it's possible to test the impact of mixing "generic" AOT
code and "native" JIT code in the Leyden repo:
- Disable CPU feature check in aotCodeCache.cpp
- Generate AOT code with some CPU features disabled using -XX: flags
- Execute production run with full CPU features. Run a sufficiently
complex program.
Does it crash?
More information about the leyden-dev
mailing list