<headius[m]>
chrisseaton: we'll do it if forced to, but with the continued improvements in escape analysis and value types I'm hoping we won't have to
<chrisseaton[m]>
It also turns basic operators into simple arithmetic instructions in the IR though, so I guess it must also relieve pressure on the JVM's inliner.
<headius[m]>
I'm sure it does
<headius[m]>
however simple operators would need to be padded with range checks or use Math.*exact calls which adds much of that pressure back
<headius[m]>
not to mention the deopt exception handling and frame reconstitution logic, which would be a large blob of code that's (ideally) only used in rare cases
<chrisseaton[m]>
I think the exact calls can be substituted during graph building, so aren't too bad
<headius[m]>
a hybrid approach I've considered is to use a small carrier object that holds both the native long bits and an object reference