RFR (S): 8071996: split_if accesses NULL region of ConstraintCast

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Feb 2 23:08:14 UTC 2015


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