1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
llvm-mirror/tools/llvm-mca
Andrea Di Biagio 8b13141f92 [llvm-mca] Use a vector to store ResourceState objects in the ResourceManager.
We don't need to use a map to store ResourceState objects. The number of
processor resources is known statically from the scheduling model. We can
therefore use a vector, and reserve a slot for each processor resource that we
want to simulate.
Every time the ResourceManager queries the ResourceState vector, the index to
the vector of ResourceState objects can be easily computed from the processor
resource mask.

This drastically reduces the time complexity of method ResourceManager::use() and
method ResourceManager::release(). This patch gives an average speedup of 12%.

llvm-svn: 338702
2018-08-02 11:12:35 +00:00
..
CMakeLists.txt [llvm-mca] Add HardwareUnit and Context classes. 2018-07-06 18:03:14 +00:00
CodeRegion.cpp [llvm-mca] Add the ability to mark regions of code for analysis (PR36875) 2018-04-09 16:39:52 +00:00
CodeRegion.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
Context.cpp [llvm-mca] Simplify the Pipeline constructor. NFC 2018-07-13 09:31:02 +00:00
Context.h [llvm-mca] Add HardwareUnit and Context classes. 2018-07-06 18:03:14 +00:00
DispatchStage.cpp [llvm-mca][BtVer2] Teach how to identify dependency-breaking idioms. 2018-07-31 13:21:43 +00:00
DispatchStage.h [llvm-mca] Improve code comments. NFC. 2018-08-01 10:49:01 +00:00
DispatchStatistics.cpp [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
DispatchStatistics.h [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
ExecuteStage.cpp [llvm-mca] Improve a few debug prints. NFC 2018-07-13 14:55:47 +00:00
ExecuteStage.h [llvm-mca] Add cycleBegin/cycleEnd callbacks to mca::Stage. 2018-07-12 22:59:53 +00:00
FetchStage.cpp [llvm-mca] Remove unused InstRef formal from pre and post execute callbacks. NFC. 2018-07-14 00:10:42 +00:00
FetchStage.h [llvm-mca] Remove unused InstRef formal from pre and post execute callbacks. NFC. 2018-07-14 00:10:42 +00:00
HardwareUnit.cpp [llvm-mca] Add HardwareUnit and Context classes. 2018-07-06 18:03:14 +00:00
HardwareUnit.h [llvm-mca] Add HardwareUnit and Context classes. 2018-07-06 18:03:14 +00:00
HWEventListener.cpp [llvm-mca] run clang-format on all files. 2018-03-24 16:05:36 +00:00
HWEventListener.h [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
InstrBuilder.cpp [llvm-mca][BtVer2] Teach how to identify dependency-breaking idioms. 2018-07-31 13:21:43 +00:00
InstrBuilder.h [llvm-mca] report an error if the assembly sequence contains an unsupported instruction. 2018-07-09 12:30:55 +00:00
Instruction.cpp [llvm-mca][BtVer2] teach how to identify false dependencies on partially written 2018-07-15 11:01:38 +00:00
Instruction.h [llvm-mca][BtVer2] Teach how to identify dependency-breaking idioms. 2018-07-31 13:21:43 +00:00
InstructionInfoView.cpp [llvm-mca] Use a different character to flag instructions with side-effects in the Instruction Info View. NFC 2018-07-11 12:44:44 +00:00
InstructionInfoView.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
InstructionTables.cpp [llvm-mca] Turn InstructionTables into a Stage. 2018-07-14 23:52:50 +00:00
InstructionTables.h [llvm-mca] Turn InstructionTables into a Stage. 2018-07-14 23:52:50 +00:00
llvm-mca.cpp [llvm-mca] Update the help text to reflect "physical" registers. NFC. 2018-07-31 20:05:08 +00:00
LLVMBuild.txt
LSUnit.cpp [MCA] Avoid an InstrDesc copy in mca::LSUnit::reserve. 2018-07-26 00:02:54 +00:00
LSUnit.h [llvm-mca] Remove unused header files and correctly guard some include headers under NDEBUG. NFC 2018-06-26 10:44:12 +00:00
Pipeline.cpp [llvm-mca] Remove unused InstRef formal from pre and post execute callbacks. NFC. 2018-07-14 00:10:42 +00:00
Pipeline.h [llvm-mca] Remove unused InstRef formal from pre and post execute callbacks. NFC. 2018-07-14 00:10:42 +00:00
PipelinePrinter.cpp [llvm-mca] Turn InstructionTables into a Stage. 2018-07-14 23:52:50 +00:00
PipelinePrinter.h [llvm-mca] Rename Backend to Pipeline. NFC. 2018-06-25 16:53:00 +00:00
RegisterFile.cpp [llvm-mca][BtVer2] teach how to identify false dependencies on partially written 2018-07-15 11:01:38 +00:00
RegisterFile.h [llvm-mca][BtVer2] teach how to identify false dependencies on partially written 2018-07-15 11:01:38 +00:00
RegisterFileStatistics.cpp [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
RegisterFileStatistics.h [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
ResourcePressureView.cpp [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
ResourcePressureView.h [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
RetireControlUnit.cpp [llvm-mca] Removed wrong NDEBUG guards introduced by my last commit. 2018-06-26 11:00:21 +00:00
RetireControlUnit.h [llvm-mca] Improve code comments. NFC. 2018-08-01 10:49:01 +00:00
RetireControlUnitStatistics.cpp [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
RetireControlUnitStatistics.h [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
RetireStage.cpp [llvm-mca][BtVer2] Teach how to identify dependency-breaking idioms. 2018-07-31 13:21:43 +00:00
RetireStage.h [llvm-mca] Add cycleBegin/cycleEnd callbacks to mca::Stage. 2018-07-12 22:59:53 +00:00
Scheduler.cpp [llvm-mca] Use a vector to store ResourceState objects in the ResourceManager. 2018-08-02 11:12:35 +00:00
Scheduler.h [llvm-mca] Use a vector to store ResourceState objects in the ResourceManager. 2018-08-02 11:12:35 +00:00
SchedulerStatistics.cpp [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
SchedulerStatistics.h [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
SourceMgr.h [llvm-mca] Constify SourceMgr::hasNext. NFC. 2018-07-12 23:19:30 +00:00
Stage.cpp [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
Stage.h [llvm-mca] Remove unused InstRef formal from pre and post execute callbacks. NFC. 2018-07-14 00:10:42 +00:00
SummaryView.cpp [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
SummaryView.h [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
Support.cpp [llvm-mca] Rename Backend to Pipeline. NFC. 2018-06-25 16:53:00 +00:00
Support.h [llvm-mca] Rename Backend to Pipeline. NFC. 2018-06-25 16:53:00 +00:00
TimelineView.cpp [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
TimelineView.h [llvm-mca] Simplify eventing by adding an onEvent templated method. 2018-07-12 16:56:17 +00:00
View.cpp [llvm-mca] run clang-format on all files. 2018-03-24 16:05:36 +00:00
View.h [llvm-mca] run clang-format on all files. 2018-03-24 16:05:36 +00:00