[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
Showing
- include/clang/AST/ASTContext.h 15 additions, 0 deletionsinclude/clang/AST/ASTContext.h
- include/clang/AST/DataRecursiveASTVisitor.h 4 additions, 0 deletionsinclude/clang/AST/DataRecursiveASTVisitor.h
- include/clang/AST/DeclTemplate.h 30 additions, 0 deletionsinclude/clang/AST/DeclTemplate.h
- include/clang/AST/RecursiveASTVisitor.h 4 additions, 0 deletionsinclude/clang/AST/RecursiveASTVisitor.h
- include/clang/Basic/Builtins.h 7 additions, 0 deletionsinclude/clang/Basic/Builtins.h
- include/clang/Basic/DeclNodes.td 1 addition, 0 deletionsinclude/clang/Basic/DeclNodes.td
- include/clang/Basic/DiagnosticSemaKinds.td 7 additions, 1 deletioninclude/clang/Basic/DiagnosticSemaKinds.td
- include/clang/Serialization/ASTBitCodes.h 4 additions, 1 deletioninclude/clang/Serialization/ASTBitCodes.h
- lib/AST/ASTContext.cpp 19 additions, 1 deletionlib/AST/ASTContext.cpp
- lib/AST/ASTDumper.cpp 7 additions, 0 deletionslib/AST/ASTDumper.cpp
- lib/AST/DeclBase.cpp 1 addition, 0 deletionslib/AST/DeclBase.cpp
- lib/AST/DeclTemplate.cpp 67 additions, 0 deletionslib/AST/DeclTemplate.cpp
- lib/CodeGen/CGDecl.cpp 1 addition, 0 deletionslib/CodeGen/CGDecl.cpp
- lib/Sema/SemaLookup.cpp 5 additions, 0 deletionslib/Sema/SemaLookup.cpp
- lib/Sema/SemaTemplate.cpp 58 additions, 1 deletionlib/Sema/SemaTemplate.cpp
- lib/Sema/SemaTemplateInstantiateDecl.cpp 5 additions, 0 deletionslib/Sema/SemaTemplateInstantiateDecl.cpp
- lib/Serialization/ASTCommon.cpp 1 addition, 0 deletionslib/Serialization/ASTCommon.cpp
- lib/Serialization/ASTReader.cpp 3 additions, 0 deletionslib/Serialization/ASTReader.cpp
- lib/Serialization/ASTReaderDecl.cpp 5 additions, 0 deletionslib/Serialization/ASTReaderDecl.cpp
- lib/Serialization/ASTWriter.cpp 2 additions, 0 deletionslib/Serialization/ASTWriter.cpp
Loading
Please register or sign in to comment