C# Класс Mosa.Compiler.Framework.RegisterAllocator.GreedyRegisterAllocator

Наследование: BasicRegisterAllocator
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
GreedyRegisterAllocator ( BasicBlocks basicBlocks, VirtualRegisters virtualRegisters, BaseArchitecture architecture, AddStackLocalDelegate addStackLocal, Operand stackFrame, ITraceFactory traceFactory ) : System.Collections.Generic

Защищенные методы

Метод Описание
AdditionalSetup ( ) : void
CalculatePriorityValue ( LiveInterval liveInterval ) : int
CalculateSpillCost ( LiveInterval liveInterval ) : void
PlaceLiveInterval ( LiveInterval liveInterval ) : bool
SplitIntervalAtCallSite ( LiveInterval liveInterval, SlotIndex callSite ) : void
TrySplitInterval ( LiveInterval liveInterval, int level ) : bool

Приватные методы

Метод Описание
CollectMoveHints ( ) : void
GetLowerOptimalSplitLocation ( LiveInterval liveInterval, SlotIndex at ) : SlotIndex
GetMaximum ( SlotIndex a, SlotIndex b, SlotIndex c, SlotIndex d ) : SlotIndex
GetMinimum ( SlotIndex a, SlotIndex b, SlotIndex c, SlotIndex d ) : SlotIndex
GetMoveHints ( LiveInterval liveInterval ) : Mosa.Compiler.Framework.RegisterAllocator.MoveHint[]
GetSpillCost ( SlotIndex use, int factor ) : int
GetUpperOptimalSplitLocation ( LiveInterval liveInterval, SlotIndex at ) : SlotIndex
IntervalSplitAtFirstUseOrDef ( LiveInterval liveInterval ) : bool
PlaceLiveIntervalOnTrack ( LiveInterval liveInterval, Mosa.Compiler.Framework.RegisterAllocator.MoveHint hints ) : bool
PreferBlockBoundaryIntervalSplit ( LiveInterval liveInterval, SlotIndex at, bool addToQueue ) : bool
TraceMoveHints ( ) : void
TrySimplePartialFreeIntervalSplit ( LiveInterval liveInterval ) : bool
UpdateMoveHints ( LiveInterval liveInterval ) : void
UpdateMoveHints ( LiveInterval liveInterval, Mosa.Compiler.Framework.RegisterAllocator.MoveHint moveHints ) : void

Описание методов

AdditionalSetup() защищенный Метод

protected AdditionalSetup ( ) : void
Результат void

CalculatePriorityValue() защищенный Метод

protected CalculatePriorityValue ( LiveInterval liveInterval ) : int
liveInterval LiveInterval
Результат int

CalculateSpillCost() защищенный Метод

protected CalculateSpillCost ( LiveInterval liveInterval ) : void
liveInterval LiveInterval
Результат void

GreedyRegisterAllocator() публичный Метод

public GreedyRegisterAllocator ( BasicBlocks basicBlocks, VirtualRegisters virtualRegisters, BaseArchitecture architecture, AddStackLocalDelegate addStackLocal, Operand stackFrame, ITraceFactory traceFactory ) : System.Collections.Generic
basicBlocks BasicBlocks
virtualRegisters VirtualRegisters
architecture BaseArchitecture
addStackLocal AddStackLocalDelegate
stackFrame Operand
traceFactory ITraceFactory
Результат System.Collections.Generic

PlaceLiveInterval() защищенный Метод

protected PlaceLiveInterval ( LiveInterval liveInterval ) : bool
liveInterval LiveInterval
Результат bool

SplitIntervalAtCallSite() защищенный Метод

protected SplitIntervalAtCallSite ( LiveInterval liveInterval, SlotIndex callSite ) : void
liveInterval LiveInterval
callSite SlotIndex
Результат void

TrySplitInterval() защищенный Метод

protected TrySplitInterval ( LiveInterval liveInterval, int level ) : bool
liveInterval LiveInterval
level int
Результат bool