--
You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-symp...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-sympathy+unsub...@googlegroups.com.
I'm looking forward to time when final fields are treated as constants, unlike the current sorry situation. It's really sad that default behavior is to not trust final fields.
sent from my phone
--
You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-symp...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-sympathy+unsub...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-symp...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-symp...@googlegroups.com.
case vmIntrinsics::_checkIndex: // We do not intrinsify this. The optimizer does fine with it. return NULL;
The unfortunate downside of buffer access (compared to array access) is that unlike array lengths, buffer limits are not final. This can force the buffer range check (against the limit) to remain in your loops, rather than get hoisted out of them as it would when iteration over an array... The JIT may sometimes be able avoid this by leveraging memory ordering rules, but any volatile access or non-inlined method call in your loop will pretty much force the range check to occur again...