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

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Jun 3 17:18:23 PDT 2010


c1_Compiler.cpp:

Should you save arena in Compiler::initialize_all()?

49   // note: to use more than on instance
                                 ^ one ?

In Compiler::initialize() why you read ciEnv::current()?


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(.

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