8210187: Explicit barriers for C2

Reviewed-by: eosterlund, shade, roland, pliden
This commit is contained in:
Roman Kennke 2018-08-31 16:28:52 +02:00
parent 72797db95b
commit a9f2e04d54
5 changed files with 100 additions and 1 deletions

View file

@ -1212,6 +1212,7 @@ Node* PhaseStringOpts::int_stringSize(GraphKit& kit, Node* arg) {
kit.set_control(loop);
Node* sizeTable = fetch_static_field(kit, size_table_field);
sizeTable = kit.access_resolve(sizeTable, ACCESS_READ);
Node* value = kit.load_array_element(NULL, sizeTable, index, TypeAryPtr::INTS);
C->record_for_igvn(value);
Node* limit = __ CmpI(phi, value);
@ -1547,6 +1548,7 @@ void PhaseStringOpts::copy_constant_string(GraphKit& kit, IdealKit& ideal, ciTyp
// Compress copy contents of the byte/char String str into dst_array starting at index start.
Node* PhaseStringOpts::copy_string(GraphKit& kit, Node* str, Node* dst_array, Node* dst_coder, Node* start) {
Node* src_array = kit.load_String_value(kit.control(), str);
src_array = kit.access_resolve(src_array, ACCESS_READ);
IdealKit ideal(&kit, true, true);
IdealVariable count(ideal); __ declarations_done();