Occasional TableGen Newsletter, no. 2

This is the second in a series of occasional TableGen newsletters. The
purpose is to inform the greater LLVM community of changes and enhancements
to TableGen and its backends.

* As announced previously, there are two new TableGen documents and three
updated ones:

TableGen Overview --- TableGen Overview — LLVM 16.0.0git documentation
TableGen Programmer's Reference --- 1   TableGen Programmer’s Reference — LLVM 16.0.0git documentation
TableGen Backends --- TableGen BackEnds — LLVM 16.0.0git documentation
TableGen Backend Developer's Guide --- 1   TableGen Backend Developer’s Guide — LLVM 16.0.0git documentation
xxx-tblgen Command Guide --- tblgen - Description to C++ Code — LLVM 16.0.0git documentation

* The boolean literals 'true' and 'false' were added to TableGen to improve
the readability of the code.

* The !sub bang operator was added to perform subtraction.

* The !interleave operator was added to concatenate a list of strings with a
delimiter between each item. This is simpler and faster than !foldl.

* The !filter operator was added to filter a list of items based on a
boolean predicate expression. This is simpler and faster than !foldl.

* All six comparison operators now work on strings: !eq, !ne, !gt, !ge, !lt,
!le.

* The !eq and !ne operators now work on records. This eliminates many
!cast<string> operations that were previously necessary.

* A new frontend/backend timing capability was added to TableGen. See the
"Backend Developer's Guide" for more information.

* I'm working on an ongoing project to clean up the .td files and use the
new features in them.

* Coming soon: A faster -gen-dag-isel backend.

Thank you for the work here. This is awesome to see.

Philip

You're quite welcome. I'm having a great time.