31std::unique_ptr<Pipeline>
36 if (!
SM.isOutOfOrder())
40 auto RCU = std::make_unique<RetireControlUnit>(
SM);
44 auto HWS = std::make_unique<Scheduler>(
SM, *LSU);
47 auto Fetch = std::make_unique<EntryStage>(
SrcMgr);
49 std::make_unique<DispatchStage>(STI, MRI, Opts.
DispatchWidth, *RCU, *PRF);
52 auto Retire = std::make_unique<RetireStage>(*RCU, *PRF, *LSU);
61 auto StagePipeline = std::make_unique<Pipeline>();
62 StagePipeline->appendStage(std::move(Fetch));
64 StagePipeline->appendStage(std::make_unique<MicroOpQueueStage>(
66 StagePipeline->appendStage(std::move(
Dispatch));
67 StagePipeline->appendStage(std::move(
Execute));
68 StagePipeline->appendStage(std::move(Retire));
72std::unique_ptr<Pipeline>
81 auto Entry = std::make_unique<EntryStage>(
SrcMgr);
82 auto InOrderIssue = std::make_unique<InOrderIssueStage>(STI, *PRF, CB, *LSU);
83 auto StagePipeline = std::make_unique<Pipeline>();
90 StagePipeline->appendStage(std::move(Entry));
91 StagePipeline->appendStage(std::move(InOrderIssue));
This file models the dispatch component of an instruction pipeline.
This file defines the Entry stage of an instruction pipeline.
This file defines the execution stage of a default instruction pipeline.
InOrderIssueStage implements an in-order execution pipeline.
This file defines a class for holding ownership of various simulated hardware units.
A scheduler for Processor Resource Units and Processor Resource Groups.
This file defines a stage that implements a queue of micro opcodes.
static constexpr unsigned SM(unsigned Version)
static bool Execute(ProcessInfo &PI, StringRef Program, ArrayRef< StringRef > Args, std::optional< ArrayRef< StringRef > > Env, ArrayRef< std::optional< StringRef > > Redirects, unsigned MemoryLimit, std::string *ErrMsg, BitVector *AffinityMask, bool DetachProcess)
This file defines a register mapping file class.
This file simulates the hardware responsible for retiring instructions.
This file defines the retire stage of a default instruction pipeline.
LLVM_ABI std::unique_ptr< Pipeline > createInOrderPipeline(const PipelineOptions &Opts, SourceMgr &SrcMgr, CustomBehaviour &CB)
Construct a basic pipeline for simulating an in-order pipeline.
void addHardwareUnit(std::unique_ptr< HardwareUnit > H)
LLVM_ABI std::unique_ptr< Pipeline > createDefaultPipeline(const PipelineOptions &Opts, SourceMgr &SrcMgr, CustomBehaviour &CB)
Construct a basic pipeline for simulating an out-of-order pipeline.
Class which can be overriden by targets to enforce instruction dependencies and behaviours that aren'...
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI SourceMgr SrcMgr
Machine model for scheduling, bundling, and heuristics.
This is a convenience struct to hold the parameters necessary for creating the pre-built "default" ou...
unsigned MicroOpQueueSize
unsigned RegisterFileSize
bool EnableBottleneckAnalysis
unsigned DecodersThroughput
Abstracting the input code sequence (a sequence of MCInst) and assigning unique identifiers to every ...