Split the giant lookup table into 3 smaller ones
Instead of having a single, enormous LUT for all CUDA names, let's have separate ones for different types of entity. We often know that we're looking at a typename, or a function name, or a macro name - so we can be more efficient (and resilient to name collisions) by having smaller lookup tables for each of those classes of entity). Here we start that off by having three LUTs: - Header names - Type names - Everything else Future work could usefully split "everything else" into: - enum values - macro names - function names - everything else It's worth noting that the "needs new matcher" todos I delete here were actually resolved with the previous commit. It no longer naively searches for things that start with "cu*" - it will find exactly those things that are present in our lookup tables.
This commit is contained in: