src/share/vm/opto/phaseX.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/opto/phaseX.hpp
src/share/vm/opto/phaseX.hpp
Print this page
rev 9743 : 8139771: Eliminating CastPP nodes at Phis when they all come from a unique input may cause crash
Summary: Lost dependency when CastPP at Phis are eliminate
Reviewed-by:
*** 328,337 ****
--- 328,340 ----
{ ShouldNotCallThis(); return NULL; }
// Delayed node rehash if this is an IGVN phase
virtual void igvn_rehash_node_delayed(Node* n) {}
+ // true if CFG node d dominates CFG node n
+ virtual bool is_dominator(Node *d, Node *n) { fatal("unimplemented for this pass"); return false; };
+
#ifndef PRODUCT
void dump_old2new_map() const;
void dump_new( uint new_lidx ) const;
void dump_types() const;
void dump_nodes_and_types(const Node *root, uint depth, bool only_ctrl = true);
*** 395,404 ****
--- 398,410 ----
//------------------------------PhaseGVN---------------------------------------
// Phase for performing local, pessimistic GVN-style optimizations.
class PhaseGVN : public PhaseValues {
+ protected:
+ bool is_dominator_helper(Node *d, Node *n, bool linear_only);
+
public:
PhaseGVN( Arena *arena, uint est_max_size ) : PhaseValues( arena, est_max_size ) {}
PhaseGVN( PhaseGVN *gvn ) : PhaseValues( gvn ) {}
PhaseGVN( PhaseGVN *gvn, const char *dummy ) : PhaseValues( gvn, dummy ) {}
*** 413,422 ****
--- 419,430 ----
void replace_with(PhaseGVN* gvn) {
_table.replace_with(&gvn->_table);
_types = gvn->_types;
}
+ bool is_dominator(Node *d, Node *n) { return is_dominator_helper(d, n, true); }
+
// Check for a simple dead loop when a data node references itself.
DEBUG_ONLY(void dead_loop_check(Node *n);)
};
//------------------------------PhaseIterGVN-----------------------------------
*** 543,552 ****
--- 551,562 ----
void remove_speculative_types();
void check_no_speculative_types() {
_table.check_no_speculative_types();
}
+ bool is_dominator(Node *d, Node *n) { return is_dominator_helper(d, n, false); }
+
#ifndef PRODUCT
protected:
// Sub-quadratic implementation of VerifyIterativeGVN.
julong _verify_counter;
julong _verify_full_passes;
src/share/vm/opto/phaseX.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File