Request for review(XL): 6958292 C1: Enable parallel compilation
Tom Rodriguez
tom.rodriguez at oracle.com
Thu Jun 3 18:16:46 PDT 2010
>> 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!
It's fine to change it but the reason of the new interface was for use by the global initialization that operates out of a special long lived arena. I didn't make any attempt to modify all the constructor calls to pass around the Compilation. We could go down that route but I think it impacts readability, unless we rename the Compilation* to C.
tom
>
> 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