C# 클래스 Mosa.Compiler.Framework.RegisterAllocator.GreedyRegisterAllocator

상속: BasicRegisterAllocator
파일 보기 프로젝트 열기: tgiphil/MOSA-Project 1 사용 예제들

공개 메소드들

메소드 설명
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