RFR: 8331087: Move immutable nmethod data from CodeCache

Vladimir Kozlov kvn at openjdk.org
Sat Apr 27 00:45:10 UTC 2024


On Sat, 27 Apr 2024 00:02:16 GMT, Dean Long <dlong at openjdk.org> wrote:

>> src/hotspot/share/code/nmethod.cpp line 117:
>> 
>>> 115:   result = static_cast<T>(thing); \
>>> 116:   assert(static_cast<int>(result) == thing, "failed: %d != %d", static_cast<int>(result), thing);
>>> 117: 
>> 
>> I replaced `checked_cast<>()` with this macro because of next issues:
>>  - The existing assert points to `utilities/checkedCast.hpp` file where this method is located and not where failed cast. It does not help when it is used several times in one method (for example, in `nmethod()` constructors).
>>  - The existing assert does not print values
>
> I thought @kimbarrett had a draft PR to address the error reporting issue, but I can't seem to find it.  To solve the general problem, I think we need a version of vmassert() that takes `char* file, int lineno` as arguments, and a macro wrapper for checked_cast() that passes `__FILE__` and `__LINEN__` from the caller.

Yes, it would be perfect separate RFE.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/18984#discussion_r1581641784


More information about the serviceability-dev mailing list