--- a/hotspot/src/share/vm/opto/graphKit.cpp Fri Apr 01 21:45:33 2011 -0700
+++ b/hotspot/src/share/vm/opto/graphKit.cpp Sat Apr 02 09:49:27 2011 -0700
@@ -3385,10 +3385,15 @@
#define __ ideal.
void GraphKit::sync_kit(IdealKit& ideal) {
+ set_all_memory(__ merged_memory());
+ set_i_o(__ i_o());
+ set_control(__ ctrl());
+}
+
+void GraphKit::final_sync(IdealKit& ideal) {
// Final sync IdealKit and graphKit.
__ drain_delay_transform();
- set_all_memory(__ merged_memory());
- set_control(__ ctrl());
+ sync_kit(ideal);
}
// vanilla/CMS post barrier
@@ -3435,7 +3440,7 @@
// (Else it's an array (or unknown), and we want more precise card marks.)
assert(adr != NULL, "");
- IdealKit ideal(gvn(), control(), merged_memory(), true);
+ IdealKit ideal(this, true);
// Convert the pointer to an int prior to doing math on it
Node* cast = __ CastPX(__ ctrl(), adr);
@@ -3461,7 +3466,7 @@
}
// Final sync IdealKit and GraphKit.
- sync_kit(ideal);
+ final_sync(ideal);
}
// G1 pre/post barriers
@@ -3471,7 +3476,7 @@
Node* val,
const TypeOopPtr* val_type,
BasicType bt) {
- IdealKit ideal(gvn(), control(), merged_memory(), true);
+ IdealKit ideal(this, true);
Node* tls = __ thread(); // ThreadLocalStorage
@@ -3548,7 +3553,7 @@
} __ end_if(); // (!marking)
// Final sync IdealKit and GraphKit.
- sync_kit(ideal);
+ final_sync(ideal);
}
//
@@ -3614,7 +3619,7 @@
// (Else it's an array (or unknown), and we want more precise card marks.)
assert(adr != NULL, "");
- IdealKit ideal(gvn(), control(), merged_memory(), true);
+ IdealKit ideal(this, true);
Node* tls = __ thread(); // ThreadLocalStorage
@@ -3688,6 +3693,6 @@
}
// Final sync IdealKit and GraphKit.
- sync_kit(ideal);
+ final_sync(ideal);
}
#undef __