mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
[llvm-mca] Remove flag -max-retire-per-cycle, and update the docs.
This is done in preparation for D45259. With D45259, models can specify the size of the reorder buffer, and the retire throughput directly via tablegen. llvm-svn: 329274
This commit is contained in:
parent
d9afd01962
commit
56f9bc1f61
@ -68,11 +68,6 @@ option specifies "``-``", then the output will also be sent to standard output.
|
||||
defaults to the 'IssueWidth' specified by the processor scheduling model.
|
||||
If width is zero, then the default dispatch width is used.
|
||||
|
||||
.. option:: -max-retire-per-cycle=<retire throughput>
|
||||
|
||||
Specify the retire throughput (i.e. how many instructions can be retired by the
|
||||
retire control unit every cycle).
|
||||
|
||||
.. option:: -register-file-size=<size>
|
||||
|
||||
Specify the size of the register file. When specified, this flag limits
|
||||
|
@ -62,15 +62,15 @@ public:
|
||||
Backend(const llvm::MCSubtargetInfo &Subtarget,
|
||||
const llvm::MCRegisterInfo &MRI, InstrBuilder &B, SourceMgr &Source,
|
||||
unsigned DispatchWidth = 0, unsigned RegisterFileSize = 0,
|
||||
unsigned MaxRetirePerCycle = 0, unsigned LoadQueueSize = 0,
|
||||
unsigned StoreQueueSize = 0, bool AssumeNoAlias = false)
|
||||
unsigned LoadQueueSize = 0, unsigned StoreQueueSize = 0,
|
||||
bool AssumeNoAlias = false)
|
||||
: STI(Subtarget), IB(B),
|
||||
HWS(llvm::make_unique<Scheduler>(this, Subtarget.getSchedModel(),
|
||||
LoadQueueSize, StoreQueueSize,
|
||||
AssumeNoAlias)),
|
||||
DU(llvm::make_unique<DispatchUnit>(
|
||||
this, STI, MRI, Subtarget.getSchedModel().MicroOpBufferSize,
|
||||
RegisterFileSize, MaxRetirePerCycle, DispatchWidth, HWS.get())),
|
||||
RegisterFileSize, DispatchWidth, HWS.get())),
|
||||
SM(Source), Cycles(0) {
|
||||
HWS->setDispatchUnit(DU.get());
|
||||
}
|
||||
|
@ -192,9 +192,9 @@ private:
|
||||
DispatchUnit *Owner;
|
||||
|
||||
public:
|
||||
RetireControlUnit(unsigned NumSlots, unsigned RPC, DispatchUnit *DU)
|
||||
RetireControlUnit(unsigned NumSlots, DispatchUnit *DU)
|
||||
: NextAvailableSlotIdx(0), CurrentInstructionSlotIdx(0),
|
||||
AvailableSlots(NumSlots), MaxRetirePerCycle(RPC), Owner(DU) {
|
||||
AvailableSlots(NumSlots), MaxRetirePerCycle(0), Owner(DU) {
|
||||
assert(NumSlots && "Expected at least one slot!");
|
||||
Queue.resize(NumSlots);
|
||||
}
|
||||
@ -266,14 +266,13 @@ class DispatchUnit {
|
||||
public:
|
||||
DispatchUnit(Backend *B, const llvm::MCSubtargetInfo &STI,
|
||||
const llvm::MCRegisterInfo &MRI, unsigned MicroOpBufferSize,
|
||||
unsigned RegisterFileSize, unsigned MaxRetirePerCycle,
|
||||
unsigned MaxDispatchWidth, Scheduler *Sched)
|
||||
unsigned RegisterFileSize, unsigned MaxDispatchWidth,
|
||||
Scheduler *Sched)
|
||||
: DispatchWidth(MaxDispatchWidth), AvailableEntries(MaxDispatchWidth),
|
||||
CarryOver(0U), SC(Sched),
|
||||
RAT(llvm::make_unique<RegisterFile>(STI.getSchedModel(), MRI,
|
||||
RegisterFileSize)),
|
||||
RCU(llvm::make_unique<RetireControlUnit>(MicroOpBufferSize,
|
||||
MaxRetirePerCycle, this)),
|
||||
RCU(llvm::make_unique<RetireControlUnit>(MicroOpBufferSize, this)),
|
||||
Owner(B) {}
|
||||
|
||||
unsigned getDispatchWidth() const { return DispatchWidth; }
|
||||
|
@ -81,11 +81,6 @@ static cl::opt<unsigned> DispatchWidth(
|
||||
cl::desc("Dispatch Width. By default it is set equal to IssueWidth"),
|
||||
cl::init(0));
|
||||
|
||||
static cl::opt<unsigned> MaxRetirePerCycle(
|
||||
"max-retire-per-cycle",
|
||||
cl::desc("Maximum number of instructions that can be retired in one cycle"),
|
||||
cl::init(0));
|
||||
|
||||
static cl::opt<unsigned>
|
||||
RegisterFileSize("register-file-size",
|
||||
cl::desc("Maximum number of temporary registers which can "
|
||||
@ -361,8 +356,8 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
std::unique_ptr<mca::Backend> B = llvm::make_unique<mca::Backend>(
|
||||
*STI, *MRI, *IB, *S, Width, RegisterFileSize, MaxRetirePerCycle,
|
||||
LoadQueueSize, StoreQueueSize, AssumeNoAlias);
|
||||
*STI, *MRI, *IB, *S, Width, RegisterFileSize, LoadQueueSize,
|
||||
StoreQueueSize, AssumeNoAlias);
|
||||
|
||||
std::unique_ptr<mca::BackendPrinter> Printer =
|
||||
llvm::make_unique<mca::BackendPrinter>(*B);
|
||||
|
Loading…
Reference in New Issue
Block a user