@@ -29,23 +29,23 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2929class Lowering final : public Phase
3030{
3131public:
32- inline Lowering (Compiler* compiler, LinearScanInterface* lsra )
32+ inline Lowering (Compiler* compiler, RegAllocInterface* regAlloc )
3333 : Phase(compiler, PHASE_LOWERING)
3434 , vtableCallTemp(BAD_VAR_NUM)
3535#ifdef TARGET_ARM64
3636 , m_blockIndirs(compiler->getAllocator (CMK_ArrayStack))
3737#endif
3838 {
39- m_lsra = (LinearScan*)lsra ;
40- assert (m_lsra );
39+ m_regAlloc = static_cast <RegAllocImpl*>(regAlloc) ;
40+ assert (m_regAlloc != nullptr );
4141 }
4242 virtual PhaseStatus DoPhase () override ;
4343
4444 // This variant of LowerRange is called from outside of the main Lowering pass,
4545 // so it creates its own instance of Lowering to do so.
4646 void LowerRange (BasicBlock* block, LIR::ReadOnlyRange& range)
4747 {
48- Lowering lowerer (comp, m_lsra );
48+ Lowering lowerer (comp, m_regAlloc );
4949 lowerer.m_block = block;
5050
5151 lowerer.LowerRange (range);
@@ -489,7 +489,7 @@ class Lowering final : public Phase
489489 // Return true if 'node' is a containable memory op.
490490 bool IsContainableMemoryOp (GenTree* node) const
491491 {
492- return m_lsra ->isContainableMemoryOp (node);
492+ return m_regAlloc ->isContainableMemoryOp (node);
493493 }
494494
495495 // Return true if 'childNode' is a containable memory op by its size relative to the 'parentNode'.
@@ -594,14 +594,14 @@ class Lowering final : public Phase
594594 // do an expensive check here. For non-candidates it is not harmful to set lvDoNotEnregister.
595595 if (varDsc->lvTracked && !varDsc->lvDoNotEnregister )
596596 {
597- assert (!m_lsra ->isRegCandidate (varDsc));
597+ assert (!m_regAlloc ->isRegCandidate (varDsc));
598598 comp->lvaSetVarDoNotEnregister (lclNum DEBUG_ARG (DoNotEnregisterReason::LocalField));
599599 }
600600 }
601601
602602 void RequireOutgoingArgSpace (GenTree* node, unsigned numBytes);
603603
604- LinearScan * m_lsra ;
604+ RegAllocImpl * m_regAlloc ;
605605 unsigned vtableCallTemp; // local variable we use as a temp for vtable calls
606606 mutable SideEffectSet m_scratchSideEffects; // SideEffectSet used for IsSafeToContainMem and isRMWIndirCandidate
607607 BasicBlock* m_block;
0 commit comments