diff --git a/src/hotspot/share/opto/c2_globals.hpp b/src/hotspot/share/opto/c2_globals.hpp index 885c0dd75a784..c818265368898 100644 --- a/src/hotspot/share/opto/c2_globals.hpp +++ b/src/hotspot/share/opto/c2_globals.hpp @@ -339,9 +339,6 @@ product(bool, UseSuperWord, true, \ "Transform scalar operations into superword operations") \ \ - develop(bool, SuperWordRTDepCheck, false, \ - "Enable runtime dependency checks.") \ - \ product(bool, SuperWordReductions, true, \ "Enable reductions support in superword.") \ \ diff --git a/src/hotspot/share/opto/superword.cpp b/src/hotspot/share/opto/superword.cpp index b1d1169f3571c..2cf252b6f4bcc 100644 --- a/src/hotspot/share/opto/superword.cpp +++ b/src/hotspot/share/opto/superword.cpp @@ -56,7 +56,6 @@ SuperWord::SuperWord(PhaseIdealLoop* phase) : _node_info(arena(), 8, 0, SWNodeInfo::initial), // info needed per node _clone_map(phase->C->clone_map()), // map of nodes created in cloning _align_to_ref(nullptr), // memory reference to align vectors to - _disjoint_ptrs(arena(), 8, 0, OrderedPair::initial), // runtime disambiguated pointer pairs _dg(_arena), // dependence graph _visited(arena()), // visited node set _post_visited(arena()), // post visited node set @@ -545,7 +544,7 @@ bool SuperWord::SLP_extract() { return false; // Exit if no interesting nodes or complex graph. } - // build _dg, _disjoint_ptrs + // build _dg dependence_graph(); // compute function depth(Node*) @@ -896,12 +895,6 @@ void SuperWord::dependence_graph() { VPointer p2(s2->as_Mem(), phase(), lpt(), nullptr, false); int cmp = p1.cmp(p2); - if (SuperWordRTDepCheck && - p1.base() != p2.base() && p1.valid() && p2.valid()) { - // Trace disjoint pointers - OrderedPair pp(p1.base(), p2.base()); - _disjoint_ptrs.append_if_missing(pp); - } if (!VPointer::not_equal(cmp)) { // Possibly same address _dg.make_edge(s1, s2); @@ -923,16 +916,6 @@ void SuperWord::dependence_graph() { _nlist.clear(); } - - if (TraceSuperWord) { - tty->print_cr("\ndisjoint_ptrs: %s", _disjoint_ptrs.length() > 0 ? "" : "NONE"); - for (int r = 0; r < _disjoint_ptrs.length(); r++) { - _disjoint_ptrs.at(r).print(); - tty->cr(); - } - tty->cr(); - } - } //---------------------------mem_slice_preds--------------------------- @@ -3801,7 +3784,6 @@ void SuperWord::adjust_pre_loop_limit_to_align_main_loop_vectors() { void SuperWord::init() { _dg.init(); _packset.clear(); - _disjoint_ptrs.clear(); _block.clear(); _data_entry.clear(); _mem_slice_head.clear(); @@ -3859,10 +3841,6 @@ void SuperWord::print_stmt(Node* s) { #endif } -// ========================= OrderedPair ===================== - -const OrderedPair OrderedPair::initial; - // ========================= SWNodeInfo ===================== const SWNodeInfo SWNodeInfo::initial; diff --git a/src/hotspot/share/opto/superword.hpp b/src/hotspot/share/opto/superword.hpp index db7101b26cb53..5fa0e04440c68 100644 --- a/src/hotspot/share/opto/superword.hpp +++ b/src/hotspot/share/opto/superword.hpp @@ -57,7 +57,6 @@ // second statement is considered the right element. class VPointer; -class OrderedPair; // ========================= Dependence Graph ===================== @@ -198,33 +197,6 @@ class SWNodeInfo { static const SWNodeInfo initial; }; -class SuperWord; - -// JVMCI: OrderedPair is moved up to deal with compilation issues on Windows -//------------------------------OrderedPair--------------------------- -// Ordered pair of Node*. -class OrderedPair { - protected: - Node* _p1; - Node* _p2; - public: - OrderedPair() : _p1(nullptr), _p2(nullptr) {} - OrderedPair(Node* p1, Node* p2) { - if (p1->_idx < p2->_idx) { - _p1 = p1; _p2 = p2; - } else { - _p1 = p2; _p2 = p1; - } - } - - bool operator==(const OrderedPair &rhs) { - return _p1 == rhs._p1 && _p2 == rhs._p2; - } - void print() { tty->print(" (%d, %d)", _p1->_idx, _p2->_idx); } - - static const OrderedPair initial; -}; - // -----------------------------SuperWord--------------------------------- // Transforms scalar operations into packed (superword) operations. class SuperWord : public ResourceObj { @@ -249,8 +221,6 @@ class SuperWord : public ResourceObj { CloneMap& _clone_map; // map of nodes created in cloning MemNode const* _align_to_ref; // Memory reference that pre-loop will align to - GrowableArray _disjoint_ptrs; // runtime disambiguated pointer pairs - DepGraph _dg; // Dependence graph // Scratch pads