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)
commit441b7ac9dc7e6a2d0cf7b8e89b8b7cc7f73f1d3f
tree012dde813f1c69c8e720b8118de743fa7d97ea5c
parent6bd67c08fa21a09006cf1468c24a643925ae577b
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.

llvm-svn: 227562
llvm/utils/TableGen/CodeGenRegisters.cpp