--- a/hotspot/src/share/vm/ci/ciTypeFlow.hpp Tue Oct 27 01:45:01 2015 -0400
+++ b/hotspot/src/share/vm/ci/ciTypeFlow.hpp Fri Nov 06 09:36:47 2015 +0100
@@ -529,6 +529,7 @@
GrowableArray<Block*>* _exceptions;
GrowableArray<ciInstanceKlass*>* _exc_klasses;
GrowableArray<Block*>* _successors;
+ GrowableArray<Block*>* _predecessors;
StateVector* _state;
JsrSet* _jsrs;
@@ -617,6 +618,12 @@
return _successors;
}
+ // Predecessors of this block (including exception edges)
+ 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) {
@@ -941,6 +948,9 @@
// 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;