]> granicus.if.org Git - llvm/commit
Revert rL371198 from llvm/trunk: [DFAPacketizer] Track resources for packetized instr...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 9 Sep 2019 12:33:22 +0000 (12:33 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 9 Sep 2019 12:33:22 +0000 (12:33 +0000)
commit98409ec54e30b851b56b61429259ca2499f65808
tree56b01a662f32b66fdd17ed812baceaa4ea968d77
parentd362f2ca4d39eae30ae29d6a9e1c9f1b3bdb4935
Revert rL371198 from llvm/trunk: [DFAPacketizer] Track resources for packetized instructions

This patch allows the DFAPacketizer to be queried after a packet is formed to work out which
resources were allocated to the packetized instructions.

This is particularly important for targets that do their own bundle packing - it's not
sufficient to know simply that instructions can share a packet; which slots are used is
also required for encoding.

This extends the emitter to emit a side-table containing resource usage diffs for each
state transition. The packetizer maintains a set of all possible resource states in its
current state. After packetization is complete, all remaining resource states are
possible packetization strategies.

The sidetable is only ~500K for Hexagon, but the extra tracking is disabled by default
(most uses of the packetizer like MachinePipeliner don't care and don't need the extra
maintained state).

Differential Revision: https://reviews.llvm.org/D66936
........
Reverted as this is causing "compiler out of heap space" errors on MSVC 2017/19 NDEBUG builds

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@371393 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/DFAPacketizer.h
lib/CodeGen/DFAPacketizer.cpp
lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
test/CodeGen/Hexagon/packetizer-resources.ll [deleted file]
utils/TableGen/DFAPacketizerEmitter.cpp