aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineFunction.cpp
diff options
context:
space:
mode:
authorLama <lama.saba@intel.com>2020-04-13 18:51:03 +0000
committerJinsong Ji <jji@us.ibm.com>2020-04-13 19:17:15 +0000
commit5c7bbe3659a04c1d17deb3b50ab5b88204327842 (patch)
treecbb05c254caf6f3f4285b530e6d15636fbdb44dc /llvm/lib/CodeGen/MachineFunction.cpp
parentcc4d7dced9fa6630ec0921f9c5a58fa1a2972e60 (diff)
downloadllvm-5c7bbe3659a04c1d17deb3b50ab5b88204327842.zip
llvm-5c7bbe3659a04c1d17deb3b50ab5b88204327842.tar.gz
llvm-5c7bbe3659a04c1d17deb3b50ab5b88204327842.tar.bz2
[MachinePipeliner] Refine the RecMII calculation
In the case of more than one SDep between two successor SUnits in the Nodeset, the current implementation sums the latencies of the dependencies, which could create a larger RecMII than necessary. for example, in case there is both a data dependency and an output dependency (with latency > 0) between successor nodes: SU(1) inst1: successors: SU(2): out latency = 1 SU(2): data latency = 1 SU(2) inst2: successors: SU(3): out latency = 1 SU(3): data latency = 1 SU(3) inst3: successors: SU(1): out latency = 1 SU(1): data latency = 1 the NodeSet latency returned would be 6, whereas it could be 3 if we take the max for each successor SUnit. In general this can be extended to finding the shortest path in the recurrence.. thoughts? Unfortunately I had a hard time creating a test for this in Hexagon/PowerPC, so help would be appreciated. Reviewed By: bcahoon Differential Revision: https://reviews.llvm.org/D75918
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunction.cpp')
0 files changed, 0 insertions, 0 deletions