RFR(S) 8032656: Tag the MachSpillCopies with purpose information

Niclas Adlertz niclas.adlertz at oracle.com
Tue Jan 28 03:18:03 PST 2014


Hi Vladimir,

Thank you for your response.
That is a possibility as well.

By using an enum I still have the problem of deciding what to return in 
Name().
I could have either
* an array of const char* with the names and index into it by using the 
enum when returning a name
* a switch-case on the enums in the Name() method.

However, I think sub-classing the MachSpillCopyNode looks cleaner.
The sub-classing approach could also be of use in a product build when 
debugging a crash and we want to check what type of node we are at.

If it's ok with you, I'll wait and see what the others think. If more 
people think the enum approach is better I can use enums instead.

Kind Regards,
Niclas Adlertz

On 2014-01-28 11:50, Vladimir Ivanov wrote:
> Niclas,
>
> Why didn't you introduce an enum instead and pass the reason to 
> constructor? Introducing 13 subclasses just to overload Name() method 
> in debug builds looks like an overkill to me.
>
> Best regards,
> Vladimir Ivanov
>
> On 1/28/14 2:07 PM, Niclas Adlertz wrote:
>> Hi all,
>>
>> When debugging or visualizing spills/splits/moves in C2 it's hard to
>> know what caused an insertion of a certain MachSpillCopy. I've made this
>> easier by creating subclasses of the MachSpillCopyNode.
>>
>> webrev: http://cr.openjdk.java.net/~adlertz/JDK-8032656/webrev00/
>> bug: https://bugs.openjdk.java.net/browse/JDK-8032656
>>
>> Kind Regards,
>> Niclas Adlertz



More information about the hotspot-compiler-dev mailing list