]> granicus.if.org Git - llvm/commit
[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)
commitf18fcb7a6ccc1836d5ac76ef6c5f1ac6901ff44d
tree013da916e2273aa65f2882c0212a918964cfd66b
parentf7adcecae77526fda4edd9af9c1dbd17809ea135
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@369010 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MCA/HardwareUnits/RetireControlUnit.h
include/llvm/MCA/Instruction.h
lib/MCA/HardwareUnits/RetireControlUnit.cpp
lib/MCA/HardwareUnits/Scheduler.cpp
lib/MCA/Stages/DispatchStage.cpp
lib/MCA/Stages/ExecuteStage.cpp
lib/MCA/Stages/RetireStage.cpp