[llvm-commits] [LLVMdev] [PATCH] Refactoring the DFA generator

Ivan Llopard ivanllopard at gmail.com
Fri Jun 15 00:00:36 PDT 2012


Hi Anshu, Sean,

Thanks for your quick feedbacks!

Sean, I ran your command and I had the following output:

$nm DFAPacketizerEmitter.o | awk '$2 == "T"' | c++filt
0000000000000000 T llvm::EmitDFAPacketizer(llvm::RecordKeeper&, 
llvm::raw_ostream&)

which I think it's correct.

Ivan

On 14/06/2012 21:15, Anshuman Dasgupta wrote:
> Ivan,
>
> Thanks for working on the DFA generator. I'll take a look at the 
> changes in detail but from your description, I like the general nature 
> of the modifications.
>
> -Anshu
>
> ---
> Qualcomm Innovation Center, Inc is a member of the Code Aurora Forum
>
>
> On 6/14/2012 8:22 AM, Ivan Llopard wrote:
>> 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
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120615/3fca74a3/attachment.html>


More information about the llvm-commits mailing list