8026293: Schedule part of G1 pre-barrier late
Summary: move rare executed part of G1 write barrier from hot path.
Reviewed-by: kvn, twisti, roland
Contributed-by: staffan.friberg@oracle.com
--- a/hotspot/src/share/vm/opto/graphKit.cpp Mon Oct 14 19:30:05 2013 -0700
+++ b/hotspot/src/share/vm/opto/graphKit.cpp Tue Oct 15 12:14:00 2013 -0700
@@ -3615,7 +3615,7 @@
Node* marking = __ load(__ ctrl(), marking_adr, TypeInt::INT, active_type, Compile::AliasIdxRaw);
// if (!marking)
- __ if_then(marking, BoolTest::ne, zero); {
+ __ if_then(marking, BoolTest::ne, zero, unlikely); {
BasicType index_bt = TypeX_X->basic_type();
assert(sizeof(size_t) == type2aelembytes(index_bt), "Loading G1 PtrQueue::_index with wrong size.");
Node* index = __ load(__ ctrl(), index_adr, TypeX_X, index_bt, Compile::AliasIdxRaw);