[LLVMdev] [PATCH] Refactoring the DFA generator
Ivan Llopard
ivanllopard at gmail.com
Thu Jun 14 06:22:36 PDT 2012
Hi,
I've refactored the DFA generator in TableGen because it takes too much
time to build the table of our BE and I'd like to share it.
We have 15 functional units and 13 different itineraries which, in the
worst case, can produce 13! states. Fortunately, many of those states
are reused :-) but it still takes up to 11min to build the entire table.
This patch reduces the build time to 5min, giving a speed-up factor
greater than 2.
It contains small changes:
- Transitions are stored in a set for quicker searches
- canAddInsnClass() API is split in two API's:
- canAddInsnClass() which perform a quick verification about the
possibility of having new states for a given InsnClass
- AddInsnClass() performs the actual computation of possible states.
I've regenerated the DFA table of Hexagon and all seems to be ok.
What do you think about these changes ?
Ivan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: DFAPacketizerEmitter.speedup.patch
Type: text/x-patch
Size: 4957 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120614/93dca92e/attachment.bin>
More information about the llvm-dev
mailing list