Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/parse1.cpp @ 4777:e9a5e0a812c8
7125896: Eliminate nested locks
Summary: Nested locks elimination done before lock nodes expansion by looking for outer locks of the same object.
Reviewed-by: never, twisti
author | kvn |
---|---|
date | Sat, 07 Jan 2012 13:26:43 -0800 |
parents | 069ab3f976d3 |
children | b0ff910edfc9 |
comparison
equal
deleted
inserted
replaced
4776:5da7201222d5 | 4777:e9a5e0a812c8 |
---|---|
1817 if (jvms->is_loc(idx)) { | 1817 if (jvms->is_loc(idx)) { |
1818 t = block()->local_type_at(idx - jvms->locoff()); | 1818 t = block()->local_type_at(idx - jvms->locoff()); |
1819 } else if (jvms->is_stk(idx)) { | 1819 } else if (jvms->is_stk(idx)) { |
1820 t = block()->stack_type_at(idx - jvms->stkoff()); | 1820 t = block()->stack_type_at(idx - jvms->stkoff()); |
1821 } else if (jvms->is_mon(idx)) { | 1821 } else if (jvms->is_mon(idx)) { |
1822 assert(!jvms->is_monitor_box(idx), "no phis for boxes"); | 1822 if (EliminateNestedLocks && jvms->is_monitor_box(idx)) { |
1823 t = TypeInstPtr::BOTTOM; // this is sufficient for a lock object | 1823 // BoxLock nodes are not commoning. Create Phi. |
1824 t = o->bottom_type(); // TypeRawPtr::BOTTOM | |
1825 } else { | |
1826 t = TypeInstPtr::BOTTOM; // this is sufficient for a lock object | |
1827 } | |
1824 } else if ((uint)idx < TypeFunc::Parms) { | 1828 } else if ((uint)idx < TypeFunc::Parms) { |
1825 t = o->bottom_type(); // Type::RETURN_ADDRESS or such-like. | 1829 t = o->bottom_type(); // Type::RETURN_ADDRESS or such-like. |
1826 } else { | 1830 } else { |
1827 assert(false, "no type information for this phi"); | 1831 assert(false, "no type information for this phi"); |
1828 } | 1832 } |