RFR(M) 8136406: Remove ZapDeadCompiledLocals code

Christian Thalinger christian.thalinger at oracle.com
Tue Sep 15 16:38:40 UTC 2015


> On Sep 14, 2015, at 9:22 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
> https://bugs.openjdk.java.net/browse/JDK-8136406
> http://cr.openjdk.java.net/~kvn/8136406/webrev/ <http://cr.openjdk.java.net/~kvn/8136406/webrev/>

Should we remove:

  void OopMap::set_value(VMReg reg) {

altogether?

> 
> Dead code elimination.
> I did not find any bugs since 2000 associated with ZapDeadCompilerLocals. There were few in 1999,2000 when that code was added.
> 
> I do not remember ever used ZapDeadCompilerLocals. I tried today and it does not work - corresponding calls into runtime to check oopmap are not generated. The code has condition:
> 
> (n->as_MachSafePoint()->oop_map() != NULL);
> 
> But oop_map set only during BuildOopMaps() which is called after Insert_zap_nodes(). And we can't move Insert_zap_nodes() call because calls insertion should happen before short branches are processed.
> So it is dead code we always had in debug Server VM.
> 
> As result of this cleaning we can remove OopMapValue::value_value used only with ZapDeadCompiledLocals - see OopMap::set_value(). It will allow increase maximum allocatable spill area by factor of 2. When we generate oopmaps we may bailout compilation when we hit this limit:
> 
>      // Check for a legal reg name in the oopMap and bailout if it is not.
>      if (!omap->legal_vm_reg_name(r)) {
>        regalloc->C->record_method_not_compilable("illegal oopMap register name");
>        continue;
>      }
> 
> Changes passed JPRT.
> 
> Thanks,
> Vladimir

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20150915/620112e5/attachment.html>


More information about the hotspot-compiler-dev mailing list