[MCA] Slightly refactor class RetireControlUnit, and add the ability to override...
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Thu, 15 Aug 2019 15:27:40 +0000 (15:27 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Thu, 15 Aug 2019 15:27:40 +0000 (15:27 +0000)
commit3de2f0330f4b7b4b099b21a030e19c442f536a83
tree0cadd25bd009bd0a71d2bfd27495139149c73712
parent8903433bb2851f611557a4191eb0b6fd4b0f1ed9
[MCA] Slightly refactor class RetireControlUnit, and add the ability to override the mask of used buffered resources in class mca::Instruction. NFCI

This patch teaches the RCU how to peek 'next' RCUTokens. A new method has been
added to the RetireControlUnit class with the goal of minimizing the complexity
of follow-up patches that will enable macro-fusion support in mca.

This patch also adds method Instruction::getNumMicroOpcodes() to simplify common
interactions with the instruction descriptor (a pattern quite common in some
pipeline stages).

Added the ability to override the default set of consumed scheduler resources
(this -again- is to simplify future patches that add support for macro-op fusion).

No functional change intended.

llvm-svn: 369010
llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h
llvm/include/llvm/MCA/Instruction.h
llvm/lib/MCA/HardwareUnits/RetireControlUnit.cpp
llvm/lib/MCA/HardwareUnits/Scheduler.cpp
llvm/lib/MCA/Stages/DispatchStage.cpp
llvm/lib/MCA/Stages/ExecuteStage.cpp
llvm/lib/MCA/Stages/RetireStage.cpp