JDK-8143385 : Improve C2's API for emitting atomic/unaligned/mismatched stores or loads
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9,10
  • Priority: P3
  • Status: Closed
  • Resolution: Won't Fix
  • Submitted: 2015-11-20
  • Updated: 2017-04-07
  • Resolved: 2017-04-07
Related Reports
Relates :  
Relates :  
Description
JDK-8140309 introduced the notion of unaligned and mismatched stores/loads. GraphKit::make_load()/store_to_memory() and IdealKit::load()/store() should be improved to use a bitmask instead of three boolean fields.
Comments
John wrote: "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?"
20-11-2015