[PATCH] D66940: [DFAPacketizer] Allow namespacing of automata per-itinerary

James Molloy via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 29 06:07:26 PDT 2019


jmolloy created this revision.
jmolloy added reviewers: ThomasRaoux, kparzysz.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

The Hexagon itineraries are cunningly crafted such that functional units between
itineraries do not clash. Because all itineraries are bundled into the same DFA,
a functional unit index clash would cause an incorrect DFA to be generated.

A workaround for this is to ensure all itineraries declare the universe of all
possible functional units, but this isn't ideal for three reasons:

1. We only have a limited number of FUs we can encode in the packetizer, and using the universe causes us to hit the limit without care.
2. Silent codegen faults are bad, and careful triage of the FU list shouldn't be required.
3. Smooshing all itineraries into the same automaton allows combinations of instruction classes that cannot exist, which bloats the table.

A simple solution is to allow "namespacing" packetizers.


Repository:
  rL LLVM

https://reviews.llvm.org/D66940

Files:
  include/llvm/Target/TargetItinerary.td
  utils/TableGen/DFAPacketizerEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66940.217857.patch
Type: text/x-patch
Size: 5289 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190829/1409e424/attachment.bin>


More information about the llvm-commits mailing list