On Fri, 28 Jun 2024 15:15:31 GMT, Damon Fenacci <dfena...@openjdk.org> wrote:

>> Evgeny Astigeevich has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Fix data race
>
> src/hotspot/share/compiler/compileBroker.cpp line 1336:
> 
>> 1334:   }
>> 1335: 
>> 1336:   AbstractCompiler *comp = CompileBroker::compiler(comp_level);
> 
> Do we need to change this?

Not really. I'll change it back to the original code.

> src/hotspot/share/compiler/compileBroker.cpp line 1563:
> 
>> 1561: // See if this compilation is not allowed.
>> 1562: bool CompileBroker::compilation_is_prohibited(const methodHandle& 
>> method, int osr_bci, int comp_level) {
>> 1563:   assert(compiler(comp_level) != nullptr, "Ensure we have a compiler");
> 
> Are you sure `compiler(comp_level)` can never be `nullptr` (not even 
> potentially)? (it seems so to me too but just to make sure)

Yes, I am sure.
This is a private member function which is only used in 
`CompileBroker::compile_method`.
In `CompileBroker::compile_method`  there has always been an assert checking 
availability of a compiler. I added the assert here just in case the function 
is used in any other functions where a compiler might not be available.

If we want to minimize changes, we can keep the original code where the  
parameter `excluded` is only deleted. The checks `comp == nullptr` are 
redundant in the original code because the function is invoked as follows:

if (comp == nullptr || compilation_is_prohibited(...)) {
    return nullptr;
}


I can add a check `comp == nullptr` at the beginning of the function and return 
`nullptr` if it is true.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19637#discussion_r1661286156
PR Review Comment: https://git.openjdk.org/jdk/pull/19637#discussion_r1661319021

Reply via email to