[MCA] Introduce class LSUnitBase and let LSUnit derive from it.
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Thu, 23 May 2019 13:42:47 +0000 (13:42 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Thu, 23 May 2019 13:42:47 +0000 (13:42 +0000)
commitdd0d9e01eeaab849701cce1a22342b04e79df54b
tree73805d34451952fc5f697152356d5424bf25cf9c
parent46806749ac3a334bdcabb59b7082471aaf19a28a
[MCA] Introduce class LSUnitBase and let LSUnit derive from it.

Class LSUnitBase provides a abstract interface for all the concrete LS units in
llvm-mca.

Methods exposed by the public abstract LSUnitBase interface are:
 - Status isAvailable(const InstRef&);
 - void dispatch(const InstRef &);
 - const InstRef &isReady(const InstRef &);

LSUnitBase standardises the API, but not the data structures internally used by
LS units. This allows for more flexibility.
Previously, only method `isReady()` was declared virtual by class LSUnit.
Also, derived classes had to inherit all the internal data members of LSUnit.

No functional change intended.

llvm-svn: 361496
llvm/include/llvm/MCA/HardwareUnits/LSUnit.h
llvm/lib/MCA/HardwareUnits/LSUnit.cpp
llvm/lib/MCA/HardwareUnits/Scheduler.cpp