Request for review(XL): 6958292 C1: Enable parallel compilation

Tom Rodriguez tom.rodriguez at oracle.com
Thu Jun 3 18:20:21 PDT 2010


In Compiler::initialize_all, this line appears useless too:

+  BufferBlob* buffer_blob = CompilerThread::current()->get_buffer_blob();

tom

On Jun 3, 2010, at 6:07 PM, Igor Veresov wrote:

> On 6/3/10 5:18 PM, Vladimir Kozlov wrote:
>> 
>> c1_Compiler.cpp:
>> 
>> Should you save arena in Compiler::initialize_all()?
>> 
>> 49 // note: to use more than on instance
>> ^ one ?
>> 
> Right. Thanks.
> 
>> In Compiler::initialize() why you read ciEnv::current()?
> 
> Didn't notice that, no reason why we should.
> 
>> 
>> 
>> c1_Compilation.hpp:
>> 
>> Did you try to remove new(size_t size) and leave only one with arena to
>> find all places which use 'new'
>> and replace then with new(arena) ?
>> 
>> ! void* operator new(size_t size) { return
>> Compilation::current()->arena()->Amalloc(size); }
>> ! void* operator new(size_t size, Arena* arena) {
>> ! return arena->Amalloc(size);
>> ! }
>> 
>> For example, I see in IR::IR() you can use new(compilation->arena())
>> IRScope(.
> 
> Good point. I'll do that. Thanks!
> 
> igor
> 
> 
>> 
>> Vladimir
>> 
>> Tom Rodriguez wrote:
>>> Just to summarize the changes:
>>> 
>>> Refactor the initialization steps into global setup to allocate some
>>> persistent pieces, and per compilation setup.
>>> 
>>> Move state out of static fields into per thread structures.
>>> 
>>> Convert visitor patterns that used functions to use closures.
>>> 
>>> Remove the machinery that allowed the appearance of multithreading in
>>> the tiered world when it wasn't really supported.
>>> 
>>> tom
>>> 
>>> On Jun 3, 2010, at 11:45 AM, Igor Veresov wrote:
>>> 
>>>> I'd like to push this Tom's implementation of parallel compilation in
>>>> C1.
>>>> 
>>>> Webrev: http://cr.openjdk.java.net/~iveresov/6958292/webrev/
>>>> 
>>>> Thanks,
>>>> igor
>>> 
> 



More information about the hotspot-compiler-dev mailing list