Thank you for using a deterministic sort order for the std::set :)<div><br></div><div>One nit: please make as much as possible private to the translation unit. Run</div><div><br></div><div>nm DFAPacketizerEmitter.cpp.o | awk '$2 == "T"' | c++filt</div>
<div><br></div><div>to ensure that only the "emit" function is being exported.</div><div><br></div><div>I can't comment on the validity of this optimization since I'm not familiar with the algorithm that this code uses.<br>
<div><br></div><div>--Sean Silva<br><br><div class="gmail_quote">On Thu, Jun 14, 2012 at 6:22 AM, Ivan Llopard <span dir="ltr"><<a href="mailto:ivanllopard@gmail.com" target="_blank">ivanllopard@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
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.<br>
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.<br>

<br>
It contains small changes:<br>
- Transitions are stored in a set for quicker searches<br>
- canAddInsnClass() API is split in two API's:<br>
  - canAddInsnClass() which perform a quick verification about the possibility of having new states for a given InsnClass<br>
  - AddInsnClass() performs the actual computation of possible states.<br>
<br>
I've regenerated the DFA table of Hexagon and all seems to be ok.<br>
<br>
What do you think about these changes ?<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
Ivan<br>
</font></span><br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div></div>