diff --git a/src/hotspot/share/c1/c1_GraphBuilder.cpp b/src/hotspot/share/c1/c1_GraphBuilder.cpp index 851d3dc6bb9..77b27279448 100644 --- a/src/hotspot/share/c1/c1_GraphBuilder.cpp +++ b/src/hotspot/share/c1/c1_GraphBuilder.cpp @@ -1042,7 +1042,7 @@ void GraphBuilder::load_indexed(BasicType type) { bool next_needs_patching = !next_field->holder()->is_loaded() || !next_field->will_link(method(), Bytecodes::_getfield) || PatchALot; - can_delay_access = !next_needs_patching; + can_delay_access = C1UseDelayedFlattenedFieldReads && !next_needs_patching; } if (can_delay_access) { // potentially optimizable array access, storing information for delayed decision @@ -1972,7 +1972,7 @@ void GraphBuilder::access_field(Bytecodes::Code code) { bool next_needs_patching = !next_field->holder()->is_loaded() || !next_field->will_link(method(), Bytecodes::_getfield) || PatchALot; - can_delay_access = !next_needs_patching; + can_delay_access = C1UseDelayedFlattenedFieldReads && !next_needs_patching; } if (can_delay_access) { if (has_pending_load_indexed()) { diff --git a/src/hotspot/share/c1/c1_globals.hpp b/src/hotspot/share/c1/c1_globals.hpp index 7564b2b8aae..a6e92f747e9 100644 --- a/src/hotspot/share/c1/c1_globals.hpp +++ b/src/hotspot/share/c1/c1_globals.hpp @@ -332,7 +332,10 @@ "Update MethodData*s in Tier1-generated code") \ \ develop(bool, PrintCFGToFile, false, \ - "print control flow graph to a separate file during compilation") + "print control flow graph to a separate file during compilation") \ + \ + develop(bool, C1UseDelayedFlattenedFieldReads, true, \ + "Use delayed reads of flattened field to reduce buffering") // end of C1_FLAGS