commit | b4609325c4f1f614b5812bf36d054df8ba0de2f9 | [log] [tgz] |
---|---|---|
author | Chandler Carruth <chandlerc@gmail.com> | Tue Jan 28 00:07:38 2025 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Jan 28 00:11:19 2025 -0800 |
tree | bed1a297ceddab45623f5c0978f557cd945bca78 | |
parent | 61ce3fe0700acdf22eebc387194d152a9e33bf0b [diff] |
[StrTable] Mechanically convert Hexagon builtins to use TableGen (#123460) This switches them to use the common builtin TableGen emission. The fancy feature string preprocessor tricks are replaced with a fairly direct translation into TableGen. All of the actual definitions were created using a quite hack-y Python script that was never intended to be productionized. It preserves the order, spacing, and even comments from the original files. For posterity, the script used is here: https://gist.github.com/chandlerc/f53c7d735e33eecf388529bd9a6010df The original `.def` file appears to be generated by some out-of-tree `iset.py` script, which because it is out of tree I couldn't update. It should be very straightforward though to update it to generate a similar structure as was used to produce the `.td` file. In addition to helping move towards TableGen for all of the builtins, these builtins in particular can be *much* more efficiently handled using TableGen when we start emitting string tables for them because it allows de-duplicating all of the feature strings. The commit sha parent at the time the PR was made is 7253c6fde498c4c9470b681df47d46e6930d6a02 and at that commit, the resulting TableGen file produces a `.inc` file that only differs in whitespace and the order of the builtins defined. GitOrigin-RevId: 7e22180c20fa3b4e0add41ad620d2eaac2b47fcc
Welcome to Clang.
This is a compiler front-end for the C family of languages (C, C++ and Objective-C) which is built as part of the LLVM compiler infrastructure project.
Unlike many other compiler frontends, Clang is useful for a number of things beyond just compiling code: we intend for Clang to be host to a number of different source-level tools. One example of this is the Clang Static Analyzer.
If you're interested in more (including how to build Clang) it is best to read the relevant websites. Here are some pointers:
Information on Clang: http://clang.llvm.org/
Building and using Clang: http://clang.llvm.org/get_started.html
Clang Static Analyzer: http://clang-analyzer.llvm.org/
Information on the LLVM project: http://llvm.org/
If you have questions or comments about Clang, a great place to discuss them is on the Clang forums:
If you find a bug in Clang, please file it in the LLVM bug tracker: