31std::unique_ptr<Pipeline>
40 auto RCU = std::make_unique<RetireControlUnit>(SM);
48 auto Fetch = std::make_unique<EntryStage>(
SrcMgr);
50 std::make_unique<DispatchStage>(STI, MRI, Opts.
DispatchWidth, *RCU, *PRF);
53 auto Retire = std::make_unique<RetireStage>(*RCU, *PRF, *LSU);
62 auto StagePipeline = std::make_unique<Pipeline>();
63 StagePipeline->appendStage(std::move(Fetch));
65 StagePipeline->appendStage(std::make_unique<MicroOpQueueStage>(
67 StagePipeline->appendStage(std::move(
Dispatch));
68 StagePipeline->appendStage(std::move(
Execute));
69 StagePipeline->appendStage(std::move(Retire));
73std::unique_ptr<Pipeline>
82 auto Entry = std::make_unique<EntryStage>(
SrcMgr);
83 auto InOrderIssue = std::make_unique<InOrderIssueStage>(
85 auto StagePipeline = std::make_unique<Pipeline>();
92 StagePipeline->appendStage(std::move(Entry));
93 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 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.
bool isOutOfOrder() const
Return true if machine supports out of order execution.
This is a convenience struct to hold the parameters necessary for creating the pre-built "default" ou...
unsigned MicroOpQueueSize
unsigned RegisterFileSize
bool EnableBottleneckAnalysis
float ReservationStationScaleFactor
unsigned DecodersThroughput
Abstracting the input code sequence (a sequence of MCInst) and assigning unique identifiers to every ...