RFR (S): 8010934: assert failure in c1_LinearScan.cpp: "asumption: non-Constant instructions have only virtual operands"
roland.westrelin at oracle.com
Thu Mar 28 02:01:45 PDT 2013
LIRGenerator::do_ArrayLength() tries to not emit code to load the length of an array if it doesn't serve as implicit null check and it's not used (following range check elimination), using the instruction's use count. The use count doesn't take into account references from debug infos so even if it is zero the instruction can still be needed. This minor optimization doesn't appear to trigger often (never on a few reference_server runs) so I simply removed it.
More information about the hotspot-compiler-dev