]> granicus.if.org Git - llvm/commit
[MCA] Refactor class BottleneckAnalysis. NFCI
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Fri, 31 May 2019 17:18:34 +0000 (17:18 +0000)
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>
Fri, 31 May 2019 17:18:34 +0000 (17:18 +0000)
commitb5b04f63c94719b7e42e3e1e8eb4ac2a06d5a881
tree0954c1c460ab6320336d505a52302ad8dac2f8ee
parent2e66afabcfd12605a9b78a34055386a62344685e
[MCA] Refactor class BottleneckAnalysis. NFCI

The resource pressure distribution computation is now delegated by class
BottleneckAnalysis to an instance of class PressureTracker.
Class PressureTracker is also responsible for:
 - tracking users of processor resource units.
 - tracking the number of delay cycles caused by increases in backpressure.

BottleneckAnalysis internally initializes a dependency graph. Each nodes
represents an instruction in the input code sequence.  Edges of the dependency
graph are critical register/memory/resource dependencies.  Dependencies are only
added to the graph if they are seen as critical by backend pressure events.

The DependencyGraph is currently unused. It is possible to print the dependency
 graph (see method DependencyGraph::dump()) for debugging purposes.
The long term goal is to use the information stored by the dependency graph in
order to do critical path computation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362246 91177308-0d34-0410-b5e6-96231b3b80d8
tools/llvm-mca/Views/BottleneckAnalysis.cpp
tools/llvm-mca/Views/BottleneckAnalysis.h
tools/llvm-mca/llvm-mca.cpp