[PATCH] D67052: Add reference type transformation builtins
Zoe Carver via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Sep 1 14:34:39 PDT 2019
zoecarver created this revision.
zoecarver added reviewers: EricWF, eli.friedman, rsmith, craig.topper.
Herald added subscribers: libcxx-commits, cfe-commits, jfb, christof.
Herald added projects: clang, libc++.
This patch adds builtin type traits to transform reference types. Specifically, it adds `__add_lvalue_reference`, `__add_rvalue_reference`, and `__remove_reference`. The first two builtins speed up builds by around 3x while the last builtin only sees small improvements (we may be able to optimize it more, though). Once added to the standard library, this should make libc++ (and other code) much faster to compile.
I tried to generalize as much of the builtin as possible so, the only functional difference between the three builtins is in the file `BuildUnaryTransformType`.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D67052
Files:
clang/include/clang/AST/Type.h
clang/include/clang/Basic/Specifiers.h
clang/include/clang/Basic/TokenKinds.def
clang/include/clang/Parse/Parser.h
clang/include/clang/Sema/DeclSpec.h
clang/lib/Format/FormatToken.cpp
clang/lib/Lex/PPMacroExpansion.cpp
clang/lib/Parse/ParseDecl.cpp
clang/lib/Parse/ParseDeclCXX.cpp
clang/lib/Sema/DeclSpec.cpp
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaTemplateVariadic.cpp
clang/lib/Sema/SemaType.cpp
clang/test/SemaCXX/add_reference.cpp
libcxx/test/libcxx/utilities/meta/stress_tests/lit.site.cfg
libcxx/test/libcxx/utilities/meta/stress_tests/stress_test_add_lvalue_reference.sh.cpp
libcxx/test/libcxx/utilities/meta/stress_tests/stress_test_add_rvalue_reference.sh.cpp
libcxx/test/libcxx/utilities/meta/stress_tests/stress_test_remove_reference.sh.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67052.218275.patch
Type: text/x-patch
Size: 21941 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190901/bcd12ba6/attachment-0001.bin>
More information about the cfe-commits
mailing list