void allocate() { ASSERT_WITH_MESSAGE(m_activeMoves.size() >= m_coalescingCandidates.size(), "The activeMove set should be big enough for the quick operations of BitVector."); makeWorkList(); if (debug) { dumpInterferenceGraphInDot(WTF::dataFile()); dataLog("Initial work list\n"); dumpWorkLists(WTF::dataFile()); } do { if (traceDebug) { dataLog("Before Graph simplification iteration\n"); dumpWorkLists(WTF::dataFile()); } if (!m_simplifyWorklist.isEmpty()) simplify(); else if (!m_worklistMoves.isEmpty()) coalesce(); else if (!m_freezeWorklist.isEmpty()) freeze(); else if (!m_spillWorklist.isEmpty()) selectSpill(); if (traceDebug) { dataLog("After Graph simplification iteration\n"); dumpWorkLists(WTF::dataFile()); } } while (!m_simplifyWorklist.isEmpty() || !m_worklistMoves.isEmpty() || !m_freezeWorklist.isEmpty() || !m_spillWorklist.isEmpty()); assignColors(); }
ClosedKnot::ClosedKnot(const KnotStyle &knotStyle, int windowWidth, int windowHeight) : inherited(knotStyle, windowWidth, windowHeight, 12) { // Set boundary conditions for a closed knot. // The left and right border must consist of vertical... for (int i = 0; i < mVSections; ++i) { sectionType(0, i) = sectionType(mHSections-1, i) = V; } // ... half sections. for (int i = 0; i <= mVSections; ++i) { sectionCorner(0, i) = sectionCorner(mHSections, i) = N; } // The top and bottom border must have horizontal corners. for (int i = 1; i < mHSections; ++i) { sectionCorner(i, 0) = sectionCorner(i, mVSections) = H; } // Assign colors to the knot. assignColors(); }