hotspot/src/share/vm/opto/parse.hpp
changeset 33180 34e5004f5acb
parent 31857 adbf29d9ca43
child 33196 3d84eedbd82c
--- a/hotspot/src/share/vm/opto/parse.hpp	Wed Oct 14 09:22:21 2015 -1000
+++ b/hotspot/src/share/vm/opto/parse.hpp	Thu Oct 15 09:40:45 2015 +0200
@@ -343,6 +343,7 @@
   bool          _count_invocations;  // update and test invocation counter
   bool          _method_data_update; // update method data oop
   Node*         _alloc_with_final;   // An allocation node with final field
+  Node*         _alloc_with_stable;  // An allocation node with stable field
 
   // Variables which track Java semantics during bytecode parsing:
 
@@ -398,6 +399,25 @@
     _alloc_with_final = n;
   }
 
+  Node*    alloc_with_stable() const  {
+    if (_alloc_with_stable == NodeSentinel) {
+      return NULL;
+    }
+    return _alloc_with_stable;
+  }
+
+  void set_alloc_with_stable(Node* n)  {
+    if (_alloc_with_stable == NodeSentinel) {
+      // uninitialized status, initialize with current input, can be
+      // null or valid node.
+      _alloc_with_stable = n;
+    } else if (_alloc_with_stable != n) {
+      // _alloc_with_stable isn't equal to n
+      _alloc_with_stable = NULL;
+    }
+    // _alloc_with_stable is equal with n, do nothing
+  }
+
   Block*             block()    const { return _block; }
   ciBytecodeStream&  iter()           { return _iter; }
   Bytecodes::Code    bc()       const { return _iter.cur_bc(); }