summaryrefslogtreecommitdiffstats
path: root/include/clang/Basic/Builtins.h
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-11-04 03:40:30 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-11-04 03:40:30 +0000
commit6bb02a27b9161e772ec3fd64c8ee9955787d583e (patch)
tree9c233c030b85adee499edc3badf256ad989d31a1 /include/clang/Basic/Builtins.h
parent0c29653a59e47624ec37f4e607976449fb975f44 (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.h7
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