[9] RFR(S): 8140390: Char stores/loads accessing byte arrays must be marked as unmatched

John Rose john.r.rose at oracle.com
Thu Nov 19 20:07:47 UTC 2015


On Nov 18, 2015, at 7:59 AM, Roland Westrelin <roland.westrelin at oracle.com> wrote:
> 
>> http://cr.openjdk.java.net/~thartmann/8140390/webrev.00/
> 
> That looks good to me.
> 
> Roland.


It looks good to me, too, but I'm not fully comfortable with three booleans in a row.
The API is starting to look like a Turing Tape.  Let's file a cleanup bug on it,
to collapse those three booleans into a single bitmask, with named components,
something like LoadNode::ControlDependency.  (MemNode::Mismatch=4, etc.)

More substantively, Panama will eventually make mismatched accesses very
common, as we overlay C-like data structures inside of byte[] and long[] carriers,
or inside flat carrier objects (e.g., Long4 with fields long c0,c1,c2,c3).
Have we got a robust solution to keep the memory references straight,
when we are using C-like viewing casts on carrier bits?

— John


More information about the hotspot-compiler-dev mailing list