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)
commit462e3d8050faf6442b678a9089933542b7c0e84c
tree0ace17df642cf39f2acf38adb8fd6c33b7ee97ad
parent5b270932cc6ee39d977d397bafc363e9c5df040f
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

llvm-svn: 371393
llvm/include/llvm/CodeGen/DFAPacketizer.h
llvm/lib/CodeGen/DFAPacketizer.cpp
llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
llvm/test/CodeGen/Hexagon/packetizer-resources.ll [deleted file]
llvm/utils/TableGen/DFAPacketizerEmitter.cpp