RFR (S): 8071996: split_if accesses NULL region of ConstraintCast
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Feb 3 17:20:52 UTC 2015
Okay. I will push it.
Thanks,
Vladimir
On 2/3/15 1:38 AM, Lindenmaier, Goetz wrote:
> Hi Vladimir,
>
> thanks for looking at this!
>
> I updated the comment:
> // If the cast is derived from data flow edges, it may not have a control.
> // If so, it should be save to split. But follow-up code can not deal with
> // this (l. 359). So skip.
> And uploaded a new webrev.
> http://cr.openjdk.java.net/~goetz/webrevs/8071996-fixSplitIf/webrev.02/
>
> Best regards,
> Goetz.
>
> -----Original Message-----
> From: hotspot-dev [mailto:hotspot-dev-bounces at openjdk.java.net] On Behalf Of Vladimir Kozlov
> Sent: Dienstag, 3. Februar 2015 00:08
> To: hotspot-dev at openjdk.java.net
> Subject: Re: RFR (S): 8071996: split_if accesses NULL region of ConstraintCast
>
> Hi, Goetz
>
> The fix is good but the comment is slightly off. It is not "region
> edge", it is "control edge". In current case it could be IfTrue or
> IfFalse projection nodes which points to If node which we compare.
>
> Also this control edge is required:
>
> 359 } else if( v->is_ConstraintCast() ) {
> 360 proj = v->in(0); // Controlling projection
> 361 } else {
> 362 assert( 0, "do not know how to handle this guy" );
> 363 }
> 364
> 365 Node *proj_path_data, *proj_path_ctrl;
> 366 if( proj->Opcode() == Op_IfTrue ) {
>
> Thanks,
> Vladimir
>
> On 2/1/15 11:22 PM, Lindenmaier, Goetz wrote:
>> Hi,
>>
>> I fixed a small bug in the C2 compiler.
>> It appeared in our s390/zArch port running hs25.31 with jdk6 when executing
>> jvm2008/compiler.compiler.
>>
>> Split_if encounters a ConstraintCast without region edge, which is a valid pattern.
>> But it reads the region edge unconditionally, thus failing.
>>
>> Please review this change. I please need a sponsor.
>> http://cr.openjdk.java.net/~goetz/webrevs/8071996-fixSplitIf/webrev.01/
>>
>> Best regards,
>> Goetz.
>>
>>
More information about the hotspot-dev
mailing list