diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-11-04 03:40:30 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-11-04 03:40:30 +0000 |
commit | 6bb02a27b9161e772ec3fd64c8ee9955787d583e (patch) | |
tree | 9c233c030b85adee499edc3badf256ad989d31a1 /include/clang/Basic/Builtins.h | |
parent | 0c29653a59e47624ec37f4e607976449fb975f44 (diff) |
[Sema] Implement __make_integer_seq
This new builtin template allows for incredibly fast instantiations of
templates like std::integer_sequence.
Performance numbers follow:
My work station has 64 GB of ram + 20 Xeon Cores at 2.8 GHz.
__make_integer_seq<std::integer_sequence, int, 90000> takes 0.25
seconds.
std::make_integer_sequence<int, 90000> takes unbound time, it is still
running. Clang is consuming gigabytes of memory.
Differential Revision: http://reviews.llvm.org/D13786
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@252036 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/Builtins.h')
-rw-r--r-- | include/clang/Basic/Builtins.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/clang/Basic/Builtins.h b/include/clang/Basic/Builtins.h index 13849fd5f2..41f19e7cbf 100644 --- a/include/clang/Basic/Builtins.h +++ b/include/clang/Basic/Builtins.h @@ -205,5 +205,12 @@ private: }; } + +/// \brief Kinds of BuiltinTemplateDecl. +enum BuiltinTemplateKind : int { + /// \brief This names the __make_integer_seq BuiltinTemplateDecl. + BTK__make_integer_seq +}; + } // end namespace clang #endif |