[llvm-commits] [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-commits/attachments/20120614/93dca92e/attachment.bin>


More information about the llvm-commits mailing list