aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSaar Raz <saar@raz.email>2020-01-22 02:50:12 +0200
committerSaar Raz <saar@raz.email>2020-01-22 03:09:53 +0200
commitb933d37cd3774e5431b35e82187eebb59b1ff59e (patch)
treecc62167fbd38b917beeb554380d4afe760c85b9b /clang/lib/Frontend/CompilerInvocation.cpp
parenta156da5fb361fd38ba379ec20856626c9e35f829 (diff)
downloadllvm-b933d37cd3774e5431b35e82187eebb59b1ff59e.zip
llvm-b933d37cd3774e5431b35e82187eebb59b1ff59e.tar.gz
llvm-b933d37cd3774e5431b35e82187eebb59b1ff59e.tar.bz2
[Concepts] Constraint Satisfaction Caching
Add a simple cache for constraint satisfaction results. Whether or not this simple caching would be permitted in final C++2a is currently being discussed but it is required for acceptable performance so we use it in the meantime, with the possibility of adding some cache invalidation mechanisms later. Differential Revision: https://reviews.llvm.org/D72552
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index dafab30..398f960 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -2859,6 +2859,8 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
Opts.NewAlignOverride = 0;
}
Opts.ConceptsTS = Args.hasArg(OPT_fconcepts_ts);
+ Opts.ConceptSatisfactionCaching =
+ !Args.hasArg(OPT_fno_concept_satisfaction_caching);
Opts.HeinousExtensions = Args.hasArg(OPT_fheinous_gnu_extensions);
Opts.AccessControl = !Args.hasArg(OPT_fno_access_control);
Opts.ElideConstructors = !Args.hasArg(OPT_fno_elide_constructors);