class GenericSchedulerBase

Declaration

class GenericSchedulerBase : public MachineSchedStrategy { /* full declaration omitted */ };

Description

Base class for GenericScheduler. This class maintains information about scheduling candidates based on TargetSchedModel making it easy to implement heuristics for either preRA or postRA scheduling.

Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:811

Inherits from: MachineSchedStrategy

Member Variables

protected const llvm::MachineSchedContext* Context
protected const llvm::TargetSchedModel* SchedModel = nullptr
protected const llvm::TargetRegisterInfo* TRI = nullptr
protected llvm::SchedRemainder Rem

Method Overview

  • protected GenericSchedulerBase(const llvm::MachineSchedContext * C)
  • public static const char * getReasonStr(GenericSchedulerBase::CandReason Reason)
  • protected void setPolicy(llvm::GenericSchedulerBase::CandPolicy & Policy, bool IsPostRA, llvm::SchedBoundary & CurrZone, llvm::SchedBoundary * OtherZone)
  • private bool shouldReduceLatency(const llvm::GenericSchedulerBase::CandPolicy & Policy, llvm::SchedBoundary & CurrZone, bool ComputeRemLatency, unsigned int & RemLatency) const
  • protected void traceCandidate(const llvm::GenericSchedulerBase::SchedCandidate & Cand)

Inherited from MachineSchedStrategy:

Methods

GenericSchedulerBase(
    const llvm::MachineSchedContext* C)

Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:916

Parameters

const llvm::MachineSchedContext* C

static const char* getReasonStr(
    GenericSchedulerBase::CandReason Reason)

Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:821

Parameters

GenericSchedulerBase::CandReason Reason

void setPolicy(
    llvm::GenericSchedulerBase::CandPolicy&
        Policy,
    bool IsPostRA,
    llvm::SchedBoundary& CurrZone,
    llvm::SchedBoundary* OtherZone)

Description

Set the CandPolicy given a scheduling zone given the current resources and latencies inside and outside the zone.

Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:918

Parameters

llvm::GenericSchedulerBase::CandPolicy& Policy
bool IsPostRA
llvm::SchedBoundary& CurrZone
llvm::SchedBoundary* OtherZone

bool shouldReduceLatency(
    const llvm::GenericSchedulerBase::CandPolicy&
        Policy,
    llvm::SchedBoundary& CurrZone,
    bool ComputeRemLatency,
    unsigned int& RemLatency) const

Description

Returns true if the current cycle plus remaning latency is greater than the critical path in the scheduling region.

Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:926

Parameters

const llvm::GenericSchedulerBase::CandPolicy& Policy
llvm::SchedBoundary& CurrZone
bool ComputeRemLatency
unsigned int& RemLatency

void traceCandidate(
    const llvm::GenericSchedulerBase::
        SchedCandidate& Cand)

Declared at: llvm/include/llvm/CodeGen/MachineScheduler.h:922

Parameters

const llvm::GenericSchedulerBase::SchedCandidate& Cand