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

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


I was grepping the patch and somehow missed that.

tom

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

> On 6/3/10 6:20 PM, Tom Rodriguez wrote:
>> In Compiler::initialize_all, this line appears useless too:
>> 
>> +  BufferBlob* buffer_blob = CompilerThread::current()->get_buffer_blob();
> 
> But Runtime1::initialize(buffer_blob) needs it.
> 
> igor
> 
>> 
>> 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