Shenandoah barriers study
    Roland Westrelin 
    rwestrel at redhat.com
       
    Fri Sep  9 14:38:01 UTC 2016
    
    
  
I push a change to help with this:
>  *)
> http://cr.openjdk.java.net/~shade/shenandoah/shenandoah-gc-bench/src/main/java/org/openjdk/shenandoah/acmp/ACmpBarriersRandom.java
>
>   Potential improvements:
>    b) jump over the second cmp on "==" path.
But it's not sufficient. We would want:
if (a != b) {
  a = rb(a);
  b = rb(b);
}
if (a == b) {
  res = true;
} else {
  res = false;
}
to become:
if (a != b) {
  a = rb(a);
  b = rb(b);
  if (a == b) {
    res = true;
  } else {
    res = false;
  }
} else {
  res = true;
}
which is c2's split if optimization. But:
if (a == b) {
  res = true;
} else {
  res = false;
}
is first transformed in that simple example to use cmoves and that gets
in the way of split if.
Roland.
    
    
More information about the shenandoah-dev
mailing list