[jdk20] RFR: 8299733: AArch64: "unexpected literal addressing mode" assertion failure with -XX:+PrintC1Statistics [v2]
Dean Long
dlong at openjdk.org
Fri Jan 6 21:16:01 UTC 2023
On Fri, 6 Jan 2023 17:25:05 GMT, Nick Gasson <ngasson at openjdk.org> wrote:
>> `MacroAssembler::incrementw()` asserts that
>>
>>
>> assert(!dst.uses(rscratch1), "invalid dst for address increment");
>>
>>
>> But `Address::uses()` can only be called on non-literal addresses. We could change this assert to check `dst.getMode()` first but it seems cleaner to make `Address::uses()` handle the non-literal case.
>>
>> This failure is trivial to reproduce with:
>>
>>
>> $ java -XX:+PrintC1Statistics -XX:+UseZGC --version
>
> Nick Gasson has updated the pull request incrementally with one additional commit since the last revision:
>
> Remove TestPrintC1Statistics from ProblemList-Xcomp
Isn't the real problem that _base and _index are not always initialized? If modes that don't use those registers always initialized them to noreg, at least in debug builds, then wouldn't that allow the existing uses() to work without extra overhead in product mode?
-------------
PR: https://git.openjdk.org/jdk20/pull/87
More information about the hotspot-compiler-dev
mailing list