< prev index next >
src/share/vm/opto/library_call.cpp
Print this page
rev 12619 : 8174164: SafePointNode::_replaced_nodes breaks with irreducible loops
Reviewed-by:
rev 12620 : 8174164: SafePointNode::_replaced_nodes breaks with irreducible loops
Reviewed-by:
rev 12697 : 8176506: C2: loop unswitching and unsafe accesses cause crash
Reviewed-by:
rev 12698 : 8176513: Poor code quality for ByteBuffers
Reviewed-by:
rev 12699 : 8176513: Poor code quality for ByteBuffers
Summary: relax conditions that causes MemBarCPUOrder membars to be added around unsafe accesses
Reviewed-by:
*** 2373,2383 ****
// the alias analysis of the rest of the graph, either Compile::can_alias
// or Compile::must_alias will throw a diagnostic assert.)
bool need_mem_bar;
switch (kind) {
case Relaxed:
! need_mem_bar = mismatched || can_access_non_heap;
break;
case Opaque:
// Opaque uses CPUOrder membars for protection against code movement.
case Acquire:
case Release:
--- 2373,2383 ----
// the alias analysis of the rest of the graph, either Compile::can_alias
// or Compile::must_alias will throw a diagnostic assert.)
bool need_mem_bar;
switch (kind) {
case Relaxed:
! need_mem_bar = mismatched & !adr_type->isa_aryptr();
break;
case Opaque:
// Opaque uses CPUOrder membars for protection against code movement.
case Acquire:
case Release:
< prev index next >