< prev index next >

src/share/vm/ci/ciTypeFlow.hpp

Print this page

        

@@ -527,10 +527,11 @@
   private:
     ciBlock*                          _ciblock;
     GrowableArray<Block*>*           _exceptions;
     GrowableArray<ciInstanceKlass*>* _exc_klasses;
     GrowableArray<Block*>*           _successors;
+    GrowableArray<Block*>*           _predecessors;
     StateVector*                     _state;
     JsrSet*                          _jsrs;
 
     int                              _trap_bci;
     int                              _trap_index;

@@ -615,10 +616,15 @@
     GrowableArray<Block*>* successors() {
       assert(_successors != NULL, "must be filled in");
       return _successors;
     }
 
+    GrowableArray<Block*>* predecessors() {
+      assert(_predecessors != NULL, "must be filled in");
+      return _predecessors;
+    }
+
     // Get the exceptional successors for this Block.
     GrowableArray<Block*>* exceptions() {
       if (_exceptions == NULL) {
         compute_exceptions();
       }

@@ -939,10 +945,13 @@
 
 public:
   // Perform type inference flow analysis.
   void do_flow();
 
+  // Determine if bci is dominated by dom_bci
+  bool is_dominated_by(int bci, int dom_bci);
+
   void print_on(outputStream* st) const PRODUCT_RETURN;
 
   void rpo_print_on(outputStream* st) const PRODUCT_RETURN;
 };
 
< prev index next >