[llvm-dev] Occasional TableGen Newsletter, no. 2

Paul C. Anagnostopoulos via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 16 12:30:42 PST 2020


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 --- https://llvm.org/docs/TableGen/
TableGen Programmer's Reference --- https://llvm.org/docs/TableGen/ProgRef.html
TableGen Backends --- https://llvm.org/docs/TableGen/BackEnds.html
TableGen Backend Developer's Guide --- https://llvm.org/docs/TableGen/BackGuide.html
xxx-tblgen Command Guide --- https://llvm.org/docs/CommandGuide/tblgen.html

* 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.



More information about the llvm-dev mailing list