<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix"><tt>Hi Ivan,<br>
<br>
The patch looks good to me. I have a couple of minor comments:<br>
<br>
+void State::AddInsnClass(unsigned InsnClass,<br>
Add a top level comment describing the function<br>
<br>
+ std::map<State*, std::set<Transition*,
ltTransition>, ltState> stateTransitions;<br>
You should be able to use SmallSet here. Also, this line exceeds
80 columns.<br>
<br>
<br>
On a related note, is the CachedTable mechanism in
DFAPacketizer.h useful for your architecture? Currently the DFA
generator generates one table for a given architecture. I had
originally added the CachedTable mechanism since for a given
compilation and subtarget, the DFA only uses the subset of the
states and transitions. Using a "cache" made sense. At one
point, I'd like to change the code so that it can generate one
DFA for every subtarget and remove the CachedTable mechanism.
Given the size of the DFA for your architecture, however, it may
make sense to keep it around even if it generates separate
tables for each subtarget.<br>
<br>
Thanks<br>
-Anshu<br>
<br>
---
<br>
Qualcomm Innovation Center, Inc is a member of the Code Aurora
Forum
<br>
<br>
</tt>
<tt><br>
<br>
<br>
<br>
On 6/14/2012 8:22 AM, Ivan Llopard wrote:<br>
</tt></div>
<blockquote cite="mid:4FD9E59C.7010600@gmail.com" type="cite"><tt>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.
</tt><tt><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:
</tt><tt><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.
</tt><tt><br>
<br>
What do you think about these changes ?
</tt><tt><br>
<br>
<br>
Ivan
</tt><tt><br>
<br>
</tt>
<fieldset class="mimeAttachmentHeader"></fieldset>
<tt><br>
</tt>
<pre wrap=""><tt>_______________________________________________
llvm-commits mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a>
</tt></pre>
</blockquote>
<tt><br>
<br>
</tt>
</body>
</html>