Change a very hot piece of code in TableGen's register unit computations to use bit...
authorOwen Anderson <resistor@mac.com>
Fri, 30 Jan 2015 09:05:49 +0000 (09:05 +0000)
committerOwen Anderson <resistor@mac.com>
Fri, 30 Jan 2015 09:05:49 +0000 (09:05 +0000)
commitbc227b65c212e5c17636bfe8a5e4dfaa764c56b0
tree2db93d299b9c9ba5c8721fcb8232b9bbc1e6e020
parent2f45a3c2528c0d25051a84418e12b83bb3911ed7
Change a very hot piece of code in TableGen's register unit computations to use bit vectors rather than arrays.

For target descriptions with very large and very dense register files, TableGen
can take an extremely long time to run.  This change makes a dent in that (~15%
in my measurements) by accelerating the single hottest operation with better data
structures.

I believe there's still a lot of room to make this even faster with more global
changes that require replacing some of the existing datastructures in this area
with bit vectors, but that's a more involved change and I wanted to get this
simpler improvement in first.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227562 91177308-0d34-0410-b5e6-96231b3b80d8
utils/TableGen/CodeGenRegisters.cpp