C# Class Mosa.Compiler.Framework.RegisterAllocator.GreedyRegisterAllocator

Inheritance: BasicRegisterAllocator
Show file Open project: tgiphil/MOSA-Project Class Usage Examples

Public Methods

Method Description
GreedyRegisterAllocator ( BasicBlocks basicBlocks, VirtualRegisters virtualRegisters, BaseArchitecture architecture, AddStackLocalDelegate addStackLocal, Operand stackFrame, ITraceFactory traceFactory ) : System.Collections.Generic

Protected Methods

Method Description
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

Private Methods

Method Description
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

Method Details

AdditionalSetup() protected method

protected AdditionalSetup ( ) : void
return void

CalculatePriorityValue() protected method

protected CalculatePriorityValue ( LiveInterval liveInterval ) : int
liveInterval LiveInterval
return int

CalculateSpillCost() protected method

protected CalculateSpillCost ( LiveInterval liveInterval ) : void
liveInterval LiveInterval
return void

GreedyRegisterAllocator() public method

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
return System.Collections.Generic

PlaceLiveInterval() protected method

protected PlaceLiveInterval ( LiveInterval liveInterval ) : bool
liveInterval LiveInterval
return bool

SplitIntervalAtCallSite() protected method

protected SplitIntervalAtCallSite ( LiveInterval liveInterval, SlotIndex callSite ) : void
liveInterval LiveInterval
callSite SlotIndex
return void

TrySplitInterval() protected method

protected TrySplitInterval ( LiveInterval liveInterval, int level ) : bool
liveInterval LiveInterval
level int
return bool