To avoid confusion, there's both a LLVM Type and a Clang Type. The LLVM Type is used in the LLVM IR while the Clang Type represents types in a language, like C++.
The Clang Doxygen pages have this hierarchy, although it's truncated because Type is so large, but you can click through to get the missing nodes. It's available at: https://clang.llvm.org/doxygen/classclang_1_1Type.html There's also "clang/AST/TypeNode.def" which has the Type classes available as macro calls. You define the macros, include the file, then the preprocessor will do all the work of filling in hierarchy. You can see this in action by how Type fills up an enum: class alignas(8) Type : public ExtQualsTypeCommonBase { public: enum TypeClass { #define TYPE(Class, Base) Class, #define LAST_TYPE(Class) TypeLast = Class, #define ABSTRACT_TYPE(Class, Base) #include "clang/AST/TypeNodes.def" TagFirst = Record, TagLast = Enum }; On Tue, Aug 6, 2019 at 8:15 AM Monalisa Rout via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Hello, > Can I dump LLVM Type hierarchies somehow ?? > > Types which are declared in this file ("clang/AST/Type.h > <https://clang.llvm.org/doxygen/Type_8h_source.html>" ) > > Regards, > Mona > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits